Memvisualisasikan Log Deteksi Ancaman Lanjutan DNS Armor menggunakan Metrik Berbasis Log dan Dasbor Kustom

1. Pendahuluan dan Ikhtisar

DNS Armor, yang didukung oleh Infoblox, adalah layanan terkelola sepenuhnya yang menyediakan keamanan pada lapisan DNS untuk workload Google Cloud Anda. Detektor ancaman canggihnya dirancang untuk mendeteksi aktivitas berbahaya pada titik paling awal dalam rantai serangan—kueri DNS—tanpa menambah kompleksitas operasional atau overhead performa.

Codelab ini memberikan petunjuk langkah demi langkah untuk mengonfigurasi dan menguji layanan DNS Armor. Anda akan menyiapkan infrastruktur jaringan yang diperlukan, membuat detektor ancaman, menguji layanan dengan menyimulasikan ancaman DNS, dan terakhir, memvisualisasikan serta menganalisis log ancaman menggunakan dasbor Cloud Monitoring kustom.

Yang akan Anda bangun

Dalam codelab ini, Anda akan menyediakan resource berikut:

  • Satu jaringan VPC (network-a) dengan subnet dan mesin virtual yang disediakan di region us-east4 dan us-central1.
  • Detektor ancaman tingkat lanjut DNS Armor yang dikonfigurasi untuk memeriksa kueri DNS.
  • Metrik berbasis log berdasarkan log ancaman DNS.
  • Dasbor kustom untuk memvisualisasikan log ancaman DNS.

cfe28f2c17ca2660.png

Yang akan Anda pelajari

  • Cara menyediakan resource jaringan yang diperlukan, termasuk VPC dan virtual machine.
  • Cara men-deploy detektor ancaman tingkat lanjut dan mengecualikan jaringan tertentu.
  • Cara memvalidasi konfigurasi deteksi ancaman menggunakan skrip simulasi ancaman.
  • Cara memvisualisasikan log ancaman DNS menggunakan metrik berbasis log dan dasbor kustom.

Yang Anda butuhkan

  • Project Google Cloud.
  • Akses ke alat command line gcloud.

2. Prasyarat

Di bagian ini, Anda akan melakukan tugas berikut:

  • Pastikan project Google Cloud Anda memenuhi batasan Kebijakan Organisasi yang diperlukan.
  • Pastikan akun pengguna Anda memiliki peran dan izin IAM yang diperlukan.
  • Aktifkan Google Cloud API yang penting untuk codelab ini.
  • Tetapkan peran IAM roles/logging.viewer ke Akun Layanan Compute Engine.

Batasan Kebijakan Organisasi

Agar berhasil menyelesaikan codelab ini, pastikan batasan Kebijakan Organisasi yang diterapkan ke project Anda. Kebijakan tertentu dapat menghambat penyediaan resource yang diperlukan. Batasan berikut dapat memengaruhi konfigurasi codelab ini:

  • constraints/gcp.resourceLocations: Membatasi region tempat Anda dapat membuat resource; codelab ini memerlukan us-east4 dan us-central1.
  • constraints/compute.vmExternalIpAccess: Mencegah pembuatan virtual machine dengan alamat IP publik, yang dapat mengganggu penyiapan jika Anda tidak mengikuti penggunaan flag --no-address dalam codelab .
  • constraints/compute.shieldedVm: Memaksakan pembuatan VM Shielded, yang tidak ditentukan oleh perintah pembuatan VM codelab, sehingga berpotensi menyebabkan error.
  • constraints/gcp.restrictServiceUsage: Membatasi API Google Cloud yang dapat diaktifkan, dan dapat memblokir codelab jika tidak mengizinkan compute.googleapis.com, networksecurity.googleapis.com, logging.googleapis.com, dan monitoring.googleapis.com.

Peran dan Izin IAM

Agar berhasil menyelesaikan codelab ini, pastikan peran dan izin IAM yang diberikan kepada pengguna Anda. Peran dan izin IAM berikut diperlukan untuk menyelesaikan Codelab ini.

  • Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin): Untuk mengaktifkan Google Cloud API yang diperlukan untuk codelab.
  • Compute Network Admin (roles/compute.networkAdmin): Untuk membuat dan mengelola jaringan VPC, subnet, dan Cloud NAT.
  • Compute Security Admin (roles/compute.securityAdmin): Untuk mengonfigurasi aturan firewall untuk akses SSH ke virtual machine.
  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1): Untuk membuat dan mengelola virtual machine yang diperlukan untuk lab.
  • IAP-secured Tunnel User (roles/iap.tunnelResourceAccessor): Untuk terhubung ke mesin virtual menggunakan SSH melalui Identity-Aware Proxy (IAP).
  • Network Security Admin (roles/networksecurity.admin): Untuk membuat dan mengelola detektor ancaman DNS Armor.
  • Logs Viewer (roles/logging.viewer): Untuk melihat dan menganalisis log ancaman di Logs Explorer.

Google Cloud API

Pastikan Google Cloud API yang diperlukan diaktifkan di project Anda.

