AWS Elastic MapReduce-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie AWS Elastic MapReduce-Logs (EMR) in Google Security Operations aufnehmen. AWS EMR ist eine Cloud-native Big-Data-Plattform, mit der sich große Datenmengen schnell verarbeiten lassen. Durch die Integration von EMR-Logs in Google SecOps können Sie Clusteraktivitäten analysieren und potenzielle Sicherheitsbedrohungen erkennen.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf AWS

Amazon S3-Bucket konfigurieren

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
  3. Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungstag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die spätere Verwendung zu speichern.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

AWS EMR zum Weiterleiten von Logs konfigurieren

  1. Melden Sie sich bei der AWS Management Console an.
  2. Geben Sie in der Suchleiste EMR ein und wählen Sie in der Liste der Dienste Amazon EMR aus.
  3. Klicken Sie auf Cluster.
  4. Suchen Sie den EMR-Cluster, für den Sie die Protokollierung aktivieren möchten, und wählen Sie ihn aus.
  5. Klicken Sie auf der Seite Clusterdetails auf Bearbeiten.
  6. Rufen Sie auf dem Bildschirm Cluster bearbeiten den Bereich Logging auf.
  7. Wählen Sie Logging aktivieren aus.
  8. Geben Sie den S3-Bucket an, in dem die Logs gespeichert werden sollen.
  9. Geben Sie den S3-URI im Format s3://your-bucket-name/ an. Dadurch werden alle EMR-Logs im Stammverzeichnis des Buckets gespeichert.
  10. Wählen Sie die folgenden Protokolltypen aus:
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs (wenn Sie Hadoop verwenden)
  11. Klicken Sie auf Speichern.

Feeds einrichten

Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:

  • SIEM-Einstellungen > Feeds
  • Content Hub> Content-Pakete

Feeds über die SIEM-Einstellungen > „Feeds“ einrichten

Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.

So konfigurieren Sie einen einzelnen Feed:

  1. Rufen Sie die SIEM-Einstellungen> Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. AWS EMR Logs (AWS EMR-Logs).
  5. Wählen Sie Amazon S3 als Quelltyp aus.
  6. Wählen Sie AWS EMR als Log type (Protokolltyp) aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Region: Die Region, in der sich der Amazon S3-Bucket befindet.
    • S3-URI: Der Bucket-URI.
      • s3://your-log-bucket-name/
        • Ersetzen Sie your-log-bucket-name durch den tatsächlichen Namen Ihres S3-Buckets.
    • URI ist ein: Wählen Sie je nach Bucket-Struktur entweder Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.

    • Access Key ID (Zugriffsschlüssel-ID): Der Zugriffsschlüssel des Nutzers mit Berechtigungen zum Lesen aus dem S3-Bucket.

    • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Berechtigungen zum Lesen aus dem S3-Bucket.

    • Asset-Namespace: Der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  9. Klicken Sie auf Weiter.

  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Feeds über den Content Hub einrichten

Geben Sie Werte für die folgenden Felder an:

  • Region: Die Region, in der sich der Amazon S3-Bucket befindet.
  • S3-URI: Der Bucket-URI.
    • s3://your-log-bucket-name/
      • Ersetzen Sie your-log-bucket-name durch den tatsächlichen Namen Ihres S3-Buckets.
  • URI ist ein: Wählen Sie je nach Bucket-Struktur entweder Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
  • Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
  • Access Key ID (Zugriffsschlüssel-ID): Der Zugriffsschlüssel des Nutzers mit Berechtigungen zum Lesen aus dem S3-Bucket.

  • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Berechtigungen zum Lesen aus dem S3-Bucket.

Erweiterte Optionen

  • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
  • Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
  • Asset-Namespace: Namespace, der dem Feed zugeordnet ist.
  • Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
