1. مقدمة ونظرة عامة
DNS Armor، المستندة إلى Infoblox، هي خدمة مُدارة بالكامل توفّر أمانًا على مستوى نظام أسماء النطاقات لأحمال العمل في Google Cloud. تم تصميم أداة رصد التهديدات المتقدّمة لرصد الأنشطة الضارة في أقرب نقطة في سلسلة الهجوم، أي طلب بحث لنظام أسماء النطاقات (DNS)، بدون إضافة تعقيد تشغيلي أو زيادة في الأداء.
يقدّم هذا الدرس التطبيقي حول الترميز تعليمات مفصّلة حول كيفية إعداد خدمة DNS Armor واختبارها. ستعمل على إعداد البنية الأساسية اللازمة للشبكة، وإنشاء أداة رصد التهديدات، واختبار الخدمة من خلال محاكاة تهديدات نظام أسماء النطاقات، وأخيرًا، عرض سجلّات التهديدات وتحليلها باستخدام لوحة بيانات مخصّصة في Cloud Monitoring.
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستوفّر الموارد التالية:
- شبكة VPC واحدة (
network-a) مع شبكات فرعية وأجهزة افتراضية تم توفيرها في المنطقتَينus-east4وus-central1 - أداة رصد التهديدات المتقدّمة في DNS Armor تم ضبطها لفحص طلبات بحث نظام أسماء النطاقات
- مقاييس مستندة إلى السجلّات استنادًا إلى سجلّات تهديدات نظام أسماء النطاقات
- لوحة بيانات مخصّصة لعرض سجلّات التهديدات في نظام أسماء النطاقات