1. Aktifkan API yang diperlukan, jalankan perintah gcloud berikut dalam Cloud Shell.

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

2. Verifikasi bahwa API telah Diaktifkan, jalankan perintah gcloud berikut dalam Cloud Shell.

gcloud services list --enabled

Akun Layanan Compute Engine

Skrip simulasi ancaman memerlukan izin untuk membaca dan melaporkan log ancaman yang dihasilkan dari Cloud Logging. Karena skrip akan dieksekusi dari VM yang menggunakan Akun Layanan Compute Engine default, peran IAM roles/logging.viewer harus ditetapkan ke akun layanan ini.

1. Tetapkan variabel lingkungan, jalankan perintah berikut dalam Cloud Shell.

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

2. Berikan peran pelihat logging ke SA Compute Engine. Jalankan perintah gcloud berikut dalam Cloud Shell

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

3. Menyediakan Resource Jaringan dan Komputasi

Di bagian ini, Anda akan melakukan tugas berikut:

  • Buat jaringan VPC network-a dengan subnet kustom.
  • Konfigurasi Cloud Router dan Cloud NAT untuk keluar internet di network-a.
  • Buat aturan firewall untuk mengizinkan akses SSH ke VM dari rentang IP IAP untuk network-a.
  • Sediakan mesin virtual Linux di network-a tanpa alamat IP publik.

Membuat VPC dan Subnet

1. Buat network-a dan subnetnya di region us-east4 dan us-central1. Jalankan perintah gcloud berikut dalam 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

Mengonfigurasi Traffic Keluar Internet

1. Buat Cloud Router dan Cloud NAT untuk network-a guna mengizinkan traffic keluar internet untuk VM tanpa IP publik.

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

Mengonfigurasi Aturan Firewall

1. Buat aturan firewall untuk network-a guna mengizinkan akses SSH dari rentang IP IAP. Jalankan perintah gcloud berikut dalam Cloud Shell.

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

Membuat Virtual Machine

1. Membuat VM Linux di 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. Buat Detektor Ancaman DNS

Di bagian ini, Anda akan melakukan tugas berikut:

  • Buat detektor ancaman.
  • Mencantumkan pendeteksi ancaman.

Setelah VPC, subnet, dan virtual machine disediakan, langkah berikutnya adalah membuat detektor ancaman DNS.

1. Buat detektor ancaman menggunakan perintah 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. Mencantumkan pendeteksi ancaman untuk mengonfirmasi pembuatan.

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

5. Membuat metrik berbasis log

Di bagian ini, Anda akan melakukan tugas berikut:

  • Memahami Entri Log.
  • Buat file config.yaml.
  • Buat metrik berbasis log.

1. Memahami Entri Log. Anda dapat meninjau tabel semua kolom dalam log DNS Armor di dokumentasi log ancaman. Bagian ini berfokus pada kolom tertentu yang akan digunakan untuk membuat metrik berbasis log.

Kolom berikut akan digunakan untuk membuat metrik berbasis log:

  • vmInstanceId: Nama instance VM Compute Engine, hanya berlaku untuk kueri yang dimulai oleh VM Compute Engine.
  • queryName: Nama kueri DNS.
  • severity: Tingkat keseriusan (Tinggi, Sedang, Rendah, atau Info) yang terkait dengan ancaman yang terdeteksi. Untuk mengetahui informasi selengkapnya, lihat Severity Level Definition dari Infoblox.
  • location: Region Google Cloud tempat respons ditayangkan.
  • threat: Nama ancaman yang terdeteksi.
  • threatId: ID ancaman unik.

2. Buat file config.yaml. Pertama, buat file config.yaml kosong menggunakan perintah touch.

touch config.yaml

3. Isi file config.yaml. File ini menentukan cara membuat metrik berbasis log untuk log ancaman DNS Armor. Konfigurasi ini menentukan entri log yang akan difilter, label yang akan diekstrak dari entri tersebut, dan properti metrik itu sendiri.

Buka file config.yaml di editor teks pilihan Anda dan tempelkan konten berikut.

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. Perbarui Nomor Project. Gunakan perintah sed berikut untuk mengganti placeholder PROJECT_NUMBER dengan nilai dari variabel lingkungan Anda.

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

5. Buat metrik berbasis log. Terakhir, jalankan perintah gcloud berikut dalam Cloud Shell untuk membuat metrik.

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

6. Buat Dasbor Kustom

Di bagian ini, Anda akan melakukan tugas berikut:

  • Buat file dashboard.json.
  • Membuat dasbor kustom

1. Buat file dashboard.json. Pertama, buat file dashboard.json kosong menggunakan perintah touch.

touch dashboard.json

2. Isi file dashboard.json. File dashboard.json mengonfigurasi dasbor pemantauan kustom, menentukan widget, properti tampilan, dan cara metrik berbasis log divisualisasikan, diagregasi, dan difilter.

Buka file dashboard.json di editor teks pilihan Anda dan tempelkan konten berikut.

