Günlük tabanlı metrikleri ve özel kontrol panelini kullanarak DNS Armor'un gelişmiş tehdit algılama günlüklerini görselleştirme

1. Giriş ve Genel Bakış

Infoblox tarafından desteklenen DNS Armor, Google Cloud iş yükleriniz için DNS katmanı güvenliği sağlayan, tümüyle yönetilen bir hizmettir. Gelişmiş tehdit algılayıcısı, operasyonel karmaşıklık veya performans ek yükü oluşturmadan saldırı zincirindeki en erken noktada (DNS sorgusu) kötü amaçlı etkinliği algılayacak şekilde tasarlanmıştır.

Bu codelab'de, DNS Armor hizmetini yapılandırma ve test etme ile ilgili adım adım talimatlar verilmektedir. Gerekli ağ altyapısını oluşturacak, tehdit algılayıcıyı oluşturacak, DNS tehditlerini simüle ederek hizmeti test edecek ve son olarak özel bir Cloud Monitoring kontrol panelini kullanarak tehdit günlüklerini görselleştirip analiz edeceksiniz.

Ne oluşturacaksınız?

Bu codelab'de aşağıdaki kaynakları sağlayacaksınız:

  • Alt ağları ve us-east4 ile us-central1 bölgelerinde sağlanan sanal makineleri içeren bir VPC ağı (network-a).
  • DNS sorgularını incelemek üzere yapılandırılmış bir DNS Armor gelişmiş tehdit algılayıcısı.
  • DNS tehdit günlüklerine dayalı günlük tabanlı metrikler.
  • DNS tehdit günlüklerini görselleştirmek için özel bir kontrol paneli.

cfe28f2c17ca2660.png

Neler öğreneceksiniz?

  • VPC'ler ve sanal makineler de dahil olmak üzere gerekli ağ kaynaklarının nasıl sağlanacağı.
  • Gelişmiş tehdit algılayıcıyı dağıtma ve belirli ağları hariç tutma
  • Tehdit simülasyonu komut dosyası kullanarak tehdit algılama yapılandırmasını doğrulama
  • Günlük tabanlı metrikleri ve özel kontrol panelini kullanarak DNS tehdit günlüklerini görselleştirme

İhtiyacınız olanlar

  • Google Cloud projesi.
  • gcloud komut satırı aracına erişim.

2. Ön koşullar

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • Google Cloud projenizin gerekli kuruluş politikası kısıtlamalarını karşıladığını doğrulayın.
  • Kullanıcı hesabınızın gerekli IAM rollerine ve izinlerine sahip olduğunu doğrulayın.
  • Bu codelab için gerekli olan Google Cloud API'lerini etkinleştirin.
  • Compute Engine hizmet hesabına roles/logging.viewer IAM rolünü atayın.

Kuruluş Politikası Kısıtlamaları

Bu codelab'i başarıyla tamamlamak için lütfen projenize uygulanan kuruluş politikası kısıtlamalarını doğrulayın. Belirli politikalar, gerekli kaynakların sağlanmasını engelleyebilir. Aşağıdaki kısıtlamalar bu codelab'in yapılandırmasını etkileyebilir:

  • constraints/gcp.resourceLocations: Kaynak oluşturabileceğiniz bölgeleri kısıtlar. Codelab için us-east4 ve us-central1 gerekir.
  • constraints/compute.vmExternalIpAccess: Herkese açık IP adreslerine sahip sanal makinelerin oluşturulmasını engeller. Bu, --no-address işaretinin codelab'deki kullanımını izlemezseniz kurulumu etkileyebilir.
  • constraints/compute.shieldedVm: Korumalı sanal makinelerin oluşturulmasını zorunlu kılar. Bu durum, kod laboratuvarının sanal makine oluşturma komutlarında belirtilmediği için hataya neden olabilir.
  • constraints/gcp.restrictServiceUsage: Hangi Google Cloud API'lerinin etkinleştirilebileceğini sınırlar ve compute.googleapis.com, networksecurity.googleapis.com, logging.googleapis.com ve monitoring.googleapis.com'ye izin vermezse codelab'i engelleyebilir.

IAM rolleri ve izinleri

