Security Command Center-Ergebnisse modellieren die potenziellen Sicherheitsrisiken der Assets einer Organisation. Ein Ergebnis bezieht sich immer auf einen bestimmten Asset im Security Command Center.
In diesem Leitfaden erfahren Sie, wie Sie mit Security Command Center-Clientbibliotheken auf die Ergebnisse einer Organisation zugreifen. Jedes Ergebnis gehört zu einer Quelle. Die meisten Detektoren oder Anbieter von Ergebnissen liefern Ergebnisse innerhalb derselben Quelle.
Hinweis
Bevor Sie eine Quelle einrichten, müssen Sie die folgenden Schritte ausführen:
Seitengröße
Alle Security Command Center-Listen-APIs sind paginiert. Jede Antwort gibt eine Seite mit Ergebnissen und ein Token zurück, um die nächste Seite zurückzugeben. Die Seitengröße kann konfiguriert werden. Die Standardseitengröße ist 10. Sie kann auf ein Minimum von 1 und maximal 1.000 festgelegt werden.
Aufbewahrung von Ergebnissen
Die Ergebnisse enthalten eine Reihe von event_time
-Snapshots, die den Status und die Attribute des Ergebnisses jedes Mal erfassen, wenn die zugehörige Sicherheitslücke oder Bedrohung bei Scans erkannt wird.
Das Security Command Center speichert 13 Monate lang Snapshots nach ihrem event_time
oder der Uhrzeit des Ereignisses. Nach 13 Monaten werden die Snapshots und ihre Daten aus der Security Command Center-Datenbank gelöscht und können nicht wiederhergestellt werden. Dies führt zu weniger Snapshots bei der Suche und begrenzt die Möglichkeit, den Verlauf eines Ergebnisses anzuzeigen und wie er sich im Laufe der Zeit verändert.
Das Ergebnis ist im Security Command Center, solange es mindestens einen Snapshot mit einem event_time
enthält, der mehr als 13 Monate zurückliegt. Wenn Sie die Ergebnisse und alle zugehörigen Daten über einen längeren Zeitraum speichern möchten, exportieren Sie sie in einen anderen Speicherort. Eine Anleitung finden Sie unter Security Command Center-Daten exportieren.
Alle Ergebnisse in einer Organisation auflisten
gcloud
# ORGANIZATION_ID=organization-id gcloud scc findings list $ORGANIZATION_ID
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc findings list --help
Python
Java
Go
Node.js
Die Ausgabe für jedes Ergebnis sieht in etwa so aus:
finding:
category: 'Persistence: IAM Anomalous Grant'
createTime: '2020-09-13T12:30:10.248Z'
eventTime: '2020-09-13T12:30:09.528Z'
name: organizations/organization-id/sources/source-id/findings/finding-id
parent: organizations/organization-id/sources/source-id
resourceName: //cloudresourcemanager.googleapis.com/projects/project-number
securityMarks:
name: organizations/organization-id/sources/source-id/findings/finding-id/securityMarks
sourceProperties:
affectedResources:
- gcpResourceName: //cloudresourcemanager.googleapis.com/projects/project-number
detectionCategory:
indicator: audit_log
ruleName: iam_anomalous_grant
subRuleName: service_account_granted_sensitive_role_to_member
technique: persistence
detectionPriority: HIGH
evidence:
- sourceLogId:
insertId: insert-id
projectId: project-id
timestamp:
nanos: 183000000
seconds: '1600000206'
findingId: finding-id
properties:
sensitiveRoleGrant:
bindingDeltas:
- action: ADD
member: user:user-email@gmail.com
role: roles/editor
members:
- user:user-email@gmail.com
principalEmail: principal-email.iam.gserviceaccount.com
sourceId:
customerOrganizationNumber: 'organization-id'
projectNumber: 'project-number'
state: ACTIVE
resource:
name: //cloudresourcemanager.googleapis.com/projects/project-number
parentDisplayName: organization-name
parentName: //cloudresourcemanager.googleapis.com/folders/folder-id
projectDisplayName: project-id
projectName: //cloudresourcemanager.googleapis.com/projects/project-number
Ergebnisse filtern
Eine Organisation hat möglicherweise viele Ergebnisse. Im vorherigen Beispiel wird kein Filter verwendet, daher werden alle Ergebnisdatensätze zurückgegeben. Mit Security Command Center können Sie Filter verwenden, um Informationen zu den gewünschten Ergebnissen zu erhalten, und das übergeordnete Element auf eine bestimmte Quelle beschränken.
Die Ergebnisfilter sind mit "where"-Klauseln in SQL-Anweisungen vergleichbar, mit Ausnahme von Spalten. Sie gelten für die von der API zurückgegebenen Objekte.
Das folgende Beispiel zeigt nur Ergebnisse mit der Kategorie "MEDIUM_RISK_ONE
" an. Bestimmte Kategorien können sich ändern. Sie sollten daher anhand der Dokumentation eines Ergebnisanbieters die von ihm verwendeten Kategorien ermitteln.
gcloud
# ORGANIZATION_ID=organization-id # SOURCE_ID="source-id" FILTER="category=\"MEDIUM_RISK_ONE\"" gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID --filter="$FILTER"
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc findings list --help
Python
Java
Go
Node.js
Security Command Center unterstützt auch vollständige JSON-Arrays und Objekte als potenzielle Property-Typen. Sie können nach folgenden Kriterien filtern:
- Arrayelemente
- Vollständige JSON-Objekte mit partieller Stringübereinstimmung im Objekt
- Untergeordnete JSON-Objekt-Felder
Untergeordnete Felder müssen Zahlen, Strings oder boolesche Werte enthalten und müssen die folgenden Operatoren verwenden:
- Strings:
- Vollständige Gleichheit
=
- Teilstring, der mit
:
übereinstimmt
- Vollständige Gleichheit
- Nummern:
- Ungleichungen
<
,>
,<=
,>=
- Gleichheit
=
- Ungleichungen
- Boolesche Werte:
- Gleichheit
=
- Gleichheit
In den Beispielen weiter unten auf dieser Seite wird davon ausgegangen, dass das folgende JSON-Objekt ein Quellattribut für ein Ergebnis ist:
{
"outer_object": {
"middle_object": {
"deeply_nested_object": {
"x": 123,
},
"y": "some-string-value",
},
"z": "some-other-string-value",
"u": ["list-element-1", "list-element-2", "list-element-3", ],
},
}
Beispiel für das Filtern von Ergebnissen
In diesem Beispiel ist das vorherige JSON-Objekt ein Quellattribut namens my_property
bei einem Ergebnis. Das folgende Beispiel enthält Abfragen für Ergebnisse, die das Objekt als Attribut haben. Sie können diese Filter auch mit anderen Filtern verwenden, indem Sie AND
und OR
in der Abfrage verwenden.
# ORGANIZATION_ID=organization-id
# SOURCE_ID="source-id"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.middle_object.deeply_nested_object.x = 123"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.middle_object.y = \"some-string-value\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.middle_object.y : \"string-value\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.z = \"some-other-string-value\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.z : \"other-string-value\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.u : \"list-element-1\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.u : \"list-element-2\""
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--filter="source_properties.my_property.outer_object.u : \"list-element-3\""
Beispiel für das Sortieren von Ergebnissen
Sie können Ergebnisse nach strengen Teilfeldern sortieren, die einfache Typen sind, wie Strings, Zahlen und boolesche Werte. In diesem Beispiel ist das vorherige JSON-Objekt ein Quellattribut namens my_property
bei einem Ergebnis. Das folgende Beispiel enthält Abfragen zum Sortieren der Ergebnisfelder:
# ORGANIZATION_ID=organization-id
# SOURCE_ID="source-id"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.middle_object.deeply_nested_object.x DESC"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.middle_object.deeply_nested_object.x"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.middle_object.y DESC"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.middle_object.y"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.z DESC"
gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID \
--order-by="source_properties.my_property.outer_object.z"
Abfragen zu einem bestimmten Zeitpunkt
Mit Security Command Center können Sie Ergebnisse zu einer bestimmten Snapshot-Zeit bis zu 13 Monate auflisten. Weitere Informationen finden Sie unter Aufbewahrungsdauer.
gcloud
# ORGANIZATION_ID=organization-id # SOURCE_ID="source-id" # READ_TIME follows the format YYYY-MM-DDThh:mm:ss.ffffffZ READ_TIME=2019-02-28T07:00:06.861Z gcloud scc findings list $ORGANIZATION_ID --source=$SOURCE_ID --read-time=$READ_TIME
Führen Sie den folgenden Befehl aus, um weitere Beispiele aufzurufen:
gcloud scc findings list --help
Python
Java
Go
Node.js
Beispiele für Filter
Im Folgenden sind einige weitere nützliche Filter für Ergebnisse aufgeführt.
Ergebnisse, die nach einem bestimmten Zeitpunkt erfasst wurden
Diese Beispielfilter stimmen mit Ergebnissen überein, die erst nach Mittwoch, 5. Juni 2019, 22:12:05 Uhr (GMT) aufgetreten sind. Mit dem Filter event_time
können Sie die Zeit in den folgenden Formaten und Typen angeben:
Unix-Zeit (in Millisekunden) als Ganzzahlliteral
"event_time > 1559772725000"
RFC 3339 als String-Literal
"event_time > \"2019-06-05T22:34:40+00:00\""