Como filtrar descobertas no GuardDuty - Amazon GuardDuty

Como filtrar descobertas no GuardDuty

Um filtro de descoberta permite que você visualize descobertas que correspondam aos critérios especificados e filtre quaisquer descobertas sem correspondência. Você pode criar facilmente filtros de busca usando o console do Amazon GuardDuty ou pode criá-los com a API CreateFilter usando JSON. Consulte as seções a seguir para entender como criar um filtro no console. Para usar esses filtros para arquivar automaticamente as descobertas recebidas, consulte Regras de supressão no GuardDuty.

Ao criar filtros, leve em consideração a seguinte lista:

  • O GuardDuty não aceita curingas para critérios de filtro.

  • Você pode especificar no mínimo um atributo ou no máximo 50 atributos como critérios para um determinado filtro.

  • Ao usar o operador igual a ou diferente de para filtrar um valor de atributo, como ID da conta, você pode especificar um máximo de 50 valores.

  • Cada atributo de critério de filtro é avaliado como um operador AND. Vários valores para o mesmo atributo são avaliados como AND/OR.

  • Para obter informações sobre o número máximo de filtros salvos que podem ser criados em uma Conta da AWS em cada Região da AWS, consulte Cotas do GuardDuty.

As seções a seguir fornecem instruções sobre como criar e salvar filtros usando o console do GuardDuty e os comandos de API e CLI. Escolha seu método de acesso preferido para continuar.

Como criar e salvar um conjunto de filtros no console do GuardDuty

Os filtros de descobertas podem ser criados e testados pela interface do usuário do GuardDuty. Os filtros criados pela interface do usuário podem ser salvos para uso em regras de supressão ou em operações futuras de filtro. Um filtro é composto por pelo menos um critério de filtro, que consiste em um atributo de filtro emparelhado com pelo menos um valor.

Para criar e salvar critérios de filtro (console)
  1. Faça login no Console de gerenciamento da AWS e abra o console do GuardDuty em https://console.aws.amazon.com/guardduty/.

  2. No painel de navegação à esquerda, escolha Descobertas.

  3. Na página Descobertas, selecione a barra Filtrar descobertas ao lado do menu Regras salvas. Isso exibirá uma lista expandida de Filtros de propriedades.

    Seleção de filtros de propriedades para filtrar descobertas no console do GuardDuty.
  4. Na lista expandida de filtros, selecione um atributo com base no qual você deseja filtrar a tabela de descobertas.

    Por exemplo, para ver descobertas sobre as quais o recurso potencialmente afetado é um S3Bucket, escolha Tipo de recurso.

  5. Para Operadores, escolha um que ajude você a filtrar as descobertas para obter o resultado desejado. Para continuar o exemplo da etapa anterior, escolha Tipo de recurso =. Isso exibirá uma lista de tipos de recursos no GuardDuty.

    Seleção do operador “é igual” ou “não é igual” para filtrar as descobertas no console do GuardDuty.

    Se seu caso de uso exigir a exclusão de descobertas específicas, você pode escolher o operador Não é igual ou !=.

  6. Especifique o valor do filtro de propriedade selecionado. Se necessário, escolha Aplicar. Para continuar o exemplo da etapa anterior, você pode escolher S3Bucket.

    Isso exibirá as descobertas que correspondem aos filtros aplicados.

  7. Para adicionar mais de um critério de filtro, repita as etapas 3 a 6.

    Para obter uma lista completa de atributos, consulte Filtros de propriedades no GuardDuty.

  8. (Opcional) Salve os atributos e valores especificados como filtros.

    Para aplicar essa combinação de filtros novamente no futuro, você pode salvar os atributos especificados e os respectivos valores como um conjunto de filtros.

    1. Depois de criar um critério de filtro com um ou mais filtros de propriedade, selecione a seta no menu Limpar filtros.

      Salvando um conjunto de filtros no console do GuardDuty para poder filtrar as descobertas novamente.
    2. Insira o nome do conjunto de filtros. O nome deve ter de 3 a 64 caracteres. Os caracteres válidos são a-z, A-Z, 0-9, ponto (.), hífen (-) e sublinhado (_).

    3. A descrição é opcional. Se você inserir uma descrição, ela pode ter até 512 caracteres.

    4. Escolha Criar.

