הגדרת 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.