Визуализация журналов расширенного обнаружения угроз DNS Armor с использованием метрик на основе журналов и настраиваемой панели мониторинга.

1. Введение и общий обзор

DNS Armor, разработанный компанией Infoblox , — это полностью управляемый сервис, обеспечивающий безопасность на уровне DNS для ваших рабочих нагрузок в Google Cloud. Его усовершенствованный детектор угроз предназначен для обнаружения вредоносной активности на самой ранней стадии цепочки атаки — DNS-запроса — без увеличения операционной сложности или накладных расходов на производительность.

В этом практическом задании представлены пошаговые инструкции по настройке и тестированию службы DNS Armor . Вы настроите необходимую сетевую инфраструктуру, создадите детектор угроз, протестируете службу, имитируя угрозы DNS, и, наконец, визуализируете и проанализируете журналы угроз с помощью пользовательской панели мониторинга Cloud Monitoring.

Что вы построите

В этом практическом задании вы выделите следующие ресурсы:

  • Одна сеть VPC ( network-a ) с подсетями и виртуальными машинами, развернутыми в регионах us-east4 и us-central1 .
  • Расширенный детектор угроз DNS Armor, настроенный для проверки DNS-запросов.
  • Метрики, основанные на логах угроз DNS.
  • Настраиваемая панель мониторинга для визуализации журналов угроз DNS.

cfe28f2c17ca2660.png

Что вы узнаете

  • Как подготовить необходимые сетевые ресурсы, включая VPC и виртуальные машины.
  • Как развернуть продвинутый детектор угроз и исключить из него определенные сети.
  • Как проверить конфигурацию обнаружения угроз с помощью скрипта моделирования угроз.
  • Как визуализировать журналы угроз DNS с помощью метрик на основе журналов и пользовательской панели мониторинга.

Что вам понадобится

  • Проект Google Cloud.
  • Доступ к инструменту командной строки gcloud .

2. Предварительные требования

В этом разделе вам предстоит выполнить следующие задачи:

  • Убедитесь, что ваш проект в Google Cloud соответствует необходимым ограничениям организационной политики.
  • Убедитесь, что ваша учетная запись пользователя имеет необходимые роли и разрешения IAM.
  • Включите API Google Cloud, необходимые для выполнения этого практического задания.
  • Назначьте роль IAM roles/logging.viewer учетной записи службы Compute Engine.

Ограничения организационной политики

Для успешного выполнения этого практического задания, пожалуйста, проверьте ограничения организационной политики, применяемые к вашему проекту. Некоторые политики могут препятствовать выделению необходимых ресурсов. Следующие ограничения могут повлиять на конфигурацию этого практического задания:

  • constraints/gcp.resourceLocations : Ограничивает регионы, в которых можно создавать ресурсы; для выполнения задания требуются регионы us-east4 и us-central1 .
  • constraints/compute.vmExternalIpAccess : Предотвращает создание виртуальных машин с публичными IP-адресами, что может помешать настройке, если вы не будете следовать указаниям из практического задания по использованию флага --no-address .
  • constraints/compute.shieldedVm : Принудительно создает защищенные виртуальные машины, что не указано в командах создания виртуальных машин в практическом задании, и потенциально может привести к ошибке.
  • constraints/gcp.restrictServiceUsage : Ограничивает список доступных API Google Cloud и может заблокировать выполнение практического задания, если не разрешает использование compute.googleapis.com , networksecurity.googleapis.com , logging.googleapis.com и monitoring.googleapis.com .

Роли и разрешения IAM

Для успешного выполнения этого практического задания проверьте роли и разрешения IAM, предоставленные вашему пользователю. Для выполнения этого практического задания требуются следующие роли и разрешения IAM.

  • Администратор использования сервиса ( roles/serviceusage.serviceUsageAdmin ): Для включения необходимых API Google Cloud для практического занятия.
  • Администратор вычислительной сети ( roles/compute.networkAdmin ): для создания и управления сетями VPC, подсетями и Cloud NAT.
  • Администратор безопасности вычислительных систем ( roles/compute.securityAdmin ): для настройки правил брандмауэра для доступа по SSH к виртуальным машинам.
  • Администратор вычислительных экземпляров (v1) ( roles/compute.instanceAdmin.v1 ): Для создания и управления виртуальными машинами, необходимыми для лабораторной работы.
  • Пользователь туннеля, защищенный IAP ( roles/iap.tunnelResourceAccessor ): Для подключения к виртуальным машинам с использованием SSH через Identity-Aware Proxy (IAP).
  • Администратор сетевой безопасности ( roles/networksecurity.admin ): Для создания и управления детектором угроз DNS Armor.
  • Программа просмотра журналов ( roles/logging.viewer ): Для просмотра и анализа журналов угроз в программе Logs Explorer.

API Google Cloud

Пожалуйста, убедитесь, что необходимые API Google Cloud включены в вашем проекте.

1. Включите необходимые API и выполните следующие команды gcloud в Cloud Shell.

gcloud services enable compute.googleapis.com \
networksecurity.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com

2. Убедитесь, что API включены , выполнив следующие команды gcloud в Cloud Shell.

gcloud services list --enabled

Учетная запись службы Compute Engine

Для выполнения скрипта моделирования угроз требуются разрешения на чтение и создание отчетов по сгенерированным журналам угроз из Cloud Logging. Поскольку скрипт будет выполняться с виртуальной машины, использующей учетную запись службы Compute Engine по умолчанию, этой учетной записи службы необходимо назначить роль IAM roles/logging.viewer .

1. Установите переменные среды и выполните следующие команды в Cloud Shell.

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

2. Предоставьте Compute Engine SA роль просмотра логов . Выполните следующие команды gcloud в Cloud Shell.

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.viewer"

3. Выделение сетевых и вычислительных ресурсов

В этом разделе вам предстоит выполнить следующие задачи:

  • Создайте network-a с пользовательскими подсетями.
  • Настройте облачные маршрутизаторы и облачный NAT для исходящего интернет-трафика в network-a .
  • Создайте правила брандмауэра, разрешающие SSH-доступ к виртуальным машинам из диапазона IP-адресов IAP для network-a .
  • Создание виртуальных машин Linux в network-a без использования публичных IP-адресов.

Создание VPC и подсетей

1. Создайте сеть network-a и её подсети в регионах us-east4 и us-central1 . Выполните следующие команды gcloud в Cloud Shell.

gcloud compute networks create network-a --subnet-mode=custom
gcloud compute networks subnets create subnet-a-use4 \
--network=network-a \
--range=10.10.0.0/24 \
--region=us-east4
gcloud compute networks subnets create subnet-a-usc1 \
--network=network-a \
--range=10.10.1.0/24 \
--region=us-central1

Настройка исходящего интернет-трафика

1. Создайте облачный маршрутизатор и облачный NAT для network-a , чтобы разрешить исходящий трафик из интернета для виртуальных машин без публичных IP-адресов.

gcloud compute routers create router-a-use4 \
--network=network-a \
--region=us-east4
gcloud compute routers nats create nat-a-use4 \
--router=router-a-use4 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-east4
gcloud compute routers create router-a-usc1 \
--network=network-a \
--region=us-central1
gcloud compute routers nats create nat-a-usc1 \
--router=router-a-usc1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--region=us-central1

Настройка правил брандмауэра

1. Создайте правила брандмауэра для network-a , разрешающие доступ по SSH из диапазона IP-адресов IAP. Выполните следующие команды gcloud в Cloud Shell.

gcloud compute firewall-rules create allow-ssh-iap-a \
--network=network-a \
--allow=tcp:22 \
--source-ranges=35.235.240.0/20

Создание виртуальных машин

1. Создайте виртуальные машины Linux в network-a.

gcloud compute instances create vm-a-use4 \
--zone=us-east4-c \
--network=network-a \
--subnet=subnet-a-use4 \
--no-address \
--scopes=cloud-platform
gcloud compute instances create vm-a-usc1 \
--zone=us-central1-a \
--network=network-a \
--subnet=subnet-a-usc1 \
--no-address \
--scopes=cloud-platform

4. Создайте средство обнаружения угроз DNS.

В этом разделе вам предстоит выполнить следующие задачи:

  • Создайте детектор угроз.
  • Перечислите детектор угроз.

После того, как VPC, подсети и виртуальные машины созданы, следующим шагом станет создание детектора угроз DNS.

1. Создайте детектор угроз, используя команду gcloud beta network-security dns-threat-detectors create .

gcloud beta network-security dns-threat-detectors create my-dns-threat-detector \
--location=global \
--provider=infoblox