{
  "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. Buat dasbor kustom. Jalankan perintah gcloud berikut dalam Cloud Shell.

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

7. Membuat kueri DNS berbahaya yang diemulasi

Di bagian ini, Anda akan melakukan tugas berikut:

  • Gunakan SSH untuk terhubung ke VM.
  • Instal Git di VM.
  • Buat clone repositori simulator deteksi ancaman Infoblox.
  • Jalankan skrip dan analisis output yang dihasilkan.

Validasi penyiapan dengan membuat kueri DNS berbahaya yang diemulasi dari VM Anda.

1. Terapkan SSH ke vm-a-use4. Jalankan perintah gcloud berikut dalam Cloud Shell.

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

2. Instal Git di VM.

sudo apt-get install git -y

3. Buat clone repositori simulator deteksi ancaman Infoblox.

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

4. Ubah direktori ke direktori simulator.

cd ib-threat-detection-simulator/threat_detection_simulator/

5. Jalankan skrip dan analisis output yang dihasilkan.

Buat skrip agar dapat dieksekusi.

chmod +x run.sh

Jalankan skrip.

./run.sh info basic

6. Contoh Output

Gambar berikut menampilkan sebagian output skrip seperti yang terlihat di VM dalam network-a. Output ini menjelaskan secara mendetail tingkat deteksi untuk berbagai jenis ancaman DNS yang diemulasi oleh skrip pengujian.

2ed3402eed85ff0a.png

7. Kembali ke Cloud Shell dengan keluar dari sesi SSH.

exit

8. Melihat dasbor kustom

Lihat Dasbor

1. Ketik Dasbor di kolom penelusuran di bagian atas Konsol Google Cloud, lalu klik Dasbor di bagian hasil teratas.

b28134f84c44d872.png

2. Telusuri DNS Armor - Custom Dashboard di kolom penelusuran, lalu klik DNS Armor - Custom Dashboard untuk membuka dasbor.

490ec7642ef95ffc.png

3. Lihat dasbor.

4ff503f457f67399.png

Widget di Dasbor

Bagian ini menguraikan berbagai widget yang tersedia di dasbor kustom, yang memberikan ringkasan tentang fungsi dan data yang diwakilinya.

  • Log Ancaman: Diagram batang bertumpuk yang menampilkan log ancaman yang dihasilkan untuk semua jaringan yang disertakan dalam project selama jangka waktu tertentu.
  • Log Ancaman per wilayah: Diagram batang bertumpuk yang menggambarkan log ancaman, yang dikelompokkan menurut wilayah, selama jangka waktu yang ditentukan.
  • Kelompokkan menurut ancaman: Diagram lingkaran yang mengategorikan log ancaman berdasarkan jenis ancaman dalam jangka waktu tertentu.
  • Daftar Teratas - ThreatID: Daftar yang menampilkan 30 ID ancaman teratas dalam jangka waktu tertentu.
  • Kelompokkan menurut tingkat keparahan: Diagram lingkaran yang mengelompokkan log ancaman menurut tingkat keparahan dalam jangka waktu yang ditentukan.
  • Daftar Teratas - Sumber: Daftar yang menampilkan 30 ID Instance teratas (VM Sumber) dalam jangka waktu tertentu.
  • Kelompokkan menurut Domain: Diagram batang bertumpuk yang mengelompokkan log ancaman menurut nama domain yang ditemukan dalam kueri.

9. Pembersihan

Untuk menghindari biaya di masa mendatang, hapus resource yang dibuat di codelab ini. Pastikan untuk keluar dari shell VM dan kembali ke Cloud Shell saat menjalankan perintah pembersihan.

1. Hapus Dasbor Kustom.

Karena ID dasbor dibuat secara dinamis saat pembuatan, Anda harus mengambil nama resource terlebih dahulu menggunakan nama tampilannya.

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

2. Hapus Metrik Berbasis Log.

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

3. Hapus VM.

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. Hapus aturan firewall.

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

5. Hapus Gateway 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. Hapus Cloud Router.

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

7. Hapus subnet.

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. Hapus detektor ancaman DNS.

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

9. Hapus VPC.

gcloud compute networks delete network-a --quiet

10. Selamat

Selamat! Anda telah berhasil mengonfigurasi, men-deploy, dan memvisualisasikan log deteksi ancaman DNS Armor . Anda telah mendapatkan pengalaman langsung dalam melindungi lingkungan Google Cloud dari ancaman berbasis DNS dan membangun solusi pemantauan kustom untuk insight keamanan.

Dalam codelab ini, Anda telah:

  • Menyediakan lingkungan jaringan dengan VPC, subnet, dan virtual machine.
  • Mengonfigurasi traffic keluar internet untuk VM pribadi menggunakan Cloud NAT.
  • Men-deploy detektor ancaman DNS Armor.
  • Mensimulasikan ancaman DNS dan memvalidasi konfigurasi deteksi ancaman.
  • Membuat metrik berbasis log kustom dari log ancaman DNS.
  • Membuat dasbor Cloud Monitoring kustom untuk memvisualisasikan dan menganalisis ancaman DNS.

Apa selanjutnya?

Dokumen referensi