AWS VPC Flow Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie AWS VPC-Flusslogs mit einem Google Security Operations-Forwarder erfassen können.

Weitere Informationen finden Sie unter Datenaufnahme in Google SecOps.

Mit einem Erfassungslabel wird der Parser identifiziert, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Ingestion-Label AWS_VPC_FLOW.

Unterstützte AWS VPC Flow Log-Formate

Google SecOps unterstützt die Aufnahme von AWS VPC Flow Logs in zwei primären Textformaten:

  • JSON-Format:Beim Logtyp AWS_VPC_FLOW werden Logs im JSON-Format geparst. In diesem Format enthält jeder Logeintrag sowohl einen Schlüssel als auch den entsprechenden Wert, sodass die Daten selbsterklärend sind.

  • CSV-Format:Google SecOps bietet auch einen Parser für AWS VPC Flow Logs im CSV-Format. In diesem Format werden Feldschlüssel nur einmal in der Kopfzeile aufgeführt. Die nachfolgenden Zeilen enthalten nur durch Kommas getrennte Werte.

Wenn Sie AWS VPC-Flusslogs im CSV-Format aufnehmen möchten, geben Sie den Logtyp als AWS_VPC_FLOW_CSV an, wenn Sie den Forwarder konfigurieren. Eine Einrichtungsanleitung finden Sie unter Google SecOps-Forwarder und Syslog zum Erfassen von AWS VPC-Flusslogs konfigurieren.

Da das CSV-Format keine Feldschlüssel in den einzelnen Logeinträgen enthält, ist für den AWS_VPC_FLOW_CSV-Parser eine strenge, vordefinierte Reihenfolge der Werte erforderlich. Ihre CSV-Dateien müssen die folgende Feldreihenfolge für das korrekte Parsen einhalten:

   Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id

Hier ein Beispiel für eine CSV-Logzeile:

   7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-

Für Felder, für die kein Wert verfügbar ist, sollte ein leerer Wert (z. B. , ,) übergeben werden, um die richtige Position in der CSV-Zeile beizubehalten.

Hinweise

AWS VPC Flow konfigurieren

Konfigurieren Sie AWS VPC Flow je nachdem, ob Sie die Logs an Amazon S3 oder an Amazon CloudWatch weiterleiten.

Flusslogs konfigurieren, um Logs an Amazon S3 weiterzuleiten

Nachdem Sie den Amazon S3-Bucket erstellt und konfiguriert haben, können Sie Flusslogs für Ihre Netzwerkschnittstellen, Subnetze und VPC-Netzwerke erstellen.

Flow-Log für eine Netzwerkschnittstelle erstellen

  1. Melden Sie sich in der Amazon EC2-Konsole an.
  2. Wählen Sie im Navigationsbereich Netzwerkschnittstellen aus.
  3. Wählen Sie eine oder mehrere Netzwerkschnittstellen aus.
  4. Wählen Sie Aktionen > Flow-Log erstellen aus.
  5. Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.

Flusslog für ein Subnetz erstellen

  1. Melden Sie sich in der Amazon VPC-Konsole an.
  2. Wählen Sie im Navigationsbereich Subnetze aus.
  3. Wählen Sie ein oder mehrere Subnetze aus.
  4. Wählen Sie Aktionen > Flow-Log erstellen aus.
  5. Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.

Flusslog für eine VPC erstellen

  1. Melden Sie sich in der Amazon VPC-Konsole an.
  2. Wählen Sie im Navigationsbereich VPCs aus.
  3. Wählen Sie eine oder mehrere VPCs aus.
  4. Wählen Sie Aktionen > Flow-Log erstellen aus.
  5. Flusslogeinstellungen konfigurieren Weitere Informationen finden Sie im Abschnitt Flow-Log-Einstellungen konfigurieren in diesem Dokument.

Flusslogeinstellungen konfigurieren

  1. Geben Sie im Bereich Filter den IP-Traffic an, der protokolliert werden soll:

    • Akzeptieren: Es wird nur akzeptierter Traffic protokolliert.

    • Ablehnen: Es wird nur abgelehnter Traffic protokolliert.

    • Alle: Akzeptierter und abgelehnter Traffic wird protokolliert.

  2. Wählen Sie im Abschnitt Maximales Aggregationsintervall die Option 1 Minute aus.

  3. Wählen Sie im Abschnitt Ziel die Option An einen Amazon S3-Bucket senden aus.

  4. Geben Sie im Abschnitt S3-Bucket-ARN den ARN eines Amazon S3-Buckets an.

  5. Geben Sie im Abschnitt Format des Protokolldatensatzes die folgenden Formate für den Flow-Protokolldatensatz an:

    1. Wenn Sie das Standardformat für Flusslogdatensätze verwenden möchten, wählen Sie AWS-Standardformat aus.
    2. Wenn Sie ein benutzerdefiniertes Format erstellen möchten, wählen Sie Benutzerdefiniertes Format aus.
  6. Konfigurieren Sie den VPC-Logfluss mit dem benutzerdefinierten AWS-Logformat, um die Funktionen für die tatsächliche IP-Adresse von MSS zu verwenden.

  7. Wählen Sie in der Liste Logformat alle Attribute aus.

  8. Sehen Sie sich im Bereich Formatvorschau das benutzerdefinierte Format an.

  9. Wählen Sie im Bereich Logdateiformat die Option Text (Standard) aus.

  10. Lassen Sie im Abschnitt Hive-kompatibles S3-Präfix das Kästchen Aktivieren deaktiviert.

  11. Wählen Sie im Abschnitt Logs nach Zeit partitionieren die Option Alle 1 Stunde (60 Minuten) aus.

  12. Wenn Sie dem Flow-Log ein Tag hinzufügen möchten, wählen Sie Neues Tag hinzufügen aus und geben Sie den Tag-Schlüssel und -Wert an.

  13. Wählen Sie Ablaufprotokoll erstellen aus. Weitere Informationen finden Sie unter Flusslogs in Amazon S3 veröffentlichen.

Flusslogs für Amazon CloudWatch konfigurieren

Sie können Flusslogs entweder über VPCs, Subnetze oder Netzwerkschnittstellen konfigurieren.

  1. Geben Sie im Bereich Filter den Typ des zu protokollierenden IP-Traffics an:

    • Akzeptieren: Es wird nur akzeptierter Traffic protokolliert.

    • Ablehnen: Es wird nur abgelehnter Traffic protokolliert.

    • Alle: Akzeptierter und abgelehnter Traffic wird protokolliert.

  2. Wählen Sie im Abschnitt Maximales Aggregationsintervall die Option 1 Minute aus.

  3. Wählen Sie im Abschnitt Ziel die Option An CloudWatch Logs senden aus.

  4. Geben Sie im Abschnitt Ziel-Loggruppe den Namen der Ziel-Loggruppe an, die Sie erstellt haben.

  5. Wählen Sie in der Liste IAM-Rolle den Rollennamen aus. Die ausgewählte Rolle hat Berechtigungen zum Veröffentlichen von Logs in CloudWatch Logs.

    Die IAM-Rolle muss die folgenden Berechtigungen enthalten:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. Wählen Sie im Abschnitt Logeintragformat die Option Benutzerdefiniertes Format für den Flusslog-Eintrag aus.

  7. Wenn Sie dem Flow-Log ein Tag hinzufügen möchten, wählen Sie Neues Tag hinzufügen aus und geben Sie den Tag-Schlüssel und -Wert an.

  8. Wählen Sie Ablaufprotokoll erstellen aus. Weitere Informationen finden Sie unter Flusslogs in Amazon S3 veröffentlichen.

Amazon S3 kann so konfiguriert werden, dass die Ereignisbenachrichtigungen an Amazon SQS gesendet werden. Weitere Informationen finden Sie unter Bucket für Benachrichtigungen konfigurieren (SNS-Thema oder SQS-Warteschlange).

IAM-Nutzerrichtlinien sind für Amazon S3 und Amazon SQS erforderlich, wenn Amazon SQS (Amazon S3 mit Amazon SQS) als Methode zum Erfassen von Logs verwendet wird. Weitere Informationen finden Sie unter IAM-Richtlinien mit AWS KMS verwenden.

Ermitteln Sie anhand des Dienstes und der Region die Endpunkte für die Verbindung. Verwenden Sie dazu die folgende AWS-Dokumentation:

Google SecOps-Forwarder und Syslog zum Erfassen von AWS VPC-Flusslogs konfigurieren

  1. Wählen Sie SIEM-Einstellungen > Weiterleitungen aus.
  2. Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
  3. Geben Sie einen eindeutigen Namen für den Forwarder-Namen ein.
  4. Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
  5. Geben Sie im Feld Name des Collectors einen Namen ein.
  6. Wählen Sie im Feld Log type (Logtyp) je nach Logformat AWS VPC Flow oder AWS VPC Flow (CSV) aus.
  7. Wählen Sie im Feld Collector-Typ die Option Syslog aus.
  8. Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
    • Protokoll: Geben Sie das Verbindungsprotokoll an, das der Collector verwenden soll, um auf Syslog-Daten zu warten.
    • Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet und an den die Syslog-Daten gesendet werden.
    • Port: Geben Sie den Zielport an, auf dem sich der Collector befindet und an dem er auf Syslog-Daten wartet.
  9. Klicken Sie auf Senden und dann auf Bestätigen.