Bu codelab'i başarıyla tamamlamak için lütfen kullanıcınıza verilen IAM rollerini ve izinlerini doğrulayın. Bu Codelab'i tamamlamak için aşağıdaki IAM rolleri ve izinleri gereklidir.

  • Hizmet Kullanımı Yöneticisi (roles/serviceusage.serviceUsageAdmin): Codelab için gerekli Google Cloud API'lerini etkinleştirmek üzere.
  • Compute Network Admin (roles/compute.networkAdmin): VPC ağları, alt ağlar ve Cloud NAT oluşturup yönetmek için.
  • Compute Security Admin (roles/compute.securityAdmin): Sanal makinelere SSH erişimi için güvenlik duvarı kurallarını yapılandırmak üzere.
  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1): Laboratuvar için gereken sanal makineleri oluşturmak ve yönetmek için kullanılır.
  • IAP Güvenli Tünel Kullanıcısı (roles/iap.tunnelResourceAccessor): Identity-Aware Proxy (IAP) üzerinden SSH kullanarak sanal makinelere bağlanmak için.
  • Ağ Güvenliği Yöneticisi (roles/networksecurity.admin): DNS Armor tehdit algılayıcısını oluşturmak ve yönetmek için.
  • Günlük Görüntüleyici (roles/logging.viewer): Tehdit günlüklerini Günlük Gezgini'nde görüntülemek ve analiz etmek için kullanılır.

Google Cloud API'leri

Lütfen gerekli Google Cloud API'lerinin projenizde etkinleştirildiğinden emin olun.

1. Gerekli API'leri etkinleştirin. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.

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

2. API'lerin etkinleştirildiğini doğrulayın. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.

gcloud services list --enabled

Compute Engine hizmet hesabı

Tehdit simülasyonu komut dosyasının, Cloud Logging'den oluşturulan tehdit günlüklerini okuma ve bunlar hakkında rapor oluşturma izni gerekir. Komut dosyası, varsayılan Compute Engine hizmet hesabını kullanan bir sanal makineden yürütüleceğinden bu hizmet hesabına roles/logging.viewer IAM rolü atanmalıdır.

1. Ortam değişkenlerini ayarlayın. Cloud Shell'de aşağıdaki komutları çalıştırın.

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

2. Compute Engine hizmet hesabına günlük görüntüleyici rolü verin. Cloud Shell'de aşağıdaki gcloud komutlarını çalıştırın.

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

3. Ağ ve Bilgi İşlem Kaynaklarını Sağlama

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • Özel alt ağlara sahip VPC ağı network-a oluşturun.
  • network-a'da internet çıkışı için Cloud Router ve Cloud NAT'i yapılandırın.
  • network-a için IAP'nin IP aralığından sanal makinelere SSH erişimine izin veren güvenlik duvarı kuralları oluşturun.
  • Herkese açık IP adresleri olmadan network-a içinde Linux sanal makineleri sağlayın.

VPC'ler ve alt ağlar oluşturma

1. us-east4 ve us-central1 bölgelerinde network-a ve alt ağlarını oluşturun. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.

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

İnternet çıkışını yapılandırma

1. network-a içinCloud Router ve Cloud NAT oluşturarak genel IP'si olmayan VM'lerin internete çıkışına izin verin.

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

Güvenlik Duvarı Kurallarını Yapılandırma

1. network-a için güvenlik duvarı kuralları oluşturarak IAP'nin IP aralığından SSH erişimine izin verin. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.

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

Sanal Makine Oluşturma

1. network-a. içinde Linux sanal makineleri oluşturma

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 tehdit algılayıcısını oluşturma

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • Tehdit algılayıcıyı oluşturun.
  • Tehdit algılayıcıyı listeleyin.

VPC'ler, alt ağlar ve sanal makineler artık sağlandığına göre bir sonraki adım, DNS tehdit dedektörünü oluşturmaktır.

1. gcloud beta network-security dns-threat-detectors create komutunu kullanarak tehdit algılayıcıyı oluşturun.

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

2. Oluşturmayı onaylamak için tehdit algılayıcıyı listeleyin.

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

5. Günlük tabanlı metrikleri oluşturma

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • Günlük Girişini Anlama
  • config.yaml dosyasını oluşturun.
  • Günlük tabanlı metriği oluşturun.

1. Günlük Girişini Anlama DNS Armor günlüklerindeki tüm alanların tablosunu Tehdit günlükleri dokümanında inceleyebilirsiniz. Bu bölümde, günlük tabanlı metrikleri oluşturmak için kullanılacak belirli alanlar ele alınmaktadır.

Günlük tabanlı metrikler oluşturmak için aşağıdaki alanlar kullanılır:

  • vmInstanceId: Compute Engine sanal makine örneği adı. Yalnızca Compute Engine sanal makineleri tarafından başlatılan sorgular için geçerlidir.
  • queryName: DNS sorgu adı.
  • severity: Algılanan tehditle ilişkili önem derecesi (Yüksek, Orta, Düşük veya Bilgi). Daha fazla bilgi için Infoblox'un Önem Düzeyi Tanımı'na bakın.
  • location: Yanıtın sunulduğu Google Cloud bölgesi.
  • threat: Tespit edilen tehdidin adı.
  • threatId: Benzersiz tehdit tanımlayıcısı.

2. config.yaml dosyasınıoluşturun. Öncelikle, touch komutunu kullanarak boş bir config.yaml dosyası oluşturun.

touch config.yaml

3. config.yaml dosyasını doldurun. Bu dosya, DNS Armor tehdit günlükleri için günlük tabanlı metrik oluşturma yöntemini tanımlar. Hangi günlük girişlerinin filtreleneceğini, bu girişlerden hangi etiketlerin çıkarılacağını ve metriğin özelliklerini belirtir.

config.yaml dosyasını istediğiniz bir metin düzenleyicide açın ve aşağıdaki içeriği yapıştırın.

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. Proje numarasını güncelleyin. PROJECT_NUMBER yer tutucusunu ortam değişkeninizdeki değerle değiştirmek için aşağıdaki sed komutunu kullanın.

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

5. Günlük tabanlı metriği oluşturun. Son olarak, metriği oluşturmak için Cloud Shell'de aşağıdaki gcloud komutunu çalıştırın.

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

6. Özel kontrol paneli oluşturma

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • dashboard.json dosyasını oluşturun.
  • Özel kontrol panelini oluşturma

1. dashboard.json dosyasınıoluşturun. Öncelikle, touch komutunu kullanarak boş bir dashboard.json dosyası oluşturun.

touch dashboard.json

2. dashboard.json dosyasını doldurun. dashboard.json dosyası, özel izleme kontrol panelini yapılandırır; widget'ları, görüntüleme özelliklerini ve günlük tabanlı metriklerin nasıl görselleştirileceğini, toplanacağını ve filtreleneceğini tanımlar.

dashboard.json dosyasını istediğiniz bir metin düzenleyicide açın ve aşağıdaki içeriği yapıştırın.

