

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

# Remediasi temuan Perlindungan EKS
<a name="guardduty-remediate-kubernetes"></a>

Amazon GuardDuty menghasilkan [temuan](guardduty_findings.md) yang menunjukkan potensi masalah keamanan Kubernetes saat Perlindungan EKS diaktifkan untuk akun Anda. Untuk informasi selengkapnya, lihat [Perlindungan EKS](kubernetes-protection.md). Bagian berikut menjelaskan langkah-langkah perbaikan yang disarankan untuk skenario ini. Tindakan remediasi khusus dijelaskan dalam entri untuk jenis temuan spesifik tersebut. Anda dapat mengakses informasi selengkapnya tentang tipe temuan dengan memilihnya dari [tabel Tipe temuan aktif](guardduty_finding-types-active.md).

Jika salah satu jenis temuan Perlindungan EKS dihasilkan secara diharapkan, Anda dapat mempertimbangkan [Aturan penindasan di GuardDuty](findings_suppression-rule.md) untuk menambahkan untuk mencegah peringatan di masa mendatang.

Berbagai jenis serangan dan masalah konfigurasi dapat memicu temuan Perlindungan GuardDuty EKS. 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:
+ [Potensi masalah konfigurasi](#compromised-kubernetes-config)
+ [Memulihkan pengguna Kubernetes yang berpotensi dikompromikan](#compromised-kubernetes-user)
+ [Remediasi pod Kubernetes yang berpotensi dikompromikan](#compromised-kubernetes-pod)
+ [Remediasi node Kubernetes yang berpotensi dikompromikan](#compromised-kubernetes-node)
+ [Memulihkan gambar kontainer yang berpotensi dikompromikan](#compromised-kubernetes-image)

**catatan**  
Sebelum Kubernetes versi 1.14, `system:unauthenticated` grup ini dikaitkan dengan dan secara default. `system:discovery` `system:basic-user` **ClusterRoles** Ini memungkinkan akses yang tidak diinginkan dari pengguna anonim. Pembaruan klaster tidak mencabut izin ini, yang berarti bahwa meskipun Anda telah memperbarui klaster Anda ke versi 1.14 atau yang lebih baru, izin ini mungkin masih ada. Kami menyarankan Anda untuk memisahkan izin ini dari grup. `system:unauthenticated`  
Untuk informasi selengkapnya tentang menghapus izin ini, lihat [Mengamankan klaster Amazon EKS dengan praktik terbaik](https://docs.aws.amazon.com/eks/latest/userguide/security-best-practices.html) di **Panduan Pengguna Amazon EKS**.

## Potensi masalah konfigurasi
<a name="compromised-kubernetes-config"></a>

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:
+ [Policy:Kubernetes/AnonymousAccessGranted](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-anonymousaccessgranted)
+ [Policy:Kubernetes/ExposedDashboard](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-exposeddashboard)
+ [Policy:Kubernetes/AdminAccessToDefaultServiceAccount](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-adminaccesstodefaultserviceaccount)
+ [Policy:Kubernetes/KubeflowDashboardExposed](guardduty-finding-types-eks-audit-logs.md#policy-kubernetes-kubeflowdashboardexposed)
+ Temuan apa pun yang berakhir di **SuccessfulAnonymousAccess**

## Memulihkan pengguna Kubernetes yang berpotensi dikompromikan
<a name="compromised-kubernetes-user"></a>

 GuardDuty Temuan dapat menunjukkan pengguna Kubernetes yang disusupi ketika pengguna yang diidentifikasi dalam temuan tersebut telah melakukan tindakan API yang tidak terduga. Anda dapat mengidentifikasi pengguna di bagian **detail pengguna Kubernetes** dari detail temuan di konsol, atau di temuan `resource.kubernetesDetails.kubernetesUserDetails` JSON. Detail pengguna ini mencakup`user name`,`uid`, dan grup Kubernetes yang menjadi milik pengguna. 

Jika pengguna mengakses beban kerja menggunakan entitas IAM, Anda dapat menggunakan `Access Key details` bagian tersebut untuk mengidentifikasi detail peran IAM atau pengguna. 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 tersebut. Saat melihat detail temuan di GuardDuty konsol, pilih **Selidiki di Detektif**. Kemudian pilih AWS pengguna atau peran dari item yang terdaftar untuk menyelidikinya di Detektif.

**Admin Kubernetes bawaan** — Pengguna default yang ditetapkan oleh Amazon EKS ke identitas IAM yang membuat cluster. Jenis pengguna ini diidentifikasi oleh nama pengguna`kubernetes-admin`.   

**Untuk mencabut akses admin Kubernetes bawaan:**
+ Identifikasi `userType` dari `Access Key details` bagian.
  + Jika **Peran `userType`** is dan peran tersebut termasuk dalam peran instans EC2:
    + Identifikasi contoh itu kemudian ikuti instruksi di[Memulihkan instans Amazon EC2 yang berpotensi dikompromikan](compromised-ec2.md).
  + Jika `userType` adalah **Pengguna**, atau **Peran** yang diasumsikan oleh pengguna: 

    1. [Putar tombol akses](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) pengguna tersebut.

    1. Putar rahasia apa pun yang dapat diakses pengguna.

    1. Tinjau informasi di [My Akun AWS dapat dikompromikan](https://repost.aws/knowledge-center/potential-account-compromise) untuk rincian lebih lanjut.

Pengguna yang **diautentikasi OIDC — Pengguna** 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 kredensi pengguna tersebut di penyedia OIDC.

1. 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](https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html) di **Panduan Pengguna Amazon EKS**. Anda dapat meninjau izin mereka menggunakan perintah berikut: `kubectl edit configmaps aws-auth --namespace kube-system`  
**Untuk mencabut akses pengguna: AWS ConfigMap**  

1. Gunakan perintah berikut untuk membuka ConfigMap. 

   ```
   kubectl edit configmaps aws-auth --namespace kube-system
   ```

1. Identifikasi peran atau entri pengguna di bagian **MapRoles** atau **MapUsers** dengan nama pengguna yang sama seperti yang dilaporkan di bagian detail pengguna Kubernetes pada temuan Anda. GuardDuty Lihat contoh berikut, di mana pengguna admin telah diidentifikasi dalam sebuah 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
   ```

1. 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
   ```

1. Jika `userType` adalah **Pengguna**, atau **Peran** yang diasumsikan oleh pengguna: 

   1. [Putar tombol akses](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) pengguna tersebut.

   1. Putar rahasia apa pun yang dapat diakses pengguna.

   1. Meninjau informasi di [AWS Akun saya dapat dikompromikan](https://aws.amazon.com//premiumsupport/knowledge-center/potential-account-compromise/) untuk rincian lebih lanjut.

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

**Akun layanan** — Akun layanan menyediakan 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 kredenal akun layanan.

1. Tinjau panduan untuk kompromi pod di bagian berikut.

## Remediasi pod Kubernetes yang berpotensi dikompromikan
<a name="compromised-kubernetes-pod"></a>

Saat GuardDuty menentukan detail pod atau sumber daya beban kerja di dalam `resource.kubernetesDetails.kubernetesWorkloadDetails` bagian tersebut, pod atau sumber daya beban kerja tersebut berpotensi dikompromikan. Sebuah GuardDuty temuan dapat menunjukkan bahwa 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 ini adalah **pod**, temuan tersebut mengidentifikasi satu pod. Field name adalah `name` dari pod dan `namespace` field adalah namespace-nya.   
Untuk informasi tentang mengidentifikasi node pekerja yang menjalankan pod, lihat [Mengidentifikasi pod yang menyinggung dan node pekerja](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_identify_the_offending_pod_and_worker_node) di *Panduan Praktik Terbaik Amazon EKS*.

**Pod dikompromikan melalui sumber daya beban kerja**  
Jika `type` bidang di dalam `resource.kubernetesDetails.kubernetesWorkloadDetails` bagian mengidentifikasi **Sumber Daya Beban Kerja**, seperti a`Deployment`, kemungkinan semua pod dalam sumber daya beban kerja tersebut telah dikompromikan.   
Untuk informasi tentang mengidentifikasi semua Pod sumber daya beban kerja dan node yang dijalankannya, lihat [Mengidentifikasi Pod yang menyinggung dan node pekerja menggunakan nama beban kerja](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_identify_the_offending_pods_and_worker_nodes_using_workload_name) di Panduan Praktik *Terbaik Amazon EKS*.

**Pod dikompromikan melalui akun layanan**  
Jika GuardDuty temuan mengidentifikasi Akun Layanan di `resource.kubernetesDetails.kubernetesUserDetails` bagian tersebut, kemungkinan pod yang menggunakan akun layanan yang diidentifikasi akan disusupi. 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 [Mengidentifikasi Pod yang menyinggung dan node pekerja menggunakan nama akun layanan](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_identify_the_offending_pods_and_worker_nodes_using_service_account_name) di *Panduan Praktik Terbaik Amazon EKS*.

*Setelah Anda mengidentifikasi semua pod yang dikompromikan dan node yang dijalankannya, lihat [Mengisolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan Praktik Terbaik](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_isolate_the_pod_by_creating_a_network_policy_that_denies_all_ingress_and_egress_traffic_to_the_pod) Amazon EKS.*

**Untuk memulihkan pod yang berpotensi dikompromikan:**

1. Identifikasi kerentanan yang mengganggu pod.

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

1. Hapus pod yang rentan.

   Untuk informasi selengkapnya, lihat [Menerapkan ulang pod atau sumber daya beban kerja yang dikompromikan di Panduan Praktik](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_redeploy_compromised_pod_or_workload_resource) Terbaik *Amazon EKS*.

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

## Memulihkan gambar kontainer yang berpotensi dikompromikan
<a name="compromised-kubernetes-image"></a>

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

**Untuk memulihkan gambar kontainer yang berpotensi dikompromikan:**

1. Berhenti menggunakan gambar segera dan hapus dari repositori gambar Anda.

1. Identifikasi semua pod menggunakan gambar yang berpotensi dikompromikan.

   Untuk informasi selengkapnya, lihat [Mengidentifikasi pod dengan gambar dan node pekerja yang rentan atau disusupi](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_identify_pods_with_vulnerable_or_compromised_images_and_worker_nodes) di *Panduan Praktik Terbaik Amazon EKS*.

1. Isolasi pod yang berpotensi dikompromikan, putar kredensialnya, dan kumpulkan data untuk dianalisis. Untuk informasi selengkapnya, lihat [Mengisolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_isolate_the_pod_by_creating_a_network_policy_that_denies_all_ingress_and_egress_traffic_to_the_pod) Praktik Terbaik *Amazon* EKS.

1. Hapus semua pod menggunakan gambar yang berpotensi dikompromikan.

## Remediasi node Kubernetes yang berpotensi dikompromikan
<a name="compromised-kubernetes-node"></a>

 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`. Hal ini menunjukkan bahwa musuh telah memperoleh akses ke node dan menggunakan kredenal node untuk berbicara dengan titik akhir API Kubernetes.

Temuan menunjukkan penggunaan wadah istimewa jika satu atau lebih kontainer yang tercantum dalam temuan memiliki bidang `resource.kubernetesDetails.kubernetesWorkloadDetails.containers.securityContext.privileged` temuan yang disetel ke`True`. 

**Untuk memulihkan node yang berpotensi dikompromikan:**

1. Isolasi pod, putar kredensialnya, dan kumpulkan data untuk analisis forensik.

   Untuk informasi selengkapnya, lihat [Mengisolasi pod dengan membuat kebijakan jaringan yang menolak semua lalu lintas masuk dan keluar ke pod di Panduan](https://docs.aws.amazon.com/eks/latest/best-practices/incident-response-and-forensics.html#_isolate_the_pod_by_creating_a_network_policy_that_denies_all_ingress_and_egress_traffic_to_the_pod) Praktik Terbaik *Amazon* EKS.

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

1. Hentikan node yang berpotensi dikompromikan.