הגדרת webhook של SIEM
לפני שמתחילים
- מוודאים שמוגדר פרויקט ב-Google Cloud ל-Google SecOps וש-Chronicle API מופעל בפרויקט.
שימוש בדוגמאות של שורת הפקודה
במסמך הזה יש דוגמאות לפקודות curl שיעזרו לכם להגדיר ולבדוק את פיד ה-webhook. בדוגמאות האלה נעשה שימוש במשתני placeholder שאפשר לערוך. כדי להשתמש בהם בצורה יעילה:
עורכים את המשתנים: במהלך השלבים להגדרה, תקבלו ערכים לנקודת הקצה של ה-webhook, למפתח API ולסוד. לוחצים על משתני ה-placeholder בקוד לדוגמה ומחליפים אותם בערכים בפועל:
-
ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של הפיד שהתקבלה כשיוצרים פיד webhook מסוג HTTPS. -
API_KEY: מפתח ה-API שיוצרים בשביל פיד ה-webhook כדי לבצע אימות ל-Google SecOps. -
SECRET: המפתח הסודי שנוצר כשיוצרים פיד של webhook מסוג HTTPS.
עריכת משתנה בדוגמת קוד אחת תעדכן אותו בכל הדוגמאות בדף הזה.
-
מעתיקים את הפקודה: לוחצים על סמל העתקת דוגמת הקוד בבלוק הקוד.
מריצים את הפקודה: מדביקים את הפקודה שהועתקה בסביבת הטרמינל ומריצים אותה.
מוודאים שהפקודה
curlכוללת את הדגל--fail(או-f). כך מובטח שהפונקציהcurlתחזיר קוד יציאה שאינו אפס אם בקשת ה-HTTP נכשלת, וקוד יציאה0אם היא מצליחה. צריך את זה כדי להמשיך לשלב הבא.אימות ההצלחה: אם הפקודה
curlמסתיימת ללא שגיאות, היא לא מחזירה פלט. כדי לוודא שההגדרה בוצעה בהצלחה:אם הפקודה
curlכללה את הדגל--fail(או-f), צריך לבדוק את קוד היציאה על ידי הרצת הפקודה הבאה מיד לאחר מכן:echo $?קוד יציאה
0מציין שהפעולה בוצעה בהצלחה.
הגדרת פיד webhook ב-HTTPS
כדי להגדיר פיד webhook של HTTPS:
- יוצרים פיד webhook מסוג HTTPS ומעתיקים את כתובת ה-URL של נקודת הקצה ואת המפתח הסודי.
- יוצרים מפתח API לשימוש עם כתובת ה-URL של נקודת הקצה. אפשר גם להשתמש מחדש במפתח ה-API הקיים כדי לבצע אימות ל-Google SecOps.
- מציינים את כתובת ה-URL של נקודת הקצה באפליקציה.
שליחת כמה אירועים בבקשת webhook אחת
בדוגמת הקוד הבאה אפשר לראות איך מעצבים גוף של בקשה יחידה עם כמה אובייקטים של JSON שמופרדים באמצעות שורות חדשות:
curl --location 'ENDPOINT_URL' \
--header 'Content-Type: application/json' \
--header 'X-goog-api-key: API_KEY' \
--header 'X-Webhook-Access-Key: SECRET' \
--data $'{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}\n{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \
--fail
יצירת פיד webhook ב-HTTPS
- בתפריט Google SecOps, בוחרים באפשרות הגדרות ואז לוחצים על פידים.
- לוחצים על הוספה.
- בשדה שם הפיד, מזינים שם לפיד.
- ברשימה סוג המקור, בוחרים באפשרות Webhook.
- בוחרים את סוג היומן. לדוגמה, כדי ליצור פיד עבור Open Cybersecurity Schema Framework (מסגרת סכימה פתוחה לאבטחת סייבר), בוחרים באפשרות Open Cybersecurity Schema Framework (OCSF) בתור סוג היומן.
- לוחצים על הבא.
- אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
- Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו
\n. - מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה.
- Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
- לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
- חשוב להעתיק ולשמור את המפתח הסודי כי לא תהיה לך אפשרות לראות אותו שוב. אפשר ליצור מפתח סודי חדש, אבל פעולה כזו תגרום לכך שהמפתח הסודי הקודם יהיה לא רלוונטי.
- בכרטיסייה Details (פרטים), מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה). צריך לציין את כתובת ה-URL של נקודת הקצה הזו באפליקציית הלקוח.
- אופציונלי: לוחצים על המתג הפיד מופעל כדי להשבית את הפיד. הפיד מופעל כברירת מחדל.
- לוחצים על סיום.
יצירת מפתח API ל-Webhook Feed
- עוברים לדף Credentials במסוף Google Cloud .
- לוחצים על Create credentials ואז על API key.
- להגביל את הגישה של מפתח ה-API ל-Chronicle API.
ציון כתובת ה-URL של נקודת הקצה
- באפליקציית הלקוח, מציינים את נקודת הקצה של HTTPS שזמינה בפיד ה-webhook.
מפעילים אימות על ידי ציון מפתח ה-API והמפתח הסודי ככותרות מותאמות אישית בפורמט הבא:
X-goog-api-key: API_KEY X-Webhook-Access-Key: SECRETמומלץ לציין את מפתח ה-API ככותרת במקום לציין אותו בכתובת ה-URL.
curl --location 'ENDPOINT_URL' \ --header 'Content-Type: application/json' \ --header 'X-goog-api-key: API_KEY' \ --header 'X-Webhook-Access-Key: SECRET' \ --data '{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \ --failאם לקוח ה-webhook שלכם לא תומך בכותרות בהתאמה אישית, אתם יכולים לציין את מפתח ה-API ואת המפתח הסודי באמצעות פרמטרים של שאילתה בפורמט הבא:
ENDPOINT_URL?key=API_KEY&secret=>SECRET
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.