סגירת כמה התראות בבת אחת
במאמר הזה מוסבר איך לסגור באופן פרוגרמטי מספר גדול של התראות באמצעות Google Security Operations API בארכיטקטורת REST. Google ממליצה להשתמש בשיטה הזו במצבים שבהם סגירת ההתראות בפלטפורמה תיקח יותר מדי זמן.
דרישות מוקדמות
לפני שמתחילים, חשוב לוודא שהתנאים הבאים מתקיימים:
- סביבת Python: כדי להריץ את הסקריפטים לדוגמה, צריך להתקין את Python.
- דוגמאות ל-API: גישה ל
api-samples-pythonמאגר של ב-GitHub. - פרטי כניסה: קובץ תקין של פרטי כניסה (לדוגמה
.chronicle_credentials.json). - jq: מעבד JSON של שורת הפקודה שמשמש לניתוח הפלט של ה-API.
חיפוש זיהויים
קודם כול, צריך לזהות את ההתראות (התראות על זיהויים) שרוצים לסגור. אתם משתמשים בסקריפט list_detections.py כדי למצוא זיהויים שמשויכים למזהה כלל ספציפי.
- מאתרים את מזהה הכלל ואת פרטי הפרויקט.
- מריצים את הסקריפט כדי להוציא את הזיהויים לקובץ 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, ועכשיו צריך להמיר אותו לקובץ טקסט.
- משתמשים ב-
jqכדי לחלץ את מזהי הגילויים (שמתחילים ב-de_) ממערך ה-JSON. - שומרים את הפלט בקובץ טקסט.
פקודה:
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.