AWS Elastic MapReduce-Logs erfassen
Parserversion: 1.0
In diesem Dokument wird beschrieben, wie Sie AWS Elastic MapReduce-Logs (EMR) in Google Security Operations aufnehmen. AWS EMR ist eine cloudnative Big-Data-Plattform, die große Datenmengen schnell verarbeitet. Durch die Einbindung von EMR-Logs in Google SecOps können Sie Clusteraktivitäten analysieren und potenzielle Sicherheitsbedrohungen erkennen.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Google SecOps-Instanz
- Privilegierter Zugriff auf AWS
Amazon S3-Bucket konfigurieren
- Erstellen Sie einen Amazon S3-Bucket gemäß diesem Nutzerhandbuch: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
- Erstellen Sie einen Nutzer gemäß diesem Nutzerhandbuch: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Access Keys (Zugriffsschlüssel) auf Create Access Key (Zugriffsschlüssel erstellen).
- Wählen Sie als Anwendungsfall die Option Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Zugriffsschlüssel und den geheimen Zugriffsschlüssel für die spätere Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach den Richtlinien AmazonS3FullAccess und CloudWatchLogsFullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
AWS EMR für die Weiterleitung von Logs konfigurieren
- Melden Sie sich bei der AWS Management Console an.
- Geben Sie in der Suchleiste EMR ein und wählen Sie in der Liste der Dienste Amazon EMR aus.
- Klicken Sie auf Cluster.
- Suchen Sie den EMR-Cluster, für den Sie das Logging aktivieren möchten, und wählen Sie ihn aus.
- Klicken Sie auf der Seite Clusterdetails auf Bearbeiten.
- Rufen Sie auf dem Bildschirm Cluster bearbeiten den Bereich Logging auf.
- Wählen Sie Aktivieren aus.
- Geben Sie den S3-Bucket an, in dem Logs gespeichert werden sollen.
- Geben Sie den S3-URI im Format
s3://your-bucket-name/an. Dadurch werden alle EMR-Logs im Stammverzeichnis des Buckets gespeichert. - Wählen Sie die folgenden Protokolltypen aus:
Step logsApplication logsYARN logsSystem logsHDFS Logs(wenn Sie Hadoop verwenden)
- Klicken Sie auf Speichern.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte, um Feeds in der Google SecOps-Plattform einzurichten:
- Einstellungen > Datenverwaltung > Feeds > Neuen Feed hinzufügen (auf einer reinen SIEM-Plattform: Einstellungen > Feeds > Neuen Feed hinzufügen)
- Content Hub > Content-Pakete > Jetzt starten
AWS-EMR-Feed einrichten
- Klicken Sie auf das Paket Amazon Cloud Platform.
- Suchen Sie den Logtyp AWS EMR.
Geben Sie die Werte in den folgenden Feldern an.
- Quelltyp: Amazon SQS V2
- Warteschlangenname: Der Name der SQS-Warteschlange, aus der gelesen werden soll.
- S3-URI: Der Bucket-URI.
s3://your-log-bucket-name/- Ersetzen Sie
your-log-bucket-namedurch den tatsächlichen Namen Ihres S3-Buckets.
- Ersetzen Sie
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Einstellungen für die Aufnahme aus.
Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
SQS Queue Access Key ID: Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 20 Zeichen ist.
Geheimer Zugriffsschlüssel für SQS-Warteschlange: Ein Konto-Zugriffsschlüssel, der ein alphanumerischer String mit 40 Zeichen ist.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Der mit dem Feed verknüpfte Namespace.
- Aufnahme-Labels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen innerhalb dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld blockid im Rohlog zugeordnet. |
bytes |
network.received_bytes |
Wird direkt aus dem Feld bytes im Rohprotokoll 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 |
Wird direkt aus dem Feld cliID im Rohlog zugeordnet. |
cmd |
target.process.command_line |
Wird 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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld CONTAINERID im Rohlog zugeordnet. |
description |
security_result.description |
Wird direkt aus dem Feld description im Rohlog zugeordnet. |
dfs.FSNamesystem.* |
additional.fields[].key |
Der Schlüssel wird durch Verketten von „dfs.FSNamesystem.“ mit dem Schlüssel aus den JSON-Daten generiert. |
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 |
Wird direkt aus dem Feld duration im Rohlog zugeordnet. |
duration |
network.session_duration.seconds |
Wird 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 |
Wird direkt aus dem Feld environment im Rohlog zugeordnet. Wird mit Grok und Stringmanipulation aus dem Feld ip_port extrahiert. Wird mit Grok und Stringmanipulation aus dem Feld ip_port extrahiert und in eine Ganzzahl konvertiert. |
event_type |
metadata.event_type |
Wird durch die Parserlogik basierend auf dem Vorhandensein von principal- und target-Informationen bestimmt. Kann NETWORK_CONNECTION, USER_RESOURCE_ACCESS, STATUS_UPDATE oder GENERIC_EVENT sein. |
file_path |
target.file.full_path |
Wird direkt aus dem Feld file_path im Rohlog zugeordnet. |
host |
principal.hostname |
Wird direkt aus dem Feld host im Rohlog zugeordnet. |
host |
target.hostname |
Wird direkt aus dem Feld host im Rohlog zugeordnet. |
host_ip |
principal.ip |
Wird direkt aus dem Feld host_ip im Rohlog zugeordnet. |
host_port |
principal.port |
Wird direkt aus dem Feld host_port im Rohlog zugeordnet und in eine Ganzzahl umgewandelt. |
http_url |
target.url |
Wird 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 |
Wird direkt aus dem Feld index im Rohlog zugeordnet. |
kind |
metadata.product_event_type |
Wird 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 |
Wird direkt aus dem Feld offset im Rohlog zugeordnet. |
op |
metadata.product_event_type |
Wird 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 |
Wird 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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld resource im Rohlog zugeordnet. |
result |
security_result.action_details |
Wird 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 |
Wird direkt aus dem Feld security_id im Rohlog zugeordnet. |
severity |
security_result.severity |
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 |
Wird 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 |
Wird direkt aus dem Feld status im Rohlog zugeordnet. |
summary |
security_result.summary |
Wird direkt aus dem Feld summary im Rohlog zugeordnet. |
target_app |
target.application |
Wird direkt aus dem Feld TARGET im Rohlog zugeordnet. |
target_ip |
target.ip |
Wird direkt aus dem Feld target_ip oder IP im Rohlog zugeordnet. |
target_port |
target.port |
Wird direkt aus dem Feld target_port im Rohlog zugeordnet und in eine Ganzzahl umgewandelt. |
timestamp |
metadata.event_timestamp |
Wird direkt aus dem Feld timestamp im Rohlog zugeordnet und als ISO8601-Zeitstempel geparst. |
timestamp |
event.timestamp |
Wird direkt aus dem Feld timestamp im Rohlog zugeordnet 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 |
Wird 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 |
Wird 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 |
Wird direkt aus dem Feld type im Rohlog zugeordnet. |
user |
target.user.userid |
Wird direkt aus dem Feld USER oder ugi im Rohlog zugeordnet. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten