סגירת כמה התראות בבת אחת

נתמך ב:

במאמר הזה מוסבר איך לסגור באופן פרוגרמטי מספר גדול של התראות באמצעות 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") כדי לשנות ערכים ספציפיים.

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

מריצים את הסקריפט לעדכון מספר פריטים בו-זמנית באמצעות קובץ הטקסט שיצרתם קודם (ראו חילוץ מזהי זיהוי). הסקריפט הזה קורא ל-method‏ 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.