Raccogliere i log di AWS Security Hub

Supportato in:

Questo documento spiega come importare i log di AWS Security Hub in Google Security Operations. AWS Security Hub offre una visione completa degli avvisi e dei risultati di sicurezza negli account AWS. Se invii questi risultati a Google SecOps, puoi utilizzare le funzionalità di Google SecOps per migliorare il monitoraggio e il rilevamento delle minacce.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Accesso privilegiato ad AWS

Configura AWS IAM e S3

  1. Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket.
  2. Salva il Nome e la Regione del bucket per utilizzarli in un secondo momento.
  3. Crea un utente seguendo questa guida: Creazione di un utente IAM.
  4. Seleziona l'utente creato.
  5. Seleziona la scheda Credenziali di sicurezza.
  6. Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
  7. Seleziona Servizio di terze parti come Caso d'uso.
  8. Fai clic su Avanti.
  9. (Facoltativo) Aggiungi un tag di descrizione.
  10. Fai clic su Crea chiave di accesso.
  11. Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per un utilizzo successivo.
  12. Fai clic su Fine.
  13. Seleziona la scheda Autorizzazioni.
  14. Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
  15. Seleziona Aggiungi autorizzazioni.
  16. Seleziona Allega direttamente le norme.
  17. Cerca e seleziona il criterio AmazonS3FullAccess.
  18. Fai clic su Avanti.
  19. Fai clic su Aggiungi autorizzazioni.

Creare una funzione Lambda

  1. Accedi alla console di gestione AWS.
  2. Vai a Lambda.
  3. Fai clic su Crea funzione e seleziona Crea da zero.
  4. Fornisci un nome per la funzione, ad esempio SecurityHubToS3.
  5. Scegli Python 3.x per il runtime.
  6. Inserisci il codice Lambda che prende i risultati da EventBridge e li scrive nel tuo bucket S3:

    import json
    import boto3
    from datetime import datetime
    
    # Initialize the S3 client
    s3_client = boto3.client('s3')
    
    # S3 bucket where findings will be stored
    bucket_name = 'aws-security-hub-findings-stream'
    
    def lambda_handler(event, context):
       # Extract Security Hub findings from the event
       findings = event['detail']['findings']
    
       # Generate a timestamp for the file name to avoid overwriting
       timestamp = datetime.now().strftime('%Y-%m-%dT%H-%M-%S')
    
       # Generate the S3 object key (file name) based on the timestamp
       object_key = f"security_hub_findings_{timestamp}.json"
    
       # Convert findings to JSON format
       findings_json = json.dumps(findings)
    
       # Upload the findings to S3
       try:
          response = s3_client.put_object(
                Bucket=bucket_name,
                Key=object_key,
                Body=findings_json,
                ContentType='application/json'
          )
          print(f"Successfully uploaded findings to S3: {response}")
       except Exception as e:
          print(f"Error uploading findings to S3: {e}")
          raise e
    
       return {
          'statusCode': 200,
          'body': json.dumps('Successfully processed findings')
       }
    
  7. Imposta le autorizzazioni per Lambda aggiungendo un ruolo IAM alla funzione Lambda con il seguente criterio:

    {
       "Version": "2012-10-17",
       "Statement": [
          {
                "Effect": "Allow",
                "Action": [
                   "s3:PutObject"
                ],
                "Resource": "arn:aws:s3:::aws-security-hub-findings-stream/*"
          }
       ]
    }
    

Come configurare AWS Security Hub per inoltrare i risultati con EventBridge

  1. Accedi alla console di gestione AWS.
  2. Nella barra di ricerca, digita e seleziona Security Hub dall'elenco dei servizi.
  3. Fai clic su Impostazioni.
  4. Nella sezione Integrazioni, trova EventBridge e fai clic su Attiva.
  5. Nella barra di ricerca, digita e seleziona EventBridge dall'elenco dei servizi.
  6. Nella console EventBridge, fai clic su Regole > Crea regola.
  7. Fornisci la seguente configurazione della regola:
    1. Nome regola: fornisci un nome descrittivo per la regola, ad esempio SendSecurityHubFindingsToS3.
    2. Origine evento: seleziona Servizi AWS.
    3. Nome servizio: scegli Security Hub.
    4. Tipo di evento: seleziona Risultati di Security Hub.
    5. Imposta il target: scegli Funzione Lambda.
    6. Seleziona la funzione Lambda appena creata (SecurityHubToS3).
  8. Fai clic su Crea.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configurare i feed da Impostazioni SIEM > Feed

