Teste as descobertas do GuardDuty em contas dedicadas
Use este documento para executar um script de testador que gera descobertas do GuardDuty em relação aos recursos de teste que serão implantados em seu Conta da AWS. Pode-se executar essas etapas quando se deseja entender e aprender sobre determinados tipos de descoberta do GuardDuty e como os detalhes da descoberta aparecem para os recursos efetivos em sua conta. Essa experiência é diferente de gerar Descobertas de exemplo. Para mais informações sobre a experiência de testar descobertas do GuardDuty, consulte Considerações.
Conteúdo
Considerações
Antes de continuar, leve em conta as seguintes considerações:
-
O GuardDuty recomenda implantar o testador em uma área dedicada que não seja de produção Conta da AWS. Essa abordagem garantirá que seja possível identificar adequadamente as descobertas do GuardDuty geradas pelo testador. Além disso, o testador do GuardDuty implanta uma variedade de recursos que podem exigir permissões do IAM além das permitidas em outras contas. O uso de uma conta exclusiva garante que as permissões possam ter o escopo adequado com um limite de conta claro.
-
O script do testador gera mais de 100 descobertas do GuardDuty com diferentes combinações de recursos AWS. Atualmente, isso não inclui todos os Tipos de descoberta do GuardDuty. Para obter uma lista dos tipos de descoberta que você pode gerar com esse script de testador, consulte O script do testador de descobertas do GuardDuty pode gerar.
Observação
Para visualizar os tipos de descoberta da sequência de ataque, o script do testador gera somente AttackSequence:EKS/CompromisedCluster e AttackSequence:S3/CompromisedData. Para visualizar e entender AttackSequence:IAM/CompromisedCredentials, você pode gerar Descobertas de exemplo na sua conta.
-
Para que o testador do GuardDuty funcione como esperado, o GuardDuty precisa ser habilitado na conta em que os recursos do testador forem implantados. Dependendo dos testes que serão executados, o testador avalia se os planos de proteção apropriados do GuardDuty estão habilitados ou não. Para qualquer plano de proteção que não esteja habilitado, o GuardDuty solicitará permissão para habilitar os planos de proteção necessários por tempo suficiente para que o GuardDuty realize os testes que gerarão descobertas. Posteriormente, o GuardDuty desabilitará o plano de proteção assim que o teste for concluído.
- Como habilitar o GuardDuty pela primeira vez
-
Ao habilitar o GuardDuty na sua conta exclusiva pela primeira vez em uma região específica, sua conta ficará automaticamente inscrita em uma avaliação gratuita de 30 dias.
O GuardDuty oferece outras opções de planos de proteção. No momento da habilitação do GuardDuty, determinados planos de proteção também são habilitados e estão incluídos na avaliação gratuita de 30 dias do GuardDuty. Para obter mais informações, consulte Usando a avaliação gratuita de 30 dias do GuardDuty.
- O GuardDuty já foi habilitado em sua conta antes da execução do script do testador
-
Quando o GuardDuty já estiver habilitado, com base nos parâmetros, o script do testador verificará o status da configuração de determinados planos de proteção e outras configurações de nível de conta que são necessárias para gerar as descobertas.
Ao executar esse script de teste, determinados planos de proteção podem ser habilitados pela primeira vez em sua conta exclusiva em uma região. Esse procedimento iniciará a avaliação gratuita de 30 dias para esse plano de proteção. Para obter informações sobre o teste gratuito associado a cada plano de proteção, consulte Usando a avaliação gratuita de 30 dias do GuardDuty.
-
Desde que a infraestrutura do testador do GuardDuty esteja implantada, você poderá ocasionalmente receber descobertas UnauthorizedAccess:EC2/TorClient da instância do PenTest.
O script do testador de descobertas do GuardDuty pode gerar
Atualmente, o script do testador gera os seguintes tipos de descoberta relacionados aos registros de auditoria do Amazon EC2, do Amazon EKS, Amazon S3, do IAM e logs de auditoria do EKS:
Etapa 1: pré-requisitos
Para preparar seu ambiente de teste, é preciso ter os seguintes itens:
-
Git — Instale a ferramenta de linha de comando git com base no sistema operacional usado.
Isso é necessário para clonar o
amazon-guardduty-testerrepositório. -
AWS Command Line Interface: uma ferramenta de código aberto que permite interagir com o Serviços da AWS usando comandos no shell da linha de comando. Para obter mais informações, consulte Conceitos básicos do AWS CLI no Manual do usuário do AWS Command Line Interface.
-
AWS Systems Manager— Para iniciar sessões do Session Manager com seus nós gerenciados usando AWS CLI é necessário instalar o plug-in do Session Manager em sua máquina local. Para obter mais informações, consulte Install the Session Manager Plugin for the AWS CLI no Guia do usuário do AWS Systems Manager.
-
Node Package Manager (NPM) — Instale o NPM para instalar todas as dependências.
-
Docker: é necessário ter o Docker instalado. Para obter instruções de instalação, consulte o site do Docker
. Para verificar se o Docker foi instalado, execute o comando a seguir e confirme se há uma saída semelhante à seguinte saída:
$ docker --version Docker version 19.03.1 -
Assine a imagem do Kali Linux
no AWS Marketplace.
Etapa 2: Implantar recursos do AWS
Esta seção fornece uma lista dos principais conceitos e as etapas para implantar determinados recursos do AWS em sua conta dedicada.
Conceitos
A lista a seguir fornece os principais conceitos relacionados aos comandos que ajudam a implantar os recursos:
-
AWS Cloud Development Kit (AWS CDK) – CDK é uma estrutura de desenvolvimento de software de código aberto para definir sua infraestrutura de nuvem em código e provisioná-la pelo CloudFormation. Você pode usar qualquer uma dessas linguagens de programação compatíveis para definir componentes de nuvem reutilizáveis conhecidos como constructos. Você os compõe em pilhas e aplicativos. Em seguida, você implanta seus aplicativos CDK para CloudFormation para provisionar ou atualizar seus recursos. Para obter mais informações, consulte O que é o AWS CDK? no Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK).
-
Bootstrapping - é o processo de preparar seu ambiente da AWS para uso com AWS CDK. Antes de implantar uma pilha do CDK em um ambiente da AWS, o ambiente deve primeiro receber o bootstrapping. Esse processo de provisionamento de recursos AWS específicos em seu ambiente que são usados por AWS CDK faz parte das etapas que você executará na próxima seção - Etapas para implantar recursos do AWS.
Para obter mais informações sobre inicialização, consulte Inicialização no Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK).
Etapas para implantar recursos do AWS
Execute as etapas a seguir para começar a implantar os recursos:
-
Configure sua conta e região AWS CLI padrão, a menos que as variáveis de região da conta dedicada sejam definidas manualmente no arquivo
bin/cdk-gd-tester.ts. Para obter mais informações, consulte Ambientes no Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK). -
Para implantar os recursos, execute os seguintes comandos:
git clone https://github.com/awslabs/amazon-guardduty-tester && cd amazon-guardduty-tester npm install cdk bootstrap cdk deployO último comando (
cdk deploy) cria uma pilha CloudFormation em seu nome. O nome dessa pilha é GuardDutyTesterStack.Como parte desse script, o GuardDuty cria novos recursos para gerar descobertas do GuardDuty em sua conta. Além disso, ele adiciona o seguinte par de tag chave:valor às instâncias do Amazon EC2:
CreatedBy:GuardDuty Test ScriptAs instâncias do Amazon EC2 também incluem as instâncias do EC2 que hospedam nós do EKS e clusters do ECS.
Tipos de instância
O GuardDuty foi projetado para usar tipos de instância econômicos que fornecem o desempenho mínimo necessário para realizar testes com êxito. Devido aos requisitos de vCPU, o grupo de nós do Amazon EKS exige
t3.medium, e, devido ao aumento da capacidade de rede necessária para testes de descoberta de DenialOfService, o nó do driver exigem6i.large. Para todos os outros testes, o GuardDuty usa o tipo de instânciat3.micro. Para obter mais informações sobre os tipos de instância, consulte Tipos de instância no Guia de Tipos de Instâncias do Amazon EC2.
Etapa 3 - Executar scripts do testador
Esse é um processo de duas etapas em que primeiro é necessário iniciar uma sessão com o driver de teste e, em seguida, executar scripts para gerar resultados do GuardDuty com combinações específicas de recursos.
-
Depois que seus recursos forem implantados, salve o código da região em uma variável na sessão atual do terminal. Use o comando a seguir e substitua
us-east-1pelo código da região em que os recursos foram implantados:$ REGION=us-east-1 -
O script do testador está disponível somente por meio do AWS Systems Manager (SSM). Para iniciar um shell interativo na instância do host do testador, consulte o instanceID do host.
-
Use o comando a seguir para iniciar sua sessão para o script do testador:
aws ssm start-session --region $REGION --document-name AWS-StartInteractiveCommand --parameters command="cd /home/ssm-user/py_tester && bash -l" --target $(aws ec2 describe-instances --region $REGION --filters "Name=tag:Name,Values=Driver-GuardDutyTester" --query "Reservations[].Instances[?State.Name=='running'].InstanceId" --output text)
O script do testador é um programa baseado em Python que cria dinamicamente um script bash para gerar descobertas com base em sua entrada. Você tem flexibilidade para gerar descobertas com base em um ou mais tipos de recursos AWS, planos de proteção do GuardDuty OBJETIVO DA AMEAÇA (táticas), Fontes de dados fundamentais ou O script do testador de descobertas do GuardDuty pode gerar.
Use os exemplos de comandos a seguir como referência e execute um ou mais comandos para gerar as descobertas que deseja explorar:
python3 guardduty_tester.py python3 guardduty_tester.py --allpython3 guardduty_tester.py --s3python3 guardduty_tester.py --tacticsdiscoverypython3 guardduty_tester.py --ec2--eks--tacticsbackdoorpolicyexecutionpython3 guardduty_tester.py --eks--runtimeonly python3 guardduty_tester.py --ec2--runtimeonly --tacticsimpactpython3 guardduty_tester.py --log-sourcednsvpc-flowlogspython3 guardduty_tester.py --finding 'CryptoCurrency:EC2/BitcoinTool.B!DNS'
Para obter mais informações sobre parâmetros válidos, execute o comando de ajuda a seguir:
python3 guardduty_tester.py --help
Escolha um método de sua preferência para visualizar as descobertas geradas em sua conta.
Etapa 4: limpar os recursos de teste AWS
As configurações em nível de conta e outras atualizações de status de configuração feitas durante o retorno Etapa 3 - Executar scripts do testador ao estado original quando o script do testador é concluído.
Depois de executar o script do testador, você pode optar por limpar os recursos de teste AWS. Isso pode ser feito usando um dos seguintes métodos.
-
Execute o seguinte comando:
cdk destroy -
Exclua a pilha CloudFormation com o nome GuardDutyTesterStack. Para obter mais informações, consulte Exclusão de uma pilha no console doCloudFormation.
Solucionar problemas comuns
O GuardDuty identificou problemas comuns e recomenda algumas etapas para a solução de problemas:
-
Cloud assembly schema version mismatch– atualize CLI AWS CDK para uma versão compatível com a versão de montagem em nuvem necessária ou para a versão mais recente disponível. Para obter mais informações sobre a compatibilidade da CLI AWS CDK. -
Docker permission denied– Adicione o usuário da conta exclusiva a docker ou docker-users para que a conta exclusiva possa executar os comandos. Para obter mais informações sobre as etapas, consulte a opção de soquete Daemon. -
Your requested instance type is not supported in your requested Availability Zone— Algumas zonas de disponibilidade não oferecem suporte a tipos específicos de instância. Para identificar quais zonas de disponibilidade oferecem suporte ao seu tipo de instância preferido e tentar implantar recursos AWS novamente, execute as seguintes etapas:-
Selecione um método de sua preferência para determinar quais zonas de disponibilidade são compatíveis com seu tipo de instância:
-
Tente implantar os AWS recursos novamente e especifique uma zona de disponibilidade compatível com seu tipo de instância preferido.
Para tentar implantar recursos AWS novamente
-
Configure a região padrão no arquivo
bin/cdk-gd-tester.ts. -
Para especificar a zona de disponibilidade, abra o arquivo
amazon-guardduty-tester/lib/common/network/vpc.ts. -
Nesse arquivo, substitua
maxAzs: 2,poravailabilityZones: ['onde você deve especificar as zonas de disponibilidade para seu tipo de instância.us-east-1a', 'us-east-1c'], -
Continue com as etapas restantes em Etapas para implantar recursos do AWS.
-
-