2. Укажите детектор угроз для подтверждения создания.

gcloud beta network-security dns-threat-detectors list --location=global

5. Создайте метрики на основе логов.

В этом разделе вам предстоит выполнить следующие задачи:

  • Понимание записи в журнале.
  • Создайте файл config.yaml .
  • Создайте метрику на основе логов.

1. Понимание записей в журнале. Вы можете ознакомиться с таблицей всех полей в журналах DNS Armor в документации по журналам угроз . В этом разделе рассматриваются конкретные поля, которые будут использоваться для создания метрик на основе журналов.

Для создания метрик на основе логов будут использоваться следующие поля:

  • vmInstanceId: Имя экземпляра виртуальной машины Compute Engine, применимо только к запросам, инициированным виртуальными машинами Compute Engine.
  • queryName: Имя DNS-запроса.
  • Уровень серьезности: Степень серьезности (высокая, средняя, ​​низкая или информационная), связанная с обнаруженной угрозой. Для получения дополнительной информации см. Определение уровня серьезности в Infoblox.
  • Местоположение: регион Google Cloud, из которого был получен ответ.
  • Угроза: Название обнаруженной угрозы.
  • threatId: Уникальный идентификатор угрозы.

2. Создайте файл config.yaml . Сначала создайте пустой файл config.yaml с помощью команды touch .

touch config.yaml

3. Заполните файл config.yaml . Этот файл определяет, как создать метрику на основе логов для журналов угроз DNS Armor. Он указывает, какие записи логов следует фильтровать, какие метки извлекать из этих записей и свойства самой метрики.

Откройте файл config.yaml в любом текстовом редакторе и вставьте следующее содержимое.

filter: |
  resource.type="networksecurity.googleapis.com/DnsThreatDetector"
  jsonPayload.dnsQuery.projectNumber="PROJECT_NUMBER"
labelExtractors:
  InstanceId: EXTRACT(jsonPayload.dnsQuery.vmInstanceId)
  QueryName: EXTRACT(jsonPayload.dnsQuery.queryName)
  Severity: EXTRACT(jsonPayload.threatInfo.severity)
  region: EXTRACT(jsonPayload.dnsQuery.location)
  threat: EXTRACT(jsonPayload.threatInfo.threat)
  threatId: EXTRACT(jsonPayload.threatInfo.threatId)
metricDescriptor:
  labels:
  - key: InstanceId
  - key: threat
  - key: Severity
  - key: threatId
  - key: region
  - key: QueryName
  metricKind: DELTA
  unit: '1'
  valueType: INT64

4. Обновите номер проекта . Используйте следующую команду sed, чтобы заменить заполнитель PROJECT_NUMBER значением из вашей переменной среды.

sed -i "s/PROJECT_NUMBER/$PROJECT_NUMBER/g" config.yaml

5. Создайте метрику на основе логов. Наконец, выполните следующую команду gcloud в Cloud Shell, чтобы создать метрику.

gcloud logging metrics create dns-armor-log-based-metric --config-from-file=config.yaml

6. Создайте пользовательскую панель управления.

В этом разделе вам предстоит выполнить следующие задачи:

  • Создайте файл dashboard.json .
  • Создайте пользовательскую панель управления.

1. Создайте файл dashboard.json . Сначала создайте пустой файл dashboard.json с помощью команды touch .

touch dashboard.json

2. Заполните файл dashboard.json . Файл dashboard.json настраивает пользовательскую панель мониторинга, определяя виджеты, свойства отображения, а также способ визуализации, агрегирования и фильтрации метрик на основе журналов.

Откройте файл dashboard.json в любом текстовом редакторе и вставьте следующее содержимое.

