Nesta página, descrevemos como verificar se o Correlated Threats está funcionando ao emular ameaças para acionar intencionalmente os detectores do Security Command Center e criar descobertas. Essas descobertas de ameaças criam problemas de ameaças correlacionadas para cada regra.
Para saber mais sobre ameaças correlacionadas, consulte a visão geral das ameaças correlacionadas. Se você quiser gerar descobertas que produzam ameaças correlacionadas, ative os serviços de detecção de ameaças adequados nas configurações do Security Command Center.
Configurar o ambiente
Esses procedimentos de teste exigem um cluster do GKE e a capacidade de provisionar VMs do Compute Engine. Verifique se o cluster de teste está em uma versão compatível do Google Kubernetes Engine (GKE). Para mais informações, consulte Usar uma versão compatível do GKE.
Antes de testar as ameaças correlacionadas, selecione um projeto com o cluster do GKE adequado, ative o Cloud Shell e defina várias variáveis de ambiente. Para isso, siga estas etapas:
Acesse o console doGoogle Cloud .
Selecione o projeto em que você quer testar as ameaças correlacionadas.
Clique em Ativar o Cloud Shell.
No Cloud Shell, defina as variáveis de ambiente:
Especifique a zona em que o cluster está localizado:
export ZONE=CLUSTER_ZONEInsira o ID do projeto em que o cluster está localizado:
export PROJECT=PROJECT_IDEspecifique o nome do cluster de teste:
export CLUSTER_NAME=CLUSTER_NAMEConsiga as credenciais do cluster:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Simular um ataque de mineração de criptomoedas
Nesta seção, descrevemos como emular a mineração de criptomoedas e criar um problema de ameaças correlacionadas usando o console Google Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.
Para testar as ameaças correlacionadas simulando a mineração de criptomoedas, siga estas etapas:
Para acionar um problema de ameaças correlacionadas de criptomoedas, crie duas descobertas:
Execution: Netcat Remote Code Execution In ContainereMalware: Cryptomining Bad IP. Para acionar essas duas descobertas, execute os seguintes comandos:tag="correlated-threat-test-crypto-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run \ --restart=Never \ --image marketplace.gcr.io/google/ubuntu2404:latest \ "$tag" -- bash -c \ "apt-get update ; apt-get install -y curl ; cp /bin/ls /tmp/curl; /tmp/curl --url=stratum+tcp ; for i in {1..5}; do curl 34.66.147.47 > /dev/null; done; sleep infinity"Pode levar até uma hora para que o problema de ameaças correlacionadas apareça.
Depois que o problema de ameaças correlacionadas for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para testes.
kubectl delete pod "$tag"
Simular um ataque de malware
Nesta seção, descrevemos como emular um ataque de malware e criar um problema de ameaças correlacionadas usando o console Google Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.
Para testar as ameaças correlacionadas simulando um ataque de malware, siga estas etapas:
Para acionar um problema de ameaças correlacionadas a malware, crie duas descobertas:
Execution: Local Reconnaissance Tool ExecutioneExecution: Added Malicious Binary Executed. Para criar um pod do Ubuntu 24.04 no cluster do GKE e acionar essas duas descobertas, execute os comandos a seguir:tag="correlated-threat-test-malware-$(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 \ --image marketplace.gcr.io/google/ubuntu2404:latest \ "$tag" -- sh -c \ "cp /bin/ls /tmp/linenum.sh; /tmp/linenum.sh; touch /tmp/test_mal_file; echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; /tmp/test_mal_file; sleep infinity"Pode levar até uma hora para o problema de ameaças correlacionadas aparecer.
Depois que o problema de ameaça correlacionada for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para teste.
kubectl delete pod "$tag"
Emular um ataque de movimento lateral no GKE
Nesta seção, descrevemos como emular um ataque de movimentação lateral no GKE e criar um problema de ameaças correlacionadas usando o consoleGoogle Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.
Para testar as ameaças correlacionadas simulando um ataque de movimentação lateral, siga estas etapas:
Para acionar um problema de ameaças correlacionadas de movimento lateral, crie duas descobertas:
Privilege Escalation: Launch of privileged Kubernetes containereExecution: Container Escape. Para criar um pod do Ubuntu no cluster do GKE e acionar essas duas descobertas, execute os seguintes comandos:tag="correlated-threat-test-podlatmove-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run \ --restart=Never \ --image ubuntu "$tag" \ --privileged \ -- bash -c \ "cp /bin/ls /tmp/botb-linux-amd64; sleep 60; /tmp/botb-linux-amd64 -autopwn; sleep infinity"Pode levar até uma hora para o problema de ameaças correlacionadas aparecer.
Depois que o problema de ameaças correlacionadas for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para testes.
kubectl delete pod "$tag"
Emular um ataque de movimentação lateral no Compute Engine
Nesta seção, descrevemos como emular um ataque de movimentação lateral no Compute Engine e criar um problema de ameaças correlacionadas usando o consoleGoogle Cloud e o Cloud Shell. Para isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.
Para testar as ameaças correlacionadas simulando um ataque de movimentação lateral, siga estas etapas:
Crie um arquivo chamado
lateral_movement_test.shcom o conteúdo a seguir. Esse script cria várias VMs do Compute Engine e gera as seguintes duas descobertas:Lateral Movement: Modified Boot Disk Attached to InstanceeMalware: Bad IP.#!/bin/bash # emulates a boot disk swap followed by malicious IP to trigger correlated threats. # Default values IMAGE_FAMILY="debian-12" IMAGE_PROJECT="debian-cloud" TIMESTAMP=$(date +%s) TARGET_INSTANCE_NAME="target-vm-${TIMESTAMP}" WORKER_INSTANCE_NAME="worker-vm-${TIMESTAMP}" PROJECT_ID="" ZONE="" # --- Usage function --- usage() { echo "Usage: $0 --project_id <PROJECT_ID> --zone <ZONE> [OPTIONS]" echo "emulates a boot disk swap followed by malicious IP to trigger correlated threats." echo echo "Required arguments:" echo " --project_id <PROJECT_ID> Your Google Cloud Project ID" echo " --zone <ZONE> The Google Cloud zone to create resources in (e.g., us-central1-a)" echo echo "Optional arguments:" echo " --help Display this help message" } # --- Parse arguments --- while [[ $# -gt 0 ]]; do case "$1" in --project_id) PROJECT_ID="$2" shift 2 ;; --zone) ZONE="$2" shift 2 ;; --help) usage exit 0 ;; *) echo "Unknown option: $1" usage exit 1 ;; esac done # --- Validate required arguments --- if [[ -z "${PROJECT_ID}" ]]; then echo "Error: --project_id is required." usage exit 1 fi if [[ -z "${ZONE}" ]]; then echo "Error: --zone is required." usage exit 1 fi # The boot disk name defaults to the instance name BOOT_DISK_NAME=$TARGET_INSTANCE_NAME set -e echo "Starting script with the following settings:" echo "PROJECT_ID: ${PROJECT_ID}" echo "ZONE: ${ZONE}" echo "TARGET_INSTANCE_NAME: ${TARGET_INSTANCE_NAME}" echo "WORKER_INSTANCE_NAME: ${WORKER_INSTANCE_NAME}" echo "BOOT_DISK_NAME: ${BOOT_DISK_NAME}" echo "IMAGE_FAMILY: ${IMAGE_FAMILY}" echo "IMAGE_PROJECT: ${IMAGE_PROJECT}" echo "--------------------------------------------------" gcloud config set project "${PROJECT_ID}" gcloud config set compute/zone "${ZONE}" # Function to run gcloud commands with --quiet run_gcloud() { echo "Running: gcloud $@" gcloud "$@" --quiet } echo "Step 1: Create target VM: ${TARGET_INSTANCE_NAME}" run_gcloud compute instances create "${TARGET_INSTANCE_NAME}" \ --image-family="${IMAGE_FAMILY}" \ --image-project="${IMAGE_PROJECT}" \ --no-address echo "Step 2: Create worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances create "${WORKER_INSTANCE_NAME}" \ --image-family="${IMAGE_FAMILY}" \ --image-project="${IMAGE_PROJECT}" \ --no-address echo "Step 3: Stop target VM: ${TARGET_INSTANCE_NAME}" run_gcloud compute instances stop "${TARGET_INSTANCE_NAME}" echo "Step 4: Detach boot disk from target VM" run_gcloud compute instances detach-disk "${TARGET_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo "Step 5: Attach disk to worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances attach-disk "${WORKER_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo " << At this point, the disk is attached to the worker VM >>" echo " << Malicious modifications could theoretically be made here >>" echo "Step 6: Detach disk from worker VM" run_gcloud compute instances detach-disk "${WORKER_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo "Step 7: Re-attach disk to target VM as boot disk" run_gcloud compute instances attach-disk "${TARGET_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" --boot echo "Step 8: Start target VM" run_gcloud compute instances start "${TARGET_INSTANCE_NAME}" echo -n "Step 9: Wait for instance SSH to be available" until gcloud compute ssh "${TARGET_INSTANCE_NAME}" --command="true" 2>/dev/null do echo -n "." sleep 2 done echo echo "Step 10: Trigger bad IP findings" run_gcloud compute ssh "${TARGET_INSTANCE_NAME}" --command="for i in {1..5}; do curl 34.66.147.47 > /dev/null 2>/dev/null; done;" echo "Step 11: Delete worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances delete "${WORKER_INSTANCE_NAME}" echo "--- Testing Complete ---" echo "The script has completed executing the patterns to trigger a correlated" echo "threats issue. Check the Security Command Center Issues page to view the issue." echo "Check Security Command Center for findings." echo echo "After observing the correlated threat issue in Security Command Center" echo "use this command to delete ${TARGET_INSTANCE_NAME}." echo " gcloud compute instances delete "${TARGET_INSTANCE_NAME}"" echo ${TARGET_INSTANCE_NAME} > ./.lateral_movement_test_nameTorne o script executável:
chmod +x lateral_movement_test.shPara gerar descobertas, execute o script:
./lateral_movement_test.sh --project_id $PROJECT --zone $ZONEPode levar até uma hora para o problema de ameaças correlacionadas aparecer.
Depois que o problema for gerado, faça a limpeza usando o comando fornecido na saída do script de teste.
gcloud compute instances delete $(cat .lateral_movement_test_name)
A seguir
- Saiba como ameaças correlacionadas funcionam.