View a markdown version of this page

Memperbaiki temuan Perlindungan EKS - Amazon GuardDuty

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memperbaiki temuan Perlindungan EKS

Amazon GuardDuty menghasilkan temuan yang menunjukkan potensi masalah keamanan Kubernetes saat Perlindungan EKS diaktifkan untuk akun Anda. Untuk informasi selengkapnya, lihat Perlindungan EKS. Bagian berikut menjelaskan langkah-langkah perbaikan yang disarankan untuk skenario ini. Tindakan remediasi spesifik dijelaskan dalam entri untuk jenis temuan tertentu. Anda dapat mengakses informasi selengkapnya tentang tipe temuan dengan memilihnya dari tabel Tipe temuan aktif.

Jika salah satu jenis temuan Perlindungan EKS dihasilkan dengan harapan, Anda dapat mempertimbangkan Aturan penindasan di GuardDuty untuk menambahkan untuk mencegah peringatan di masa mendatang.

Berbagai jenis serangan dan masalah konfigurasi dapat memicu temuan GuardDuty EKS Protection. Panduan ini membantu Anda mengidentifikasi akar penyebab GuardDuty temuan terhadap cluster Anda dan menguraikan panduan remediasi yang tepat. Berikut ini adalah akar penyebab utama yang mengarah pada temuan GuardDuty Kubernetes:

catatan

Sebelum Kubernetes versi 1.14, system:unauthenticated grup dikaitkan dengan dan secara system:discovery default. system:basic-user ClusterRoles Ini dapat memungkinkan akses yang tidak diinginkan dari pengguna anonim. Pembaruan cluster tidak mencabut izin ini, yang berarti bahwa meskipun Anda telah memperbarui cluster Anda ke versi 1.14 atau yang lebih baru, izin ini mungkin masih berlaku. Sebaiknya pisahkan izin ini dari system:unauthenticated grup.

Untuk informasi selengkapnya tentang menghapus izin ini, lihat Mengam ankan cluster Amazon EKS dengan praktik terbaik di Panduan Pengguna Amazon EKS .

Masalah konfigurasi potensial

Jika temuan menunjukkan masalah konfigurasi, lihat bagian remediasi dari temuan tersebut untuk panduan penyelesaian masalah tertentu. Untuk informasi selengkapnya, lihat jenis temuan berikut yang menunjukkan masalah konfigurasi:

Memperbaiki pengguna Kubernetes yang berpotensi dikompromikan

Tem GuardDuty uan dapat menunjukkan pengguna Kubernetes yang dikompromikan ketika pengguna yang diidentifikasi dalam temuan telah melakukan tindakan API yang tidak terduga. Anda dapat mengidentifikasi pengguna di bagian detail pengguna Kubernetes dari detail pencarian di konsol, atau di JSON resource.kubernetesDetails.kubernetesUserDetails temuan. Rincian pengguna ini termasuk user nameuid,, dan grup Kubernetes yang dimiliki pengguna.

Jika pengguna mengakses beban kerja menggunakan entitas IAM, Anda dapat menggunakan Access Key details bagian tersebut untuk mengidentifikasi detail peran atau pengguna IAM. Lihat jenis pengguna berikut dan panduan remediasinya.

catatan

Anda dapat menggunakan Amazon Detective untuk menyelidiki lebih lanjut peran IAM atau pengguna yang diidentifikasi dalam temuan. Saat melihat detail temuan di GuardDuty konsol, pilih Investig ate in Detective. Kemudian pilih AWS pengguna atau peran dari item yang terdaftar untuk menyelidikinya di Detective.

Built-in Kubernetes admin — Pengguna default yang ditugaskan oleh Amazon EKS ke identitas IAM yang membuat cluster. Jenis pengguna ini diidentifikasi oleh nama penggunakubernetes-admin.

Untuk mencabut akses admin Kubernetes bawaan:

Pengguna terautentikasi OIDC — Pengguna yang diberikan akses melalui penyedia OIDC. Biasanya pengguna OIDC memiliki alamat email sebagai nama pengguna. Anda dapat memeriksa apakah cluster Anda menggunakan OIDC dengan perintah berikut: aws eks list-identity-provider-configs --cluster-name your-cluster-name

Untuk mencabut akses pengguna yang diautentikasi OIDC:

  1. Putar kredenSIAL pengguna tersebut di penyedia OIDC.

  2. Putar rahasia apa pun yang dapat diakses pengguna.

