ניהול החרגות של כללים

נתמך ב:

במאמר הזה מוסבר איך לנהל באופן פרוגרמטי החרגות של כללים ב-Google Security Operations באמצעות ה-API. החרגות משמשות כמסננים שאתם מגדירים על סמך שדות של Unified Data Model (UDM) כדי למנוע יצירת התראות מזיהויים ספציפיים. המסננים האלה מזהים פעילויות מוכרות או בטוחות, וכך מפחיתים את הרעש המיותר בלוח הבקרה.

יצירת החרגה באמצעות מסנני תוצאות

אתם יכולים ליצור כלל חדש להחרגה באופן פרוגרמטי כדי להשתיק ממצאים ספציפיים של זיהוי שתואמים לקריטריונים שהגדרתם, וכך לצמצם את הרעש ולהגדיר עדיפות להתראות עם רמת מהימנות גבוהה.

משתמשים בנקודת הקצה POST כדי להגדיר את לוגיקת ההשבתה. כל המסננים במערך outcomeFilters מקושרים באמצעות פסקה מרומזת של AND.

Method: ‏ POST

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

דוגמה:

POST https://us-chronicle.googleapis.com/v1/projects/my-project/locations/us/instances/my-instance/findingsRefinements

גוף הבקשה:

  {
  "displayName": "Exclusion with outcome filters",
  "type": "DETECTION_EXCLUSION",
  "query": "principal.hostname = \"altostrat.com\"",
  "outcomeFilters": [
    {
      "outcome_variable": "ip",
      "outcome_value": "127.0.01",
      "outcome_filter_operator": "EQUAL"
    },
    {
      "outcome_variable": "hostnames",
      "outcome_value": "altostrat.com",
      "outcome_filter_operator": "CONTAINS"
    }
  ]
}

בדוגמה הזו מוסבר איך להגדיר לוגיקה של השבתה שבה כמה מסננים במערך outcomeFilters מקושרים באמצעות פסקה מרומזת של AND.

שדות חובה: displayName, type, query

שדות שנוצרו על ידי המערכת: לא מציינים name,‏ createTime או updateTime. הפרמטרים האלה מנוהלים על ידי המערכת, והמערכת מתעלמת מהם או שהם גורמים לשגיאות אם הם נכללים בבקשה.

לוגיקת ההסתרה מבוססת על קשר מסוג AND. הבקשה יוצרת החרגה שמבטלת כל זיהוי של אירוע עם המאפיינים הבאים:

  • ‫"altostrat.com" כשם המארח הראשי

  • משתנה התוצאה ip עם ערך של 127.0.0.1

  • משתנה תוצאה hostnames שלפחות אחד מהערכים המצטברים שלו הוא altostrat.com.

כל המסננים שצוינו בהחרגה מקושרים באופן מרומז באמצעות פסקה AND.

תגובה מה-API: ה-API מחזיר את שם המשאב FindingsRefinement.

המשאב FindingsRefinement מכיל את הלוגיקה הבסיסית של ההסתרה (המסננים של השאילתה והתוצאה). שם המשאב (המזהה) משמש לפעולות הבאות על ההחרגה

גישה להחרגה

אפשר להשתמש בנקודת הקצה GET כדי לבצע את הפעולות הבאות:

  • קבלת הפרטים של הגדרת החרגה יחידה לפי המזהה הייחודי שלה.

  • כשרוצים לבדוק שאילתה ספציפית refinement-id או מסננים של תוצאות שהיא מכילה.

Method: ‏ GET

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

דוגמה:

GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777

החלת החרגה על כלל או על קבוצת כללים

צריך להחיל את ההחרגה על כללים ספציפיים או על קבוצות כללים שנבחרו בקפידה. כשמחילים את ההחרגה על כלל או על קבוצת כללים, נוצר משאב FindingsRefinementDeployment. אתם יכולים להשתמש במשאב הזה כדי לקבוע את הכללים המותאמים אישית, הכללים שנבחרו או קבוצות הכללים שנבחרו שחלים על משאב FindingsRefinement. לאחר מכן, תוכלו לציין את הפרמטר update_mask בבקשת ה-API כדי לציין אילו שדות באובייקט FindingsRefinementDeployment צריך לעדכן.

Method: ‏ PATCH

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

REFINEMENT_ID: המזהה הייחודי של שיפור הממצאים.

דוגמה:

 PATCH https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777?update_mask=enabled,detectionExclusionApplication

גוף הבקשה:


  {
  "name": "projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777"
  "enabled": true,
  "detectionExclusionApplication": {
    "curatedRuleSets": [
      ...list curated rule set resource names
    ],
    "curatedRules": [
      ...list curated rule resource names
    ],
    "rules": [
      ...list rule resource names
    ],
  }
}

כשמחילים את ההחרגה על כלל או על קבוצת כללים, המערכת יוצרת משאב FindingsRefinementDeployment. המשאב הזה קובע אילו כללים מותאמים אישית, כללים שנבחרו בקפידה וקבוצות כללים שנבחרו בקפידה חלים על משאב FindingsRefinement. אפשר גם לכלול את הפרמטר update_mask בבקשת ה-API כדי לציין אילו שדות ב-FindingsRefinementDeployment צריך לעדכן.

