Memindai workload secara otomatis untuk mencari kerentanan yang diketahui


Halaman ini menunjukkan cara memindai sistem operasi (OS) container secara otomatis dan paket bahasa dalam workload yang sedang berjalan untuk mendeteksi kerentanan yang diketahui dan mendapatkan strategi mitigasi yang dapat ditindaklanjuti jika tersedia. Pemindaian kerentanan workload adalah bagian dari dasbor postur keamanan, yang merupakan serangkaian fitur yang memberikan informasi dan rekomendasi opini untuk meningkatkan keamanan cluster dan workload Cluster Google Kubernetes Engine.

Untuk mempelajari lebih lanjut, lihat artikel Tentang pemindaian kerentanan workload.

Harga

Untuk mengetahui informasi harga, lihat Harga dasbor postur keamanan GKE.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu initialize gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Persyaratan

  • Untuk mendapatkan izin yang diperlukan untuk menggunakan pemindaian kerentanan workload, minta administrator untuk memberi Anda peran IAM Viewer Security Posture (roles/containersecurity.viewer) di project Google Cloud Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

    Peran yang telah ditentukan ini berisi izin yang diperlukan untuk menggunakan pemindaian kerentanan workload. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

    Izin yang diperlukan

    Izin berikut diperlukan untuk menggunakan pemindaian kerentanan workload:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran yang telah ditetapkan sebelumnya.

  • Pemindaian kerentanan container OS memerlukan GKE versi 1.23.5-gke.700 atau yang lebih baru. Insight kerentanan lanjutan memerlukan GKE versi 1.27 atau yang lebih baru.

Tingkat pemindaian kerentanan workload

Anda mengaktifkan pemindaian kerentanan dalam beberapa tingkatan, yang masing-masing menambahkan kemampuan pemindaian sebagai berikut. Jika menggunakan edisi Google Kubernetes Engine (GKE) Enterprise untuk mengelola fleet cluster, Anda juga dapat mengonfigurasi setelan pemindaian kerentanan tingkat fleet yang berlaku untuk semua cluster anggota. Untuk mengetahui petunjuknya, lihat Mengonfigurasi fitur dasbor postur keamanan GKE di level fleet.

Tingkat Kemampuan yang diaktifkan Persyaratan versi GKE
Standard
standard
Pemindaian kerentanan container OS
  • Memerlukan versi 1.23.5-gke.700 atau yang lebih baru
  • Diaktifkan secara default di cluster Autopilot yang menjalankan versi 1.27 atau yang lebih baru
  • Dinonaktifkan secara default di cluster Standard
Insight kerentanan lanjutan
enterprise
  • Pemindaian kerentanan container OS
  • Pemindaian kerentanan paket bahasa
  • Memerlukan versi 1.27 atau yang lebih baru
  • Dinonaktifkan secara default di Autopilot dan Standard

Untuk mengetahui informasi selengkapnya tentang setiap kemampuan, lihat Tentang pemindaian kerentanan workload.

Mengaktifkan pemindaian kerentanan container OS

Pemindaian kerentanan container OS diaktifkan secara default di cluster Autopilot baru yang menjalankan versi 1.27 dan yang lebih baru. Bagian ini menunjukkan cara mengaktifkan fitur ini di cluster Standar baru yang ada dan di cluster Autopilot yang menjalankan versi sebelum 1.27.

Mengaktifkan pemindaian container OS di cluster baru

gcloud

Buat cluster GKE baru menggunakan gcloud CLI:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=standard

Ganti kode berikut:

Konsol

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine
  2. Klik Buat.
  3. Di bagian GKE Standard, klik Konfigurasikan.
  4. Di panel navigasi, klik Security.
  5. Di bagian Keamanan, centang kotak Pemindaian kerentanan.
  6. Pilih opsi Dasar.
  7. Konfigurasikan opsi lain untuk cluster Anda dan klik Create saat Anda siap.

Mengaktifkan pemindaian container OS di cluster yang ada

gcloud

Update cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=standard

Ganti kode berikut:

Konsol

  1. Buka halaman Security Posture di Konsol Google Cloud.

    Buka Postur Keamanan
  2. Klik tab Setelan.
  3. Di bagian Vulnerability Scan enabled clusters, klik Select clusters.
  4. Pilih kotak centang untuk cluster yang ingin ditambahkan.
  5. Di menu drop-down Pilih tindakan, pilih Tetapkan ke Dasar.
  6. Klik Terapkan.

Mengaktifkan advanced vulnerability insights

Insight kerentanan lanjutan memungkinkan pemindaian berkelanjutan pada aplikasi yang sedang berjalan untuk jenis kerentanan berikut:

  • Kerentanan container OS
  • Kerentanan paket bahasa

Saat Anda mengaktifkan insight kerentanan lanjutan, kemampuan pemindaian kerentanan OS container akan otomatis diaktifkan dan tidak dapat dinonaktifkan secara terpisah.

Persyaratan

Mengaktifkan advanced vulnerability insights di cluster baru

gcloud

Buat cluster GKE baru menggunakan gcloud CLI:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=enterprise

Ganti kode berikut:

