Logs von AWS EC2-Hosts erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie AWS EC2-Host-Logs in Google Security Operations einbinden, um sie zu überwachen und zu analysieren. Bei der Integration werden EC2-Hostlogs geparst und dem Unified Data Model (UDM) zugeordnet, es werden Datentransformationen durchgeführt und Beziehungen zwischen EC2-Hosts und ‑Instanzen erstellt. Die Logs enthalten wertvolle Informationen zu den Instanzen, Host-Properties, Instanztypen und Leistungsmesswerten, die für Sicherheitsmonitoring, Audit und Compliance verwendet werden können.

Hinweise

  • Prüfen Sie, ob Sie eine Google SecOps-Instanz haben.
  • Prüfen Sie, ob Sie privilegierten Zugriff auf AWS haben.

AWS IAM und S3 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 der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

CloudTrail für AWS KMS konfigurieren

  1. Melden Sie sich bei der AWS Management Console an.
  2. Geben Sie in der Suchleiste CloudTrail ein und wählen Sie den Dienst aus der Liste aus.
  3. Klicken Sie auf Trail erstellen.
  4. Geben Sie einen Trail name an, z. B. EC2-Activity-Trail.
  5. Klicken Sie das Kästchen Für alle Konten in meiner Organisation aktivieren an.
  6. Geben Sie den zuvor erstellten S3-Bucket-URI ein (das Format sollte s3://your-log-bucket-name/ sein) oder erstellen Sie einen neuen S3-Bucket.
  7. Wenn SSE-KMS aktiviert ist, geben Sie einen Namen für den AWS KMS-Alias an oder wählen Sie einen vorhandenen AWS KMS-Schlüssel aus.
  8. Die anderen Einstellungen können Sie auf den Standardwerten belassen.
  9. Klicken Sie auf Weiter.
  10. Wählen Sie unter Event Types (Ereignistypen) Management events (Verwaltungsereignisse) und Data events (Datenereignisse) aus, um EC2-Hostaktivitäten zu erfassen.
  11. Klicken Sie auf Weiter.
  12. Prüfen Sie die Einstellungen unter Überprüfen und erstellen.
  13. Klicken Sie auf Trail erstellen.
  14. Optional: Wenn Sie einen neuen Bucket erstellt haben, fahren Sie mit dem folgenden Verfahren fort:
    • Rufen Sie S3 auf.
    • Suchen Sie den neu erstellten Log-Bucket und wählen Sie ihn aus.
    • Wählen Sie den Ordner AWSLogs aus.
    • Klicken Sie auf S3-URI kopieren und speichern Sie sie.

Feed in Google SecOps konfigurieren, um AWS EC2-Hosts aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen> Feeds auf.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. AWS EC2 Hosts Logs (AWS EC2-Hostprotokolle).
  4. Wählen Sie Amazon S3 als Quelltyp aus.
  5. Wählen Sie AWS EC2-Hosts als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. 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 des Buckets.
    • URI ist ein: Wählen Sie Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option aus.

    • Zugriffsschlüssel-ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.

    • Secret Access Key (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.

  8. Klicken Sie auf Weiter.

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

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
AllocationTime entity.metadata.creation_timestamp Das Feld AllocationTime wird als Zeitstempel geparst und dem Feld creation_timestamp zugeordnet. Der Parser versucht es mit verschiedenen Formaten (JJJJ-MM-TT HH:mm:ss, RFC 3339, UNIX, ISO8601).
AllowsMultipleInstanceTypes entity.entity.asset.attribute.labels.value Der Wert von AllowsMultipleInstanceTypes aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf allows_multiple_instance_types festgelegt.
AutoPlacement entity.entity.asset.attribute.labels.value Der Wert von AutoPlacement aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf auto_placement festgelegt.
AvailabilityZone entity.entity.asset.attribute.cloud.availability_zone Das Feld AvailabilityZone wird direkt dem Feld availability_zone zugeordnet.
AvailabilityZoneID entity.entity.asset.attribute.labels.value Der Wert von AvailabilityZoneID aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf availability_zone_id festgelegt.
AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity entity.entity.asset.attribute.labels.value Der Wert von AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity (oder AvailableCapacity.Instance.Available nach der Umbenennung) wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf available_instance_capacity_available_capacity festgelegt.
AvailableCapacity.AvailableInstanceCapacity.InstanceType entity.entity.asset.attribute.labels.value Der Wert von AvailableCapacity.AvailableInstanceCapacity.InstanceType (oder AvailableCapacity.Instance.Type nach der Umbenennung) wird als Wert eines Labels verwendet. Der Schlüssel ist auf available_instance_capacity_instance_type festgelegt.
AvailableCapacity.AvailableInstanceCapacity.TotalCapacity entity.entity.asset.attribute.labels.value Der Wert von AvailableCapacity.AvailableInstanceCapacity.TotalCapacity (oder AvailableCapacity.Instance.Total nach der Umbenennung) wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf total_capacity festgelegt.
AvailableCapacity.AvailableVCpus entity.entity.asset.attribute.labels.value Der Wert von AvailableCapacity.AvailableVCpus (oder AvailableCapacity.VCPUs nach der Umbenennung) wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf available_v_cpus festgelegt.
ClientToken entity.entity.asset.attribute.labels.value Der Wert von ClientToken aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf client_token festgelegt.
HostID entity.metadata.product_entity_id Das Feld HostID (oder ID nach der Umbenennung) wird direkt dem Feld product_entity_id zugeordnet.
HostID entity.entity.asset.asset_id Das Feld HostID (oder ID nach der Umbenennung) wird direkt dem Feld asset_id zugeordnet.
HostMaintenance entity.entity.asset.attribute.labels.value Der Wert von HostMaintenance (oder Maintenance nach der Umbenennung) aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf host_maintenance festgelegt.
HostProperties.Cores entity.entity.asset.hardware.cpu_number_cores Der Wert von HostProperties.Cores wird in eine vorzeichenlose Ganzzahl konvertiert und cpu_number_cores zugeordnet.
HostProperties.InstanceFamily entity.entity.asset.attribute.labels.value Der Wert von HostProperties.InstanceFamily aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf host_properties_instance_family festgelegt.
HostProperties.InstanceType entity.entity.asset.attribute.labels.value Der Wert von HostProperties.InstanceType aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf host_properties_instance_type festgelegt.
HostProperties.Sockets entity.entity.asset.attribute.labels.value Der Wert von HostProperties.Sockets wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf host_properties_sockets festgelegt.
HostProperties.TotalVCpus entity.entity.asset.attribute.labels.value Der Wert von HostProperties.TotalVCpus (oder HostProperties.TotalVCPUs nach der Umbenennung) wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf host_properties_total_v_cpus festgelegt.
HostRecovery entity.entity.asset.attribute.labels.value Der Wert von HostRecovery (oder Recovery nach der Umbenennung) aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf host_recovery festgelegt.
HostReservationID entity.entity.asset.attribute.labels.value Der Wert von HostReservationID (oder ReservationID nach der Umbenennung) aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf host_reservation_id festgelegt.
MemberOfServiceLinkedResourceGroup entity.entity.asset.attribute.labels.value Der Wert von MemberOfServiceLinkedResourceGroup wird in einen String konvertiert und als Wert eines Labels verwendet. Der Schlüssel ist auf member_of_service_linked_resource_group festgelegt.
OwnerID entity.entity.asset.attribute.labels.value Der Wert von OwnerID aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf owner_id festgelegt.
ReleaseTime entity.entity.asset.attribute.labels.value Der Wert von ReleaseTime aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf release_time festgelegt.
State entity.entity.asset.attribute.labels.value Der Wert von State aus dem Rohlog wird als Wert eines Labels verwendet. Der Schlüssel für dieses Label ist auf state festgelegt.
TagSet entity.entity.asset.attribute.labels Das TagSet-Array wird durchlaufen und Key und Value jedes Tags werden als Schlüssel bzw. Wert eines Labels verwendet. Der Wert AMAZON_WEB_SERVICES wird diesem Feld vom Parser zugewiesen. Der collection_time aus dem Rohlog wird dem Feld collected_timestamp zugeordnet. Der Wert ASSET wird diesem Feld vom Parser zugewiesen. Der Wert AWS EC2 HOSTS wird diesem Feld vom Parser zugewiesen. Der Wert AWS wird diesem Feld vom Parser zugewiesen. Beziehungen werden aus den Feldern Instances und OutpostArn abgeleitet, diese Felder selbst werden aber nicht direkt dem IDM-Objekt zugeordnet. Die Parserlogik erstellt anhand dieser Felder Beziehungsobjekte und führt sie in das relations-Array ein.
collection_time entity.metadata.collected_timestamp Der collection_time des Logs wird als collected_timestamp des Ereignisses verwendet.

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