AWS-Auth ConfigMap defined user — Pengguna IAM yang diberikan akses melalui -auth. AWS ConfigMap Untuk informasi selengkapnya, lihat Mengelola pengguna atau IAM role untuk klaster Anda di Panduan Pengguna Amazon EKS. Anda dapat meninjau izin mereka menggunakan perintah berikut: kubectl edit configmaps aws-auth --namespace kube-system

Untuk mencabut akses AWS ConfigMap pengguna:

  1. Gunakan perintah berikut untuk membuka ConfigMap.

    kubectl edit configmaps aws-auth --namespace kube-system
  2. Identifikasi peran atau entri pengguna di bawah bagian MaProles atau MapUsers dengan nama pengguna yang sama seperti yang dilaporkan di bagian detail pengguna Kubernetes dari temuan Anda. GuardDuty Lihat contoh berikut, di mana pengguna admin telah diidentifikasi dalam temuan.

    apiVersion: v1 data: mapRoles: | - rolearn: arn:aws:iam::444455556666:role/eksctl-my-cluster-nodegroup-standard-wo-NodeInstanceRole-1WP3NUE3O6UCF user name: system:node:EC2_PrivateDNSName groups: - system:bootstrappers - system:nodes mapUsers: | - userarn: arn:aws:iam::123456789012:user/admin username: admin groups: - system:masters - userarn: arn:aws:iam::111122223333:user/ops-user username: ops-user groups: - system:masters
  3. Hapus pengguna itu dari ConfigMap. Lihat contoh berikut di mana pengguna admin telah dihapus.

    apiVersion: v1 data: mapRoles: | - rolearn: arn:aws:iam::111122223333:role/eksctl-my-cluster-nodegroup-standard-wo-NodeInstanceRole-1WP3NUE3O6UCF username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes mapUsers: | - userarn: arn:aws:iam::111122223333:user/ops-user username: ops-user groups: - system:masters
  4. Jika userType adalah Pengguna, atau merupakan Peran yang diasumsikan oleh pengguna:

    1. Putar kunci akses pengguna itu.

    2. Putar rahasia apa pun yang dapat diakses pengguna.

    3. Tinjau informasi di AWS Akun saya dapat dikompromikan untuk detail lebih lanjut.

Jika temuan tidak memiliki resource.accessKeyDetails bagian, pengguna adalah akun layanan Kubernetes.

Akun layanan — Akun layanan memberikan identitas untuk pod dan dapat diidentifikasi dengan nama pengguna dengan format berikut:system:serviceaccount:namespace:service_account_name.

Untuk mencabut akses ke akun layanan:

  1. Putar kredenSIAL akun layanan.

  2. Tinjau panduan untuk kompromi pod di bagian berikut.

Memperbaiki pod Kubernetes yang berpotensi dikompromikan

Saat GuardDuty menentukan detail sumber daya pod atau beban kerja di dalam resource.kubernetesDetails.kubernetesWorkloadDetails bagian, pod atau sumber daya beban kerja tersebut berpotensi dikompromikan. Tem GuardDuty uan dapat menunjukkan satu pod telah dikompromikan atau bahwa beberapa pod telah dikompromikan melalui sumber daya tingkat yang lebih tinggi. Lihat skenario kompromi berikut untuk panduan tentang cara mengidentifikasi pod atau pod yang telah disusupi.

Kompromi pod tunggal

Jika type bidang di dalam resource.kubernetesDetails.kubernetesWorkloadDetails bagian adalah pod, temuan mengidentifikasi satu pod. Bidang nama adalah name dari pod dan namespace bidang adalah namespace nya.

Untuk informasi tentang mengidentifikasi node pekerja yang menjalankan pod, lihat Men gidentifikasi pod yang melanggar dan node pekerja di Panduan Prakti k Terbaik Amazon EKS.

Pod dikompromikan melalui sumber daya beban kerja

Jika type bidang di dalam resource.kubernetesDetails.kubernetesWorkloadDetails bagian mengidentifikasi Sumber Daya Beb an Kerja, seperti aDeployment, kemungkinan semua pod dalam sumber daya beban kerja tersebut telah dikompromikan.

Untuk informasi tentang mengidentifikasi semua pod sumber daya beban kerja dan node tempat mereka berjalan, lihat Mengi dentifikasi pod yang melanggar dan node pekerja menggunakan nama beban kerja di Panduan Prakti k Terbaik Amazon EKS.