ما ستتعلمه
- كيفية توفير موارد الشبكات اللازمة، بما في ذلك شبكات 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مع شبكات فرعية مخصّصة. - إعداد أجهزة توجيه Cloud Router وCloud NAT للخروج من الإنترنت في
network-a - أنشئ قواعد جدار الحماية للسماح بالوصول إلى الأجهزة الافتراضية باستخدام بروتوكول SSH من نطاق عناوين IP الخاص بخدمة "الوصول إلى التطبيقات عبر الإنترنت" لمدة
network-a. - توفير أجهزة Linux الافتراضية في
network-aبدون عناوين 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
ضبط حركة الخروج من الإنترنت
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
ضبط قواعد جدار الحماية
1. أنشئ قواعد جدار الحماية لـ network-a للسماح بالوصول إلى SSH من نطاق عناوين IP الخاص بخدمة "الوصول إلى الإنترنت عبر بروتوكول SSH". نفِّذ أوامر gcloud التالية ضِمن Cloud Shell.
gcloud compute firewall-rules create allow-ssh-iap-a \
--network=network-a \
--allow=tcp:22 \
--source-ranges=35.235.240.0/20
إنشاء أجهزة افتراضية
1. إنشاء أجهزة Linux الافتراضية في network-a.
gcloud compute instances create vm-a-use4 \
--zone=us-east4-c \
--network=network-a \
--subnet=subnet-a-use4 \
--no-address \
--scopes=cloud-platform
gcloud compute instances create vm-a-usc1 \
--zone=us-central1-a \
--network=network-a \
--subnet=subnet-a-usc1 \
--no-address \
--scopes=cloud-platform
4. إنشاء أداة رصد التهديدات في نظام أسماء النطاقات
في هذا القسم، ستنفّذ المهام التالية:
- أنشئ أداة رصد التهديدات.
- أدرِج أداة رصد التهديدات.
بعد توفير شبكات VPC والشبكات الفرعية والأجهزة الافتراضية، تتمثّل الخطوة التالية في إنشاء أداة رصد التهديدات في نظام أسماء النطاقات.
1. أنشئ أداة رصد التهديدات باستخدام الأمر gcloud beta network-security dns-threat-detectors create.
gcloud beta network-security dns-threat-detectors create my-dns-threat-detector \
--location=global \
--provider=infoblox
2. أدرِج أداة رصد التهديدات للتأكيد على الإنشاء.
gcloud beta network-security dns-threat-detectors list --location=global
5- إنشاء المقاييس المستندة إلى السجلّات
في هذا القسم، ستنفّذ المهام التالية:
- فهم إدخال السجلّ
- أنشئ ملف
config.yaml. - أنشئ المقياس المستند إلى السجلّات.
1. فهم إدخال السجلّ يمكنك مراجعة جدول يتضمّن جميع الحقول في سجلّات DNS Armor في المستندات المتعلّقة بسجلّات التهديدات. يركّز هذا القسم على الحقول المحدّدة التي سيتم استخدامها لإنشاء المقاييس المستندة إلى السجلّ.
سيتم استخدام الحقول التالية لإنشاء المقاييس المستندة إلى السجلّ:
- vmInstanceId: اسم آلة Compute Engine الافتراضية، وينطبق ذلك فقط على طلبات البحث التي تبدأها آلات Compute Engine الافتراضية.
- queryName: اسم طلب البحث لنظام أسماء النطاقات.
- severity: درجة الخطورة (عالية أو متوسطة أو منخفضة أو معلومات) المرتبطة بالتهديد الذي تم رصده. لمزيد من المعلومات، اطّلِع على تعريف مستوى الخطورة من Infoblox.
- استبدِل location: بمنطقة Google Cloud التي تم عرض الردّ منها.
- التهديد: اسم التهديد الذي تم رصده.
- threatId: معرّف فريد للتهديد
2. أنشئ ملف config.yaml. أولاً، أنشئ ملف config.yaml فارغًا باستخدام الأمر touch.
touch config.yaml
3. املأ ملف config.yaml. يحدّد هذا الملف كيفية إنشاء مقياس مستند إلى السجلّات لسجلّات التهديدات في DNS Armor. يحدّد هذا النوع من المقاييس إدخالات السجلّ المطلوب فلترتها، والتصنيفات المطلوب استخراجها من هذه الإدخالات، وخصائص المقياس نفسه.
افتح ملف config.yaml في محرِّر نصوص من اختيارك والصِق المحتوى التالي.
filter: |
resource.type="networksecurity.googleapis.com/DnsThreatDetector"
jsonPayload.dnsQuery.projectNumber="PROJECT_NUMBER"
labelExtractors:
InstanceId: EXTRACT(jsonPayload.dnsQuery.vmInstanceId)
QueryName: EXTRACT(jsonPayload.dnsQuery.queryName)
Severity: EXTRACT(jsonPayload.threatInfo.severity)
region: EXTRACT(jsonPayload.dnsQuery.location)
threat: EXTRACT(jsonPayload.threatInfo.threat)
threatId: EXTRACT(jsonPayload.threatInfo.threatId)
metricDescriptor:
labels:
- key: InstanceId
- key: threat
- key: Severity
- key: threatId
- key: region
- key: QueryName
metricKind: DELTA
unit: '1'
valueType: INT64
4. عدِّل رقم المشروع. استخدِم أمر sed التالي لاستبدال العنصر النائب PROJECT_NUMBER بالقيمة من متغيّر البيئة.
sed -i "s/PROJECT_NUMBER/$PROJECT_NUMBER/g" config.yaml
5. أنشئ المقياس المستند إلى السجلّ. أخيرًا، شغِّل أمر gcloud التالي في Cloud Shell لإنشاء المقياس.
gcloud logging metrics create dns-armor-log-based-metric --config-from-file=config.yaml
6. إنشاء لوحة البيانات المخصّصة
في هذا القسم، ستنفّذ المهام التالية:
- أنشئ ملف
dashboard.json. - إنشاء لوحة البيانات المخصّصة
1. أنشئ ملف dashboard.json. أولاً، أنشئ ملف dashboard.json فارغًا باستخدام الأمر touch.
touch dashboard.json
2. املأ ملف dashboard.json. يضبط ملف dashboard.json لوحة بيانات الرصد المخصّصة، ويحدّد عناصر واجهة المستخدم وخصائص العرض وطريقة عرض المقاييس المستندة إلى السجلّات وتجميعها وفلترتها.
افتح ملف dashboard.json في محرِّر نصوص من اختيارك والصِق المحتوى التالي.
{
"displayName": "DNS Armor - Custom Dashboard",
"dashboardFilters": [],
"description": "",
"labels": {},
"mosaicLayout": {
"columns": 48,
"tiles": [
{
"height": 20,
"width": 24,
"widget": {
"title": "Threat Logs",
"id": "",
"xyChart": {
"chartOptions": {
"displayHorizontal": false,
"mode": "COLOR",
"showLegend": false
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"legendTemplate": "",
"measures": [],
"minAlignmentPeriod": "60s",
"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"timeSeriesQuery": {
"outputFullDuration": false,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
},
"unitOverride": ""
}
}
],
"thresholds": [],
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
}
},
{
"xPos": 24,
"height": 20,
"width": 24,
"widget": {
"title": "Threat Logs per region",
"id": "",
"xyChart": {
"chartOptions": {
"displayHorizontal": false,
"mode": "COLOR",
"showLegend": false
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"legendTemplate": "",
"measures": [],
"minAlignmentPeriod": "60s",
"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"timeSeriesQuery": {
"outputFullDuration": false,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"region\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
},
"unitOverride": ""
}
}
],
"thresholds": [],
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
}
},
{
"yPos": 20,
"height": 20,
"width": 24,
"widget": {
"title": "Group by Threat",
"id": "",
"pieChart": {
"chartType": "DONUT",
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"minAlignmentPeriod": "60s",
"sliceNameTemplate": "",
"timeSeriesQuery": {
"outputFullDuration": true,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"threat\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
},
"unitOverride": ""
}
}
],
"showLabels": false,
"showTotal": false,
"sliceAggregatedThreshold": 0
}
}
},
{
"yPos": 20,
"xPos": 24,
"height": 20,
"width": 24,
"widget": {
"title": "Top List - ThreatID",
"timeSeriesTable": {
"columnSettings": [
{
"column": "threatId",
"visible": true
},
{
"column": "threat",
"visible": true
},
{
"column": "project_id",
"visible": false
},
{
"column": "value",
"visible": true
}
],
"dataSets": [
{
"minAlignmentPeriod": "60s",
"timeSeriesQuery": {
"outputFullDuration": true,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"threatId\"",
"metric.label.\"threat\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
"pickTimeSeriesFilter": {
"direction": "TOP",
"numTimeSeries": 30,
"rankingMethod": "METHOD_MEAN"
}
}
}
}
],
"metricVisualization": "BAR"
}
}
},
{
"yPos": 40,
"height": 20,
"width": 24,
"widget": {
"title": "Group by Severity",
"id": "",
"pieChart": {
"chartType": "DONUT",
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"minAlignmentPeriod": "60s",
"sliceNameTemplate": "",
"timeSeriesQuery": {
"outputFullDuration": true,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"Severity\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
},
"unitOverride": ""
}
}
],
"showLabels": false,
"showTotal": false,
"sliceAggregatedThreshold": 0
}
}
},
{
"yPos": 40,
"xPos": 24,
"height": 20,
"width": 24,
"widget": {
"title": "Top List - Source",
"id": "",
"timeSeriesTable": {
"columnSettings": [
{
"column": "InstanceId",
"visible": true
},
{
"column": "region",
"visible": true
},
{
"column": "project_id",
"visible": true
},
{
"column": "value",
"visible": true
}
],
"dataSets": [
{
"minAlignmentPeriod": "60s",
"tableTemplate": "",
"timeSeriesQuery": {
"outputFullDuration": true,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"InstanceId\"",
"metric.label.\"region\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
"pickTimeSeriesFilter": {
"direction": "TOP",
"numTimeSeries": 30,
"rankingMethod": "METHOD_MEAN"
}
},
"unitOverride": ""
}
}
],
"displayColumnType": false,
"metricVisualization": "BAR"
}
}
},
{
"yPos": 60,
"height": 20,
"width": 48,
"widget": {
"title": "Group by Domains",
"id": "",
"xyChart": {
"chartOptions": {
"displayHorizontal": false,
"mode": "COLOR",
"showLegend": false
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"legendTemplate": "",
"measures": [],
"minAlignmentPeriod": "60s",
"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"timeSeriesQuery": {
"outputFullDuration": false,
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"crossSeriesReducer": "REDUCE_SUM",
"groupByFields": [
"metric.label.\"QueryName\""
],
"perSeriesAligner": "ALIGN_SUM"
},
"filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
},
"unitOverride": ""
}
}
],
"thresholds": [],
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
}
}
]
}
}
2. أنشئ لوحة البيانات المخصّصة. نفِّذ أوامر gcloud التالية ضِمن Cloud Shell.
gcloud monitoring dashboards create --config-from-file=dashboard.json
7. إنشاء طلبات بحث محاكية ضارة لنظام أسماء النطاقات
في هذا القسم، ستنفّذ المهام التالية:
- استخدِم بروتوكول النقل الآمن (SSH) للوصول إلى الأجهزة الافتراضية.
- ثبِّت Git على الأجهزة الافتراضية.
- أنشئ نسخة طبق الأصل من مستودع محاكي رصد التهديدات في Infoblox.
- نفِّذ النص البرمجي وحلِّل الناتج الذي تم إنشاؤه.
تحقَّق من صحة الإعداد من خلال إنشاء طلبات بحث محاكية وضارة في نظام أسماء النطاقات من الأجهزة الافتراضية.
1. استخدِم بروتوكول SSH لتسجيل الدخول إلى vm-a-use4. نفِّذ أوامر gcloud التالية ضِمن Cloud Shell.
gcloud compute ssh vm-a-use4 --zone=us-east4-c
2. ثبِّت Git على الجهاز الظاهري.
sudo apt-get install git -y
3. أنشئ نسخة طبق الأصل من مستودع محاكي رصد التهديدات في Infoblox.
git clone https://github.com/infobloxopen/ib-threat-detection-simulator
4. غيِّر الدليل إلى دليل المحاكي.
cd ib-threat-detection-simulator/threat_detection_simulator/
5. نفِّذ النص البرمجي وحلِّل الناتج الذي تم إنشاؤه.
اجعل النص البرمجي قابلاً للتنفيذ.
chmod +x run.sh
شغِّل النص البرمجي.
./run.sh info basic
6- مثال على الناتج
تعرض الصورة التالية جزءًا من ناتج النص البرمجي كما يظهر على جهاز افتراضي ضمن network-a. توضّح هذه النتائج معدّلات الرصد لأنواع تهديدات نظام أسماء النطاقات المختلفة التي حاكتها النصوص البرمجية للاختبار.

7- ارجع إلى Cloud Shell من خلال الخروج من جلسة SSH.
exit
8. عرض لوحة البيانات المخصّصة
الاطّلاع على لوحة البيانات
1. اكتب لوحات البيانات في حقل البحث في أعلى وحدة تحكّم Google Cloud، ثم انقر على لوحات البيانات ضمن أهم النتائج.

2. ابحث عن DNS Armor - Custom Dashboard في حقل البحث، ثم انقر على DNS Armor - Custom Dashboard لفتح لوحة البيانات.

3. اطّلِع على لوحة البيانات.

التطبيقات المصغّرة في لوحة البيانات
يوضّح هذا القسم التطبيقات المصغّرة المختلفة المتاحة على لوحة البيانات المخصّصة، ويقدّم نظرة عامة على وظائفها والبيانات التي تمثّلها.
- سجلّات التهديدات: رسم بياني شريطي مكدّس يعرض سجلّات التهديدات التي تم إنشاؤها لجميع الشبكات المضمّنة في أحد المشاريع خلال فترة زمنية محدّدة.
- سجلّات التهديدات حسب المنطقة: رسم بياني شريطي مكدّس يوضّح سجلّات التهديدات، ويتم تجميعها حسب المنطقة، خلال إطار زمني محدّد.
- التجميع حسب التهديد: رسم بياني دائري يصنّف سجلّات التهديدات استنادًا إلى نوع التهديد خلال إطار زمني محدّد.
- أهم قائمة - معرّف التهديد: قائمة تعرض أهم 30 معرّف تهديد خلال إطار زمني محدّد.
- التجميع حسب مستوى الخطورة: رسم بياني دائري يجمع سجلّات التهديدات حسب مستوى الخطورة خلال إطار زمني محدّد.
- قائمة أهم الأجهزة الافتراضية المصدر: قائمة تعرض أهم 30 معرّف مثيل (الأجهزة الافتراضية المصدر) خلال إطار زمني محدّد.
- التجميع حسب النطاقات: رسم بياني شريطي مكدّس يجمع سجلّات التهديدات حسب أسماء النطاقات التي تم العثور عليها في طلبات البحث.
9- تنظيف
لتجنُّب تكبُّد رسوم مستقبلية، احذف الموارد التي تم إنشاؤها في هذا الدرس العملي. احرص على الخروج من واجهة الجهاز الافتراضي والعودة إلى Cloud Shell عند تنفيذ أوامر التنظيف.
1. احذف لوحة البيانات المخصّصة.
بما أنّ معرّف لوحة البيانات يتم إنشاؤه ديناميكيًا عند الإنشاء، عليك أولاً استرداد اسم المورد باستخدام الاسم المعروض.
DASHBOARD_NAME=$(gcloud monitoring dashboards list --filter="displayName='DNS Armor - Custom Dashboard'" --format='value(name)')
gcloud monitoring dashboards delete $DASHBOARD_NAME --quiet
2. احذف المقياس المستند إلى السجلّ.
gcloud logging metrics delete dns-armor-log-based-metric --quiet
3. احذف الأجهزة الافتراضية.
gcloud compute instances delete vm-a-use4 --zone=us-east4-c --quiet
gcloud compute instances delete vm-a-usc1 --zone=us-central1-a --quiet
4. احذف قواعد جدار الحماية.
gcloud compute firewall-rules delete allow-ssh-iap-a --quiet
5. احذف بوابات Cloud NAT.
gcloud compute routers nats delete nat-a-use4 --router=router-a-use4 --region=us-east4 --quiet
gcloud compute routers nats delete nat-a-usc1 --router=router-a-usc1 --region=us-central1 --quiet
6- احذف أجهزة توجيه السحابة.
gcloud compute routers delete router-a-use4 --region=us-east4 --quiet
gcloud compute routers delete router-a-usc1 --region=us-central1 --quiet
7- احذف الشبكات الفرعية.
gcloud compute networks subnets delete subnet-a-use4 --region=us-east4 --quiet
gcloud compute networks subnets delete subnet-a-usc1 --region=us-central1 --quiet
8- احذف أداة رصد التهديدات في نظام أسماء النطاقات.
gcloud beta network-security dns-threat-detectors delete my-dns-threat-detector --location=global --quiet
9- احذف شبكات VPC.
gcloud compute networks delete network-a --quiet
10. تهانينا
تهانينا! لقد نجحت في إعداد سجلّات رصد التهديدات في DNS Armor ونشرها وعرضها . لقد اكتسبت خبرة عملية في حماية بيئة Google Cloud من التهديدات المستندة إلى نظام أسماء النطاقات (DNS) وإنشاء حلّ مخصّص للمراقبة من أجل الحصول على إحصاءات الأمان.
في هذا الدرس التطبيقي حول الترميز، لديك:
- توفير بيئة شبكة باستخدام شبكة VPC والشبكات الفرعية والأجهزة الافتراضية
- تم ضبط الخروج من الإنترنت للأجهزة الافتراضية الخاصة باستخدام Cloud NAT.
- تم نشر أداة رصد التهديدات في DNS Armor.
- محاكاة تهديدات نظام أسماء النطاقات والتحقّق من صحة إعدادات رصد التهديدات
- تم إنشاء مقاييس مخصّصة مستندة إلى السجلّات من سجلّات تهديدات نظام أسماء النطاقات.
- أنشأنا لوحة بيانات مخصّصة في Cloud Monitoring لعرض تهديدات نظام أسماء النطاقات وتحليلها.