Raccogliere i log EDR di Uptycs

Supportato in:

Questo documento spiega come importare i log Uptycs EDR in Google Security Operations utilizzando Amazon S3. Il parser trasforma i log JSON non elaborati in un modello UDM (Unified Data Model). Estrae innanzitutto i campi dal JSON, esegue la pulizia e l'arricchimento dei dati, quindi mappa le informazioni pertinenti ai campi UDM corrispondenti, gestendo vari tipi di dati e casi limite per garantire una rappresentazione accurata e coerente all'interno dello schema UDM.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Accesso privilegiato a Uptycs
  • Accesso privilegiato ad AWS (S3, IAM)

Ottenere i prerequisiti di Uptycs

  1. Accedi alla console di amministrazione di Uptycs.
  2. Vai a Configurazione > Utenti.
  3. Seleziona il tuo utente o crea un utente del account di servizio.
  4. Fai clic su User API key (Chiave API utente).
  5. Copia e salva in una posizione sicura i seguenti dettagli:
    • Chiave API
    • API Secret
    • ID cliente
    • API Domain (derivato dall'URL di Uptycs, ad esempio mystack.uptycs.io)

Configura il bucket AWS S3 e IAM per Google SecOps

  1. Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket.
  2. Salva il nome e la regione del bucket per riferimento futuro (ad esempio, uptycs-telemetry-export).
  3. Crea un utente seguendo questa guida utente: 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 riferimento futuro.
  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 Collega direttamente i criteri.
  17. Cerca i criteri AmazonS3FullAccess.
  18. Seleziona la policy.
  19. Fai clic su Avanti.
  20. Fai clic su Aggiungi autorizzazioni.

Configura il ruolo e il criterio IAM per i caricamenti S3

  1. Nella console AWS, vai a IAM > Policy.
  2. Fai clic su Crea criterio > scheda JSON.
  3. Inserisci la seguente policy:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Sid": "AllowListBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
    • Sostituisci uptycs-telemetry-export se hai inserito un nome bucket diverso.
  4. Fai clic su Avanti > Crea policy.

  5. Assegna al criterio il nome uptycs-s3-write-policy.

  6. Vai a IAM > Utenti.

  7. Seleziona l'utente creato per le esportazioni di Uptycs.

  8. Fai clic su Aggiungi autorizzazioni > Allega norme direttamente.

  9. Cerca e seleziona uptycs-s3-write-policy.

  10. Fai clic su Avanti > Aggiungi autorizzazioni.

Configura Uptycs Export Raw Telemetry

  1. Accedi alla console Uptycs.
  2. Vai alla sezione di configurazione dell'esportazione.
  3. Configura la destinazione di esportazione S3.
  4. Fornisci i seguenti dettagli di configurazione:
    • Tipo di esportazione: seleziona Telemetria non elaborata.
    • Destinazione: seleziona Amazon S3.
    • Formato: seleziona JSON.
    • Bucket S3: inserisci uptycs-telemetry-export.
    • Prefisso percorso S3: inserisci telemetry/.
    • Regione AWS: seleziona la regione del bucket.
    • ID chiave di accesso AWS: inserisci la chiave di accesso dell'utente IAM.
    • Chiave di accesso segreta AWS: inserisci la chiave di accesso segreta.
    • Tipi di eventi: seleziona tutti i tipi di telemetria richiesti.
  5. Testa e attiva l'esportazione.

Creare un utente IAM di sola lettura per Google SecOps

  1. Vai alla console AWS > IAM > Utenti.
  2. Fai clic su Add users (Aggiungi utenti).
  3. Fornisci i seguenti dettagli di configurazione:
    • Utente: inserisci secops-reader.
    • Tipo di accesso: seleziona Chiave di accesso - Accesso programmatico.
  4. Fai clic su Crea utente.
  5. Collega la criterio per la lettura minima (personalizzata): Utenti > secops-reader > Autorizzazioni > Aggiungi autorizzazioni > Collega le norme direttamente > Crea norma.
  6. Nell'editor JSON, inserisci la seguente policy:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
  7. Imposta il nome su secops-reader-policy.

  8. Vai a Crea criterio > cerca/seleziona > Avanti > Aggiungi autorizzazioni.

  9. Vai a Credenziali di sicurezza > Chiavi di accesso > Crea chiave di accesso.

  10. Scarica il file CSV (questi valori vengono inseriti nel feed).

Configura un feed in Google SecOps per importare i log di Uptycs

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su + Aggiungi nuovo feed.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Uptycs EDR logs).
  4. Seleziona Amazon S3 V2 come Tipo di origine.
  5. Seleziona Uptycs EDR come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • URI S3: s3://uptycs-telemetry-export/telemetry/
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
    • Età massima del file: includi i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.
    • ID chiave di accesso: chiave di accesso utente con accesso al bucket S3.
    • Chiave di accesso segreta: chiave segreta dell'utente con accesso al bucket S3.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
