Sie können auf der Seite Observability Analytics BigQuery-Standard-SQL-Abfragen ausführen, um Ihre Cloud Logging-Audit-Logs zu aggregieren und zu analysieren. Durch die Analyse von Audit-Logs können Sie administrative Aktivitäten überwachen, Datenzugriffe verfolgen und Richtlinienverstöße oder verdächtige Aktivitäten in IhrenGoogle Cloud -Ressourcen erkennen.
Audit-Logs
Es gibt vier Arten von Audit-Logs, die von Google Cloud-Diensten geschrieben werden können:
Audit-Logs zu Administratoraktivitäten: In Audit-Logs zu Administratoraktivitäten werden API-Aufrufe oder andere Aktionen aufgezeichnet, mit denen die Konfiguration oder die Metadaten von Ressourcen geändert werden. Diese Logs werden immer geschrieben. Sie können sie nicht konfigurieren, ausschließen oder deaktivieren.
Audit-Logs zum Datenzugriff: In Audit-Logs zum Datenzugriff werden API-Aufrufe aufgezeichnet, die die Konfiguration oder Metadaten von Ressourcen lesen, sowie nutzergesteuerte API-Aufrufe, die von Nutzern bereitgestellte Ressourcendaten erstellen, ändern oder lesen. Da der Zugriff auf Daten ein häufiger API-Vorgang ist, sind diese Logs standardmäßig deaktiviert (außer für BigQuery).
Audit-Logs zu Systemereignissen: Audit-Logs zu Systemereignissen enthalten Logeinträge fürGoogle Cloud -Aktionen, die die Konfiguration von Ressourcen ändern. Diese Logs werden von Google-Systemen generiert, nicht durch Nutzeraktionen. Sie können Audit-Logs zu Systemereignissen nicht konfigurieren, ausschließen oder deaktivieren.
Audit-Logs zu Richtlinienverstößen: Audit-Logs zu Richtlinienverstößen werden aufgezeichnet, wenn ein Google Cloud -Dienst einem Nutzer oder einem Dienstkonto aufgrund eines Verstoßes gegen die Sicherheitsrichtlinien den Zugriff verweigert. Diese Logs können nicht deaktiviert werden. Sie können jedoch Ausschlussfilter verwenden, um zu verhindern, dass diese Logs in Logging gespeichert werden.
Weitere Informationen zu Audit-Logs finden Sie unter Audit-Logs – Übersicht. Eine Liste der Dienste, die in Audit-Logs eingebunden sind, finden Sie unter Google Cloud -Dienste mit Audit-Logs.
Audit-Logs verwenden, um Richtlinienverstöße oder verdächtige Aktivitäten zu erkennen
Mit Audit-Logs können Sie Richtlinienverstöße oder verdächtige Aktivitäten erkennen:
Verwenden Sie Audit-Logs für Administratoraktivitäten, um potenzielle Rechteausweitungen mithilfe von Identity and Access Management (IAM) oder die Umgehung von Abwehrmaßnahmen durch Deaktivieren von Logging zu erkennen. Eine Beispielabfrage, die dieses Szenario identifiziert, finden Sie unter An Logging-Einstellungen vorgenommene Änderungen.
Verwenden Sie Audit-Logs für den Datenzugriff, um potenziellen Missbrauch von APIs oder Daten zu erkennen, die in Diensten wie Cloud Storage oder BigQuery gehostet werden. Eine Beispielabfrage, mit der dieses Szenario identifiziert wird, finden Sie unter Hohe API-Nutzung durch ein Hauptkonto identifizieren.
Wenn Sie herausfinden möchten, wie oft und von welchen Nutzern auf Daten zugegriffen wird, fragen Sie alle Audit-Logs ab. Eine Beispielabfrage, die dieses Szenario identifiziert, finden Sie unter Häufigste Aktionen im letzten Monat ermitteln.
Hinweis
Sie benötigen ein Projekt, einen Ordner oder eine Organisation in Google Cloud , für die Audit-Logs generiert werden.
Sie benötigen Zugriff auf eine Ansicht des Log-Buckets, an den die Audit-Logs weitergeleitet werden. Für den Log-Bucket muss ein Upgrade durchgeführt werden, um Observability Analytics zu verwenden. Informationen zum Erstellen eines Log-Buckets, der für die Verwendung von Observability Analytics aktualisiert wurde, finden Sie unter Log-Buckets konfigurieren.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Senken und zum Aufrufen von Logs benötigen:
- Autor von Log-Konfigurationen (
roles/logging.configWriter) für Ihr Projekt - Loganzeige (
roles/logging.viewer) für Ihr Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Je nachdem, welche Audit-Logs Sie sich ansehen möchten, benötigen Sie möglicherweise separate Rollen oder Berechtigungen. Informationen zum Festlegen von IAM-Rollen finden Sie in der Logging-Dokumentation zur Zugriffssteuerung mit IAM.
- Autor von Log-Konfigurationen (
So verwenden Sie die Abfragen in diesem Dokument auf der Seite Observability Analytics:
-
Rufen Sie in der Google Cloud Console die Seite manage_searchObservability Analytics auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Ermitteln Sie den Tabellennamen für die Logansicht, die Sie abfragen möchten.
Um diesen Namen zu ermitteln, rufen Sie die Liste Logansichten auf, suchen Sie die Logansicht und wählen Sie dann Abfrage aus. Der Bereich Abfrage ist mit einer Standardabfrage ausgefüllt, die den Tabellennamen der abgefragten Logansicht enthält. Der Tabellenname hat das Format
project_ID.region.bucket_ID.view_ID.Weitere Informationen zum Zugriff auf die Standardabfrage finden Sie unter Logansicht abfragen.
Ersetzen Sie VIEW durch den Tabellennamen für die Logansicht, die Sie abfragen möchten, und kopieren Sie dann die Abfrage.
Fügen Sie die Abfrage im Bereich Abfrage ein und klicken Sie dann auf Abfrage ausführen.
-
Beispielabfragen
In diesem Abschnitt finden Sie SQL-Beispielabfragen zum Abfragen von Audit-Logs.
Änderungen an den Logging-Einstellungen
Wenn Sie feststellen möchten, wann Audit-Logs deaktiviert oder Änderungen an den Standard-Logging-Einstellungen vorgenommen werden, fragen Sie die Audit-Logs zur Administratoraktivität ab:
SELECT
receive_timestamp, timestamp AS eventTimestamp,
proto_payload.audit_log.request_metadata.caller_ip,
proto_payload.audit_log.authentication_info.principal_email,
proto_payload.audit_log.resource_name,
proto_payload.audit_log.method_name
FROM
`VIEW`
WHERE
proto_payload.audit_log.service_name = "logging.googleapis.com"
AND log_id = "cloudaudit.googleapis.com/activity"
Häufigste Aktionen im letzten Monat ermitteln
Wenn Sie herausfinden möchten, welche Aktionen in den letzten 30 Tagen am häufigsten ausgeführt wurden, fragen Sie alle Audit-Logs ab:
SELECT
proto_payload.audit_log.method_name,
proto_payload.audit_log.service_name,
resource.type,
COUNT(*) AS counter
FROM
`VIEW`
WHERE
timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
AND log_id="cloudaudit.googleapis.com/data_access"
GROUP BY
proto_payload.audit_log.method_name,
proto_payload.audit_log.service_name,
resource.type
ORDER BY
counter DESC
LIMIT 100
Mit der vorherigen Abfrage werden alle Audit-Logs der letzten 30 Tage durchsucht und die 100 am häufigsten ausgeführten Aktionen mit Informationen zu method_name, service_name, Ressourcentyp und einem Zähler der ausgeführten Aktionen zurückgegeben.
Rollen erkennen, die einem Dienstkonto zugewiesen wurden
Wenn Sie die Identitätsübernahme von Dienstkonten oder Rollen, die Dienstkonten zugewiesen wurden, ermitteln möchten, fragen Sie die Audit-Logs für Administratoraktivitäten ab:
SELECT
timestamp,
proto_payload.audit_log.authentication_info.principal_email as grantor,
JSON_VALUE(bindingDelta.member) as grantee,
JSON_VALUE(bindingDelta.role) as role,
proto_payload.audit_log.resource_name,
proto_payload.audit_log.method_name
FROM
`VIEW`,
UNNEST(JSON_QUERY_ARRAY(proto_payload.audit_log.service_data.policyDelta.bindingDeltas)) AS bindingDelta
WHERE
timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
AND log_id = "cloudaudit.googleapis.com/activity"
AND (
(resource.type = "service_account"
AND proto_payload.audit_log.method_name LIKE "google.iam.admin.%.SetIAMPolicy")
OR
(resource.type IN ("project", "folder", "organization")
AND proto_payload.audit_log.method_name = "SetIamPolicy"
AND JSON_VALUE(bindingDelta.role) LIKE "roles/iam.serviceAccount%")
)
AND JSON_VALUE(bindingDelta.action) = "ADD"
-- Principal (grantee) exclusions
AND JSON_VALUE(bindingDelta.member) NOT LIKE "%@example.com"
ORDER BY
timestamp DESC
Mit der vorherigen Abfrage wird nach Audit-Logs gesucht, in denen Rollen erfasst werden, die einem Hauptkonto für ein Dienstkonto zugewiesen wurden. Mit der Rolle „Ersteller von Dienstkonto-Tokens“ kann das Hauptkonto die Identität des Dienstkontos übernehmen. In der Abfrage wird außerdem ein Zeitraum der letzten sieben Tage angegeben und genehmigte Empfänger (%@example.com) werden ausgeschlossen.
Hohe API-Nutzung durch ein Hauptkonto identifizieren
Fragen Sie alle Audit-Logs ab, um eine ungewöhnlich hohe API-Nutzung durch ein Hauptkonto zu ermitteln:
SELECT
*
FROM (
SELECT
*,
AVG(counter) OVER (
PARTITION BY principal_email
ORDER BY day
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS avg,
STDDEV(counter) OVER (
PARTITION BY principal_email
ORDER BY day
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS stddev,
COUNT(*) OVER (
PARTITION BY principal_email
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS numSamples
FROM (
SELECT
proto_payload.audit_log.authentication_info.principal_email,
EXTRACT(DATE FROM timestamp) AS day,
ARRAY_AGG(DISTINCT proto_payload.audit_log.method_name IGNORE NULLS) AS actions,
COUNT(*) AS counter
FROM `VIEW`
WHERE
timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 60 DAY)
AND proto_payload.audit_log.authentication_info.principal_email IS NOT NULL
AND proto_payload.audit_log.method_name NOT LIKE "storage.%.get"
AND proto_payload.audit_log.method_name NOT LIKE "v1.compute.%.list"
AND proto_payload.audit_log.method_name NOT LIKE "beta.compute.%.list"
GROUP BY
proto_payload.audit_log.authentication_info.principal_email,
day
)
)
WHERE
counter > avg + 3 * stddev
AND day >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
ORDER BY
counter DESC
Für das angegebene Hauptkonto principal_email berechnet die Abfrage die durchschnittliche Anzahl der API-Aufrufe pro Tag und die Standardabweichung dieser API-Aufrufe.
Wenn die durchschnittliche Anzahl von API-Aufrufen größer ist als der gleitende Durchschnitt plus dem Dreifachen der Standardabweichung, werden in der Abfrage die folgenden Informationen angezeigt:
- Ein Zähler der ausgeführten Aktionen.
- Die berechnete durchschnittliche Anzahl der pro Tag ausgeführten Aktionen.
- Die spezifischen Aktionen, die ausgeführt wurden.
Nächste Schritte
Eine Übersicht über Observability Analytics finden Sie unter Observability Analytics.
Weitere Beispielabfragen finden Sie unter Beispiel-SQL-Abfragen.
Weitere Beispielabfragen, mit denen Sie Sicherheitsstatistiken aus Ihren Logs generieren können, finden Sie im Repository Community Security Analytics.
Informationen zum Aktivieren, Aggregieren und Analysieren Ihrer Logs mit Observability Analytics finden Sie unter Sicherheitsloganalysen in Google Cloud.