Einheitliche Regeln mit der Rules API verwalten

Unterstützt in:

Die Rules API bietet programmatische Endpunkte zum Verwalten von benutzerdefinierten und kuratierten Regeln. In diesem Dokument wird beschrieben, wie Sie die Rules API verwenden, um benutzerdefinierte und kuratierte Regeln programmatisch zu verwalten.

Mit der Rules API können Sie folgende Aufgaben ausführen:

  • Regeln suchen und auflisten:Führen Sie strukturierte Suchanfragen aus, sortieren Sie die Ergebnisse und rufen Sie erweiterte Regelressourcen ab.

  • Details zu kuratierten Regeln ansehen:Rufen Sie schreibgeschützte Metadaten, angewendete Tags und die Logik im Rohformat für von Google erstellte Regeln ab.

  • Regelkonfigurationen im Batchverfahren ändern:Aktualisieren Sie synchron den Live-Status, den Benachrichtigungsstatus, den Archivierungsstatus und die Tag-Zuweisungen für mehrere Regeln.

Regeln mit „list rules“ suchen

Die Methode rules.list unterstützt erweiterte Regelressourcen und die strukturierte Suche. Verwenden Sie eine der folgenden Ansichten, um diese detaillierten Ressourcen abzufragen:

  • CONFIG_ONLY

  • TRENDS

Beide Ansichten bieten erweiterte Informationen, darunter:

  • Informationen zur Regelbereitstellung (Live-Regel aktiviert, Benachrichtigungen aktiviert, archivierter Status, Ausführungsstatus)

  • Zugehörige Regel-Tags

  • Zugriff auf kuratierte Regelressourcen in der Ansicht CONFIG_ONLY

  • Größere Seitengröße von 5.000 Ergebnissen in der Ansicht CONFIG_ONLY

  • Robuste strukturierte Suchfunktionen

Sortieren Sie die Suchergebnisse in den Feldern der Regelressource mit order_by in der Anfrage rules.list. Die folgenden Regelfelder werden unterstützt:

  • alerting_enabled

  • archived

  • author

  • create_time

  • display_name

  • execution_state

  • live_mode_enabled

  • revision_create_time

  • rule_id

  • rule_owner

  • severity

  • type

  • update_time

Beispielanfrage:

HTTP

GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=archived%3Dfalse&pageSize=100&pageToken=&view=TRENDS

Beispielantwort:

JSON

{
  "rules": [
    {
      "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_fd3fe28c-2d7b-4f7e-9fca-4fdd6029d228",

      "revisionId": "v_1719339990_701951000",

      "displayName": "SomaMaglevProberRule",

      "author": "test@google.com",

      "metadata": {
        "description": "enabled live rule used for maglev rules latency prober"

      },

      "createTime": "2024-06-25T18:26:30.701951Z",

      "revisionCreateTime": "2024-06-25T18:26:30.701951Z",

      "type": "SINGLE_EVENT",

      "etag": "CNaX7LMGEJjY284C",

      "nearRealTimeLiveRuleEligible": true,

      "ruleOwner": "CUSTOMER",

      "alertingEnabled": true,

      "liveModeEnabled": true,

      "runFrequency": "LIVE",

      "currentDayDetectionCount": 10000,

      "executionState": "DEFAULT"

    },
    {
      "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_fbf56bf1-ea5f-4b5b-bbe9-e91e13f3b3b3",

      "revisionId": "v_1696452642_197471000",

      "displayName": "LoadTestingRule",

      "author": "loadtesting@google.com",

      "createTime": "2023-10-04T20:50:42.197471Z",

      "revisionCreateTime": "2023-10-04T20:50:42.197471Z",

      "type": "SINGLE_EVENT",

      "etag": "CKKg96gGEJjWlF4=",

      "nearRealTimeLiveRuleEligible": true,

      "ruleOwner": "CUSTOMER",

      "alertingEnabled": true,

      "liveModeEnabled": true,

      "runFrequency": "LIVE",

      "executionState": "DEFAULT"
    }
  ]
}

Details zu kuratierten Regeln mit „getRule“ und „listRules“ ansehen

Mit rules.getRule und rule.listRules können Sie Details zu kuratierten Regeln abrufen. Antworten von rule.listRules können mit dem rule_owner: "GOOGLE" Filter auf kuratierte Regeln beschränkt werden. Weitere Informationen zur Verwendung des Filters rule_owner finden Sie im Abschnitt zur Syntax für die Regelsuche.

Beispiel für eine „listRules“-Anfrage zum Lesen einer kuratierten Regel:

HTTP

GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=rule_owner%3A%22GOOGLE%22pageSize=1&view=TRENDS

Beispielantwort:

JSON

{
  "rules": [
    {
      "name": "projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c",

      "revisionId": "v_1755272664_971453000",

      "displayName": "Example Curated Rule",

      "severity": {
        "displayName": "Info"
      },

      "metadata": {
        "technique": "T1136.003",
        "rule_name": "Example Curated Rule",
        "description": "Example Curated Rule Description",
        "tactic": "TA0003"
      },

      "createTime": "2024-10-02T18:10:43.647897Z",

      "revisionCreateTime": "2025-08-15T15:44:24.971453Z",

      "type": "SINGLE_EVENT",

      "etag": "CNir/cQGEMjknM8D",

      "nearRealTimeLiveRuleEligible": true,

      "ruleOwner": "GOOGLE",

      "tags": [
        "google.mitre.tactic.ta0003",
        "google.mitre.technique.t1136.003"
      ],

      "executionState": "DEFAULT"
    }
  ]
}

Mit der Methode „rule.getRule“ können Sie eine kuratierte Regel anhand ihres Ressourcennamens abrufen.

Beispiel für eine „getRule“-Anfrage zum Abrufen kuratierter Regeln:

HTTP

GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c?view=BASIC

Beispielantwort:

JSON

{
  "rules": [
    {
      "name": "projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c",

      "revisionId": "v_1755272664_971453000",

      "displayName": "Example Curated Rule",

      "severity": {
        "displayName": "Info"
      },

      "metadata": {
        "technique": "T1136.003",
        "rule_name": "Example Curated Rule",
        "description": "Example curated rule description",
        "tactic": "TA0003"
      },

      "createTime": "2024-10-02T18:10:43.647897Z",

      "revisionCreateTime": "2025-08-15T15:44:24.971453Z",

      "text": "Example curated rule text",

      "type": "SINGLE_EVENT",

      "etag": "CNir/cQGEMjknM8D",

      "nearRealTimeLiveRuleEligible": true,

      "ruleOwner": "GOOGLE",

      "tags": [
        "google.mitre.tactic.ta0003",
        "google.mitre.technique.t1136.003"
      ],

      "executionState": "DEFAULT"
    }
  ]
}

Regelkonfiguration mit „modifyRules“ im Batchverfahren ändern

Die Methode rules.modifyRules unterstützt die folgenden Batch-Updates für benutzerdefinierte und kuratierte Regeln:

  • Status der Live-Regel aktualisieren

  • Benachrichtigungsstatus aktualisieren

  • Angewendete Tags aktualisieren

  • Archivierungsstatus aktualisieren (nur für benutzerdefinierte Regeln)

Batchaktualisierungen werden synchron und unabhängig voneinander ausgeführt. Der Prozess ist nicht atomar und wird trotz einzelner Fehler fortgesetzt. Teilfehler werden im Feld failed_requests detailliert beschrieben. Dabei handelt es sich um eine Zuordnung, bei der der Schlüssel den Index der fehlgeschlagenen Anfrage und der Wert den Grund für den Fehler angibt. Erfolgreiche Aktualisierungen werden im Feld rule_updates dokumentiert. Das Ergebnis für jede Anfrage wird an der entsprechenden Indexposition aus dem ursprünglichen Batch platziert.

Beispiel für eine modifyRules-Anfrage:

HTTP

POST https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules:modifyRules 

JSON

{
  "parent": "projects/<ID>/locations/us/instances/<ID>",
  "requests": [
    {
      "update_mask": "liveModeEnabled",
      "rule": {
        "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_aaaaaaaaaaaaaaaaaaaaaaa",
        "liveModeEnabled": true
      }
    },
    {
      "update_mask": "alertingEnabled",
      "rule": {
        "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ur_zzzzzzzzzzzzzzzzzzzzz",
        "alertingEnabled": false
      }
    },
    {
      "update_mask": "tags",
      "rule": {
        "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_bbbbbbbbbbbbbbbbbbbbbbb",
        "tags": [
          "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.tactic.TA0043",
          "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.technique.T1595"
        ]
      }
    },
    {
      "update_mask": "archived",
      "rule": {
        "name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_cccccccccccccccccccccc",
        "archived": true
      }
    }
  ]
}

Beispielantwort:

JSON

{
  "failed_requests": {
    "0": {
      "code": 5,
      "message": "rule is already enabled"
    },
    "3": {
      "code": 5,
      "message": "rule is already archived"
    }
  },
  "rule_updates": [
    {},
    { "alerting_state_updated": true },
    { "tagsUpdated": true },
    {}
  ]
}

Richtlinien zum Aktualisieren kuratierter Regeln

Wenn Sie den Live- oder Benachrichtigungsstatus für kuratierte Regeln ändern, beachten Sie Folgendes:

  • Unabhängige Steuerung:Sie können den Status einer Regel unabhängig von der Richtlinie des übergeordneten Regelsatzes verwalten. Wenn der Status einer Regel von der übergeordneten Richtlinie abweicht, bleibt Ihre benutzerdefinierte Einstellung erhalten, bis die übergeordnete Richtlinie das nächste Mal aktualisiert wird.

  • Berechtigungsanforderung:Sie können diese Status nur aktualisieren, wenn Ihre Instanz aktiv für das übergeordnete Regelpaket berechtigt ist.

Richtlinien zum Aktualisieren von Tags

Sie können Ihren Regeln mit den folgenden Methoden Tags zuordnen:

  • Fügen Sie MITRE-T-Codes (Taktik oder Technik) in den Metafeldern tactic, technique oder mitre_ttp im Regeltext ein.

  • Geben Sie die vollständigen Ressourcennamen der Tags im Metafeld tags des Regeltexts an.

  • Geben Sie vollständige Ressourcennamen der Tags mit ModifyRule-API-Anfragen an.

Die ModifyRules API unterstützt die MITRE-Tags tactic und technique. Alle in einer API-Aktualisierung angegebenen Tags überschreiben vorhandene Tags, mit Ausnahme der Tags, die direkt aus dem Regeltext abgeleitet werden.

Von Google verwaltete MITRE tactic Tags verwenden das google.mitre.tactic Namespace-Präfix.

Beispiel für einen vollständigen Ressourcennamen für das Taktik-Tag TA0001:


projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.tactic.TA0001

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