Container Threat Detection 테스트

>

의도적으로 감지기를 트리거하고 발견 항목을 확인하여 Container Threat Detection이 작동하는지 확인합니다. Container Threat Detection은 Security Command Center 프리미엄 등급을 위한 기본 서비스입니다. Container Threat Detection 발견 항목을 보려면 Security Command Center 소스 및 서비스 설정에서 Container Threat Detection을 사용 설정해야 합니다.

시작하기 전에

컨테이너에 대한 잠재적인 위협을 감지하려면 클러스터가 지원되는 Google Kubernetes Engine(GKE) 버전인지 확인해야 합니다. 자세한 내용은 지원되는 GKE 버전 사용을 참조하세요.

추가된 바이너리가 실행됨

'추가된 바이너리가 실행됨' 발견 항목을 트리거하려면 컨테이너에서 바이너리를 드롭하고 실행합니다. 이 예시에서는 최신 Ubuntu 18.04 이미지를 배포하고 /bin/ls를 다른 위치에 복사한 다음 실행합니다. Ubuntu 18.04에 해당 이미지가 있음에도 라이브러리의 복사본이 원본 컨테이너 이미지의 일부가 아니고 컨테이너는 불변이기 때문에 이는 예상치 못한 것입니다.

  1. Google Cloud Console로 이동합니다.
    Google Cloud Console로 이동
  2. 테스트에 사용할 컨테이너가 포함된 프로젝트를 선택합니다.
  3. Cloud Shell 활성화를 클릭합니다.
  4. Cloud Shell에서 환경 변수를 설정합니다.

    1. 서비스 계정 이메일:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. 클러스터가 있는 영역:

      export ZONE=cluster-zone
      
    3. 컨테이너가 있는 프로젝트:

      export CONSUMER_PROJECT=project-name
      
    4. 클러스터 이름:

      export CLUSTER_NAME=cluster-name
      
  5. 클러스터 제어 계획에 액세스:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. 바이너리 삽입 및 실행:

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

이렇게 하면 Cloud Logging에서, Container Threat Detection용 로깅을 구성한 경우에는 Security Command Center에서 볼 수 있는 '추가된 바이너리가 실행됨' 발견 항목이 생성됩니다.

추가된 라이브러리가 로드됨

'추가된 라이브러리가 로드됨' 트리거를 트리거하려면 컨테이너에서 라이브러리를 드롭한 다음 로드합니다. 이 예시에서는 최신 Ubuntu 18.04 이미지를 배포하고 /lib/x86_64-linux-gnu/libc.so.6를 다른 위치에 복사 한 다음 ld를 사용하여 로드합니다. Ubuntu 18.04에 해당 이미지가 있음에도 라이브러리의 복사본이 원본 컨테이너 이미지의 일부가 아니고 컨테이너는 불변이기 때문에 이는 예상치 못한 것입니다.

  1. Google Cloud Console로 이동합니다.
    Google Cloud Console로 이동
  2. 테스트에 사용할 컨테이너가 포함된 프로젝트를 선택합니다.
  3. Cloud Shell 활성화를 클릭합니다.
  4. Cloud Shell에서 환경 변수를 설정합니다.

    1. 서비스 계정 이메일:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. 클러스터가 있는 영역:

      export ZONE=cluster-zone
      
    3. 컨테이너가 있는 프로젝트:

      export CONSUMER_PROJECT=project-name
      
    4. 클러스터 이름:

      export CLUSTER_NAME=cluster-name
      
  5. 클러스터 제어 계획에 액세스:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. 라이브러리를 삽입하고 ld를 사용하여 로드:

    tag="dropped-library-$(date +%Y-%m-%d-%H-%M-%S)" \
    kubectl run --restart=Never --rm=true --wait=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"
    

이렇게 하면 Cloud Logging에서, Container Threat Detection용 로깅을 구성한 경우에는 Security Command Center에서 볼 수 있는 '추가된 라이브러리가 로드됨' 발견 항목이 생성됩니다.

역방향 셸

역방향 셸 발견 항목을 트리거하려면 TCP 연결 소켓으로의 stdin 리디렉션으로 바이너리를 시작합니다. 이 예시는 DNS 포트의 Google 공개 DNS 8.8.8.8로 리디렉션하여 /bin/echo를 시작합니다. 이 예시를 실행하면 아무것도 인쇄되지 않습니다. 중간자(MITM) 공격을 통해 외부 코드 삽입을 방지하기 위해 이 예시에서는 /bin/bash binary을 사용하지 않습니다.

  1. Google Cloud Console로 이동합니다.
    Google Cloud Console로 이동
  2. 테스트에 사용할 컨테이너가 포함된 프로젝트를 선택합니다.
  3. Cloud Shell 활성화를 클릭합니다.
  4. Cloud Shell에서 환경 변수를 설정합니다.

    1. 서비스 계정 이메일:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. 클러스터가 있는 영역:

      export ZONE=cluster-zone
      
    3. 컨테이너가 있는 프로젝트:

      export CONSUMER_PROJECT=project-name
      
    4. 클러스터 이름:

      export CLUSTER_NAME=cluster-name
      
  5. 클러스터 제어 계획에 액세스:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. Google Public DNS로 /bin/echo 리디렉션을 사용하여 바이너리를 시작합니다.

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

Container Threat Detection에 대한 로깅을 구성한 경우, 이를 통해 Security Command Center와 Cloud Logging에서 확인할 수 있는 역방향 셸 발견 항목이 생성됩니다.

다음 단계