Criar e salvar conjunto de filtros usando a API e CLI do GuardDuty

Você pode criar e testar os filtros de descoberta usando os comandos da API ou da CLI. Um filtro é composto por pelo menos um critério de filtro, que consiste em um atributo de filtro emparelhado com pelo menos um valor. Você pode salvar filtros para criar Regras de supressão ou realizar outras operações de filtro posteriormente.

Para criar filtros de descoberta usando API/CLI
  • Execute a API CreateFilter usando o ID do detector regional da Conta da AWS do local em que você deseja criar um filtro.

    Para encontrar o detectorId para a sua conta e a região atual, consulte a página Configurações no console https://console.aws.amazon.com/guardduty/ ou execute a API ListDetectors.

  • Como alternativa, você pode usar a CLI create-filter para criar e salvar o filtro. Você pode usar um ou mais critérios de filtragem dos Filtros de propriedades no GuardDuty.

    Use os exemplos a seguir substituindo os valores de espaço reservado mostrados em vermelho.

    Exemplo 1: crie um novo filtro para visualizar todas as descobertas que correspondem a um tipo específico de descoberta

    O exemplo a seguir cria um filtro que corresponde a todas as descobertas de PortScan para uma instância criada com base em uma imagem específica. Os valores do espaço reservado são mostrados em vermelho. Substitua esses valores por valores adequados para sua conta. Por exemplo, substitua 12abc34d567e8fa901bc2d34EXAMPLE por seu próprio ID de detector regional.

    aws guardduty create-filter \ --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \ --name FilterExampleName \ --finding-criteria '{"Criterion": {"type": {"Equals": ["Recon:EC2/Portscan"]}, "resource.instanceDetails.imageId": {"Equals":["ami-0a7a207083example"]}} }'
    Exemplo 2: crie um novo filtro para visualizar todas as descobertas que correspondem aos níveis de gravidade

    O exemplo a seguir cria um filtro que corresponde a todas as descobertas associadas aos níveis de gravidade HIGH. Os valores do espaço reservado são mostrados em vermelho. Substitua esses valores por valores adequados para sua conta. Por exemplo, substitua 12abc34d567e8fa901bc2d34EXAMPLE por seu próprio ID de detector regional.

    aws guardduty create-filter \ --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \ --name FilterExampleName \ --finding-criteria '{"Criterion": {"severity": {"Equals": ["7", "8"]}} }'
  • Para API/CLI, os Níveis de gravidade das descobertas são representados como números. Para filtrar as descobertas com base nos níveis de gravidade, use os seguintes valores:

    • Para níveis de gravidade LOW, use { "severity": { "Equals": ["1", "2", "3"] } }

    • Para níveis de gravidade MEDIUM, use { "severity": { "Equals": ["4", "5", "6"] } }

    • Para níveis de gravidade HIGH, use { "severity": { "Equals": ["7", "8"] } }

    • Para níveis de gravidade CRITICAL, use { "severity": { "Equals": ["9", "10"] } }

    • Para descobertas com vários níveis de gravidade, use valores de espaço reservado semelhantes ao seguinte exemplo: { "severity": { "Equals": ["7", "8", "9", "10"] } }

      Este exemplo mostrará as descobertas que têm níveis de gravidade HIGH ou CRITICAL.

      nota

      Se você especificar um exemplo com apenas um valor numérico em vez de todos os valores numéricos associados a um nível de gravidade, a API e a CLI poderão mostrar as descobertas filtradas. Quando você usa esse conjunto de filtros salvo no console do GuardDuty, ele não funcionará conforme esperado. Isso ocorre porque o console do GuardDuty considera os valores do filtro como CRITICAL, HIGH, MEDIUM e LOW. Por exemplo, espera-se que um filtro criado com um comando CLI que inclua { "severity": { "Equals": ["9"] } } mostre uma saída apropriada na API/CLI. No entanto, esse filtro salvo inclui um nível de gravidade parcial quando usado no console do GuardDuty e não mostrará a saída esperada. Isso torna necessário que a API e a CLI especifiquem todos os valores associados a cada nível de gravidade.