{
  "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. Özel kontrol paneli oluşturun. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.

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

7. Emüle edilmiş kötü amaçlı DNS sorguları oluşturma

Bu bölümde aşağıdaki görevleri gerçekleştireceksiniz:

  • Sanal makinelere SSH uygulayın.
  • Sanal makinelere Git'i yükleyin.
  • Infoblox tehdit algılama simülasyon aracı deposunu klonlayın.
  • Komut dosyasını çalıştırın ve oluşturulan çıkışı analiz edin.

VM'lerinizden taklit edilmiş kötü amaçlı DNS sorguları oluşturarak kurulumu doğrulayın.

1. vm-a-use4 sanal makinesine SSH üzerinden bağlanın. Cloud Shell'de aşağıdaki gcloud komutları çalıştırın.

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

2. Sanal makineye Git'i yükleyin.

sudo apt-get install git -y

3. Infoblox tehdit algılama simülatörü deposunuklonlayın.

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

4. Dizini simülatörün dizini olarak değiştirin.

cd ib-threat-detection-simulator/threat_detection_simulator/

5. Komut dosyasını çalıştırın ve oluşturulan çıkışı analiz edin.

Komut dosyasını yürütülebilir hale getirin.

chmod +x run.sh

Komut dosyasını çalıştırın.

./run.sh info basic

6. Örnek Çıkış

Aşağıdaki resimde, network-a içindeki bir sanal makinede görünen komut dosyasının çıktısının bir bölümü gösterilmektedir. Bu çıkış, test komut dosyasının taklit ettiği farklı DNS tehdit türlerinin algılama oranlarını ayrıntılı olarak gösterir.

2ed3402eed85ff0a.png

7. SSH oturumundan çıkarak Cloud Shell'e dönün.

exit

8. Özel kontrol panelini görüntüleme

Kontrol panelini görüntüleme

1. Google Cloud Console'un üst kısmındaki arama alanına Kontrol panelleri yazın ve en iyi sonuçlar bölümünde Kontrol panelleri'ni tıklayın.

b28134f84c44d872.png

2. Arama alanında DNS Armor - Custom Dashboard simgesini arayın ve kontrol panelini açmak için DNS Armor - Custom Dashboard simgesini tıklayın.

490ec7642ef95ffc.png

3. Kontrol panelinigörüntüleyin.

4ff503f457f67399.png

Kontrol panelindeki widget'lar

Bu bölümde, özel kontrol panelinde bulunan çeşitli widget'lar özetlenerek işlevleri ve temsil ettikleri veriler hakkında genel bir bakış sunulmaktadır.

  • Tehdit günlükleri: Belirli bir zaman aralığında bir projede yer alan tüm ağlar için oluşturulan tehdit günlüklerini gösteren yığılmış çubuk grafik.
  • Bölgeye göre tehdit günlükleri: Belirli bir zaman aralığında bölgeye göre gruplandırılmış tehdit günlüklerini gösteren bir yığınlı çubuk grafik.
  • Tehdide göre gruplandırma ölçütü: Belirli bir zaman aralığında tehdit günlüklerini tehdit türüne göre sınıflandıran bir pasta grafiği.
  • En Çok Görüntülenenler Listesi - ThreatID: Belirli bir zaman aralığındaki en çok görüntülenen 30 tehdit kimliğini gösteren liste.
  • Önem düzeyine göre gruplandırma: Belirli bir zaman aralığında tehdit günlüklerini önem düzeyine göre gruplandıran bir pasta grafiği.
  • En Çok Görüntülenenler Listesi - Kaynak: Belirli bir zaman aralığında en çok görüntülenen 30 örnek kimliğini (kaynak sanal makineler) gösteren bir liste.
  • Alan adlarına göre gruplandırma ölçütü: Sorgularda bulunan alan adlarına göre tehdit günlüklerini gruplandıran bir yığılmış çubuk grafik.

9. Temizleme

Gelecekte ücretlendirilmemek için bu codelab'de oluşturulan kaynakları silin. Temizleme komutlarını çalıştırırken sanal makinenin kabuğundan çıktığınızdan ve Cloud Shell'e döndüğünüzden emin olun.

1. Özel kontrol panelini silin.

Kontrol paneli kimliği oluşturulurken dinamik olarak oluşturulduğundan önce görünen adını kullanarak kaynak adını almanız gerekir.

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

2. Günlüğe dayalı metriği silin.

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

3. Sanal makineleri silin.

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. Güvenlik duvarı kurallarını silin.

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

5. Cloud NAT ağ geçitlerini silin.

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. Cloud Router'ları silin.

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

7. Alt ağları silin.

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 tehdidi algılayıcısını silin.

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

9. VPC'leri silin.

gcloud compute networks delete network-a --quiet

10. Tebrikler

Tebrikler! DNS Armor tehdit algılama günlüklerini başarıyla yapılandırdınız, dağıttınız ve görselleştirdiniz . Google Cloud ortamınızı DNS tabanlı tehditlere karşı koruma ve güvenlik analizleri için özel bir izleme çözümü oluşturma konusunda uygulamalı deneyim kazandınız.

Bu codelab'de:

  • VPC, alt ağlar ve sanal makineler içeren bir ağ ortamı sağlandı.
  • Cloud NAT kullanarak özel sanal makineler için internet çıkışını yapılandırdıysanız.
  • DNS Armor tehdit algılayıcısı dağıtıldı.
  • Simüle edilmiş DNS tehditleri ve tehdit algılama yapılandırması doğrulandı.
  • DNS tehdit günlüklerinden özel günlük tabanlı metrikler oluşturuldu.
  • DNS tehditlerini görselleştirmek ve analiz etmek için özel bir Cloud Monitoring kontrol paneli oluşturdu.

Yapabilecekleriniz

Referans belgeler