גישה לפריסה של ההחרגה

אחרי שיוצרים או מעדכנים החרגה, אפשר להשתמש בנקודת הקצה הזו כדי לוודא באילו כללים או קבוצות כללים ההחרגה הספציפית הזו מופעלת.

Method: ‏ GET

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

REFINEMENT_ID: המזהה הייחודי של שיפור הממצאים.

דוגמה:

   GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777/deployment

הצגת כל ההחרגות

אפשר להשתמש בנקודת הקצה הזו כדי לאחזר את רשימת משאבי findingsRefinements.

Method: ‏ GET

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

דוגמה:

GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements

פרמטרים אופציונליים של שאילתה: pageSize, pageToken

אפשר להשתמש בפרמטרים האופציונליים כדי להציג רשימה של תוצאות נוספות, בדומה לנקודות קצה אחרות של רשימות ב-API.

הצגת רשימה של כל פריסות ההחרגות

אפשר להשתמש בנקודת הקצה הזו כדי לקבל את רשימת משאבי FindingsRefinement שנוצרו במופע שלכם.

Method: ‏ GET

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

דוגמה:

  GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:listAllFindingsRefinementDeployments

פרמטרים אופציונליים של שאילתה:

  • כדי להציג עוד תוצאות שדומות לנקודות קצה אחרות של רשימות ב-API, משתמשים בפרמטרים pageSize ו-pageToken.

  • משתמשים בפרמטר filter כדי לסנן את הכללים או את קבוצות הכללים שהוחלו עליהם החרגות.

בדיקת החרגה באמצעות ה-API

נקודת הקצה הזו בודקת את ההחרגה מול זיהויים מכללים ומערכות כללים שצוינו, ואז מאמתת את האפקטיביות של ההחרגה בדיכוי זיהויים לא רצויים. בממשק המשתמש נעשה שימוש בנתונים מ-30 הימים האחרונים לצורך בדיקה.

Method: ‏ POST

נקודת קצה:

https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:testFindingsRefinement

מחליפים את מה שכתוב בשדות הבאים:

REGION: האזור Google Cloud של מופע Google SecOps.

PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

LOCATION: המיקום של מופע Google SecOps (לרוב זהה לאזור).

INSTANCE_ID: המזהה של מופע Google SecOps.

דוגמה:

POST https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:testFindingsRefinement

גוף הבקשה:

 {
  "type": "DETECTION_EXCLUSION",
  "query": "principal.hostname = \"altostrat.com\"",
  "outcomeFilters": [
    {
      "outcome_variable": "ip",
      "outcome_value": "127.0.01",
      "outcome_filter_operator": "EQUAL",
    },
    {
      "outcome_variable": "hostnames",
      "outcome_value": "altostrat.com",
      "outcome_filter_operator": "CONTAINS",
    },
  ]
  "interval": {
    "start_time": {
      "seconds": 1756684800, // Sep. 1 2025 00:00 UTC
    },
    "end_time": {
      "seconds": 1759276800, // Oct. 1 2025 00:00 UTC
    },
  },
  "detectionExclusionApplication": {
    "curatedRuleSets": [
      ...curated rule set resource names
    ],
    "curatedRules": [
      ...curated rule resource names
    ],
    "rules": [
      ...rule resource names
    ],
  }
}

נקודת הקצה הזו בודקת את ההחרגה לגבי זיהויים שנוצרו בכללים ובקבוצות הכללים שצוינו בבקשה. המדד הזה עוזר לקבוע את מידת היעילות של ההחרגה בדיכוי של זיהויים שלא אמורים להתרחש. המערכת משתמשת בנתונים מ-30 הימים האחרונים של זיהויים כטווח הזמן לבדיקת ההחרגות.

מגבלות

  • בכל ההחרגות (עם או בלי מסנני תוצאות) צריך לציין שדה query. כדי ליצור החרגה רק עם outcomeFilters, מציינים ביטוי רגולרי match-all.

    
      ...other fields in FindingsRefinement
    
      query: "principal.hostname = /.*/"
    
      outcomeFilters: [ your outcome filters ]
    
    

    הביטוי הרגולרי תואם לכל שם מארח. לכן, השאילתה הזו תתאים לכל הזיהויים. לכן, הסינון האפקטיבי נקבע רק על ידי מסנני התוצאות.

  • החרגות לא תומכות בהגדרת אורך חיים (TTL). עם זאת, אפשר ליצור TTL חד-פעמי על ידי חישוב מועד התפוגה הספציפי והוספת תנאי של חותמת זמן בהגדרת ההחרגה. לדוגמה, כדי להגדיר החרגה שתפוג בסוף השנה, מציינים את השאילתה באופן הבא:

    
      ...other fields in FindingsRefinement
    
      query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC
    
      outcomeFilters: [your outcome filters]
    
    

    בדוגמה הזו אפשר לראות שרק זיהויים שנוצרו על ידי אירועים עם חותמת זמן לפני סוף השנה מושעים.

    הערה: יכול להיות שההגדרה הזו לא תוצג בצורה תקינה בחלון עריכת החרגות בממשק המשתמש, כי הוא תומך רק בשדות string.

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.