Filtros de propriedades no GuardDuty

Ao criar filtros ou classificar descobertas usando as operações da API, você deve especificar critérios de filtro em JSON. Esses critérios de filtro se correlacionam com o JSON dos detalhes de uma descoberta. A tabela a seguir contém uma lista dos nomes de exibição do console para atributos de filtro e seus nomes de campo JSON equivalentes.

Nome do campo do console

Nome do campo JSON

ID da conta

accountId

ID da descoberta

id

Região

região

Gravidade

severidade

Para filtrar os tipos de descoberta com base no nível de gravidade dos tipos de descoberta. Para obter mais informações sobre valores de severidade, consulte Níveis de gravidade das descobertas do GuardDuty. Se você usar severity com a API, AWS CLI ou CloudFormation, ele terá um valor numérico. Para obter mais informações, consulte findingCriteria na Referência da API do Amazon GuardDuty.

Tipo de descoberta

type

Atualizado em

updatedAt

Access Key ID

resource.accessKeyDetails.accessKeyId

Principal ID

resource.accessKeyDetails.principalId

Nome de usuário

resource.accessKeyDetails.userName

Tipo de usuário

resource.accessKeyDetails.userType

ID do perfil da instância do IAM

resource.instanceDetails.iamInstanceProfile.id

ID da instância

resource.instanceDetails.instanceId

ID da imagem da instância

resource.instanceDetails.imageId

Chave de tag da instância

resource.instanceDetails.tags.key

Valor de tag da instância

resource.instanceDetails.tags.value

Endereço IPv6

resource.instanceDetails.networkInterfaces.ipv6Addresses

Endereço IPv4 privado

resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

Nome público do DNS

resource.instanceDetails.networkInterfaces.publicDnsName

IP público

resource.instanceDetails.networkInterfaces.publicIp

ID do grupo de segurança

resource.instanceDetails.networkInterfaces.securityGroups.groupId

Nome do security group

resource.instanceDetails.networkInterfaces.securityGroups.groupName

ID da sub-rede

resource.instanceDetails.networkInterfaces.subnetId

ID da VPC

resource.instanceDetails.networkInterfaces.vpcId

ARN do Outpost

resource.instanceDetails.outpostARN

Tipo de recurso

resource.resourceType

Permissões do bucket

resource.s3BucketDetails.publicAccess.effectivePermissions

Nome do bucket

resource.s3BucketDetails.name

Bucket tag key

resource.s3BucketDetails.tags.key

Bucket tag value

resource.s3BucketDetails.tags.value

Tipo de bucket

resource.s3BucketDetails.type

Tipo de ação

service.action.actionType

API chamada

service.action.awsApiCallAction.api

Tipo de chamador da API

service.action.awsApiCallAction.callerType

Códigos de erro da API

service.action.awsApiCallAction.errorCode

Cidade do chamador da API

service.action.awsApiCallAction.remoteIpDetails.city.cityName

País do chamador da API

service.action.awsApiCallAction.remoteIpDetails.country.countryName

Endereço IPv4 do chamador da API

service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

Endereço IPv6 do chamador da API

service.action.awsapiCallaction.remoteIpDetails.IPAddressV6

ID de ASN do chamador da API

service.action.awsApiCallAction.remoteIpDetails.organization.asn

Nome de ASN do chamador da API

service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

Nome do serviço de chamador da API

service.action.awsApiCallAction.serviceName

Domínio de solicitação de DNS

service.action.dnsRequestAction.domain

Sufixo de domínio de solicitação de DNS

