추가된 바이너리가 실행됨

이 문서에서는 Security Command Center의 위협 발견 항목 유형에 대해 설명합니다. 위협 발견 항목은 위협 감지기가 클라우드 리소스에서 잠재적인 위협을 감지할 때 생성됩니다. 사용 가능한 위협 발견 항목의 전체 목록은 위협 발견 항목 색인을 참고하세요.

개요

원본 컨테이너 이미지에 포함되지 않은 바이너리가 실행되었습니다. 공격자는 일반적으로 초기 침해 후 익스플로잇 도구와 멀웨어를 설치합니다. 컨테이너를 변경할 수 없도록 하는 것은 중요한 권장사항입니다. 조직에서 이 권장사항을 따르지 않을 수 있으므로 심각도가 낮은 발견 항목입니다. 바이너리의 해시가 알려진 침해 지표 (IoC)인 경우 해당하는 Execution: Added Malicious Binary Executed 발견 항목이 있습니다.

대응 방법

이 발견 항목에 대응하려면 다음을 수행하세요.

1단계: 발견 항목 세부정보 검토하기

  1. 발견 항목 검토의 지시에 따라 Added Binary Executed 발견 항목을 엽니다. 발견 항목의 세부정보 패널의 요약 탭이 열립니다.

  2. 요약 탭에서 다음 섹션의 정보를 검토합니다.

    • 특히 다음 필드를 포함하는 감지된 항목:
      • 프로그램 바이너리: 추가된 바이너리의 절대 경로
      • 인수: 추가된 바이너리를 호출할 때 제공되는 인수
    • 특히 다음 필드를 포함하는 영향을 받는 리소스:
      • 리소스 전체 이름: 프로젝트 번호, 위치, 클러스터 이름을 포함한 클러스터의 전체 리소스 이름
    • 특히 다음 필드를 포함하는 관련 링크:
      • VirusTotal 표시기: VirusTotal 분석 페이지 링크
  3. JSON을 클릭하고 다음 필드를 확인합니다.

    • resource:
      • project_display_name: 클러스터가 포함된 프로젝트 이름
    • sourceProperties:
      • Pod_Namespace: 포드의 Kubernetes 네임스페이스 이름
      • Pod_Name: GKE 포드의 이름
      • Container_Name: 영향을 받는 컨테이너의 이름
      • Container_Image_Uri: 배포 중인 컨테이너 이미지의 이름
      • VM_Instance_Name: 포드가 실행된 GKE 노드의 이름
  4. 이 컨테이너에서 비슷한 시점에 발생한 다른 발견 항목을 식별합니다. 관련 발견 항목은 권장사항을 따르지 않은 것이 아니라 악의적인 활동이었음을 의미할 수 있습니다.

2단계: 클러스터 및 노드 검토하기

  1. Google Cloud 콘솔에서 Kubernetes 클러스터 페이지로 이동합니다.

    Kubernetes 클러스터로 이동

  2. 필요한 경우 Google Cloud 콘솔 툴바에서 resource.project_display_name에 나열된 프로젝트를 선택합니다.

  3. 발견 항목 세부정보의 요약 탭에서 리소스 전체 이름 행에 나열된 클러스터를 선택합니다. 클러스터 및 해당 소유자의 모든 메타데이터를 확인합니다.

  4. 노드 탭을 클릭합니다. VM_Instance_Name에 나열된 노드를 선택합니다.

  5. 세부정보 탭을 클릭하고 container.googleapis.com/instance_id 주석을 확인합니다.

3단계: 포드 검토하기

  1. Google Cloud 콘솔에서 Kubernetes 워크로드 페이지로 이동합니다.

    Kubernetes 워크로드로 이동

  2. 필요한 경우 Google Cloud 콘솔 툴바에서 resource.project_display_name에 나열된 프로젝트를 선택합니다.

  3. 필요한 경우 발견 항목 세부정보의 요약 탭에서 리소스 전체 이름 행에 나열된 클러스터와 Pod_Namespace에 나열된 포드 네임스페이스로 필터링합니다.

  4. Pod_Name에 나열된 포드를 선택합니다. 포드 및 해당 소유자의 모든 메타데이터를 확인합니다.

