Dokumen ini menjelaskan jenis temuan ancaman di Security Command Center. Temuan ancaman dibuat oleh pendeteksi ancaman saat mendeteksi potensi ancaman di resource cloud Anda. Untuk daftar lengkap temuan ancaman yang tersedia, lihat Indeks temuan ancaman.
Ringkasan
Command and Control: Piped Encoded Code Execution mendeteksi saat output perintah base64 --decode langsung di-pipe ke interpreter shell seperti python, perl, php, ruby, atau ssh.
Jika ancaman ditemukan di luar beban kerja yang diharapkan, seperti pipeline CI/CD, hal ini merupakan indikasi kuat adanya aktivitas berbahaya. Penyerang secara rutin menggunakan metode ini untuk mengeksekusi skrip atau perintah yang di-obfuscate. Encoding base64 menyembunyikan kode sebenarnya yang sedang dijalankan, dan menyalurkannya langsung ke interpreter memungkinkan eksekusi langsung tanpa menulis skrip yang didekodekan ke disk, sehingga lebih tersembunyi.
Sebaiknya Anda selalu segera menindaklanjuti temuan ini jika terjadi pada beban kerja yang tidak terduga. Workload yang tidak berbahaya menggunakan encoding base64 terutama untuk mentransfer data biner atau data yang berisi karakter khusus secara aman melalui sistem dan protokol berbasis teks yang mungkin merusak data. Namun, setiap eksekusi kode dapat secara langsung memengaruhi dan semakin membahayakan sistem Anda, jadi pastikan Anda selalu memperlakukan temuan ini sebagai berbahaya hingga terbukti sebaliknya.
Container Threat Detection adalah sumber temuan ini.
Cara merespons
Untuk menanggapi temuan ini, lakukan hal berikut:
Langkah 1: Tinjau detail temuan
Buka temuan
Command and Control: Piped Encoded Code Executionseperti yang diarahkan dalam Meninjau temuan. Panel detail untuk temuan akan terbuka di tab Summary.Di tab Ringkasan, tinjau informasi di bagian berikut:
- Apa yang terdeteksi, terutama kolom berikut:
- Biner program: jalur absolut biner yang dieksekusi.
- Argumen: argumen yang diteruskan selama eksekusi biner.
- Resource yang terpengaruh, terutama kolom berikut:
- Nama lengkap resource: nama lengkap resource cluster termasuk nomor project, lokasi, dan nama cluster.
- Apa yang terdeteksi, terutama kolom berikut:
Di tampilan detail temuan, klik tab JSON.
Dalam JSON, perhatikan kolom berikut.
resource:project_display_name: nama project yang berisi cluster.
finding:processes:binary:path: jalur lengkap biner yang dieksekusi.
args: argumen yang diberikan saat menjalankan biner.
sourceProperties:Pod_Namespace: nama namespace Kubernetes Pod.Pod_Name: nama Pod GKE.Container_Name: nama container yang terpengaruh.Container_Image_Uri: nama image container yang di-deploy.VM_Instance_Name: nama node GKE tempat Pod dieksekusi.
Identifikasi temuan lain yang terjadi pada waktu yang serupa untuk penampung ini. Temuan terkait mungkin menunjukkan bahwa aktivitas ini berbahaya, bukan karena kegagalan mengikuti praktik terbaik.
Langkah 2: Tinjau cluster dan node
Di konsol Google Cloud , buka halaman Kubernetes clusters.
Di toolbar konsol Google Cloud , pilih project yang tercantum di
resource.project_display_name, jika perlu.Pilih cluster yang tercantum di baris Nama lengkap resource di tab Ringkasan pada detail temuan. Catat metadata apa pun tentang cluster dan pemiliknya.
Klik tab Nodes. Pilih node yang tercantum di
VM_Instance_Name.Klik tab Detail dan perhatikan anotasi
container.googleapis.com/instance_id.
Langkah 3: Tinjau Pod
Di konsol Google Cloud , buka halaman Kubernetes Workloads.
Di toolbar konsol Google Cloud , pilih project yang tercantum di
resource.project_display_name, jika perlu.Filter berdasarkan cluster yang ditentukan di baris Nama lengkap resource di tab Ringkasan dalam detail temuan dan, jika perlu, menurut namespace Pod yang tercantum di
Pod_Namespace.Pilih Pod yang tercantum di
Pod_Name. Catat metadata apa pun tentang Pod dan pemiliknya.
Langkah 4: Periksa log
Di konsol Google Cloud , buka Logs Explorer.
Di toolbar konsol Google Cloud , pilih project yang tercantum di
resource.project_display_name, jika perlu.Tetapkan Pilih rentang waktu ke periode yang diinginkan.
Di halaman yang terbuka, lakukan hal berikut:
- Temukan log Pod untuk
Pod_Namemenggunakan filter berikut:resource.type="k8s_container"resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"resource.labels.location="LOCATION"resource.labels.cluster_name="CLUSTER_NAME"resource.labels.namespace_name="POD_NAMESPACE"resource.labels.pod_name="POD_NAME"
- Temukan log audit cluster menggunakan filter berikut:
logName="projects/RESOURCE.PROJECT_DISPLAY_NAME/logs/cloudaudit.googleapis.com%2Factivity"resource.type="k8s_cluster"resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"resource.labels.location="LOCATION"resource.labels.cluster_name="CLUSTER_NAME"POD_NAME
- Temukan log konsol node GKE menggunakan filter berikut:
resource.type="gce_instance"resource.labels.instance_id="INSTANCE_ID"
- Temukan log Pod untuk
Langkah 5: Selidiki container yang sedang berjalan
Jika container masih berjalan, Anda mungkin dapat menyelidiki lingkungan container secara langsung.
Buka konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project yang tercantum di
resource.project_display_name, jika perlu.Klik Activate Cloud Shell
Dapatkan kredensial GKE untuk cluster Anda dengan menjalankan perintah berikut.
Untuk cluster zona:
gcloud container clusters get-credentials CLUSTER_NAME \ --zone LOCATION \ --project PROJECT_NAMEUntuk cluster regional:
gcloud container clusters get-credentials CLUSTER_NAME \ --region LOCATION \ --project PROJECT_NAME
Ganti kode berikut:
CLUSTER_NAME: cluster yang tercantum diresource.labels.cluster_nameLOCATION: lokasi yang tercantum diresource.labels.locationPROJECT_NAME: nama project yang tercantum diresource.project_display_name
Mengambil biner yang dieksekusi:
kubectl cp \ POD_NAMESPACE/POD_NAME:PROCESS_BINARY_FULLPATH \ -c CONTAINER_NAME \ LOCAL_FILEGanti
LOCAL_FILEdengan jalur lokal untuk menyimpan biner yang didownload.Hubungkan ke lingkungan container dengan menjalankan perintah berikut:
kubectl exec \ --namespace=POD_NAMESPACE \ -ti POD_NAME \ -c CONTAINER_NAME \ -- /bin/shPerintah ini mengharuskan container memiliki shell yang diinstal di
/bin/sh.
Langkah 6: Meneliti metode serangan dan respons
- Tinjau entri framework MITRE ATT&CK untuk jenis temuan ini: Command and Control.
- Untuk mengembangkan rencana respons, gabungkan hasil penyelidikan Anda dengan penelitian MITRE.
Langkah 7: Terapkan respons Anda
Rencana respons berikut mungkin sesuai untuk temuan ini, tetapi juga dapat memengaruhi operasi. Evaluasi dengan cermat informasi yang Anda kumpulkan dalam penyelidikan untuk menentukan cara terbaik dalam menyelesaikan temuan.
- Hubungi pemilik project yang berisi container yang disusupi.
- Hentikan atau hapus container yang terkompromi dan ganti dengan container baru.
Langkah berikutnya
- Pelajari cara menangani temuan ancaman di Security Command Center.
- Lihat Indeks temuan ancaman.
- Pelajari cara meninjau temuan melalui konsol Google Cloud .
- Pelajari layanan yang menghasilkan temuan ancaman.