AWS Elastic Load Balancing-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie AWS Elastic Load Balancing-Logs erfassen, indem Sie einen Google Security Operations-Feed einrichten. Der Parser konvertiert die Protokolle in das UDM-Format. Dabei werden Grok-Muster verwendet, um Felder sowohl aus CEF- als auch nicht CEF-formatierten Nachrichten zu extrahieren, sie UDM-Feldern zuzuordnen und verschiedene Datentransformationen zu verarbeiten, einschließlich spezifischer Logik für HTTP-, TLS- und sicherheitsbezogene Felder. Außerdem wird eine bedingte Verarbeitung basierend auf dem Vorhandensein oder Format bestimmter Felder durchgeführt, um eine korrekte UDM-Darstellung zu gewährleisten.
Hinweise
- Sie benötigen eine Google SecOps-Instanz.
- Sie benötigen erhöhte Zugriffsrechte für AWS.
AWS Elastic Load Balancing konfigurieren
- Aktivieren Sie die Zugriffsprotokollierung, um Zugriffslogs an einen S3-Speicher-Bucket zu senden.
- Erstellen Sie einen Amazon Simple Queue Service (SQS) und binden Sie ihn an einen S3-Speicher-Bucket an.
Amazon S3-Bucket konfigurieren
- Melden Sie sich in der AWS-Konsole an.
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
- Speichern Sie den Namen (z. B.
elb-logs
) und die Region des Buckets für später. - Erstellen Sie einen Nutzer gemäß der Anleitung IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall 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 Secret Access Key zur späteren 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 der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
AWS Elastic Load Balancer für Zugriffsprotokolle konfigurieren
- Melden Sie sich in der AWS Management Console an.
- Suchen Sie nach EC2 und wählen Sie die Option aus.
- Wählen Sie im Navigationsmenü Load Balancer aus.
- Wählen Sie den Load Balancer aus, für den Sie das Logging aktivieren möchten.
- Scrollen Sie auf dem Tab Beschreibung zu Attribute.
- Klicken Sie auf Attribute bearbeiten.
- Aktivieren Sie Zugriffslogs, indem Sie Aktivieren auswählen.
- Wählen Sie den zuvor erstellten S3-Bucket aus (z. B.
elb-logs
). - Optional: Legen Sie das Log-Präfix fest, um Protokolle leichter zu identifizieren (z. B.
elb/access-logs/
). - Klicken Sie auf Speichern.
Feed in Google SecOps für die Aufnahme der AWS Elastic Load Balancer-Protokolle konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. AWS Elastic Load Balancer-Protokolle.
- Wählen Sie als Quelltyp Amazon S3 aus.
- Wählen Sie AWS Elastic Load Balancer als Logtyp 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:/BUCKET_NAME
- Ersetzen Sie
BUCKET_NAME
durch den tatsächlichen Namen des Buckets.
- Ersetzen Sie
- URI ist: Wählen Sie den URI-TYP gemäß der Logstream-Konfiguration aus (Einzelne Datei | Verzeichnis | Verzeichnis mit Unterverzeichnissen).
- Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
- Zugriffsschlüssel-ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
- Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den 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.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
actions_executed |
security_result.action |
Wenn actions_executed „waf,forward“ oder „waf,redirect“ ist, setzen Sie es auf „ALLOW“. Wenn actions_executed „waf“ ist, legen Sie „BLOCK“ fest. |
chosen_cert_arn |
principal.user.attribute.labels |
Wenn chosen_cert_arn „session“ enthält, ordnen Sie den Wert security_result.description zu. Andernfalls erstellen Sie ein Label mit dem Schlüssel „ARN“ und dem Wert chosen_cert_arn und fügen es dem Array principal.user.attribute.labels hinzu. |
chosen_cert_arn |
security_result.description |
Wenn chosen_cert_arn „session“ enthält, ordnen Sie den Wert diesem Feld zu. |
client_ip |
principal.asset.ip |
Direkt zugeordnet. |
client_ip |
principal.ip |
Direkt zugeordnet. |
client_port |
principal.port |
Direkt zugeordnet. |
classification |
security_result.rule_name |
Wird direkt zugeordnet, wenn das Feld nicht leer oder „-“ ist. |
classification_reason |
security_result.summary |
Wird direkt zugeordnet, wenn das Feld nicht leer oder „-“ ist. |
Customer (CEF) |
principal.user.user_display_name |
Wird direkt aus dem CEF-Feld zugeordnet. |
data |
Verschiedene | Mit Grok-Mustern geparst, um mehrere Felder zu extrahieren. In anderen Zeilen finden Sie bestimmte Zuordnungen. |
data.act (CEF) |
security_result.action_details |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.app (CEF) |
principal.application |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.ccode (CEF) |
principal.location.country |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.cicode (CEF) |
principal.location.city |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.cn1 (CEF) |
network.http.response_code |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.cpt (CEF) |
principal.port |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.cs1Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Cap Support“ und dem Wert aus cs1Label . |
data.cs2Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „Javascript-Unterstützung“ und dem Wert aus cs2Label . |
data.cs3Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „CO Support“ und dem Wert aus cs3Label . |
data.cs4Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „VID“ und dem Wert aus cs4Label . |
data.cs5Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „clappsig“ und dem Wert aus cs5Label . |
data.cs6Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „klatschen“ und dem Wert aus cs6Label . |
data.cs7Label (CEF) |
additional.fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „latitude“ und dem Wert aus cs7Label . |
data.deviceExternalId (CEF) |
about.asset.asset_id |
Wird als Teil der Asset-ID verwendet: Incapsula.SIEMintegration:deviceExternalId . |
data.deviceFacility (CEF) |
principal.location.region |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.dproc (CEF) |
target.process.command_line |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.dst_ip |
target.asset.ip |
Direkt zugeordnet. |
data.dst_ip |
target.ip |
Direkt zugeordnet. |
data.dst_port |
target.port |
Direkt zugeordnet. |
data.elb |
target.resource.id |
Direkt zugeordnet. |
data.fileId (CEF) |
security_result.detection_fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „fileId“ und dem Wert aus fileId . |
data.in (CEF) |
network.received_bytes |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.request (CEF) |
target.url |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.requestClientApplication (CEF) |
network.http.user_agent |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.requestMethod (CEF) |
network.http.method |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.severity (CEF) |
security_result.severity |
Wird als „Niedrig“ zugeordnet, wenn der Schweregrad „0“ ist. |
data.sip (CEF) |
principal.asset.ip |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.sip (CEF) |
principal.ip |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.siteid (CEF) |
security_result.detection_fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „siteid“ und dem Wert aus siteid . |
data.sourceServiceName (CEF) |
principal.application |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.spt (CEF) |
principal.port |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.src (CEF) |
principal.ip |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.suid (CEF) |
principal.user.userid |
Wird direkt aus dem CEF-Feld zugeordnet. |
data.ver (CEF) |
network.tls.version |
Der Versionsteil wird mit Grok extrahiert und zugeordnet. |
data.ver (CEF) |
network.tls.cipher |
Der Chiffrenteil wird mit grok extrahiert und zugeordnet. |
data.xff (CEF) |
principal.ip |
Wird direkt aus dem CEF-Feld zugeordnet. |
domain_name |
principal.administrative_domain |
Direkt zugeordnet. |
http_method |
network.http.method |
Direkt zugeordnet. |
log_type |
metadata.log_type |
Direkt zugeordnet. |
message |
Verschiedene | Mit Grok-Mustern geparst, um mehrere Felder zu extrahieren. In anderen Zeilen finden Sie bestimmte Zuordnungen. |
received_bytes |
network.received_bytes |
Direkt zugeordnet. |
redirect_url |
network.application_protocol |
Wenn redirect_url mit „http“ beginnt, wird das Protokoll extrahiert und zugeordnet. |
redirect_url |
target.asset.hostname |
Wenn redirect_url mit „http“ beginnt, wird der Hostname extrahiert und zugeordnet. |
redirect_url |
target.hostname |
Wenn redirect_url mit „http“ beginnt, wird der Hostname extrahiert und zugeordnet. |
redirect_url |
target.port |
Wenn redirect_url mit „http“ beginnt, wird der Port extrahiert und zugeordnet. |
request_creation_time |
metadata.collected_timestamp |
Direkt nach dem Parsen des Datums zugeordnet. |
request_processing_time |
security_result.detection_fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „request_processing_time“ und dem Wert aus diesem Feld. |
response_processing_time |
security_result.detection_fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „response_processing_time“ und dem Wert aus diesem Feld. |
sent_bytes |
network.sent_bytes |
Direkt zugeordnet. |
ssl_cipher |
network.tls.cipher |
Direkt zugeordnet. |
ssl_protocol |
network.tls.version |
Direkt zugeordnet. |
target_group_arn |
target.group.group_display_name |
Direkt zugeordnet. |
target_processing_time |
security_result.detection_fields |
Erstellt ein Schlüssel/Wert-Paar mit dem Schlüssel „target_processing_time“ und dem Wert aus diesem Feld. |
target_status_code |
target.labels |
Erstellt ein Label mit dem Schlüssel „target_status_code“ und dem Wert aus diesem Feld und fügt es dem Array target.labels hinzu. |
time |
metadata.event_timestamp |
Direkt nach dem Parsen des Datums zugeordnet. |
trace_id |
metadata.product_log_id |
Nach dem Entfernen von „Root=" direkt zugeordnet. |
url |
network.http.referral_url |
Direkt zugeordnet. |
user_agent |
network.http.user_agent |
Direkt zugeordnet. |
(Parser) | metadata.event_type |
Legen Sie „NETWORK_HTTP“ fest, wenn die ID des Haupt- und des Zielcomputers vorhanden sind, „STATUS_UPDATE“, wenn nur die ID des Hauptcomputers vorhanden ist, „GENERIC_EVENT“, wenn keine Ziel-IP, kein Hostname oder keine Ziel-IP vorhanden ist, und andernfalls „NETWORK_HTTP“. |
(Parser) | metadata.product_name |
Legen Sie „AWS Elastic Load Balancer“ fest. |
(Parser) | metadata.vendor_name |
Legen Sie diesen Wert auf „AMAZON“ fest. |
Änderungen
2024-03-22
- Neues Grok-Muster hinzugefügt, um ein neues Muster von JSON-Protokollen zu unterstützen.
- Unterstützung für CEF-Musterprotokolle hinzugefügt.
- „dst_ip“ wurde „target.ip“ zugeordnet.
- „dst_port“ wurde „target.port“ zugeordnet.
- „sip“ wurde auf „principal.ip“ zugeordnet.
- „request_processing_time“, „target_processing_time“, „siteid“, „fileId“ und „response_processing_time“ wurden in „security_result.detection.fields“ zugeordnet.
- Übereinstimmende Zuordnungen für „principal.ip“ und „principal.asset.ip“.
- Die Zuordnungen für „target.ip“ und „target.asset.ip“ wurden angeglichen.
- Die Zuordnungen für „target.hostname“ und „target.asset.hostname“ sind übereinstimmend.
- „cipher“ wurde in „network.tls.cipher“ geändert.
- „version“ wurde in „network.tls.version“ geändert.
- „Kunde“ wurde auf „principal.user.user_display_name“ zugeordnet.
2022-05-27
- Verbesserung: Der in „metadata.product_name“ gespeicherte Wert wurde in „AWS Elastic Load Balancer“ geändert.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten