بدء استخدام ميزة "الرصد المتقدّم للتهديدات" في DNS Armor

1. مقدمة ونظرة عامة

‫DNS Armor، المستندة إلى Infoblox، هي خدمة مُدارة بالكامل توفّر أمانًا على مستوى نظام أسماء النطاقات لأحمال العمل في Google Cloud. تم تصميم أداة رصد التهديدات المتقدّمة لرصد الأنشطة الضارة في أقرب نقطة في سلسلة الهجوم، أي طلب بحث لنظام أسماء النطاقات (DNS)، بدون إضافة تعقيد تشغيلي أو زيادة في الأداء.

يقدّم هذا الدرس التطبيقي حول الترميز تعليمات مفصّلة حول كيفية إعداد خدمة DNS Armor واختبارها. ستعمل على إعداد البنية الأساسية اللازمة للشبكة، وإنشاء أداة رصد التهديدات، واختبار الخدمة من خلال محاكاة تهديدات نظام أسماء النطاقات، وأخيرًا، تحليل سجلّات التهديدات باستخدام "مستكشف السجلات".

ما ستنشئه

في هذا الدرس التطبيقي حول الترميز، ستوفّر الموارد التالية:

  • شبكتان من شبكات VPC: network-a وnetwork-b
  • ستشمل network-a الشبكات الفرعية والأجهزة الافتراضية في منطقتَي us-east4 وus-central1.
  • ستتضمّن network-b شبكة فرعية وجهازًا افتراضيًا في us-east4 فقط.
  • أداة رصد التهديدات المتقدّمة في DNS Armor تم ضبطها لفحص طلبات بحث نظام أسماء النطاقات

75d6eeb807735645.png

ما ستتعلمه

  • كيفية توفير موارد الشبكات اللازمة، بما في ذلك شبكات VPC والأجهزة الافتراضية
  • كيفية نشر أداة رصد متقدّمة للتهديدات واستبعاد شبكات معيّنة
  • كيفية التحقّق من صحة إعدادات رصد التهديدات باستخدام نص برمجي لمحاكاة التهديدات
  • كيفية تحليل سجلّات التهديدات في "مستكشف السجلات"

المتطلبات

  • مشروع Google Cloud
  • إذن الوصول إلى أداة سطر الأوامر gcloud

2. المتطلبات الأساسية

في هذا القسم، ستنفّذ المهام التالية:

  • تأكَّد من أنّ مشروعك على Google Cloud يستوفي القيود اللازمة في "سياسة المؤسسة".
  • تأكَّد من أنّ حسابك يتضمّن أدوار وأذونات "إدارة الهوية وإمكانية الوصول" المطلوبة.
  • فعِّل واجهات Google Cloud APIs الأساسية لهذا الدرس التطبيقي حول الترميز.
  • امنح حساب خدمة Compute Engine دور roles/logging.viewer في "إدارة الهوية وإمكانية الوصول".

قيود سياسات المؤسسة

لإكمال هذا الدرس التطبيقي حول الترميز بنجاح، يُرجى التحقّق من قيود "سياسة المؤسسة" المطبَّقة على مشروعك. قد تعيق بعض السياسات توفير الموارد اللازمة. قد تؤثر القيود التالية في إعداد هذا الدرس العملي:

  • constraints/gcp.resourceLocations: تقيّد المناطق التي يمكنك إنشاء الموارد فيها، ويتطلّب الدرس التطبيقي us-east4 وus-central1.
  • constraints/compute.vmExternalIpAccess: يمنع إنشاء أجهزة افتراضية باستخدام عناوين IP عامة، ما قد يتعارض مع عملية الإعداد إذا لم تتّبع استخدام العلامة --no-address في الدرس العملي .
  • constraints/compute.shieldedVm: يفرض إنشاء أجهزة افتراضية محمية، وهو ما لا تحدّده أوامر إنشاء الأجهزة الافتراضية في برنامج التدريب العملي، ما قد يتسبّب في حدوث خطأ.
  • constraints/gcp.restrictServiceUsage: يحدّد واجهات برمجة تطبيقات Cloud التي يمكن تفعيلها، وقد يحظر الدرس التطبيقي حول الترميز إذا لم يسمح باستخدام compute.googleapis.com وnetworksecurity.googleapis.com وlogging.googleapis.com وmonitoring.googleapis.com.

أدوار وأذونات إدارة الهوية وإمكانية الوصول

