סגירת התראות בכמות גדולה

נתמך ב:

במאמר הזה מוסבר איך לסגור באופן פרוגרמטי מספר גדול של התראות באמצעות Google Security Operations API בארכיטקטורת REST. ‫Google ממליצה להשתמש בשיטה הזו במקרים שבהם סגירת ההתראות בפלטפורמה תדרוש יותר מדי זמן.

דרישות מוקדמות

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

  • סביבת Python: צריך להתקין את Python כדי להריץ את סקריפטים לדוגמה.
  • דוגמאות ל-API: גישה לapi-samples-python מאגר GitHub.
  • פרטי כניסה: קובץ פרטי כניסה תקין (לדוגמה, .chronicle_credentials.json).
  • jq: מעבד JSON של שורת פקודה שמשמש לניתוח הפלט של ה-API.

חיפוש של זיהויים

קודם כול צריך לזהות את ההתראות (זיהויים שמעוררים התראות) שרוצים לסגור. משתמשים בסקריפט list_detections.py כדי למצוא זיהויים שמשויכים למזהה כלל ספציפי.

  1. מאתרים את מזהה הכלל ואת פרטי הפרויקט.
  2. מריצים את הסקריפט כדי להוציא את הזיהויים לקובץ JSON. שם קובץ ה-JSON יכול להיות detections.json או temp.json.

פקודה:

python -m detect.v1alpha.list_detections \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --rule_id=$RULE_ID \
  > ip_in_abuseipdb_out.json

חילוץ מזהי זיהוי

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

  1. משתמשים ב-jq כדי לחלץ את מזהי הזיהוי (שמתחילים ב-de_) ממערך ה-JSON.
  2. שומרים את הפלט בקובץ טקסט.

פקודה:

cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
  > ip_in_abuseipdb_out.txt

הפעולה הזו יוצרת קובץ עם רשימה של מזהים, לדוגמה de_ad9d2771-a567....

הגדרת משוב (הפעולה 'סגירה')

כשסוגרים התראה, הסטטוס של המשוב מוגדר ל-CLOSED.

  • התנהגות ברירת המחדל: סקריפט bulk_update_alerts.py משתמש במטען ייעודי (payload) של משוב שמוגדר כברירת מחדל:
    • סטטוס: CLOSED
    • הסיבה: REASON_MAINTENANCE
    • הערה: automated cleanup.
  • התאמה אישית: אם אתם צריכים לשנות את ההכרעה (למשל ל-FALSE_POSITIVE) או את התגובה, אתם יכולים:
    • לערוך ישירות את המילון DEFAULT_FEEDBACK בקובץ Python.
    • מעבירים פרמטרים של CLI (למשל, --verdict="FALSE_POSITIVE") כדי לשנות ערכים ספציפיים.

ביצוע סגירה בכמות גדולה

מריצים את הסקריפט לעדכון מספר פריטים בו-זמנית באמצעות קובץ הטקסט שיצרתם קודם (ראו שליפת מזהי זיהוי). הסקריפט הזה קורא לשיטה UpdateAlertלכל מזהה ברשימה.

פקודה:

python -m detect.v1alpha.bulk_update_alerts \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_ids_file="$(pwd)/ip_in_abuseipdb_out.txt"

אימות הסגירה (אופציונלי)

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

פקודה:

python -m detect.v1alpha.get_alert \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_id=$ALERT_ID

התוצאה הצפויה: פלט ה-JSON מכיל אובייקט feedbackSummary שכולל את "status": "CLOSED" ואת ההערה שציינתם (לדוגמה, automated cleanup).

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