AWS Elastic MapReduce-Logs erfassen
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
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für die spätere Verwendung.
- Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- 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.
- 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 zum Weiterleiten 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 die Protokollierung 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 Logging aktivieren aus.
- Geben Sie den S3-Bucket an, in dem die 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 logs
Application logs
YARN logs
System logs
HDFS Logs
(wenn Sie Hadoop verwenden)
- 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:
- Rufen Sie die SIEM-Einstellungen> Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. AWS EMR Logs (AWS EMR-Logs).
- Wählen Sie Amazon S3 als Quelltyp aus.
- Wählen Sie AWS EMR als Log type (Protokolltyp) aus.
- Klicken Sie auf Weiter.
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.
- Ersetzen Sie
- 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.
Klicken Sie auf Weiter.
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.
- Ersetzen Sie
- 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