Per configurare più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare più feed.

Per configurare un singolo feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio AWS Security Hub Logs.
  5. Seleziona Amazon S3 come Tipo di origine.
  6. Seleziona AWS Security Hub come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • Region (Regione): la regione in cui si trova il bucket Amazon S3.
    • URI S3: l'URI del bucket.
      • s3://your-log-bucket-name/
        • Sostituisci your-log-bucket-name con il nome effettivo del tuo bucket S3.
    • L'URI è un: seleziona Directory o Directory che include sottodirectory, a seconda della struttura del bucket.
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.

    • ID chiave di accesso: la chiave di accesso dell'utente con autorizzazioni di lettura dal bucket S3.

    • Chiave di accesso segreta: la chiave segreta dell'utente con le autorizzazioni per leggere dal bucket S3.

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  9. Fai clic su Avanti.

  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • Region (Regione): la regione in cui si trova il bucket Amazon S3.
  • URI S3: l'URI del bucket.
    • s3://your-log-bucket-name/
      • Sostituisci your-log-bucket-name con il nome effettivo del tuo bucket S3.
  • L'URI è un: seleziona Directory o Directory che include sottodirectory, a seconda della struttura del bucket.
  • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.
  • ID chiave di accesso: la chiave di accesso dell'utente con autorizzazioni di lettura dal bucket S3.

  • Chiave di accesso segreta: la chiave segreta dell'utente con le autorizzazioni per leggere dal bucket S3.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
