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 comoAND/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)
Faça login no Console de gerenciamento da AWS e abra o console do GuardDuty em https://console.aws.amazon.com/guardduty/
. -
No painel de navegação à esquerda, escolha Descobertas.
-
Na página Descobertas, selecione a barra Filtrar descobertas ao lado do menu Regras salvas. Isso exibirá uma lista expandida de Filtros de propriedades.
-
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.
-
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.
Se seu caso de uso exigir a exclusão de descobertas específicas, você pode escolher o operador Não é igual ou !=.
-
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.
-
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.
-
(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.
-
Depois de criar um critério de filtro com um ou mais filtros de propriedade, selecione a seta no menu Limpar filtros.
-
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 (_).
-
A descrição é opcional. Se você inserir uma descrição, ela pode ter até 512 caracteres.
-
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
detectorIdpara 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
PortScanpara 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, substitua12abc34d567e8fa901bc2d34EXAMPLEpor seu próprio ID de detector regional.aws guardduty create-filter \ --detector-id12abc34d567e8fa901bc2d34EXAMPLE\ --nameFilterExampleName\ --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, substitua12abc34d567e8fa901bc2d34EXAMPLEpor seu próprio ID de detector regional.aws guardduty create-filter \ --detector-id12abc34d567e8fa901bc2d34EXAMPLE\ --nameFilterExampleName\ --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
HIGHouCRITICAL.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,MEDIUMeLOW. 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 |
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 |