Weitere Informationen zu Google SecOps-Forwardern finden Sie in der Dokumentation zu Google Security Operations-Forwardern. Informationen zu den Anforderungen für die einzelnen Forwarder-Typen finden Sie unter Forwarder-Konfiguration nach Typ.

Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.

Referenz zur Feldzuordnung

Dieser Parser wandelt Roh-VPC-Flow-Logs von AWS im JSON- oder CSV-Format in das strukturierte UDM-Format um. Es werden relevante Felder extrahiert, dem UDM-Schema zugeordnet und mit zusätzlichem Kontext wie Ressourcentyp, Cloud-Anbieter und Labels angereichert, um eine detailliertere Analyse zu ermöglichen. Die Zuordnungslogik ist für beide Formate konsistent: Der CSV-Parser stützt sich auf eine vordefinierte Feldreihenfolge, um Werte mit denselben UDM-Feldern abzugleichen, die im JSON-Format verwendet werden.

UDM-Zuordnungstabelle für den AWS EC2 VPC-Parser

Logfeld (aufsteigend) UDM-Zuordnung Logik
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block Direkt aus dem Feld „CidrBlock“ im Rohlog zugeordnet.
CidrBlock event.idm.entity.entity.network.ip_subnet_range Direkt aus dem Feld „CidrBlock“ im Rohlog zugeordnet.
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id Direkt aus dem Feld „AssociationID“ im Array „CidrBlockAssociation“ im Rohlog zugeordnet.
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state Direkt aus dem Feld „State“ im Objekt „CidrBlockState“ des Arrays „CidrBlockAssociation“ im Rohlog abgeleitet.
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message Direkt aus dem Feld „StatusMessage“ im Objekt „CidrBlockState“ des Arrays „CidrBlockAssociation“ im Rohlog zugeordnet.
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id Direkt aus dem Feld „DhcpOptionsID“ im Rohlog zugeordnet.
ID event.idm.entity.entity.resource.product_object_id Direkt aus dem Feld „ID“ im Rohlog zugeordnet, das im Parser in „VpcID“ umbenannt wird.
ID event.idm.entity.metadata.product_entity_id Direkt aus dem Feld „ID“ im Rohlog zugeordnet, das im Parser in „VpcID“ umbenannt wird.
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy Direkt aus dem Feld „InstanceTenancy“ im Rohlog zugeordnet.
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default Direkt aus dem Feld „IsDefault“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id Direkt aus dem Feld „AssociationID“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block Direkt aus dem Feld „Ipv6CidrBlock“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state Direkt aus dem Feld „State“ im Objekt „Ipv6CidrBlockState“ des Arrays „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message Direkt aus dem Feld „StatusMessage“ im Objekt „Ipv6CidrBlockState“ des Arrays „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool Direkt aus dem Feld „Ipv6Pool“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group Direkt aus dem Feld „NetworkBorderGroup“ im Array „Ipv6CidrBlockAssociationSet“ im Rohlog zugeordnet.
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id Direkt aus dem Feld „OwnerID“ im Rohlog zugeordnet.
Bundesland event.idm.entity.entity.resource.attribute.labels.state Direkt aus dem Feld „State“ (Status) im Rohlog zugeordnet.
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key Direkt aus dem Feld „Key“ im Array „TagSet“ im Rohlog zugeordnet. Dadurch wird für jedes Tag im „TagSet“ ein neues Label erstellt.
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value Direkt aus dem Feld „Value“ im Array „TagSet“ im Rohlog zugeordnet. Damit wird der Wert für jedes entsprechende Label, das aus dem Feld „Schlüssel“ erstellt wurde, eingefügt.
event.idm.entity.entity.resource.attribute.cloud.environment Im Parsercode fest codiert als „AMAZON_WEB_SERVICES“.
event.idm.entity.entity.resource.resource_type Im Parsercode ist „VPC_NETWORK“ fest codiert.
event.idm.entity.metadata.collected_timestamp Wird mit dem Ereigniszeitstempel gefüllt, der aus dem Feld „collection_time“ im Rohlog abgeleitet wird.
event.idm.entity.metadata.entity_type Im Parsercode hartcodiert auf „RESOURCE“.
event.idm.entity.metadata.product_name Im Parsercode ist „Amazon VPC“ hartcodiert.
event.idm.entity.metadata.vendor_name Im Parsercode ist „AWS“ hartcodiert.
events.timestamp Wird mit dem Ereigniszeitstempel gefüllt, der aus dem Feld „collection_time“ im Rohlog abgeleitet wird.

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