osquery_raw_data.answer read_only_udm.network.dns.answers.name Valore estratto da osquery_raw_data.answer se osquery_raw_data.answer non è vuoto.
osquery_raw_data.container_id read_only_udm.metadata.product_log_id Valore estratto da osquery_raw_data.container_id se osquery_raw_data.container_id non è vuoto.
osquery_raw_data.local_address read_only_udm.principal.ip Valore estratto da osquery_raw_data.local_address se osquery_raw_data.local_address non è vuoto ed è un indirizzo IP valido.
osquery_raw_data.local read_only_udm.principal.ip In caso contrario, il valore viene estratto da osquery_raw_data.local se osquery_raw_data.local non è vuoto ed è un indirizzo IP valido.
osquery_raw_data.local_port read_only_udm.principal.port Valore estratto da osquery_raw_data.local_port e convertito in numero intero se osquery_raw_data.local_port non è vuoto.
osquery_raw_data.md5 read_only_udm.target.process.file.md5 Valore estratto da osquery_raw_data.md5 se osquery_raw_data.md5 non è vuoto.
osquery_raw_data.port read_only_udm.target.port Valore estratto da osquery_raw_data.port e convertito in numero intero se osquery_raw_data.port non è vuoto.
osquery_raw_data.question read_only_udm.network.dns.questions.name Valore estratto da osquery_raw_data.question se osquery_raw_data.question non è vuoto.
osquery_raw_data.remote_address read_only_udm.intermediary.ip Valore estratto da osquery_raw_data.remote_address se osquery_raw_data.remote_address non è vuoto.
osquery_raw_data.remote_port read_only_udm.intermediary.port Valore estratto da osquery_raw_data.remote_port e convertito in numero intero se osquery_raw_data.remote_port non è vuoto.
osquery_raw_data.type read_only_udm.network.dns.questions.type Valore estratto da osquery_raw_data.type e convertito in numero intero se osquery_raw_data.type non è vuoto.
osquery_raw_data.uid read_only_udm.principal.user.userid Valore estratto da osquery_raw_data.uid se osquery_raw_data.uid non è vuoto e non è uguale a "0".
osquery_raw_data.worker_instance_id read_only_udm.principal.user.userid In caso contrario, il valore viene estratto da osquery_raw_data.worker_instance_id se osquery_raw_data.worker_instance_id non è vuoto.
upt_asset_group_id read_only_udm.principal.user.group_identifiers Valore estratto da upt_asset_group_id se upt_asset_group_id non è vuoto.
upt_asset_group_name read_only_udm.principal.group.group_display_name Valore estratto da upt_asset_group_name se upt_asset_group_name non è vuoto.
upt_asset_id read_only_udm.principal.asset.asset_id Stringa concatenata "UPT ASSET ID:" con il valore di upt_asset_id se upt_asset_id non è vuoto.
upt_hash read_only_udm.target.file.md5 Tutte le occorrenze di "-" vengono sostituite con "" in upt_hash. Il valore viene quindi assegnato a read_only_udm.target.file.md5 se upt_hash non è vuoto.
upt_hostname read_only_udm.principal.hostname Valore preso da upt_hostname se upt_hostname non è vuoto.
upt_resource_type read_only_udm.target.resource.type Valore estratto da upt_resource_type se upt_resource_type non è vuoto.
upt_time read_only_udm.metadata.event_timestamp.seconds Valore estratto da upt_time se upt_time non è vuoto.
read_only_udm.metadata.event_type Il valore è impostato su "PROCESS_LAUNCH" se osquery_raw_data.pid non è vuoto. Il valore è impostato su "NETWORK_DNS" se osquery_raw_data.question non è vuoto. Il valore è impostato su "GENERIC_EVENT" se event_type è vuoto.
read_only_udm.metadata.log_type Il valore è impostato su "UPTYCS_EDR".
read_only_udm.metadata.product_name Il valore è impostato su "UPTYCS_EDR".
read_only_udm.metadata.vendor_name Il valore è impostato su "UPTYCS".
read_only_udm.network.application_protocol Il valore è impostato su "DNS" se osquery_raw_data.question non è vuoto.
read_only_udm.security_result.action Il valore è impostato su "ALLOW" se osquery_raw_data.return_code è uguale a "SUCCESS" o osquery_raw_data.success è uguale a "1".
read_only_udm.target.process.command_line Valore estratto da osquery_raw_data.cmdline se osquery_raw_data.cmdline non è vuoto.
read_only_udm.target.process.file.full_path Valore estratto da osquery_raw_data.path se osquery_raw_data.path non è vuoto.
read_only_udm.target.process.parent_process Il valore viene creato iterando l'array ancestor_list in osquery_raw_data.ancestor_list. Per ogni elemento dell'array, vengono estratti e formattati command_line, full_path del file e pid in una struttura JSON che rappresenta la catena di processi.
read_only_udm.target.process.pid Valore estratto da osquery_raw_data.pid se osquery_raw_data.pid non è vuoto.

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