app_id additional.fields[].key Der Wert „APP“ wird über den Parser zugewiesen.
app_id additional.fields[].value.string_value Direkt aus dem Feld APP im Rohlog zugeordnet.
app_name additional.fields[].key Der Wert „APPNAME“ wird über den Parser zugewiesen.
app_name additional.fields[].value.string_value Direkt aus dem Feld APPNAME im Rohlog zugeordnet.
blockid additional.fields[].key Der Wert „blockid“ wird über den Parser zugewiesen.
blockid additional.fields[].value.string_value Direkt aus dem Feld blockid im Rohlog zugeordnet.
bytes network.received_bytes Direkt aus dem Feld bytes im Rohlog zugeordnet und in eine vorzeichenlose Ganzzahl konvertiert.
cliID additional.fields[].key Der Wert „cliID“ wird über den Parser zugewiesen.
cliID additional.fields[].value.string_value Direkt aus dem Feld cliID im Rohlog zugeordnet.
cmd target.process.command_line Direkt aus dem Feld cmd im Rohlog zugeordnet.
comp_name additional.fields[].key Der Wert „COMP“ wird über den Parser zugewiesen.
comp_name additional.fields[].value.string_value Direkt aus dem Feld COMP im Rohlog zugeordnet.
configuration_version additional.fields[].key Der Wert „configuration_version“ wird über den Parser zugewiesen.
configuration_version additional.fields[].value.string_value Direkt aus dem Feld configuration_version im Rohlog zugeordnet und in einen String konvertiert.
containerID additional.fields[].key Der Wert „containerID“ wird über den Parser zugewiesen.
containerID additional.fields[].value.string_value Direkt aus dem Feld CONTAINERID im Rohlog zugeordnet.
description security_result.description Direkt aus dem Feld description im Rohlog zugeordnet.
dfs.FSNamesystem.* additional.fields[].key Der Schlüssel wird generiert, indem „dfs.FSNamesystem.“ mit dem Schlüssel aus den JSON-Daten verkettet wird.
dfs.FSNamesystem.* additional.fields[].value.string_value Der Wert wird direkt aus dem entsprechenden Wert im JSON-Objekt dfs.FSNamesystem zugeordnet und in einen String konvertiert.
duration additional.fields[].key Der Wert „duration“ wird über den Parser zugewiesen.
duration additional.fields[].value.string_value Direkt aus dem Feld duration im Rohlog zugeordnet.
duration network.session_duration.seconds Direkt aus dem Feld duration im Rohlog zugeordnet und in eine Ganzzahl umgewandelt.
environment additional.fields[].key Der Wert „environment“ wird über den Parser zugewiesen.
environment additional.fields[].value.string_value Direkt aus dem Feld environment im Rohlog zugeordnet. Aus dem Feld ip_port extrahiert, indem Grok und Stringbearbeitung verwendet wurden. Aus dem Feld ip_port extrahiert, indem „grok“ und Stringbearbeitung verwendet und in eine Ganzzahl umgewandelt wurde.
event_type metadata.event_type Wird durch die Parserlogik auf Grundlage der principal- und target-Informationen bestimmt. Kann NETWORK_CONNECTION, USER_RESOURCE_ACCESS, STATUS_UPDATE oder GENERIC_EVENT sein.
file_path target.file.full_path Direkt aus dem Feld file_path im Rohlog zugeordnet.
host principal.hostname Direkt aus dem Feld host im Rohlog zugeordnet.
host target.hostname Direkt aus dem Feld host im Rohlog zugeordnet.
host_ip principal.ip Direkt aus dem Feld host_ip im Rohlog zugeordnet.
host_port principal.port Direkt aus dem Feld host_port im Rohlog zugeordnet und in eine Ganzzahl umgewandelt.
http_url target.url Direkt aus dem Feld http_url im Rohlog zugeordnet.
index additional.fields[].key Der Wert „index“ wird über den Parser zugewiesen.
index additional.fields[].value.string_value Direkt aus dem Feld index im Rohlog zugeordnet.
kind metadata.product_event_type Direkt aus dem Feld kind im Rohlog zugeordnet. Der Wert „AWS_EMR“ wird über den Parser zugewiesen. Der Wert „AWS EMR“ wird über den Parser zugewiesen. Der Wert „AMAZON“ wird über den Parser zugewiesen.
offset additional.fields[].key Der Wert „offset“ wird über den Parser zugewiesen.
offset additional.fields[].value.string_value Direkt aus dem Feld offset im Rohlog zugeordnet.
op metadata.product_event_type Direkt aus dem Feld op oder OPERATION im Rohlog zugeordnet.
proto network.application_protocol Wird mit grok aus dem Feld http_url extrahiert und in Großbuchstaben umgewandelt.
puppet_version additional.fields[].key Der Wert „puppet_version“ wird über den Parser zugewiesen.
puppet_version additional.fields[].value.string_value Direkt aus dem Feld puppet_version im Rohlog zugeordnet.
queue_name additional.fields[].key Der Wert „queue_name“ wird über den Parser zugewiesen.
queue_name additional.fields[].value.string_value Direkt aus dem Feld queue_name im Rohlog zugeordnet.
report_format additional.fields[].key Der Wert „report_format“ wird über den Parser zugewiesen.
report_format additional.fields[].value.string_value Direkt aus dem Feld report_format im Rohlog zugeordnet und in einen String konvertiert.
resource additional.fields[].key Der Wert „resource“ wird über den Parser zugewiesen.
resource additional.fields[].value.string_value Direkt aus dem Feld resource im Rohlog zugeordnet.
result security_result.action_details Direkt aus dem Feld RESULT im Rohlog zugeordnet.
security_id additional.fields[].key Der Wert „security_id“ wird über den Parser zugewiesen.
security_id additional.fields[].value.string_value Direkt aus dem Feld security_id im Rohlog zugeordnet.
severity security_result.severity Wird aus dem Feld severity im Rohlog zugeordnet. INFO ist INFORMATIONAL zugeordnet, WARN ist MEDIUM zugeordnet.
srvID additional.fields[].key Der Wert „srvID“ wird über den Parser zugewiesen.
srvID additional.fields[].value.string_value Direkt aus dem Feld srvID im Rohlog zugeordnet.
status additional.fields[].key Der Wert „status“ wird über den Parser zugewiesen.
status additional.fields[].value.string_value Direkt aus dem Feld status im Rohlog zugeordnet.
summary security_result.summary Direkt aus dem Feld summary im Rohlog zugeordnet.
target_app target.application Direkt aus dem Feld TARGET im Rohlog zugeordnet.
target_ip target.ip Direkt aus dem Feld target_ip oder IP im Rohlog zugeordnet.
target_port target.port Direkt aus dem Feld target_port im Rohlog zugeordnet und in eine Ganzzahl umgewandelt.
timestamp metadata.event_timestamp Direkt aus dem Feld timestamp im Rohlog abgeleitet und als ISO8601-Zeitstempel geparst.
timestamp event.timestamp Direkt aus dem Feld timestamp im Rohlog abgeleitet und als ISO8601-Zeitstempel geparst.
trade_date additional.fields[].key Der Wert „trade_date“ wird über den Parser zugewiesen.
trade_date additional.fields[].value.string_value Direkt aus dem Feld trade_date im Rohlog zugeordnet.
transaction_uuid additional.fields[].key Der Wert „transaction_uuid“ wird über den Parser zugewiesen.
transaction_uuid additional.fields[].value.string_value Direkt aus dem Feld transaction_uuid im Rohlog zugeordnet.
type additional.fields[].key Der Wert „type“ wird über den Parser zugewiesen.
type additional.fields[].value.string_value Direkt aus dem Feld type im Rohlog zugeordnet.
user target.user.userid Direkt aus dem Feld USER oder ugi im Rohlog zugeordnet.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten