EC2 Instance Stack | Raccogli informazioni su Log4j - Riferimento al tipo di modifica avanzata AMS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

EC2 Instance Stack | Raccogli informazioni su Log4j

Genera un rapporto che identifica le occorrenze di Log4j2 nelle istanze specificate. EC2 Questo è un rapporto ottimale e alcune occorrenze potrebbero non essere rilevate dal rapporto.

Classificazione completa: Gestione | Componenti avanzati dello stack | stack di EC2 istanze | Raccolta di informazioni su log4j

Dettagli del tipo di modifica

Modifica tipo ID

ct-19f40lfm5umy8

Versione corrente

2.0

Durata di esecuzione prevista

360 minuti

Approvazione AWS

Richiesto

Approvazione del cliente

Campo non obbligatorio

Modalità di esecuzione

Automatizzata

Informazioni aggiuntive

Aggiorna altro altro CTs

Di seguito viene illustrato questo tipo di modifica nella console AMS.

Information panel for Gather Log4j Information task, showing ID, execution mode, and description.

Come funziona:

  1. Vai alla pagina Crea RFC: nel riquadro di navigazione a sinistra della console AMS, fai clic RFCsper aprire la pagina dell' RFCs elenco, quindi fai clic su Crea RFC.

  2. Scegli un tipo di modifica (CT) popolare nella visualizzazione predefinita Sfoglia i tipi di modifica o seleziona un CT nella visualizzazione Scegli per categoria.

    • Naviga per tipo di modifica: puoi fare clic su un CT popolare nell'area di creazione rapida per aprire immediatamente la pagina Run RFC. Nota che non puoi scegliere una versione CT precedente con creazione rapida.

      Per ordinare CTs, utilizzate l'area Tutti i tipi di modifica nella vista a scheda o tabella. In entrambe le visualizzazioni, selezionate un CT, quindi fate clic su Crea RFC per aprire la pagina Esegui RFC. Se applicabile, accanto al pulsante Crea RFC viene visualizzata l'opzione Crea con una versione precedente.

    • Scegli per categoria: seleziona una categoria, sottocategoria, articolo e operazione e la casella dei dettagli CT si apre con l'opzione Crea con una versione precedente, se applicabile. Fai clic su Crea RFC per aprire la pagina Esegui RFC.

  3. Nella pagina Run RFC, apri l'area del nome CT per visualizzare la casella dei dettagli CT. È richiesto un oggetto (questo campo viene compilato automaticamente se si sceglie il CT nella vista Sfoglia i tipi di modifica). Apri l'area di configurazione aggiuntiva per aggiungere informazioni sull'RFC.

    Nell'area di configurazione dell'esecuzione, utilizza gli elenchi a discesa disponibili o inserisci i valori per i parametri richiesti. Per configurare i parametri di esecuzione opzionali, aprite l'area di configurazione aggiuntiva.

  4. Al termine, fate clic su Esegui. Se non sono presenti errori, viene visualizzata la pagina RFC creata correttamente con i dettagli RFC inviati e l'output iniziale di Run.

  5. Apri l'area dei parametri di esecuzione per visualizzare le configurazioni inviate. Aggiorna la pagina per aggiornare lo stato di esecuzione RFC. Facoltativamente, annulla la RFC o creane una copia con le opzioni nella parte superiore della pagina.

Come funziona:

  1. Usa Inline Create (esegui un create-rfc comando con tutti i parametri RFC e di esecuzione inclusi) o Template Create (crei due file JSON, uno per i parametri RFC e uno per i parametri di esecuzione) ed esegui il create-rfc comando con i due file come input. Entrambi i metodi sono descritti qui.

  2. Invia il aws amscm submit-rfc --rfc-id ID comando RFC: con l'ID RFC restituito.

    Monitora il comando RFC:. aws amscm get-rfc --rfc-id ID

Per verificare la versione del tipo di modifica, usa questo comando:

aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
Nota

È possibile utilizzare qualsiasi CreateRfc parametro con qualsiasi RFC, indipendentemente dal fatto che faccia parte o meno dello schema per il tipo di modifica. Ad esempio, per ricevere notifiche quando lo stato RFC cambia, aggiungi questa riga --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" alla parte dei parametri RFC della richiesta (non ai parametri di esecuzione). Per un elenco di tutti i CreateRfc parametri, consulta l'AMS Change Management API Reference.

CREAZIONE IN LINEA:

Esegui il comando create RFC con i parametri di esecuzione forniti in linea (evita le virgolette quando fornisci i parametri di esecuzione in linea), quindi invia l'ID RFC restituito. Ad esempio, puoi sostituire il contenuto con qualcosa del genere:

Versione 2.0:

Scansiona tutte le istanze:

aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"AWS::EC2::Instance\",\"Values\": [\"*\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"

Scansiona un elenco di istanze:

aws amscm create-rfc --change-type-id "ct-19f40lfm5umy8" --change-type-version "2.0" --title "Log4j Investigation" --execution-parameters "{\"DocumentName\":\"AWSManagedServices-GatherLog4jInformation\",\"Region\":\"us-east-1\",\"Parameters\":{\"S3Bucket\":[\"s3://BUCKET_NAME\"]},\"TargetParameterName\": \"InstanceId\",\"Targets\": [{\"Key\": \"ParameterValues\",\"Values\": [\"INSTANCE_ID_1\",\"INSTANCE_ID_2\",\"INSTANCE_ID_3\",\"INSTANCE_ID_4\",\"INSTANCE_ID_5\"]}],\"MaxConcurrency\": \"10\",\"MaxErrors\": \"100%\"}"

CREAZIONE DEL MODELLO:

  1. Esporta i parametri di esecuzione per questo tipo di modifica in un file JSON; questo esempio lo chiama GatherLog 4 jInfoParams .json:

    aws amscm get-change-type-version --change-type-id "ct-19f40lfm5umy8" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > GatherLog4jInfoParams.json
  2. Modificate e salvate il jInfoParams file GatherLog 4, mantenendo solo i parametri che desiderate modificare. Ad esempio, puoi sostituire il contenuto con qualcosa del genere:

    Versione 2.0:

    Scansiona tutte le istanze:

    { "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://BUCKET_NAME" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "AWS::EC2::Instance", "Values": [ "*" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }

    Scansiona un elenco di istanze:

    { "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://BUCKET_NAME" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "ParameterValues", "Values": [ "INSTANCE_ID_1", "INSTANCE_ID_2", "INSTANCE_ID_3", "INSTANCE_ID_4", "INSTANCE_ID_5" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }
  3. Esporta il modello RFC in un file nella cartella corrente; questo esempio lo chiama GatherLog 4 jInfoRfc .json:

    aws amscm create-rfc --generate-cli-skeleton > GatherLog4jInfoRfc.json
  4. Modifica e salva il file GatherLog 4 jInfoRfc .json. Ad esempio, puoi sostituire il contenuto con qualcosa del genere:

    { "ChangeTypeVersion": "2.0", "ChangeTypeId": "ct-19f40lfm5umy8", "Title": "Log4j Investigation" }
  5. Crea la RFC, specificando il jInfoRfc file GatherLog 4 e il file GatherLog 4jInfoParams :

    aws amscm create-rfc --cli-input-json file://GatherLog4jInfoRfc.json --execution-parameters file://GatherLog4jInfoParams.json

Questo tipo di modifica analizza l' EC2 istanza specificata alla ricerca di pacchetti contenenti una versione interessata della classe Java Apache Log4j. Questa funzionalità produce un rapporto ottimale, alcune occorrenze potrebbero non essere rilevate o identificate erroneamente.

AWS CloudShell è una shell basata su browser che semplifica la gestione, l'esplorazione e l'interazione in sicurezza con le risorse AWS. AWS CloudShell è preautenticato con le credenziali della console al momento dell'accesso. Gli strumenti operativi e di sviluppo comuni sono preinstallati, quindi non è richiesta alcuna installazione o configurazione locale. Con AWS CloudShell, puoi eseguire rapidamente script con l'AWS Command Line Interface (AWS CLI) SDKs, sperimentare con APIs il servizio AWS utilizzando AWS o utilizzare una gamma di altri strumenti per essere produttivi. Puoi usare AWS CloudShell direttamente dal tuo browser senza costi aggiuntivi.

Nota

Puoi utilizzare la console CloudShell AWS da qualsiasi altra regione AWS o dalla regione AWS più vicina in cui è disponibile per eseguire l'aggregazione. Ad esempio, per eseguire l'aggregazione dei dati archiviati nella regione Virginia, apri una CloudShell regione AWS «US East (Virginia) us-east-1" nella Console AWS e segui le istruzioni riportate di seguito.

I dati del report includono informazioni sugli archivi Java (file JAR), trovati nell'ambiente specificato che contiene la classe vulnerabile. JndiLookup AMS consiglia di aggiornare le librerie interessate all'ultima versione disponibile, che può essere scaricata direttamente da Apache all'indirizzo Download Apache Log4j 2. Inoltre, eseguiamo la scansione dei file Web Application Resource (WAR), Enterprise Archive (EAR), Jupiter Encrypted XML (JPI), Hemera Technologies (HPI) e ZIP.

Per aggregare tutti i file CSV generati e creare un singolo report con AWS: CloudShell

  1. Da qualsiasi pagina o regione AWS nella Console di gestione AWS, apri AWS CloudShell per eseguire lo script mostrato di seguito. Assicurati di aver effettuato l'accesso alla Console di gestione AWS con il AWSManaged ServicesReadOnlyRole ruolo.

    # Specify the S3 bucket and AWS region that contains the individual CSV files: BUCKET_NAME="YOUR BUCKET HERE" BUCKET_REGION="THE BUCKET REGION HERE" # Aggregate the CSV files: mkdir -p log4j-report aws s3 cp s3://$BUCKET_NAME/ams/log4j-scan/ ./log4j-report --recursive --include "*.csv" echo "aws_account_id,region,scan_time,instance_id,scan_type,location" > log4j-report/report.csv for i in `find log4j-report -type f \( -iname "*.csv" ! -iname "report.csv" \)`; do awk 'FNR > 1' $i >> log4j-report/report.csv; done # Upload the report to the same S3 bucket: file_name="report_$(date -d "today" +"%Y%m%d%H%M").csv" aws s3 cp log4j-report/report.csv s3://$BUCKET_NAME/ams/log4j-reports/$file_name # Open the following URL and select \"Download\" to download the report: echo "Report uploaded to: https://s3.console.aws.amazon.com/s3/object/$BUCKET_NAME?region=$BUCKET_REGION&prefix=ams/log4j-reports/$file_name"

    Lo script genera l'URL S3 da cui scaricare il report.

  2. Copia e apri l'URL, quindi scegli Scarica

Zona di destinazione per account singolo: utilizzo del rapporto

Se lavori in una landing zone con account singolo, il CloudShell servizio AWS non è disponibile. Tuttavia, puoi comunque sfruttare l'AWS CLI per eseguire i passaggi necessari. Segui questa documentazione, Come posso concedere ai miei utenti di Active Directory l'accesso all'API o alla CLI AWS con AD FS? , per configurare l'accesso all'API CLI tramite Active Directory Federation Services (ADFS) utilizzando IAM Roles. Per le implementazioni di provider di identità (IDP) non ADFS, visita Come implementare una soluzione generale per l'accesso federato utilizzando SAML 2.0. API/CLI Utilizzando le opzioni precedenti, ottieni le credenziali CLI per il ruolo desiderato, il ruolo consigliato predefinito è il. Customer_ReadOnly_Role Quindi esegui lo script nel passaggio 1 per generare il rapporto CSV richiesto.

Come leggere il rapporto

Il rapporto contiene le seguenti colonne:

  • scan_time: l'ora in cui è stata eseguita la scansione dell'istanza

  • instance_id: l'ID dell'istanza EC2

  • scan_type: il tipo di scansione che è stata eseguita. Ad esempio, se la scansione ha esaminato le informazioni in memoria, scan_type sarà MEMORY. Se il filesystem è stato controllato, scan_type sarà FILESYSTEM

  • location: Il percorso verso la partita

Parametri di input di esecuzione

Per informazioni dettagliate sui parametri di input di esecuzione, vedereSchema per il tipo di modifica ct-19f40lfm5umy8.

Esempio: parametri obbligatori

Example not available.

Esempio: tutti i parametri

{ "DocumentName": "AWSManagedServices-GatherLog4jInformation", "Region": "us-east-1", "Parameters": { "S3Bucket": [ "s3://test" ] }, "TargetParameterName": "InstanceId", "Targets": [ { "Key": "ParameterValues", "Values": [ "i-1234567890abcdef0", "i-1234567890abcdef1", "i-1234567890abcdef2", "i-1234567890abcdef3", "i-1234567890abcdef4" ] } ], "MaxConcurrency": "10", "MaxErrors": "100%" }