Konsol

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine
  2. Klik Create.
  3. Di bagian GKE Autopilot, klik Configure.
  4. Di panel navigasi, klik Advanced settings. Jika Anda membuat cluster Standar, klik Security.
  5. Di bagian Keamanan, centang kotak Pemindaian kerentanan.
  6. Pilih opsi Lanjutan.
  7. Konfigurasikan opsi lain untuk cluster Anda dan klik Create saat Anda siap.

Mengaktifkan advanced vulnerability insights di cluster yang ada

gcloud

Update cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=enterprise

Ganti kode berikut:

Konsol

  1. Buka halaman Security Posture di Konsol Google Cloud.

    Buka Postur Keamanan
  2. Klik tab Setelan.
  3. Di bagian Vulnerability Scan enabled clusters, klik Select clusters.
  4. Pilih kotak centang untuk cluster yang ingin ditambahkan.
  5. Di menu drop-down Pilih tindakan, pilih Tetapkan ke Lanjutan.
  6. Klik Terapkan.

Men-deploy workload pengujian

Contoh manifes berikut memiliki kerentanan umum untuk tujuan demonstrasi. Dalam praktiknya, jika Anda tahu bahwa suatu aplikasi rentan, Anda mungkin tidak boleh menjalankannya.

  1. Simpan manifes berikut sebagai os-vuln-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: frontend
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: guestbook
          tier: frontend
      template:
        metadata:
          labels:
            app: guestbook
            tier: frontend
        spec:
          containers:
          - name: php-redis
            image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc
            env:
            - name: GET_HOSTS_FROM
              value: "dns"
            resources:
              requests:
                cpu: 100m
                memory: 100Mi
            ports:
            - containerPort: 80
    
  2. Tinjau manifes berikut, yang berisi kerentanan Maven yang diketahui:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: maven-vulns
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mavenvulns
      template:
        metadata:
          labels:
            app: mavenvulns
        spec:
          containers:
          - name: maven-vulns-app
            image: us-docker.pkg.dev/google-samples/containers/gke/security/maven-vulns
            # This app listens on port 8080 for web traffic by default.
            ports:
            - containerPort: 8080
            env:
              - name: PORT
                value: "8080"
            resources:
              requests:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
              limits:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
  3. Atau, dapatkan kredensial untuk cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    
  4. Deploy aplikasi ke cluster Anda:

    kubectl apply -f os-vuln-sample.yaml
    kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
    

Untuk menguji kerentanan lainnya, coba deploy versi image yang lebih lama seperti nginx di lingkungan staging.

Melihat dan menindaklanjuti hasilnya

Pemindaian awal memerlukan waktu setidaknya 15 menit untuk menampilkan hasil, bergantung pada jumlah workload yang dipindai. GKE menampilkan hasilnya di dasbor postur keamanan dan otomatis menambahkan entri ke Logging.

Lihat hasil

Untuk melihat ringkasan masalah yang ditemukan di seluruh cluster dan workload project Anda, lakukan langkah berikut:

  1. Buka halaman Security Posture di Konsol Google Cloud.

    Buka Postur Keamanan

  2. Klik tab Concerns.

  3. Di panel Filter problems, di bagian Concern type, pilih kotak centang Vulnerability.

Lihat detail dan rekomendasi masalah

Untuk melihat informasi mendetail tentang kerentanan tertentu, klik baris yang berisi masalah tersebut.

Panel Vulnerability Concern menampilkan informasi berikut:

  • Deskripsi: deskripsi masalah yang mencakup nomor CVE jika berlaku dan deskripsi mendetail tentang kerentanan dan potensi dampaknya.
  • Tindakan yang disarankan: tindakan yang dapat Anda lakukan untuk mengatasi kerentanan, seperti versi paket tetap dan tempat untuk menerapkan perbaikan.

Lihat log untuk masalah yang ditemukan

GKE menambahkan entri ke Logging untuk setiap masalah yang ditemukan.

  1. Buka Logs Explorer di Konsol Google Cloud.

    Buka Logs Explorer

  2. Di kolom Query, tentukan kueri berikut:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_VULNERABILITY"
    
  3. Klik Jalankan kueri.

Untuk menerima notifikasi saat GKE menambahkan temuan baru ke Logging, siapkan pemberitahuan berbasis log untuk kueri ini. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi pemberitahuan berbasis log.

Pembersihan

  1. Hapus sampel workload yang Anda deploy:

    kubectl delete deployment frontend
    
  2. Atau, hapus cluster yang Anda gunakan:

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Nonaktifkan pemindaian kerentanan workload

Anda dapat menonaktifkan pemindaian kerentanan workload menggunakan gcloud CLI atau Konsol Google Cloud.

gcloud

Jalankan perintah berikut:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --workload-vulnerability-scanning=disabled

Ganti kode berikut:

Konsol

  1. Buka halaman Security Posture di Konsol Google Cloud.

    Buka Postur Keamanan
  2. Klik tab Setelan.
  3. Di bagian Vulnerability Scan enabled clusters, klik Select clusters.
  4. Pilih kotak centang untuk cluster yang ingin Anda hapus.
  5. Di menu drop-down Pilih tindakan, pilih Setel ke Nonaktif.
  6. Klik Terapkan.

Langkah selanjutnya