Tentang pemindaian postur keamanan Kubernetes


Halaman ini menjelaskan pemindaian postur keamanan Kubernetes, yang merupakan kemampuan dasbor postur keamanan yang mendeteksi masalah konfigurasi keamanan umum, buletin keamanan yang dapat ditindaklanjuti dalam workload Kubernetes Anda, dan ancaman aktif di cluster GKE Enterprise Anda.

Untuk mengaktifkan dan menggunakan pemindaian postur keamanan Kubernetes, lihat referensi berikut:

Pemindaian postur keamanan Kubernetes menyediakan fungsionalitas berikut:

Harga

  • Paket standar: Ditawarkan tanpa biaya tambahan di GKE.
  • Tingkat lanjut: Termasuk dalam GKE Enterprise.

Entri yang ditambahkan ke Cloud Logging tunduk pada harga Cloud Logging.

Tentang audit konfigurasi workload

Workload yang Anda deploy di GKE harus memiliki konfigurasi yang diperkuat yang membatasi permukaan serangannya. Memeriksa workload di seluruh cluster untuk menemukan masalah konfigurasi mungkin sulit dilakukan secara manual dalam skala besar. Anda dapat menggunakan dasbor postur keamanan untuk otomatis mengaudit konfigurasi semua workload yang sedang berjalan di beberapa cluster dan menampilkan hasil yang disertai skor dan dapat ditindaklanjuti, serta rekomendasi untuk meningkatkan postur keamanan Anda.

Audit konfigurasi workload memeriksa setiap workload yang di-deploy berdasarkan sebagian kebijakan dalam Standar Keamanan Pod. Audit konfigurasi workload terjadi di infrastruktur Google dan tidak menggunakan resource komputasi di node Anda.

Manfaat audit konfigurasi workload

  • Mengotomatiskan pendeteksian masalah konfigurasi yang diketahui di semua workload.
  • Mendapatkan rekomendasi yang dapat ditindaklanjuti untuk meningkatkan postur keamanan.
  • Menggunakan Konsol Google Cloud untuk mendapatkan tampilan masalah konfigurasi secara umum.
  • Menggunakan Logging untuk mengetahui jejak masalah yang dapat diaudit guna mendapatkan pelaporan dan kemampuan observasi yang lebih baik.

Cara kerja audit konfigurasi workload

Untuk setiap workload yang di-deploy dan memenuhi syarat, GKE terus memindai spesifikasi workload dan membandingkan kolom serta nilainya dengan kontrol yang ditentukan dalam kebijakan keamanan pokoknya. Misalnya, Pod dengan spec.containers.securityContext.privileged=true melanggar Standar Keamanan Pod Baseline, dan Pod dengan kolom spec.securityContext.runAsNonRoot yang ditetapkan ke false melanggar Standar yang dibatasi. Untuk mengetahui daftar kebijakan keamanan yang diperiksa GKE, lihat Apa yang diperiksa oleh audit konfigurasi workload?.

Setelah memindai dan menemukan masalah, GKE akan menilai tingkat keparahan masalah konfigurasi yang ditemukan berdasarkan langkah hardening keamanan bawaan. GKE menetapkan rating tingkat keparahan yang dapat menunjukkan kecepatan Anda dalam merespons masalah. Konsol Google Cloud menampilkan hasil dan tindakan yang disarankan yang dapat Anda lakukan untuk mengatasi masalah tersebut. GKE juga menambahkan entri ke Cloud Logging untuk pelacakan dan audit.

Apa yang diperiksa oleh audit konfigurasi workload?

Masalah Kolom Nilai yang diizinkan Keparahan

Namespace host

Pod yang berbagi namespace host memungkinkan proses Pod berkomunikasi dengan proses host dan mengumpulkan informasi host, yang dapat mengakibatkan container escape.

  • spec.hostNetwork
  • spec.hostIPC
  • spec.hostPID
  • Tidak ditentukan atau nihil
  • false
Tinggi

Container dengan hak istimewa

Container dengan hak istimewa memungkinkan akses host yang hampir tidak terbatas. Container ini berbagi namespace dengan host, dan tidak memiliki grup kontrol, seccomp, AppArmor, dan batasan kapabilitas.

  • spec.containers[*].securityContext.privileged
  • spec.initContainers[*].securityContext.privileged
  • spec.ephemeralContainers[*].securityContext.privileged
  • Tidak ditentukan atau nihil
  • false
Tinggi

Akses port host

Mengekspos port host ke container berpotensi membuat container dapat mencegat traffic jaringan ke layanan host yang menggunakan port tersebut atau mengabaikan aturan kontrol akses jaringan, seperti aturan dalam NetworkPolicy.

  • spec.containers[*].ports[*].hostPort
  • spec.initContainers[*].ports[*].hostPort
  • spec.ephemeralContainers[*].ports[*].hostPort
  • Tidak ditentukan atau nihil
  • 0
Tinggi

Kapabilitas non-default

Container memiliki kapabilitas yang dapat memungkinkan container escape.

  • spec.containers[*].securityContext.capabilities.add
  • spec.initContainers[*].securityContext.capabilities.add
  • spec.ephemeralContainers[*].securityContext.capabilities.add
  • Tidak ditentukan atau nihil
  • AUDIT_WRITE
  • CHOWN
  • DAC_OVERRIDE
  • FOWNER
  • FSETID
  • KILL
  • MKNOD
  • NET_BIND_SERVICE
  • SETFCAP
  • SETGID
  • SETPCAP
  • SETUID
  • SYS_CHROOT
Sedang

Memasang volume jalur host

Volume hostPath memasang file atau direktori dari host. Volume ini memunculkan risiko keamanan yang dapat menyebabkan container escape.

