Como testar o Container Threat Detection

>

Verifique se o Container Threat Detection está funcionando acionando intencionalmente detectores e verificando se há descobertas. O Container Threat Detection é um serviço integrado para o nível Premium do Security Command Center. Para ver as descobertas do Container Threat Detection, é preciso ativá-la nas configurações de Serviços do Security Command Center.

Antes de começar

Para detectar possíveis ameaças aos contêineres, verifique se os clusters estão em uma versão compatível do Google Kubernetes Engine (GKE). Para mais informações, consulte Como usar uma versão compatível do GKE.

Adição de binário executado

Para acionar uma descoberta de adição de binário executado, solte um binário no contêiner e execute-o. Este exemplo implanta a imagem mais recente do Ubuntu 18.04, copia o /bin/ls para outro local e o executa. A execução do binário é inesperada porque a cópia do binário não fazia parte da imagem do contêiner original, mesmo quando essa imagem estava no Ubuntu 18.04 e os contêineres eram imutáveis.

  1. Acesse o Console do Google Cloud.
    Acessar o Console do Google Cloud
  2. Selecione o projeto que contém o contêiner que você quer usar.
  3. Clique em Ativar o Cloud Shell.
  4. No Cloud Shell, defina as variáveis de ambiente:

    1. E-mail da sua conta de serviço:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. A zona em que seu cluster está:

      export ZONE=cluster-zone
      
    3. O projeto em que o contêiner está:

      export CONSUMER_PROJECT=project-name
      
    4. O nome do cluster:

      export CLUSTER_NAME=cluster-name
      
  5. Acesse o plano de controle do cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. Solte um binário e execute-o:

    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"
    

Este procedimento de teste criará uma descoberta executada em binário que você possa ver no Security Command Center e no Cloud Logging se tiver configurado o Logging para detecção de ameaças do contêiner.

Adição de biblioteca carregada

Para acionar uma adição de biblioteca carregada, solte uma biblioteca no contêiner e carregue-a. Este exemplo implanta a imagem mais recente do Ubuntu 18.04, copia o /lib/x86_64-linux-gnu/libc.so.6 para outro local e, em seguida, carrega usando ld. A biblioteca carregada é inesperada porque a cópia da biblioteca não fazia parte da imagem do contêiner original, mesmo que essa imagem estivesse no Ubuntu 18.04 e os contêineres fossem imutáveis.

  1. Acesse o Console do Google Cloud.
    Acessar o Console do Google Cloud
  2. Selecione o projeto que contém o contêiner que você quer usar.
  3. Clique em Ativar o Cloud Shell.
  4. No Cloud Shell, defina as variáveis de ambiente:

    1. E-mail da sua conta de serviço:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. A zona em que seu cluster está:

      export ZONE=cluster-zone
      
    3. O projeto em que o contêiner está:

      export CONSUMER_PROJECT=project-name
      
    4. O nome do cluster:

      export CLUSTER_NAME=cluster-name
      
  5. Acesse o plano de controle do cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. Solte uma biblioteca e use ld para carregá-la:

    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"
    

Esse procedimento de teste criará uma biblioteca adicionada carregada que pode ser visualizada no Security Command Center e no Cloud Logging se você tiver configurado o Logging para detecção de ameaças do contêiner.

Shell reverso

Para acionar uma descoberta de shell reverso, inicie um binário com redirecionamento stdin para um soquete conectado TCP. Neste exemplo, /bin/echo é iniciado com redirecionamento para o DNS público do Google 8.8.8.8 na porta DNS. Nada é impresso quando você executa este exemplo. Para evitar qualquer injeção de código externo por meio de um ataque intermediário (MITM), este exemplo não usa o /bin/bash binary.

  1. Acesse o Console do Google Cloud.
    Acessar o Console do Google Cloud
  2. Selecione o projeto que contém o contêiner que você quer usar.
  3. Clique em Ativar o Cloud Shell.
  4. No Cloud Shell, defina as variáveis de ambiente:

    1. E-mail da sua conta de serviço:

      export SERVICE_ACCOUNT_EMAIL=service-account-address@iam.gserviceaccount.com
      
    2. A zona em que seu cluster está:

      export ZONE=cluster-zone
      
    3. O projeto em que o contêiner está:

      export CONSUMER_PROJECT=project-name
      
    4. O nome do cluster:

      export CLUSTER_NAME=cluster-name
      
  5. Acesse o plano de controle do cluster:

    gcloud container clusters get-credentials $CLUSTER_NAME \
     --zone $ZONE \
     --project $CONSUMER_PROJECT
    
  6. Inicie um binário com redirecionamento /bin/echo para o DNS público do Google:

    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"
    

Este procedimento de teste criará uma descoberta de shell reverso que pode ser vista no Security Command Center e no Cloud Logging, se você tiver configurado o Logging para Container Threat Detection.

A seguir