이 페이지에서는 위협을 에뮬레이션하여 Security Command Center 감지기를 의도적으로 트리거하고 발견 사항을 생성함으로써 상관관계가 있는 위협 기능이 정상적으로 작동하는지 검증하는 방법을 설명합니다. 그러면 이러한 위협 발견 사항에 따라 각 규칙에 대해 상관관계가 있는 위협 문제가 생성됩니다.
상관관계가 있는 위협에 대한 자세한 내용은 상관관계가 있는 위협 개요를 참조하세요. 상관관계가 있는 위협을 생성하는 발견 사항을 생성하려면 Security Command Center 설정에서 해당 위협 감지 서비스를 사용 설정해야 합니다.
환경 설정
이러한 테스트 절차를 수행하려면 GKE 클러스터와 Compute Engine VM을 프로비저닝할 수 있는 권한이 모두 필요합니다. 테스트 클러스터가 지원되는 Google Kubernetes Engine(GKE) 버전을 사용 중인지 확인하세요. 자세한 내용은 지원되는 GKE 버전 사용을 참조하세요.
상관관계가 있는 위협을 테스트하기 전에, 적절한 GKE 클러스터가 포함된 프로젝트를 선택하고 Cloud Shell을 활성화한 뒤 여러 환경 변수를 설정해야 합니다. 이를 위해 다음 단계를 따르세요.
Google Cloud 콘솔로 이동합니다.
상관관계가 있는 위협을 테스트할 프로젝트를 선택합니다.
Cloud Shell 활성화를 클릭합니다.
Cloud Shell에서 환경 변수를 설정합니다.
클러스터가 있는 영역을 지정합니다.
export ZONE=CLUSTER_ZONE클러스터가 있는 프로젝트의 ID를 입력합니다.
export PROJECT=PROJECT_ID테스트 클러스터의 이름을 지정합니다.
export CLUSTER_NAME=CLUSTER_NAME클러스터의 사용자 인증 정보를 가져옵니다.
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
암호화폐 채굴 공격 에뮬레이션
이 섹션에서는 Google Cloud 콘솔과 Cloud Shell을 사용하여 암호화폐 채굴을 에뮬레이션하고 상관관계가 있는 위협 문제를 생성하는 방법을 설명합니다. 이렇게 하려면 먼저 Cloud Shell을 활성화하고 프로젝트를 선택한 다음 테스트를 수행해야 합니다.
암호화폐 채굴을 에뮬레이션하여 상관관계가 있는 위협을 테스트하려면 다음 단계를 따르세요.
암호화폐 관련 상관관계가 있는 위협 문제를 트리거하려면
Execution: Netcat Remote Code Execution In Container및Malware: Cryptomining Bad IP의 두 가지 발견 사항을 생성해야 합니다. 이 두 가지 발견 사항을 트리거하려면 다음 명령어를 실행하세요.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"상관관계가 있는 위협 문제가 나타나기까지 최대 1시간이 걸릴 수 있습니다.
상관관계가 있는 위협 문제가 생성된 후 테스트에 사용한 Kubernetes 포드를 삭제하기 위해 아래 명령어를 실행하여 정리를 수행하세요.
kubectl delete pod "$tag"
멀웨어 공격 에뮬레이션
이 섹션에서는 Google Cloud 콘솔과 Cloud Shell을 사용하여 멀웨어 공격을 에뮬레이션하고 상관관계가 있는 위협 문제를 생성하는 방법을 설명합니다. 이렇게 하려면 먼저 Cloud Shell을 활성화하고 프로젝트를 선택한 다음 테스트를 수행해야 합니다.
멀웨어 공격을 에뮬레이션하여 상관관계가 있는 위협을 테스트하려면 다음 단계를 따르세요.
멀웨어 관련 상관관계가 있는 위협 문제를 트리거하려면
Execution: Local Reconnaissance Tool Execution및Execution: Added Malicious Binary Executed의 두 가지 발견 사항을 만들어야 합니다. GKE 클러스터에서 Ubuntu 24.04 포드를 만들고 이 두 가지 발견 사항을 트리거하려면 다음 명령어를 실행하세요.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"상관관계가 있는 위협 문제가 나타나기까지 최대 1시간이 걸릴 수 있습니다.
상관관계가 있는 위협 문제가 생성된 후 테스트에 사용한 Kubernetes 포드를 삭제하기 위해 아래 명령어를 실행하여 정리를 수행하세요.
kubectl delete pod "$tag"
GKE에서 측면 이동 공격 에뮬레이션
이 섹션에서는Google Cloud 콘솔과 Cloud Shell을 사용하여 GKE에서 측면 이동 공격을 에뮬레이션하고 상관관계가 있는 위협 문제를 만드는 방법을 설명합니다. 이렇게 하려면 먼저 Cloud Shell을 활성화하고 프로젝트를 선택한 다음 테스트를 수행해야 합니다.
측면 이동 공격을 에뮬레이션하여 상관관계가 있는 위협을 테스트하려면 다음 단계를 따르세요.
측면 이동 관련 상관관계가 있는 위협 문제를 트리거하려면
Privilege Escalation: Launch of privileged Kubernetes container및Execution: Container Escape의 두 가지 발견 사항을 만들어야 합니다. GKE 클러스터에서 Ubuntu 포드를 만들고 이 두 가지 발견 사항을 트리거하려면 다음 명령어를 실행하세요.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"상관관계가 있는 위협 문제가 나타나기까지 최대 1시간이 걸릴 수 있습니다.
상관관계가 있는 위협 문제가 생성된 후 테스트에 사용한 Kubernetes 포드를 삭제하기 위해 아래 명령어를 실행하여 정리를 수행하세요.
kubectl delete pod "$tag"
Compute Engine에서 측면 이동 공격 에뮬레이션
이 섹션에서는Google Cloud 콘솔과 Cloud Shell을 사용하여 Compute Engine에서 측면 이동 공격을 에뮬레이션하고 상관관계가 있는 위협 문제를 만드는 방법을 설명합니다. 이렇게 하려면 먼저 Cloud Shell을 활성화하고 프로젝트를 선택한 다음 테스트를 수행해야 합니다.
측면 이동 공격을 에뮬레이션하여 상관관계가 있는 위협을 테스트하려면 다음 단계를 따르세요.
다음 콘텐츠를 포함한
lateral_movement_test.sh파일을 만듭니다. 이 스크립트는 여러 Compute Engine VM을 만들고Lateral Movement: Modified Boot Disk Attached to Instance및Malware: 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_name스크립트를 실행 가능하게 만듭니다.
chmod +x lateral_movement_test.sh발견 사항을 생성하려면 스크립트를 실행하세요.
./lateral_movement_test.sh --project_id $PROJECT --zone $ZONE상관관계가 있는 위협 문제가 나타나기까지 최대 1시간이 걸릴 수 있습니다.
문제가 생성된 후 테스트 스크립트 출력에 포함된 명령어를 사용하여 정리하세요.
gcloud compute instances delete $(cat .lateral_movement_test_name)
다음 단계
- 상관관계가 있는 위협 작동 방식 알아보기