Pod dikompromikan melalui akun layanan

Jika tem GuardDuty uan mengidentifikasi Akun Layanan di resource.kubernetesDetails.kubernetesUserDetails bagian tersebut, kemungkinan pod yang menggunakan akun layanan yang diidentifikasi dikompromikan. Nama pengguna yang dilaporkan oleh temuan adalah akun layanan jika memiliki format berikut:system:serviceaccount:namespace:service_account_name.

Untuk informasi tentang mengidentifikasi semua pod menggunakan akun layanan dan node tempat mereka berjalan, lihat Mengi dentifikasi pod dan node pekerja yang melanggar menggunakan nama akun layanan di Panduan Prakti k Terbaik Amazon EKS.

Setelah mengidentifikasi semua pod yang dikompromikan dan node tempat mereka berjalan, lihat Meng isolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan Prakti k Terbaik Amazon EKS.

Untuk memperbaiki pod yang berpotensi dikompromikan:
  1. Identifikasi kerentanan yang membahayakan pod.

  2. Terapkan perbaikan untuk kerentanan itu dan mulai pod pengganti baru.

  3. Hapus pod yang rentan.

    Untuk informasi selengkapnya, lihat Men yebarkan kembali pod yang dikompromikan atau sumber daya beban kerja di Panduan Praktik Terbaik Amazon EKS.

Jika node pekerja telah diberi peran IAM yang memungkinkan Pod mendapatkan akses ke AWS sumber daya lain, hapus peran tersebut dari instans untuk mencegah kerusakan lebih lanjut dari serangan. Demikian pula, jika Pod telah ditetapkan peran IAM, evaluasi apakah Anda dapat menghapus kebijakan IAM dengan aman dari peran tersebut tanpa memengaruhi beban kerja lainnya.

Memperbaiki gambar kontainer yang berpotensi dikompromikan

Ketika tem GuardDuty uan menunjukkan kompromi pod, gambar yang digunakan untuk meluncurkan pod dapat berpotensi berbahaya atau dikompromikan. GuardDuty temuan mengidentifikasi gambar wadah di dalam resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image lapangan. Anda dapat menentukan apakah gambar itu berbahaya dengan memindai malware.

Untuk memperbaiki gambar kontainer yang berpotensi dikompromikan:
  1. Berhenti menggunakan gambar segera dan hapus dari repositori gambar Anda.

  2. Identifikasi semua pod menggunakan gambar yang berpotensi dikompromikan.

    Untuk informasi selengkapnya, lihat Mengidentifikasi pod dengan gambar dan node pekerja yang rentan atau terganggu di Panduan Praktik Terbaik Amazon EKS.

  3. Isolasi pod yang berpotensi dikompromikan, putar kredenSIAL, dan kumpulkan data untuk dianalisis. Untuk informasi selengkapnya, lihat Meng isolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan Prakti k Terbaik Amazon EKS.

  4. Hapus semua pod menggunakan gambar yang berpotensi dikompromikan.

Memperbaiki node Kubernetes yang berpotensi terganggu

Sebuah GuardDuty temuan dapat menunjukkan kompromi node jika pengguna yang diidentifikasi dalam temuan mewakili identitas node atau jika temuan menunjukkan penggunaan wadah istimewa.

Identitas pengguna adalah node pekerja jika bidang nama pengguna memiliki format berikut:system:node:node name. Misalnya, system:node:ip-192-168-3-201.ec2.internal. Ini menunjukkan bahwa musuh telah memperoleh akses ke node dan menggunakan kredenSIAL node untuk berbicara dengan titik akhir API Kubernetes.

Temuan menunjukkan penggunaan wadah istimewa jika satu atau lebih wadah yang tercantum dalam temuan memiliki bidang tem resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged uan yang disetel keTrue.

Untuk memperbaiki node yang berpotensi dikompromikan:
  1. Isolasi pod, putar kredensialnya, dan kumpulkan data untuk analisis forensik.

    Untuk informasi selengkapnya, lihat Meng isolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan Prakti k Terbaik Amazon EKS.

  2. Identifikasi akun layanan yang digunakan oleh semua pod yang berjalan pada node yang berpotensi dikompromikan. Tinjau izin mereka dan putar akun layanan jika diperlukan.

  3. Hentikan node yang berpotensi dikompromikan.