4단계: 로그 확인하기

  1. Google Cloud 콘솔에서 로그 탐색기로 이동합니다.

    로그 탐색기로 이동

  2. 필요한 경우 Google Cloud 콘솔 툴바에서 resource.project_display_name에 나열된 프로젝트를 선택합니다.

  3. 기간 선택을 원하는 기간으로 설정합니다.

  4. 로드되는 페이지에서 다음을 수행합니다.

    1. 다음 필터를 사용하여 Pod_Name의 포드 로그를 찾습니다.
      • resource.type="k8s_container"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • resource.labels.namespace_name="Pod_Namespace"
      • resource.labels.pod_name="Pod_Name"
    2. 다음 필터를 사용하여 클러스터 감사 로그를 찾습니다.
      • logName="projects/resource.project_display_name/logs/cloudaudit.googleapis.com%2Factivity"
      • resource.type="k8s_cluster"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • Pod_Name
    3. 다음 필터를 사용하여 GKE 노드 콘솔 로그를 찾습니다.
      • resource.type="gce_instance"
      • resource.labels.instance_id="instance_id"

5단계: 실행 중인 컨테이너 조사하기

컨테이너가 계속 실행 중이면 컨테이너 환경을 직접 조사할 수 있습니다.

  1. Google Cloud 콘솔로 이동합니다.

    Google Cloud 콘솔 열기

  2. 필요한 경우 Google Cloud 콘솔 툴바에서 resource.project_display_name에 나열된 프로젝트를 선택합니다.

  3. Cloud Shell 활성화 를 클릭합니다.

  4. 다음 명령어를 실행하여 클러스터의 GKE 사용자 인증 정보를 가져옵니다.

    영역 클러스터의 경우:

      gcloud container clusters get-credentials cluster_name --zone location --project project_name
    

    리전 클러스터의 경우:

      gcloud container clusters get-credentials cluster_name --region location --project project_name
    

    다음을 바꿉니다.

    • cluster_name: resource.labels.cluster_name에 나열된 클러스터
    • location: resource.labels.location에 나열된 위치
    • project_name: resource.project_display_name에 나열된 프로젝트 이름
  5. 다음을 실행하여 추가된 바이너리를 검색합니다.

      kubectl cp Pod_Namespace/Pod_Name:Process_Binary_Fullpath -c Container_Name  local_file
    

    local_file을 추가된 바이너리를 저장할 로컬 파일 경로로 바꿉니다.

  6. 다음을 실행하여 컨테이너 환경에 연결합니다.

      kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
    

    이 명령어를 실행하려면 컨테이너의 셸이 /bin/sh에 설치되어 있어야 합니다.

6단계: 공격 및 대응 방법 조사하기

  1. 이 발견 항목 유형(인그레스 도구 전송, 기본 API)의 MITRE ATT&CK 프레임워크 항목을 검토합니다.
  2. VirusTotal 표시기에서 링크를 클릭하여 VirusTotal에서 악성으로 표시된 바이너리의 SHA-256 해시 값을 확인합니다. VirusTotal은 Alphabet 소유 서비스로 잠재적 악성 파일, URL, 도메인 및 IP 주소에 관한 컨텍스트를 제공합니다.
  3. 대응 계획을 개발하려면 조사 결과를 MITRE 연구 및 VirusTotal 분석과 결합합니다.

7단계: 대응 구현하기

다음의 응답 계획이 이 발견 항목에 적합할 수 있지만 작업에도 영향을 줄 수 있습니다. 조사에서 수집한 정보를 신중하게 평가하여 발견 항목을 해결할 최선의 방법을 결정해야 합니다.

  • 바이너리가 컨테이너에 포함되도록 의도된 경우 바이너리가 포함된 컨테이너 이미지를 다시 빌드합니다. 이렇게 하면 컨테이너를 변경할 수 없게 됩니다.
  • 그 외의 경우 침해된 컨테이너가 있는 프로젝트 소유자에게 문의하세요.
  • 침해된 컨테이너를 중지 또는 삭제하고 새 컨테이너로 바꿉니다.

다음 단계