service.action.dnsrequestAction.Domain com sufixo

Conexão de rede bloqueada

service.action.networkConnectionAction.blocked

Direção de conexão de rede

service.action.networkConnectionAction.connectionDirection

Porta local de conexão de rede

service.action.networkConnectionAction.localPortDetails.port

Protocolo de conexão de rede

service.action.networkConnectionAction.protocol

Cidade de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.city.cityName

País de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.country.countryName

Endereço IPv4 remoto de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

Endereço IPv6 remoto de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.IPAddressV6

ID de ASN do IP remoto de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.organization.asn

Nome de ASN do IP remoto de conexão de rede

service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

Porta remota de conexão de rede

service.action.networkConnectionAction.remotePortDetails.port

Conta remota afiliada

service.action.awsApiCallAction.remoteAccountDetails.affiliated

Endereço IPv4 do chamador da API do Kubernetes

service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

Endereço IPv6 do chamador da API do Kubernetes

service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

Namespace do Kubernetes

service.action.kubernetesApiCallAction.namespace

ID ASN do chamador da API Kubernetes

service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

URI de solicitação de chamada de API do Kubernetes

service.action.kubernetesApiCallAction.requestUri

Código de status da API do Kubernetes

service.action.kubernetesApiCallAction.statusCode

Endereço IPv4 local da conexão de rede

service.action.networkConnectionAction.localIpDetails.ipAddressV4

Endereço IPv6 local da conexão de rede

service.action.networkConnectionAction.localIPDetails.IPAddressV6

Protocolo

service.action.networkConnectionAction.protocol

Nome do serviço de chamada de API

service.action.awsApiCallAction.serviceName

ID da conta do chamador da API

service.action.awsApiCallAction.remoteAccountDetails.accountId

Nome da lista de ameaças

service.additionalInfo.threatListName

Função do recurso

service.resourceRole

Nome do cluster do EKS

resource.eksClusterDetails.name

Nome da workload do Kubernetes

resource.kubernetesDetails.kubernetesWorkloadDetails.name

Namespace de workload do Kubernetes

resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

Nome de usuário do Kubernetes

resource.kubernetesDetails.kubernetesUserDetails.username

Imagem de contêiner do Kubernetes

resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

Prefixo de imagens de contêiner do Kubernetes

resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

ID de verificação

service.ebsVolumeScanDetails.scanId

Nome da ameaça de escaneamento de volume do EBS

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

Nome da ameaça de verificação do objeto do S3

service.malwareScanDetails.threats.name

Gravidade da ameaça

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

Arquivo SHA

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

Nome do cluster do ECS

resource.ecsClusterDetails.name

Imagens de contêiner do ECS

resource.ecsClusterDetails.taskDetails.containers.image

ARN da definição de tarefas do ECS

resource.ecsClusterDetails.taskDetails.definitionArn

Imagem de contêiner autônoma

resource.containerDetails.image

ID da instância de banco de dados

resource.rdsDbInstanceDetails.dbInstanceIdentifier

ID do cluster de banco de dados

resource.rdsDbInstanceDetails.dbClusterIdentifier

Mecanismo do banco de dados

resource.rdsDbInstanceDetails.engine

Usuário do banco de dados

resource.rdsDbUserDetails.user

Chave de tags de instâncias de banco

resource.rdsDbInstanceDetails.tags.key

Valor de tag de instância de banco de dados

resource.rdsDbInstanceDetails.tags.value

SHA-256 executável

service.runtimeDetails.process.executableSha256

Nome do processo

service.runtimeDetails.process.name

Caminho executável

service.runtimeDetails.process.executablePath

Nome de função do Lambda

resource.lambdaDetails.functionName

ARN da função do Lambda.

resource.lambdaDetails.functionArn

Chave de tags de funções do Lambda

resource.lambdaDetails.tags.key

Valor de tags de funções do Lambda

resource.lambdaDetails.tags.value

Domínio de solicitação de DNS

service.action.dnsrequestAction.Domain com sufixo