لإكمال هذا الدرس التطبيقي حول الترميز بنجاح، يُرجى التحقّق من أدوار وأذونات "إدارة الهوية وإمكانية الوصول" (IAM) الممنوحة للمستخدم. يجب توفّر أدوار وأذونات "إدارة الهوية وإمكانية الوصول" التالية لإكمال هذا الدرس العملي.

  • مشرف استخدام الخدمة (roles/serviceusage.serviceUsageAdmin): لتفعيل واجهات برمجة تطبيقات Google Cloud المطلوبة في الدرس العملي.
  • مشرف شبكة Compute (roles/compute.networkAdmin): لإنشاء شبكات VPC والشبكات الفرعية وCloud NAT وإدارتها
  • مشرف أمان Compute (roles/compute.securityAdmin): لضبط قواعد جدار الحماية للوصول إلى الأجهزة الافتراضية عبر SSH
  • Compute Instance Admin (الإصدار الأوّل) (roles/compute.instanceAdmin.v1): لإنشاء الأجهزة الافتراضية المطلوبة في الدرس التطبيقي وإدارتها
  • مستخدم النفق المحمي بواسطة IAP (roles/iap.tunnelResourceAccessor): للاتصال بالأجهزة الافتراضية باستخدام SSH من خلال Identity-Aware Proxy (IAP)
  • مشرف أمان الشبكة (roles/networksecurity.admin): لإنشاء أداة رصد التهديدات في DNS Armor وإدارتها
  • عارض السجلات (roles/logging.viewer): لعرض سجلات التهديدات وتحليلها في "مستكشف السجلات"

Google Cloud APIs

يُرجى التأكّد من تفعيل واجهات Google Cloud APIs المطلوبة في مشروعك.

1. فعِّل واجهات برمجة التطبيقات اللازمة، ونفِّذ أوامر gcloud التالية ضِمن Cloud Shell.

gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com

2. تأكَّد من تفعيل واجهات برمجة التطبيقات، ونفِّذ أوامر gcloud التالية في Cloud Shell.

gcloud services list --enabled

حساب خدمة Compute Engine

يتطلّب النص البرمجي للاختبار أذونات لقراءة سجلّات التهديدات من Cloud Logging. بما أنّه سيتم تنفيذ البرنامج النصي من جهاز افتراضي يستخدم حساب خدمة Compute Engine التلقائي، يجب منح دور roles/logging.viewer في "إدارة الهوية وإمكانية الوصول" لحساب الخدمة هذا.

1. اضبط متغيّرات البيئة، ونفِّذ الأوامر التالية ضِمن Cloud Shell.

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

2. امنح دور "مشاهد سجلّات" لحساب الخدمة في Compute Engine. نفِّذ أوامر gcloud التالية ضِمن Cloud Shell

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"

3- إعداد البيئة الأساسية

في هذا القسم، ستنفّذ المهام التالية:

  • أنشئ شبكتَي VPC (network-a وnetwork-b) مع شبكات فرعية مخصّصة.
  • اضبط Cloud Routers وCloud NAT للخروج من الإنترنت في كل من network-a وnetwork-b.
  • أنشئ قواعد جدار الحماية للسماح بالوصول إلى الأجهزة الافتراضية باستخدام بروتوكول SSH من نطاق عناوين IP الخاص بخدمة "الوصول إلى التطبيقات الداخلية" لكل من network-a وnetwork-b.
  • توفير أجهزة Linux الافتراضية في كل من network-a وnetwork-b بدون عناوين IP عامة

إنشاء شبكات VPC وشبكات فرعية

1. أنشئ الشبكة (network-a) وشبكاتها الفرعية في المنطقتَين us-east4 وus-central1. نفِّذ أوامر gcloud التالية ضِمن Cloud Shell.

gcloud compute networks create network-a --subnet-mode=custom
gcloud compute networks subnets create subnet-a-use4 \
--network=network-a \
--range=10.10.0.0/24 \
--region=us-east4
gcloud compute networks subnets create subnet-a-usc1 \
--network=network-a \
--range=10.10.1.0/24 \
--region=us-central1

2. أنشئ الشبكة network-b وشبكتها الفرعية في المنطقة us-east4. نفِّذ أوامر gcloud التالية ضِمن Cloud Shell.

gcloud compute networks create network-b --subnet-mode=custom
gcloud compute networks subnets create subnet-b-use4 \
--network=network-b \
--range=10.20.0.0/24 \
--region=us-east4

ضبط حركة الخروج من الإنترنت

1. أنشئ Cloud Router وCloud NAT لـ network-a للسماح بخروج الإنترنت للأجهزة الافتراضية بدون عناوين IP عامة.

gcloud compute routers create router-a-use4 \
--network=network-a \
--region=us-east4
gcloud compute routers nats create nat-a-use4 \
--router=router-a-use4 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-east4
gcloud compute routers create router-a-usc1 \
--network=network-a \
--region=us-central1
gcloud compute routers nats create nat-a-usc1 \
--router=router-a-usc1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-central1

2. أنشئ Cloud Router وCloud NAT لـ network-b للسماح بخروج الإنترنت للأجهزة الافتراضية بدون عناوين IP عامة.

gcloud compute routers create router-b-use4 \
--network=network-b \
--region=us-east4