{
  "displayName": "DNS Armor - Custom Dashboard",
  "dashboardFilters": [],
  "description": "",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Threat Logs",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      },
      {
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Threat Logs per region",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"region\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      },
      {
        "yPos": 20,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Group by Threat",
          "id": "",
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "measures": [],
                "minAlignmentPeriod": "60s",
                "sliceNameTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"threat\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "showLabels": false,
            "showTotal": false,
            "sliceAggregatedThreshold": 0
          }
        }
      },
      {
        "yPos": 20,
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Top List - ThreatID",
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "threatId",
                "visible": true
              },
              {
                "column": "threat",
                "visible": true
              },
              {
                "column": "project_id",
                "visible": false
              },
              {
                "column": "value",
                "visible": true
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"threatId\"",
                        "metric.label.\"threat\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
                    "pickTimeSeriesFilter": {
                      "direction": "TOP",
                      "numTimeSeries": 30,
                      "rankingMethod": "METHOD_MEAN"
                    }
                  }
                }
              }
            ],
            "metricVisualization": "BAR"
          }
        }
      },
      {
        "yPos": 40,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Group by Severity",
          "id": "",
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "measures": [],
                "minAlignmentPeriod": "60s",
                "sliceNameTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"Severity\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "showLabels": false,
            "showTotal": false,
            "sliceAggregatedThreshold": 0
          }
        }
      },
      {
        "yPos": 40,
        "xPos": 24,
        "height": 20,
        "width": 24,
        "widget": {
          "title": "Top List - Source",
          "id": "",
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "InstanceId",
                "visible": true
              },
              {
                "column": "region",
                "visible": true
              },
              {
                "column": "project_id",
                "visible": true
              },
              {
                "column": "value",
                "visible": true
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "tableTemplate": "",
                "timeSeriesQuery": {
                  "outputFullDuration": true,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"InstanceId\"",
                        "metric.label.\"region\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\"",
                    "pickTimeSeriesFilter": {
                      "direction": "TOP",
                      "numTimeSeries": 30,
                      "rankingMethod": "METHOD_MEAN"
                    }
                  },
                  "unitOverride": ""
                }
              }
            ],
            "displayColumnType": false,
            "metricVisualization": "BAR"
          }
        }
      },
      {
        "yPos": 60,
        "height": 20,
        "width": 48,
        "widget": {
          "title": "Group by Domains",
          "id": "",
          "xyChart": {
            "chartOptions": {
              "displayHorizontal": false,
              "mode": "COLOR",
              "showLegend": false
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "",
                "measures": [],
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "outputFullDuration": false,
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_SUM",
                      "groupByFields": [
                        "metric.label.\"QueryName\""
                      ],
                      "perSeriesAligner": "ALIGN_SUM"
                    },
                    "filter": "metric.type=\"logging.googleapis.com/user/dns-armor-log-based-metric\" resource.type=\"networksecurity.googleapis.com/DnsThreatDetector\""
                  },
                  "unitOverride": ""
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  }
}

2. Создайте пользовательскую панель мониторинга. Выполните следующие команды gcloud в Cloud Shell.

gcloud monitoring dashboards create --config-from-file=dashboard.json

7. Генерация эмулированных вредоносных DNS-запросов

В этом разделе вам предстоит выполнить следующие задачи:

  • Подключайтесь к виртуальным машинам по SSH.
  • Установите Git на виртуальные машины.
  • Клонируйте репозиторий симулятора обнаружения угроз Infoblox.
  • Запустите скрипт и проанализируйте сгенерированный результат.

Проверьте правильность настройки, сгенерировав эмулированные вредоносные DNS-запросы с ваших виртуальных машин.

1. Подключитесь по SSH к виртуальной машине vm-a-use4 . Выполните следующие команды gcloud в Cloud Shell.

gcloud compute ssh vm-a-use4 --zone=us-east4-c

2. Установите Git на виртуальную машину.

sudo apt-get install git -y

3. Клонируйте репозиторий симулятора обнаружения угроз Infoblox.

git clone https://github.com/infobloxopen/ib-threat-detection-simulator

4. Перейдите в каталог симулятора.

cd ib-threat-detection-simulator/threat_detection_simulator/

5. Запустите скрипт и проанализируйте сгенерированный результат.

Сделайте скрипт исполняемым.

chmod +x run.sh

Запустите скрипт.

./run.sh info basic

6. Пример выходных данных

На следующем изображении показана часть выходных данных скрипта, отображаемая на виртуальной машине в network-a . Эти данные содержат подробную информацию о показателях обнаружения различных типов угроз DNS, которые имитировал тестовый скрипт.

2ed3402eed85ff0a.png

7. Вернитесь в Cloud Shell , выйдя из сеанса SSH.

exit

8. Просмотр пользовательской панели управления

Просмотреть панель управления

1. Введите «Панели мониторинга» в поле поиска в верхней части консоли Google Cloud, затем нажмите на «Панели мониторинга» в списке первых результатов.

b28134f84c44d872.png

