איסוף יומנים של Aware Signals
גרסת המנתח: 1.0
במאמר הזה מוסבר איך להגדיר את Aware כך שישלח יומני אירועים של Signal ל-Google Security Operations באמצעות תגובות לפעולה מאתר אחר (webhooks).
Aware (של Mimecast) היא פלטפורמה לאבטחת שיתוף פעולה ולניהול סיכונים פנימיים, שעוקבת אחרי תוכן בכלי תקשורת ארגוניים כמו Slack, Microsoft Teams, Zoom, Cisco Webex ו-Workvivo. אפליקציית Aware Signal משתמשת במודלים של AI, בהתאמה למילות מפתח, בביטויים רגולריים ובניתוח סנטימנטים כדי לזהות הפרות מדיניות וליצור אירועים. אפשר להעביר את אירועי Signal האלה ליעד SIEM לצורך ניטור לצורכי אבטחה מרכזי וקורלציה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- מינוי לפלטפורמת Aware עם מודול Signal מופעל
- חשבון אדמין ב-Aware עם גישה להגדרות המערכת
- לפחות פלטפורמה אחת לשיתוף פעולה (Slack, Microsoft Teams, Zoom, Webex או Workvivo) מחוברת ומעבירה תוכן ל-Aware
- לפחות כלל ומדיניות אחת של Signal מוגדרים ליצירת אירועים
- גישה למסוף Google Cloud (כדי ליצור מפתח API)
איך יוצרים פיד של webhook ב-Google SecOps
יצירת הפיד
- עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Aware Signal Events). - בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Aware Signals בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול: מזינים
\n(תו מפריד של שורה חדשה למטענים ייעודיים (payloads) של NDJSON) - מרחב השמות של הנכס: מרחב השמות של הנכס
- תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה
- תו מפריד לפיצול: מזינים
- לוחצים על הבא.
- בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.
יצירה ושמירה של המפתח הסודי
אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:
- בדף הפרטים של הפיד, לוחצים על יצירת מפתח סודי.
- תיפתח תיבת דו-שיח עם המפתח הסודי.
- מעתיקים ושומרים את המפתח הסודי באופן מאובטח.
איך מקבלים את כתובת ה-URL של נקודת הקצה של הפיד
- עוברים לכרטיסייה פרטים של הפיד.
- בקטע Endpoint Information, מעתיקים את Feed endpoint URL.
הפורמט של כתובת ה-URL הוא:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:importכאשר
{region}הוא האזור של המופע של Google SecOps (לדוגמה,us,europeאוasia-southeast1), ו-{parent}הוא נתיב המשאב בפורמטprojects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.שומרים את כתובת ה-URL הזו לשלבים הבאים.
לוחצים על סיום.
יצירת מפתח API ב-Google Cloud
כדי לבצע אימות ב-Google SecOps, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud.
יצירת מפתח ה-API
- נכנסים לדף Credentials במסוף Google Cloud.
- בוחרים את הפרויקט (הפרויקט שמשויך למכונה של Google SecOps).
- לוחצים על Create credentials > מפתח API.
- מפתח ה-API נוצר ומוצג בתיבת דו-שיח.
- לוחצים על Edit API key כדי להגביל את מפתח ה-API.
הגבלת מפתח ה-API
- בדף ההגדרות של מפתח ה-API:
- שם: מזינים שם תיאורי (לדוגמה,
Chronicle Webhook API Key)
- שם: מזינים שם תיאורי (לדוגמה,
- בקטע API restrictions:
- בוחרים באפשרות Restrict key.
- בתפריט הנפתח Select APIs, מחפשים ובוחרים את Google SecOps API (או Chronicle API).
- לוחצים על Save.
- מעתיקים את הערך של מפתח ה-API מהשדה API key שבחלק העליון של הדף.
שומרים את מפתח ה-API בצורה מאובטחת.
קבלת מפתח ה-API של Aware
ב-Aware משתמשים במפתח API כדי לאמת שילובים חיצוניים. כדי לקבל את המפתח:
- נכנסים ל-Aware בכתובת https://aware.work באמצעות חשבון אדמין.
- בפינה הימנית התחתונה, לוחצים על הגדרות המערכת.
- עוברים לכרטיסייה Integrations (שילובים).
מעתיקים את מפתח ה-API שמוצג בדף.
שומרים את מפתח ה-API במקום מאובטח כדי להשתמש בו בשלבים הבאים.
הגדרת העברת webhook של Aware Signal
יצירת כתובת ה-URL של ה-webhook
משלבים את כתובת ה-URL של נקודת הקצה (endpoint) של Google SecOps, את מפתח ה-API ואת המפתח הסודי:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>לדוגמה:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
הגדרת העברת אירועים ב-Aware
מגדירים את Aware כך שיעביר אירועי Signal לנקודת הקצה של ה-webhook ב-Google SecOps. השלבים המדויקים עשויים להשתנות בהתאם לגרסה של פלטפורמת Aware.
- נכנסים ל-Aware בכתובת https://aware.work באמצעות חשבון אדמין.
- בפינה הימנית התחתונה, לוחצים על הגדרות המערכת.
- עוברים לכרטיסייה Integrations (שילובים).
מגדירים יעד חדש ל-webhook עם הפרטים הבאים:
כתובת היעד: מדביקים את כתובת ה-URL המלאה של ה-webhook, ומוסיפים את מפתח ה-API והמפתח הסודי כפרמטרים של שאילתה:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=YOUR_API_KEY&secret=YOUR_SECRET_KEYסוג התוכן: בוחרים באפשרות
application/jsonכותרת אימות (אם יש תמיכה בגרסת Aware): מגדירים את שם הכותרת ל-
X-Aware-Api-Keyואת הערך למפתח ה-API של Aware
בוחרים את סוגי האירועים שרוצים להעביר. כדי לנטר לצורכי אבטחה באופן מקיף, צריך להפעיל העברה של כל האירועים ב-Signal:
- אירועים של הפרת מדיניות
- אירועים של התאמה למילות מפתח
- אירועים של זיהוי AI או סנטימנט
- אירועים של זיהוי התנהגות רעילה
לוחצים על שמירה כדי להפעיל את יעד ה-webhook.
חלופה: העברת אירועים באמצעות פונקציית Cloud Run
אם גרסת Aware לא תומכת בדחיפת webhook מקורי לאירועי Signal, אתם יכולים להשתמש בפונקציית Cloud Run כדי לדגום את Aware API ולהעביר אירועים לנקודת הקצה של Google SecOps webhook.
- יוצרים פונקציית Cloud Run (גרסה 3.12 של Python או גרסה חדשה יותר) עם טריגר Pub/Sub.
- מגדירים את הפונקציה:
- מאמתים את Aware API באמצעות הכותרת
X-Aware-Api-Key. - שולחים שאילתה על אירועי Signal מנקודת קצה ל-API של Aware.
- מעבירים כל אירוע כמטען ייעודי (payload) בפורמט JSON לכתובת ה-URL של נקודת הקצה של ה-webhook ב-Google SecOps.
- מאמתים את Aware API באמצעות הכותרת
משתמשים ב-Cloud Scheduler כדי להפעיל את הפונקציה במרווחי זמן קבועים (לדוגמה, כל 5 דקות).
דוגמה לבקשה להעברת אירועים:
curl -X POST "https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=YOUR_API_KEY&secret=YOUR_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{"signal_id":"12345","event_type":"policy_violation","timestamp":"2026-01-15T10:30:00Z","user":"user@example.com","platform":"slack","policy":"Data Loss Prevention","rule":"Credit Card Numbers","message_snippet":"detected content"}'
אימות של העברת האירועים
- ב-Google SecOps, עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- לוחצים על הפיד Aware Signal Events.
- עוברים לכרטיסייה סטטוס.
- מוודאים שהאירועים מתקבלים.
לחלופין, אפשר להפעיל אירוע בדיקה של Signal ב-Aware:
- ב-Aware, עוברים אל Signal > Events.
- מוודאים שאירועים חדשים נוצרים על ידי כללי המדיניות.
- ממתינים כמה דקות עד שהאירועים יופיעו ב-Google SecOps.
סוגי אירועים של Aware Signal
Aware Signal מזהה אירועים בפלטפורמות שיתוף פעולה מקושרות באמצעות שילוב של מודלי AI, התאמה למילות מפתח, ביטויים רגולריים וניתוח סנטימנטים. אלה קטגוריות האירועים הנפוצות שנוצרות:
| קטגוריה | תיאור | דוגמאות |
|---|---|---|
| הפרת מדיניות | אירועים שמופעלים על ידי כללי מדיניות מוגדרים | זיהוי מילות מפתח, התאמה של דפוס ביטוי רגולרי, מידע אישי רגיש |
| AI/סנטימנט | אירועים שזוהו על ידי מודלים של AI וניתוח סנטימנט | שפה פוגענית, סנטימנט שלילי, הטרדה |
| אובדן נתונים | אירועים שקשורים לזליגת נתונים פוטנציאלית | הפרות של שיתוף קבצים, שיתוף חיצוני, חשיפת פרטי כניסה |
| סיכון מבפנים | אירועים שמצביעים על איומים פנימיים פוטנציאליים | דפוסי התנהגות חריגים, חריגות בגישה, סיכון מצד עובדים שעוזבים את הארגון |
| תאימות | אירועים שקשורים לעמידה בתקנות | חשיפת פרטים אישיים מזהים (PII), שיתוף נתונים פיננסיים, הפרות של חוק HIPAA |
מידע על שיטות אימות
פידים של Google SecOps webhook תומכים בכמה שיטות אימות. בוחרים את השיטה שבה הספק תומך.
שיטה 1: פרמטרים של שאילתה
מוסיפים את פרטי הכניסה ל-webhook URL.
פורמט כתובת ה-URL:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>לדוגמה:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
שיטה 2: כותרות מותאמות אישית
אם ההגדרות שלכם תומכות בכותרות HTTP בהתאמה אישית, כדאי להשתמש בשיטה הזו כדי לשפר את האבטחה.
כותרות:
x-goog-chronicle-auth: <API_KEY> x-chronicle-auth: <SECRET_KEY>
יתרונות:
- מפתח ה-API והסוד לא גלויים בכתובת ה-URL
- מאובטח יותר (הכותרות לא מתועדות ביומני הגישה של שרת האינטרנט)
מגבלות ושיטות מומלצות לשימוש ב-webhook
מגבלות על בקשות
| הגבלה | ערך |
|---|---|
| גודל בקשה מקסימלי | 4 MB |
| מספר QPS (שאילתות לשנייה) מקסימלי | 15,000 |
| פסק זמן לבקשה | 30 שניות |
| התנהגות של ניסיון חוזר | אוטומטי עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff) |
שיטות מומלצות
- כדי ליהנות מכיסוי אבטחה מקיף, כדאי להפעיל העברה לכל סוגי האירועים של Signal
- עוקבים אחרי סטטוס המסירה של ה-webhook באופן קבוע כדי לזהות כשלים או עיכובים
- שימוש בתו המפריד
\nבהגדרת הפיד של Google SecOps כדי לטפל במטענים ייעודיים (payloads) של NDJSON - לפני שפורסים את השילוב בסביבת הייצור, בודקים אותו עם הפרת מדיניות ידועה.
- כדאי לבדוק מדי פעם את כללי המדיניות של Aware Signal כדי לוודא שאירועים רלוונטיים מתועדים
פתרון בעיות
אירועים לא מופיעים ב-Google SecOps
הסיבה: אירועים נוצרים ב-Aware אבל לא נקלטים
הפתרון:
- ב-Google SecOps, עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
- לוחצים על הפיד Aware Signal Events.
- עוברים לכרטיסייה סטטוס.
- בודקים אם יש שגיאות בהטמעה.
- מוודאים שסוג היומן מוגדר ל-Aware Signals.
- מוודאים שמפתח ה-API והמפתח הסודי בכתובת ה-URL של ה-webhook נכונים.
שגיאות אימות
הסיבה: מפתח API או מפתח סודי לא תקינים
הפתרון:
- מוודאים שמפתח ה-API של Google SecOps תקין ושהגדרתם לו את מגבלת ה-API הנכונה.
- מוודאים שהמפתח הסודי תואם למפתח שנוצר במהלך יצירת הפיד.
בודקים את נקודת הקצה באופן ידני:
curl -X POST "https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=YOUR_API_KEY&secret=YOUR_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{"test": "event"}'אם הבדיקה נכשלת, יוצרים מחדש את מפתח ה-API או את המפתח הסודי ומעדכנים את הגדרת ה-webhook ב-Aware.
המטען הייעודי (payload) חורג מהגודל המקסימלי
הסיבה: המטען הייעודי (payload) של האירוע חורג מהמגבלה של 4MB
הפתרון:
- צמצמו את מספר סוגי האירועים שמועברים.
- כדי להגדיר מגבלות על גודל המטען הייעודי (payload), צריך לפנות לתמיכה של Aware.
- אם אתם משתמשים בגישה של פונקציית Cloud Run, הטמיעו חלוקה לקבוצות כדי לפצל מטענים ייעודיים (payloads) גדולים לכמה בקשות.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | Logic (פונקציה לוגית) |
|---|---|---|
has_principal |
metadata.event_type |
מופה: true ← NETWORK_CONNECTION, true ← STATUS_UPDATE |
has_user |
metadata.event_type |
מופה: true ← USER_UNCATEGORIZED |
signalEventDetails.eventStatus |
security_result.action_details |
מיפוי ישיר |
contentObjectDetails_contentObjectIsChat_label |
security_result.detection_fields |
ממוזג |
contentObjectDetails_contentObjectIsThread_label |
security_result.detection_fields |
ממוזג |
detectionLength_label |
security_result.detection_fields |
ממוזג |
detectionStart_label |
security_result.detection_fields |
ממוזג |
ruleConditionMatches_label |
security_result.detection_fields |
ממוזג |
search_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_createdTime_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_deletedTime_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_inspectionRequestId_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_isQuarantined_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_policyDetails_createdTime_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_policyDetails_policyId_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_policyDetails_policyName_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_ruleBehavior_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_ruleFamilyId_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_tenantId_label |
security_result.detection_fields |
ממוזג |
signalEventId_label |
security_result.detection_fields |
ממוזג |
signal_EventDetails_policyDetails_deletedTime_label |
security_result.detection_fields |
ממוזג |
snippetContent_label |
security_result.detection_fields |
ממוזג |
snippetLength_label |
security_result.detection_fields |
ממוזג |
snippetStart_label |
security_result.detection_fields |
ממוזג |
signalEventDetails_ruleId |
security_result.rule_id |
מיפוי ישיר |
signalEventDetails_ruleName |
security_result.rule_name |
מיפוי ישיר |
contentGroupDetails.contentGroupScope_label |
target.group.attribute.labels |
ממוזג |
contentObjectDetails_contentGroupDetails_contentGroupTag_label |
target.group.attribute.labels |
ממוזג |
contentGroupDetails_contentGroupName |
target.group.group_display_name |
מיפוי ישיר |
contentObjectDetails_contentPlatformId_label |
target.resource.attribute.labels |
ממוזג |
contentObjectDetails_contentTime_label |
target.resource.attribute.labels |
ממוזג |
contentObjectDetails_contentObjectId |
target.resource.product_object_id |
מיפוי ישיר |
contentObjectDetails_contentObjectType |
target.resource.resource_subtype |
מיפוי ישיר |
contentAuthorDetails_contentAuthorEmail |
target.user.email_addresses |
ממוזג |
contentAuthorDetails_contentAuthorName |
target.user.user_display_name |
מיפוי ישיר |
contentAuthorDetails_contentAuthorId |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | metadata.event_type |
קבוע: NETWORK_CONNECTION |
| לא רלוונטי | metadata.product_name |
קבוע: AWARE SIGNALS |
| לא רלוונטי | metadata.vendor_name |
קבוע: AWARE SIGNALS |
יומן שינויים
הצגת יומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.