account principal.group.product_object_id L'ID account AWS associato al risultato.
configurationItem.ARN target.resource.id L'Amazon Resource Name (ARN) dell'elemento di configurazione.
configurationItem.awsAccountId principal.user.userid L'ID account AWS dell'elemento di configurazione.
configurationItem.awsRegion target.asset.location.country_or_region La regione AWS dell'elemento di configurazione.
configurationItem.configuration.complianceType security_result.summary Il tipo di conformità dell'elemento di configurazione.
configurationItem.configuration.configRuleList[].complianceType security_result.summary Stato di conformità per ogni regola di configurazione.
configurationItem.configuration.configRuleList[].configRuleArn security_result.rule_id L'ARN della regola AWS Config.
configurationItem.configuration.configRuleList[].configRuleId security_result.about.labels.configRuleId L'ID della regola AWS Config.
configurationItem.configuration.configRuleList[].configRuleName security_result.rule_name Il nome della regola AWS Config.
configurationItem.configuration.privateIpAddress target.ip L'indirizzo IP privato dell'elemento di configurazione.
configurationItem.configuration.publicIpAddress target.ip L'indirizzo IP pubblico dell'elemento di configurazione.
configurationItem.configurationItemCaptureTime target.asset.attribute.creation_time L'ora di acquisizione dell'elemento di configurazione, convertita in un timestamp.
configurationItem.configurationItemStatus target.asset.attribute.labels.Configuration Item Status Lo stato dell'elemento di configurazione.
configurationItem.relationships[].resourceId target.asset.attribute.cloud.vpc.id L'ID risorsa della risorsa correlata, utilizzato per l'ID VPC se corrisponde a vpc.
configurationItem.resourceId target.resource.id L'ID risorsa dell'elemento di configurazione.
configurationItem.resourceName target.resource.name Nome della risorsa.
configurationItem.resourceType target.resource.resource_subtype Il tipo di risorsa dell'elemento di configurazione.
configurationItem.tags.Contact principal.user.user_display_name OPPURE principal.user.email_addresses Dati di contatto estratti dai tag, analizzati per email e nome utente.
configurationItem.tags.OS/configurationItem.tags.Os target.asset.platform_software.platform Il sistema operativo dai tag, mappato alla piattaforma se è Windows o Linux.
configurationItemDiff.changeType metadata.event_type Il tipo di modifica, mappato su RESOURCE_WRITTEN o RESOURCE_CREATION.
detail.accountId principal.group.product_object_id L'ID account AWS associato al risultato.
detail.actionDescription detail.actionName detail.description sec_result.description La descrizione del risultato.
detail.findings[].AwsAccountId principal.group.product_object_id L'ID account AWS associato al risultato.
detail.findings[].CompanyName detail.findings[].CreatedAt detail.findings[].Description sec_result.description La descrizione del risultato.
detail.findings[].FindingProviderFields.Severity.Label sec_result.severity L'etichetta di gravità del risultato, convertita in maiuscolo.
detail.findings[].FindingProviderFields.Types[] detail.findings[].FirstObservedAt detail.findings[].GeneratorId detail.findings[].Id detail.findings[].LastObservedAt detail.findings[].ProductArn detail.findings[].ProductFields. Vedi di seguito Vari campi utilizzati per campi aggiuntivi, entità e informazioni di destinazione.
detail.findings[].ProductName detail.findings[].RecordState detail.findings[].Region target.location.name La regione AWS del risultato.
detail.findings[].Resources[].Details. Vedi di seguito Dettagli sulle risorse coinvolte nel risultato.
detail.findings[].Resources[].Id target.resource.product_object_id L'ID della risorsa.
detail.findings[].Resources[].Partition detail.findings[].Resources[].Region target.location.name La regione AWS della risorsa.
detail.findings[].Resources[].Tags detail.findings[].Resources[].Type target.resource.resource_type, target.resource.resource_subtype, metadata.event_type Il tipo di risorsa, utilizzato per il mapping di tipo, sottotipo ed evento della risorsa.
detail.findings[].Sample detail.findings[].SchemaVersion detail.findings[].Severity.Label detail.findings[].SourceUrl detail.findings[].Title sec_result.summary Il titolo del risultato.
detail.findings[].Types[] detail.findings[].UpdatedAt detail.findings[].Workflow.Status detail.findings[].WorkflowState detail-type metadata.product_event_type Il tipo di dettaglio dell'evento.
id metadata.product_log_id L'ID dell'evento.
region target.location.name La regione AWS dell'evento.
resources[] source time version (Parser Logic) metadata.event_timestamp L'ora di creazione della voce di log originale, utilizzata come timestamp dell'evento.
(Parser Logic) metadata.log_type Imposta su AWS_SECURITY_HUB.
(Parser Logic) metadata.product_name Imposta su AWS Security Hub.
(Parser Logic) metadata.vendor_name Imposta su AMAZON.
(Parser Logic) target.asset.attribute.cloud.environment Imposta su AMAZON_WEB_SERVICES.
(Parser Logic) metadata.event_type Imposta USER_RESOURCE_ACCESS come valore predefinito se non è mappato da Resources[].Type o configurationItemDiff.changeType. Imposta su STATUS_UPDATE se configurationItems è presente e non è impostato nessun altro tipo di evento. Imposta su RESOURCE_READ se configurationItem o configurationItems è presente e lo stato è OK o ResourceDiscovered. Imposta su RESOURCE_DELETION se configurationItem o configurationItems è presente e lo stato è ResourceDeleted.
(Parser Logic) metadata.description Imposta su guardduty se è presente detail.findings[].ProductFields.aws/guardduty/service/serviceName.
(Parser Logic) target.asset.attribute.cloud.vpc.resource_type Imposta su VPC_NETWORK se configurationItems.relationships[].resourceId corrisponde a vpc.
(Parser Logic) target.resource.resource_type Imposta su VIRTUAL_MACHINE se è presente configurationItem o configurationItems. Imposta su UNSPECIFIED se non è impostato nessun altro tipo di risorsa.
(Parser Logic) target.asset.platform_software.platform Imposta su WINDOWS o LINUX in base alla presenza di Windows o (Linux|LINUX) nel messaggio per configurationItem. Per configurationItems, l'impostazione si basa su configItem.tags.OS o configItem.tags.Os.
(Parser Logic) disambiguation_key Aggiunto quando vengono generati più eventi da una singola voce di log.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.