2. Введите в поле поиска DNS Armor - Custom Dashboard , а затем щелкните по DNS Armor - Custom Dashboard , чтобы открыть панель управления.

490ec7642ef95ffc.png

3. Просмотрите панель управления.

4ff503f457f67399.png

Виджеты на панели управления

В этом разделе описываются различные виджеты, доступные на настраиваемой панели управления, и дается обзор их функциональности и отображаемых ими данных.

  • Журналы угроз: столбчатая диаграмма с накоплением, отображающая журналы угроз, сгенерированные для всех сетей, включенных в проект, за указанный период времени.
  • Журналы угроз по регионам: столбчатая диаграмма с накоплением, иллюстрирующая журналы угроз, сгруппированные по регионам, за определенный период времени.
  • Группировка по угрозам: круговая диаграмма, отображающая журналы угроз по типу угрозы за определенный период времени.
  • Список самых популярных угроз по идентификаторам угроз (ThreatID) : Список, демонстрирующий 30 наиболее распространенных угроз за определенный период времени.
  • Группировка по уровню серьезности: круговая диаграмма, группирующая журналы угроз по уровню серьезности за определенный период времени.
  • Список самых популярных экземпляров (исходных виртуальных машин) за указанный период времени: Список, отображающий 30 самых популярных идентификаторов экземпляров (исходных виртуальных машин).
  • Группировка по доменам: столбчатая диаграмма с накоплением, группирующая журналы угроз по доменным именам, найденным в запросах.

9. Уборка

Чтобы избежать дополнительных расходов в будущем, удалите ресурсы, созданные в этом практическом задании. Обязательно выйдите из оболочки виртуальной машины и вернитесь в Cloud Shell при выполнении команд очистки.

1. Удалите пользовательскую панель управления.

Поскольку идентификатор панели мониторинга генерируется динамически при создании, сначала необходимо получить имя ресурса, используя его отображаемое имя.

DASHBOARD_NAME=$(gcloud monitoring dashboards list --filter="displayName='DNS Armor - Custom Dashboard'" --format='value(name)')
gcloud monitoring dashboards delete $DASHBOARD_NAME --quiet

2. Удалите метрику, основанную на логах.

gcloud logging metrics delete dns-armor-log-based-metric --quiet

3. Удалите виртуальные машины.

gcloud compute instances delete vm-a-use4 --zone=us-east4-c --quiet
gcloud compute instances delete vm-a-usc1 --zone=us-central1-a --quiet

4. Удалите правила брандмауэра.

gcloud compute firewall-rules delete allow-ssh-iap-a --quiet

5. Удалите шлюзы Cloud NAT.

gcloud compute routers nats delete nat-a-use4 --router=router-a-use4 --region=us-east4 --quiet
gcloud compute routers nats delete nat-a-usc1 --router=router-a-usc1 --region=us-central1 --quiet

6. Удалите облачные маршрутизаторы.

gcloud compute routers delete router-a-use4 --region=us-east4 --quiet
gcloud compute routers delete router-a-usc1 --region=us-central1 --quiet

7. Удалите подсети.

gcloud compute networks subnets delete subnet-a-use4 --region=us-east4 --quiet
gcloud compute networks subnets delete subnet-a-usc1 --region=us-central1 --quiet

8. Удалите детектор угроз DNS.

gcloud beta network-security dns-threat-detectors delete my-dns-threat-detector --location=global --quiet

9. Удалите VPC.

gcloud compute networks delete network-a --quiet

10. Поздравляем!

Поздравляем! Вы успешно настроили, развернули и визуализировали журналы обнаружения угроз DNS Armor. Вы получили практический опыт защиты вашей среды Google Cloud от угроз, связанных с DNS, и создания собственного решения для мониторинга и анализа угроз безопасности.

В этом практическом занятии вам предстоит:

  • Создана сетевая среда с VPC, подсетями и виртуальными машинами.
  • Настроен исходящий интернет-трафик для частных виртуальных машин с использованием Cloud NAT.
  • Развернут средство обнаружения угроз DNS Armor.
  • Были смоделированы угрозы DNS и проверена конфигурация обнаружения угроз.
  • Создана пользовательская система метрик на основе журналов угроз DNS.
  • Разработана пользовательская панель мониторинга облачных сервисов для визуализации и анализа угроз DNS.

Что дальше?

Справочная документация