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