spec.volumes[*].hostPath Tidak ditentukan atau nihil Sedang

Mask /proc non-default

Jenis pemasangan /proc default menyamarkan jalur tertentu di /proc untuk menghindari eksposur jalur yang dapat menyebabkan kebocoran informasi atau container escape. Penggunaan jenis non-default akan meningkatkan risiko ini.

  • spec.containers[*].securityContext.procMount
  • spec.initContainers[*].securityContext.procMount
  • spec.ephemeralContainers[*].securityContext.procMount
  • Tidak ditentukan atau nihil
  • Default
Sedang

Mask sysctl tidak aman

Pod dapat dikonfigurasi untuk mengizinkan modifikasi parameter kernel yang tidak aman menggunakan sistem file virtual /proc/sys. Parameter yang tidak aman tidak mendukung namespace, tidak mengisolasi efeknya dengan benar di antara Pod, dapat membahayakan responsivitas node, atau membuat Pod mendapatkan resource di luar batasnya.

spec.securityContext.sysctls[*].name
  • Tidak ditentukan atau nihil
  • kernel.shm_rmid_forced
  • net.ipv4.ip_local_port_range
  • net.ipv4.ip_unprivileged_port_start
  • net.ipv4.tcp_syncookies
  • net.ipv4.ping_group_range
Sedang

Berjalan sebagai non-root

Anda dapat secara eksplisit mengizinkan container untuk berjalan sebagai pengguna root jika perintah runAsUser atau USER dalam image menentukan pengguna root. Tidak adanya kontrol keamanan preventif saat container berjalan sebagai pengguna root meningkatkan risiko container escape.

  • spec.securityContext.runAsNonRoot
  • spec.containers[*].securityContext.runAsNonRoot
  • spec.initContainers[*].securityContext.runAsNonRoot
  • spec.ephemeralContainers[*].securityContext.runAsNonRoot
true Sedang

Eskalasi akses

Container dapat dikonfigurasi secara eksplisit agar mengizinkan eskalasi akses saat dieksekusi. Hal ini mengizinkan proses yang dibuat dalam container dengan menjalankan set-user-id, set-group-id, atau kapabilitas file yang dapat dieksekusi untuk mendapatkan hak istimewa yang ditentukan oleh file yang dapat dieksekusi. Tidak adanya kontrol keamanan preventif meningkatkan risiko container escape.

  • spec.containers[*].securityContext.allowPrivilegeEscalation
  • spec.initContainers[*].securityContext.allowPrivilegeEscalation
  • spec.ephemeralContainers[*].securityContext.allowPrivilegeEscalation
false Sedang

Profil AppArmor tidak dibatasi

Container dapat dikonfigurasi secara eksplisit agar tidak dibatasi oleh AppArmor. Hal ini memastikan tidak ada profil AppArmor yang diterapkan ke container dan, sebagai akibatnya, tidak ada container yang dibatasi olehnya. Kontrol keamanan preventif yang dinonaktifkan akan meningkatkan risiko container escape.

metadata.annotations["container.apparmor.security.beta.kubernetes.io/*"] false Rendah

Selain itu, GKE memeriksa RoleBindings RBAC atau ClusterRoleBindings yang mereferensikan salah satu pengguna atau grup berikut:

  • system:anonymous
  • system:authenticated
  • system:unauthenticated

Jika ada binding RBAC yang mereferensikan pengguna atau grup ini, temuan bernama Pengguna yang Anonim Secara Efektif Diberi Akses Cluster GKE dengan tingkat keparahan Sedang akan muncul di dasbor postur keamanan. Pengguna dan grup ini secara efektif bersifat anonim dan tidak boleh digunakan dalam RoleBindings atau ClusterRoleBindings. Untuk mengetahui informasi selengkapnya, lihat Menghindari peran dan grup default.

Tentang kemunculan buletin keamanan

Saat kerentanan ditemukan di GKE, kami akan menerapkan patch dan memublikasikan buletin keamanan tentang kerentanan tersebut. Untuk mengetahui informasi tentang identifikasi, patching, dan linimasa, lihat Patching keamanan GKE.

Dasbor postur keamanan menampilkan buletin keamanan yang memengaruhi cluster, workload, dan node pool mode Standard. Fitur ini merupakan bagian dari kapabilitas postur keamanan Kubernetes dari dasbor postur keamanan dan otomatis diaktifkan saat Anda membuat cluster Autopilot atau Standard. Untuk mengaktifkan pemindaian postur keamanan Kubernetes, gunakan petunjuk di Memindai workload secara otomatis untuk menemukan masalah konfigurasi.

Konsol Google Cloud menampilkan detail seperti cluster yang terpengaruh, versi, dan versi patch yang direkomendasikan untuk upgrade guna memitigasi kerentanan. Anda hanya akan melihat buletin yang mitigasinya tersedia di region atau zona Google Cloud cluster Anda.

Jika ingin melihat buletin untuk cluster yang Anda daftarkan di pemindaian postur keamanan Kubernetes, buka dasbor postur keamanan:

Buka Postur Keamanan

Buletin apa pun yang tersedia yang memengaruhi lingkungan Anda akan muncul di bagian Security bulletins.

Tentang deteksi ancaman GKE

Deteksi ancaman GKE memindai log audit cluster terdaftar Anda untuk menemukan ancaman aktif dan memberikan tindakan mitigasi yang direkomendasikan. Deteksi ancaman GKE didukung oleh layanan Event Threat Detection Security Command Center. Untuk mengetahui informasi selengkapnya, dalam dokumentasi GKE Enterprise, lihat Tentang deteksi ancaman GKE.

Langkah selanjutnya