Cisco AMP for Endpoints-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco AMP for Endpoints-Logs mit Amazon S3 in Google Security Operations aufnehmen. Der Parser wandelt Rohlogs im JSON-Format in ein strukturiertes Format um, das dem Chronicle UDM entspricht. Es extrahiert Felder aus verschachtelten JSON-Objekten, ordnet sie dem UDM-Schema zu, identifiziert Ereigniskategorien, weist Schweregrade zu und generiert schließlich eine einheitliche Ereignisausgabe, wobei Sicherheitswarnungen gekennzeichnet werden, wenn bestimmte Bedingungen erfüllt sind.
Hinweise
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf die Cisco AMP for Endpoints-Konsole
- Privilegierter Zugriff auf AWS (S3, IAM, Lambda, EventBridge)
Voraussetzungen für Cisco AMP for Endpoints erfassen (IDs, API-Schlüssel, Organisations-IDs, Tokens)
- Melden Sie sich in der Cisco AMP for Endpoints-Konsole an.
- Rufen Sie Konten > API-Anmeldedaten auf.
- Klicken Sie auf New API Credential (Neue API-Anmeldedaten), um einen neuen API-Schlüssel und eine neue Client-ID zu erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name der Anwendung: Geben Sie einen Namen ein, z. B.
Chronicle SecOps Integration. - Umfang: Wählen Sie Nur lesen für das einfache Abrufen von Ereignissen oder Lesen und schreiben aus, wenn Sie Ereignisstreams erstellen möchten.
- Name der Anwendung: Geben Sie einen Namen ein, z. B.
- Klicken Sie auf Erstellen.
- Kopieren Sie die folgenden Details und speichern Sie sie an einem sicheren Ort:
- Drittanbieter-API-Client-ID
- API-Schlüssel
- API-Basis-URL: Je nach Region:
- USA:
https://api.amp.cisco.com - EU:
https://api.eu.amp.cisco.com - APJC:
https://api.apjc.amp.cisco.com
- USA:
AWS S3-Bucket und IAM für Google SecOps konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B.
cisco-amp-logs). - 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 Drittanbieterdienst als Anwendungsfall 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 zukünftige 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.
- Wählen Sie die Richtlinie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
IAM-Richtlinie und ‑Rolle für S3-Uploads konfigurieren
- Rufen Sie in der AWS-Konsole IAM > Richtlinien auf.
- Klicken Sie auf Richtlinie erstellen> Tab „JSON“.
Geben Sie die folgende Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::cisco-amp-logs/*" }, { "Sid": "AllowGetStateObject", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::cisco-amp-logs/cisco-amp-events/state.json" } ] }- Ersetzen Sie
cisco-amp-logs, wenn Sie einen anderen Bucket-Namen eingegeben haben.
- Ersetzen Sie
Klicken Sie auf Weiter > Richtlinie erstellen.
Rufen Sie IAM > Rollen > Rolle erstellen > AWS-Service > Lambda auf.
Hängen Sie die neu erstellte Richtlinie an.
Geben Sie der Rolle den Namen
cisco-amp-lambda-roleund klicken Sie auf Rolle erstellen.
Lambda-Funktion erstellen
- Rufen Sie in der AWS Console Lambda > Funktionen > Funktion erstellen auf.
- Klicken Sie auf Von Grund auf erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Name cisco-amp-events-collectorLaufzeit Python 3.13 Architektur x86_64 Ausführungsrolle cisco-amp-lambda-roleNachdem die Funktion erstellt wurde, öffnen Sie den Tab Code, löschen Sie den Stub und geben Sie den folgenden Code ein (
cisco-amp-events-collector.py):import json import boto3 import urllib3 import base64 from datetime import datetime, timedelta import os import logging # Configure logging logger = logging.getLogger() logger.setLevel(logging.INFO) # AWS S3 client and HTTP pool manager s3_client = boto3.client('s3') http = urllib3.PoolManager() def lambda_handler(event, context): """ AWS Lambda handler to fetch Cisco AMP events and store them in S3 """ try: # Get environment variables s3_bucket = os.environ['S3_BUCKET'] s3_prefix = os.environ['S3_PREFIX'] state_key = os.environ['STATE_KEY'] api_client_id = os.environ['AMP_CLIENT_ID'] api_key = os.environ['AMP_API_KEY'] api_base = os.environ['API_BASE'] # Optional parameters page_size = int(os.environ.get('PAGE_SIZE', '500')) max_pages = int(os.environ.get('MAX_PAGES', '10')) logger.info(f"Starting Cisco AMP events collection for bucket: {s3_bucket}") # Get last run timestamp from state file last_timestamp = get_last_timestamp(s3_bucket, state_key) if not last_timestamp: last_timestamp = (datetime.utcnow() - timedelta(days=1)).isoformat() + 'Z' # Create Basic Auth header auth_header = base64.b64encode(f"{api_client_id}:{api_key}".encode()).decode() headers = { 'Authorization': f'Basic {auth_header}', 'Accept': 'application/json' } # Build initial API URL base_url = f"{api_base}/v1/events" next_url = f"{base_url}?limit={page_size}&start_date={last_timestamp}" all_events = [] page_count = 0 while next_url and page_count < max_pages: logger.info(f"Fetching page {page_count + 1} from: {next_url}") # Make API request using urllib3 response = http.request('GET', next_url, headers=headers, timeout=60) if response.status != 200: raise RuntimeError(f"API request failed: {response.status} {response.data[:256]!r}") data = json.loads(response.data.decode('utf-8')) # Extract events from response events = data.get('data', []) if events: all_events.extend(events) logger.info(f"Collected {len(events)} events from page {page_count + 1}") # Check for next page next_url = data.get('metadata', {}).get('links', {}).get('next') page_count += 1 else: logger.info("No events found on current page") break logger.info(f"Total events collected: {len(all_events)}") # Store events in S3 if any were collected if all_events: timestamp_str = datetime.utcnow().strftime('%Y%m%d_%H%M%S') s3_key = f"{s3_prefix}cisco_amp_events_{timestamp_str}.ndjson" # Convert events to NDJSON format (one JSON object per line) ndjson_content = 'n'.join(json.dumps(event) for event in all_events) # Upload to S3 s3_client.put_object( Bucket=s3_bucket, Key=s3_key, Body=ndjson_content.encode('utf-8'), ContentType='application/x-ndjson' ) logger.info(f"Uploaded {len(all_events)} events to s3://{s3_bucket}/{s3_key}") # Update state file with current timestamp current_timestamp = datetime.utcnow().isoformat() + 'Z' update_state(s3_bucket, state_key, current_timestamp) return { 'statusCode': 200, 'body': json.dumps({ 'message': 'Success', 'events_collected': len(all_events), 'pages_processed': page_count }) } except Exception as e: logger.error(f"Error in lambda_handler: {str(e)}") return { 'statusCode': 500, 'body': json.dumps({ 'error': str(e) }) } def get_last_timestamp(bucket, state_key): """ Get the last run timestamp from S3 state file """ try: response = s3_client.get_object(Bucket=bucket, Key=state_key) state_data = json.loads(response['Body'].read().decode('utf-8')) return state_data.get('last_timestamp') except s3_client.exceptions.NoSuchKey: logger.info("No state file found, starting from 24 hours ago") return None except Exception as e: logger.warning(f"Error reading state file: {str(e)}") return None def update_state(bucket, state_key, timestamp): """ Update the state file with the current timestamp """ try: state_data = { 'last_timestamp': timestamp, 'updated_at': datetime.utcnow().isoformat() + 'Z' } s3_client.put_object( Bucket=bucket, Key=state_key, Body=json.dumps(state_data).encode('utf-8'), ContentType='application/json' ) logger.info(f"Updated state file with timestamp: {timestamp}") except Exception as e: logger.error(f"Error updating state file: {str(e)}")Rufen Sie Konfiguration > Umgebungsvariablen auf.
Klicken Sie auf Bearbeiten> Neue Umgebungsvariable hinzufügen.
Geben Sie die folgenden Umgebungsvariablen ein und ersetzen Sie die Platzhalter durch Ihre Werte.
Schlüssel Beispielwert S3_BUCKETcisco-amp-logsS3_PREFIXcisco-amp-events/STATE_KEYcisco-amp-events/state.jsonAMP_CLIENT_ID<your-client-id>AMP_API_KEY<your-api-key>API_BASEhttps://api.amp.cisco.com(oder die URL Ihrer Region)PAGE_SIZE500MAX_PAGES10Bleiben Sie nach dem Erstellen der Funktion auf der zugehörigen Seite oder öffnen Sie Lambda > Funktionen > cisco-amp-events-collector.
Wählen Sie den Tab Konfiguration aus.
Klicken Sie im Bereich Allgemeine Konfiguration auf Bearbeiten.
Ändern Sie Zeitlimit in 5 Minuten (300 Sekunden) und klicken Sie auf Speichern.
EventBridge-Zeitplan erstellen
- Gehen Sie zu Amazon EventBridge > Scheduler > Create schedule (Amazon EventBridge > Scheduler > Zeitplan erstellen).
- Geben Sie die folgenden Konfigurationsdetails an:
- Wiederkehrender Zeitplan: Preis (
1 hour). - Ziel: Ihre Lambda-Funktion
cisco-amp-events-collector. - Name:
cisco-amp-events-collector-1h.
- Wiederkehrender Zeitplan: Preis (
- Klicken Sie auf Zeitplan erstellen.
Optional: IAM-Nutzer mit Lesezugriff und Schlüssel für Google SecOps erstellen
- Rufen Sie die AWS-Konsole > IAM > Nutzer > Nutzer hinzufügen auf.
- Klicken Sie auf Add users (Nutzer hinzufügen).
- Geben Sie die folgenden Konfigurationsdetails an:
- Nutzer: Geben Sie
secops-readerein. - Zugriffstyp: Wählen Sie Zugriffsschlüssel – programmatischer Zugriff aus.
- Nutzer: Geben Sie
- Klicken Sie auf Nutzer erstellen.
- Minimale Leseberechtigung (benutzerdefiniert) anhängen: Nutzer > secops-reader > Berechtigungen > Berechtigungen hinzufügen > Richtlinien direkt anhängen > Richtlinie erstellen.
Geben Sie im JSON-Editor die folgende Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::cisco-amp-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::cisco-amp-logs" } ] }Legen Sie
secops-reader-policyals Name fest.Gehen Sie zu Richtlinie erstellen> suchen/auswählen > Weiter > Berechtigungen hinzufügen.
Rufen Sie Sicherheitsanmeldedaten > Zugriffsschlüssel > Zugriffsschlüssel erstellen auf.
Laden Sie die CSV herunter (diese Werte werden in den Feed eingegeben).
Feed in Google SecOps konfigurieren, um Cisco AMP for Endpoints-Logs aufzunehmen
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf + Neuen Feed hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Cisco AMP for Endpoints logs. - Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie Cisco AMP als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI:
s3://cisco-amp-logs/cisco-amp-events/ - Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
- Maximales Dateialter: Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
- Zugriffsschlüssel-ID: 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 wird.
- S3-URI:
- 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 |
|---|---|---|
| Aktiv | read_only_udm.principal.asset.active | Direkt aus computer.active zugeordnet |
| connector_guid | read_only_udm.principal.asset.uuid | Direkt aus computer.connector_guid zugeordnet |
| Datum | read_only_udm.metadata.event_timestamp.seconds | Direkt aus date zugeordnet, nachdem die Daten in einen Zeitstempel konvertiert wurden |
| Erkennung | read_only_udm.security_result.threat_name | Direkt aus detection zugeordnet |
| detection_id | read_only_udm.security_result.detection_fields.value | Direkt aus detection_id zugeordnet |
| disposition | read_only_udm.security_result.description | Direkt aus file.disposition zugeordnet |
| error.error_code | read_only_udm.security_result.detection_fields.value | Direkt aus error.error_code zugeordnet |
| error.description | read_only_udm.security_result.detection_fields.value | Direkt aus error.description zugeordnet |
| event_type | read_only_udm.metadata.product_event_type | Direkt aus event_type zugeordnet |
| event_type_id | read_only_udm.metadata.product_log_id | Direkt aus event_type_id zugeordnet |
| external_ip | read_only_udm.principal.asset.external_ip | Direkt aus computer.external_ip zugeordnet |
| file.file_name | read_only_udm.target.file.names | Direkt aus file.file_name zugeordnet |
| file.file_path | read_only_udm.target.file.full_path | Direkt aus file.file_path zugeordnet |
| file.identity.md5 | read_only_udm.security_result.about.file.md5 | Direkt aus file.identity.md5 zugeordnet |
| file.identity.md5 | read_only_udm.target.file.md5 | Direkt aus file.identity.md5 zugeordnet |
| file.identity.sha1 | read_only_udm.security_result.about.file.sha1 | Direkt aus file.identity.sha1 zugeordnet |
| file.identity.sha1 | read_only_udm.target.file.sha1 | Direkt aus file.identity.sha1 zugeordnet |
| file.identity.sha256 | read_only_udm.security_result.about.file.sha256 | Direkt aus file.identity.sha256 zugeordnet |
| file.identity.sha256 | read_only_udm.target.file.sha256 | Direkt aus file.identity.sha256 zugeordnet |
| file.parent.disposition | read_only_udm.target.resource.attribute.labels.value | Direkt aus file.parent.disposition zugeordnet |
| file.parent.file_name | read_only_udm.target.resource.attribute.labels.value | Direkt aus file.parent.file_name zugeordnet |
| file.parent.identity.md5 | read_only_udm.target.resource.attribute.labels.value | Direkt aus file.parent.identity.md5 zugeordnet |
| file.parent.identity.sha1 | read_only_udm.target.resource.attribute.labels.value | Direkt aus file.parent.identity.sha1 zugeordnet |
| file.parent.identity.sha256 | read_only_udm.target.resource.attribute.labels.value | Direkt aus file.parent.identity.sha256 zugeordnet |
| file.parent.process_id | read_only_udm.security_result.about.process.parent_process.pid | Direkt aus file.parent.process_id zugeordnet |
| file.parent.process_id | read_only_udm.target.process.parent_process.pid | Direkt aus file.parent.process_id zugeordnet |
| Hostname | read_only_udm.principal.asset.hostname | Direkt aus computer.hostname zugeordnet |
| Hostname | read_only_udm.target.hostname | Direkt aus computer.hostname zugeordnet |
| Hostname | read_only_udm.target.asset.hostname | Direkt aus computer.hostname zugeordnet |
| ip | read_only_udm.principal.asset.ip | Direkt aus computer.network_addresses.ip zugeordnet |
| ip | read_only_udm.principal.ip | Direkt aus computer.network_addresses.ip zugeordnet |
| ip | read_only_udm.security_result.about.ip | Direkt aus computer.network_addresses.ip zugeordnet |
| mac | read_only_udm.principal.mac | Direkt aus computer.network_addresses.mac zugeordnet |
| mac | read_only_udm.security_result.about.mac | Direkt aus computer.network_addresses.mac zugeordnet |
| die Ausprägung | read_only_udm.security_result.severity | Zugeordnet aus severity basierend auf der folgenden Logik: – „Mittel“ –> „MEDIUM“ – „Hoch“ oder „Kritisch“ –> „HIGH“ – „Niedrig“ –> „LOW“ – Andernfalls –> „UNKNOWN_SEVERITY“ |
| timestamp | read_only_udm.metadata.event_timestamp.seconds | Direkt aus timestamp zugeordnet |
| Nutzer | read_only_udm.security_result.about.user.user_display_name | Direkt aus computer.user zugeordnet |
| Nutzer | read_only_udm.target.user.user_display_name | Direkt aus computer.user zugeordnet |
| vulnerabilities.cve | read_only_udm.extensions.vulns.vulnerabilities.cve_id | Direkt aus vulnerabilities.cve zugeordnet |
| vulnerabilities.name | read_only_udm.extensions.vulns.vulnerabilities.name | Direkt aus vulnerabilities.name zugeordnet |
| vulnerabilities.score | read_only_udm.extensions.vulns.vulnerabilities.cvss_base_score | Direkt aus vulnerabilities.score zugeordnet nach der Konvertierung in Gleitkommazahlen |
| vulnerabilities.url | read_only_udm.extensions.vulns.vulnerabilities.vendor_knowledge_base_article_id | Direkt aus vulnerabilities.url zugeordnet |
| vulnerabilities.version | read_only_udm.extensions.vulns.vulnerabilities.cvss_version | Direkt aus vulnerabilities.version zugeordnet |
| is_alert | Auf „true“ gesetzt, wenn event_type eine der folgenden Optionen ist: „Threat Detected“ (Bedrohung erkannt), „Exploit Prevention“ (Exploit-Schutz), „Executed malware“ (Ausgeführte Malware), „Potential Dropper Infection“ (Mögliche Dropper-Infektion), „Multiple Infected Files“ (Mehrere infizierte Dateien), „Vulnerable Application Detected“ (Schwachstelle in Anwendung erkannt) oder wenn security_result.severity „HIGH“ (HOCH) ist. |
|
| is_significant | Auf „true“ gesetzt, wenn event_type eine der folgenden Optionen ist: „Threat Detected“ (Bedrohung erkannt), „Exploit Prevention“ (Exploit-Schutz), „Executed malware“ (Ausgeführte Malware), „Potential Dropper Infection“ (Mögliche Dropper-Infektion), „Multiple Infected Files“ (Mehrere infizierte Dateien), „Vulnerable Application Detected“ (Schwachstelle in Anwendung erkannt) oder wenn security_result.severity „HIGH“ (HOCH) ist. |
|
| read_only_udm.metadata.event_type | Wird anhand der Werte für event_type und security_result.severity bestimmt. – Wenn event_type einer der folgenden Werte ist: „Executed malware“ (Ausgeführte Malware), „Threat Detected“ (Bedrohung erkannt), „Potential Dropper Infection“ (Mögliche Dropper-Infektion), „Cloud Recall Detection“ (Cloud Recall-Erkennung), „Malicious Activity Detection“ (Erkennung schädlicher Aktivitäten), „Exploit Prevention“ (Exploit-Schutz), „Multiple Infected Files“ (Mehrere infizierte Dateien), „Cloud IOC“ (Cloud-IOC), „System Process Protection“ (Schutz von Systemprozessen), „Vulnerable Application Detected“ (Schwachstelle in Anwendung erkannt), „Threat Quarantined“ (Bedrohung unter Quarantäne gestellt), „Execution Blocked“ (Ausführung blockiert), „Cloud Recall Quarantine Successful“ (Cloud Recall-Quarantäne erfolgreich), „Cloud Recall Restore from Quarantine Failed“ (Cloud Recall-Wiederherstellung aus Quarantäne fehlgeschlagen), „Cloud Recall Quarantine Attempt Failed“ (Cloud Recall-Quarantäneversuch fehlgeschlagen), „Quarantine Failure“ (Quarantäne fehlgeschlagen), wird der Ereignistyp auf „SCAN_FILE“ festgelegt. – Wenn security_result.severity auf „HIGH“ gesetzt ist, wird der Ereignistyp auf „SCAN_FILE“ festgelegt. – Wenn sowohl has_principal als auch has_target „true“ sind, wird der Ereignistyp auf „SCAN_UNCATEGORIZED“ gesetzt. – Andernfalls wird der Ereignistyp auf „GENERIC_EVENT“ festgelegt. |
|
| read_only_udm.metadata.log_type | Auf „CISCO_AMP“ festgelegt | |
| read_only_udm.metadata.vendor_name | Auf „CISCO_AMP“ festgelegt | |
| read_only_udm.security_result.about.file.full_path | Direkt aus file.file_path zugeordnet |
|
| read_only_udm.security_result.about.hostname | Direkt aus computer.hostname zugeordnet |
|
| read_only_udm.security_result.about.user.user_display_name | Direkt aus computer.user zugeordnet |
|
| read_only_udm.security_result.detection_fields.key | Legen Sie für detection_id „Detection ID“ (Erkennungs-ID), für error.error_code „Error Code“ (Fehlercode), für error.description „Error Description“ (Fehlerbeschreibung), für file.parent.disposition „Parent Disposition“ (Übergeordnete Disposition), für file.parent.file_name „Parent File Name“ (Übergeordneter Dateiname), für file.parent.identity.md5 „Parent MD5“ (Übergeordneter MD5-Hash), für file.parent.identity.sha1 „Parent SHA1“ (Übergeordneter SHA1-Hash) und für file.parent.identity.sha256 „Parent SHA256“ (Übergeordneter SHA256-Hash) fest. |
|
| read_only_udm.security_result.summary | Auf event_type festgelegt, wenn event_type einer der folgenden Werte ist: „Bedrohung erkannt“, „Exploit-Schutz“, „Ausgeführte Malware“, „Mögliche Dropper-Infektion“, „Mehrere infizierte Dateien“, „Schwachstelle in Anwendung erkannt“ oder wenn security_result.severity „HOCH“ ist. |
|
| read_only_udm.target.asset.ip | Direkt aus computer.network_addresses.ip zugeordnet |
|
| read_only_udm.target.resource.attribute.labels.key | Auf „Parent Disposition“ für file.parent.disposition, „Parent File Name“ für file.parent.file_name, „Parent MD5“ für file.parent.identity.md5, „Parent SHA1“ für file.parent.identity.sha1 und „Parent SHA256“ für file.parent.identity.sha256 festlegen |
|
| timestamp.seconds | Direkt aus date zugeordnet, nachdem die Daten in einen Zeitstempel konvertiert wurden |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten