איסוף יומני גישה לאפליקציות בהתאמה אישית
גרסת המנתח: 1.0
במסמך הזה מוסבר איך להטמיע יומני גישה של אפליקציות בהתאמה אישית ב-Google Security Operations באמצעות שיטות של אחסון בענן או הטמעת עדכונים בזמן אמת.
יומני גישה לאפליקציות מותאמות אישית מתעדים אירועי אימות, החלטות הרשאה ודפוסי גישה מאפליקציות קנייניות או מאפליקציות שנבנו בהתאמה אישית. היומנים האלה חיוניים למעקב אחרי פעילות המשתמשים, לזיהוי ניסיונות גישה לא מורשים ולשמירה על תאימות למדיניות האבטחה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מופע של Google SecOps
- יומני גישה לאפליקציות בהתאמה אישית בפורמט JSON, CSV או טקסט מובנה
- גישה לאחד מהפריטים הבאים:
- קטגוריה של Google Cloud Storage (להטמעה ב-GCS)
- קטגוריה של Amazon S3 (להטמעה מ-S3)
- חשבון Microsoft Azure Storage (להטמעה של Azure Blob)
- יכולת של נקודת קצה (endpoint) של תגובה לפעולה מאתר אחר (webhook) (להטמעה מבוססת-דחיפה)
- Amazon Kinesis Data Firehose (להטמעת עדכונים בזמן אמת)
יצירת סוג יומן בהתאמה אישית
סוג היומן CUSTOM_APPLICATION_ACCESS לא קיים כמנתח מובנה ב-Google SecOps. לפני שמבצעים המרה של יומנים, צריך ליצור סוג יומן מותאם אישית.
- עוברים אל הגדרות SIEM > סוגי יומנים זמינים.
- לוחצים על בקשה של סוג יומן.
- בקטע Create a custom log type on your own, מזינים את הפרטים הבאים:
- ספק/מוצר: מזינים
Custom Application Access Logs - סוג היומן: מזינים
CUSTOM_APPLICATION_ACCESS
- ספק/מוצר: מזינים
לוחצים על Create Log Type.
לפני שיוצרים פידים, ממתינים 10 דקות כדי לוודא שסוג היומן החדש זמין בכל הרכיבים.
בחירת שיטת ההטמעה
בוחרים את שיטת ההטמעה שהכי מתאימה לתשתית שלכם:
- Google Cloud Storage (GCS): אם האפליקציה שלכם כותבת יומנים לקטגוריות של GCS או אם אתם יכולים לייצא יומנים ל-GCS.
- Amazon S3: אם האפליקציה כותבת יומנים לקטגוריות של S3 או אם אתם יכולים לייצא יומנים ל-S3.
- Azure Blob Storage: משתמשים באפשרות הזו אם האפליקציה כותבת יומנים ל-Azure Storage או אם אפשר לייצא יומנים ל-Azure
- תגובה לפעולה מאתר אחר (webhook): משתמשים באפשרות הזו אם האפליקציה יכולה לשלוח בקשות POST לנקודת קצה (endpoint) חיצונית
- Amazon Kinesis Data Firehose: משתמשים באפשרות הזו אם האפליקציה כותבת ל-CloudWatch Logs או אם אתם צריכים סטרימינג בזמן אמת
אפשרות 1: הטמעה מ-Google Cloud Storage
יצירת קטגוריה של Google Cloud Storage
- נכנסים למסוף Google Cloud.
- בוחרים את הפרויקט או יוצרים פרויקט חדש.
- בתפריט הניווט, נכנסים ל-Cloud Storage > Buckets.
- לוחצים על Create bucket.
ממלאים את פרטי ההגדרה הבאים:
הגדרה ערך Name your bucket מזינים שם ייחודי גלובלית (לדוגמה, custom-app-access-logs)סוג המיקום בוחרים לפי הצרכים שלכם (אזור, שני אזורים, מספר אזורים) Location בוחרים את המיקום (לדוגמה, us-central1)סוג האחסון (storage class) רגיל (מומלץ ליומנים שצריך לגשת אליהם לעיתים קרובות) בקרת גישה אחידה (מומלץ) כלי הגנה אופציונלי: הפעלת ניהול גרסאות של אובייקטים או מדיניות שמירת נתונים לוחצים על יצירה.
הגדרת האפליקציה לכתיבת יומנים ב-GCS
מגדירים את האפליקציה בהתאמה אישית כך שתכתוב יומני גישה לקטגוריית GCS שיצרתם. היומנים צריכים להיות כתובים באחד מהפורמטים הבאים:
פורמט JSON (מומלץ):
{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45", "application": "custom-app", "resource": "/api/users"}פורמט CSV:
timestamp,user,action,result,source_ip,application,resource 2025-01-15T10:30:00Z,john.doe@example.com,login,success,203.0.113.45,custom-app,/api/usersJSON מופרד בשורות חדשות (NDJSON):
{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"} {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}
אחזור של חשבון השירות של Google SecOps
מערכת Google SecOps משתמשת בחשבון שירות ייחודי כדי לקרוא נתונים מהקטגוריה שלכם ב-GCS. צריך להעניק לחשבון השירות הזה גישה לדלי.
- עוברים אל SIEM Settings > Feeds.
- לוחצים על הוספת פיד חדש.
- לוחצים על Configure a single feed (הגדרת פיד יחיד).
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Custom Application Access Logs - GCS). - בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור Log type.
- לוחצים על Get Service Account (קבלת חשבון שירות).
תוצג כתובת אימייל ייחודית של חשבון שירות, לדוגמה:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comמעתיקים את כתובת האימייל הזו לשימוש בשלב הבא.
הקצאת הרשאות IAM לחשבון השירות של Google SecOps
לחשבון השירות של Google SecOps צריך להיות התפקיד צפייה באובייקט אחסון בקטגוריה של GCS.
- נכנסים לדף Cloud Storage > Buckets.
- לוחצים על שם הקטגוריה.
- עוברים לכרטיסייה Permissions.
- לוחצים על הענקת גישה.
- מספקים את פרטי ההגדרה הבאים:
- Add principals: מדביקים את כתובת האימייל של חשבון השירות של Google SecOps.
- הקצאת תפקידים: בוחרים באפשרות צפייה באובייקטים באחסון.
לוחצים על Save.
הגדרת הפיד ב-Google SecOps
- חוזרים לדף ליצירת פיד (או עוברים אל הגדרות SIEM > פידים > הוספת פיד חדש).
- לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
כתובת ה-URL של קטגוריית האחסון: מזינים את ה-URI של קטגוריית GCS עם נתיב הקידומת:
gs://custom-app-access-logs/אפשרות למחיקת המקור: בוחרים את אפשרות המחיקה המועדפת:
- אף פעם: לא נמחקים קבצים אחרי ההעברה (מומלץ לבדיקות).
- מחיקת קבצים שהועברו: מחיקת קבצים אחרי שהם הועברו בהצלחה.
- מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות אחרי שההעברה מסתיימת בהצלחה.
גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים).
מרחב השמות של הנכס: מרחב השמות של הנכס.
תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה,
custom_app_access).
לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
אפשרות 2: הטמעה מ-Amazon S3
יצירת קטגוריה ב-Amazon S3
- פותחים את מסוף Amazon S3.
- לוחצים על Create Bucket.
- מזינים את פרטי ההגדרה הבאים:
- Bucket Name: נותנים לקטגוריה שם בעל משמעות (לדוגמה,
custom-app-access-logs). - Region: בוחרים את האזור שבו האפליקציה פועלת (לדוגמה,
us-east-1).
- Bucket Name: נותנים לקטגוריה שם בעל משמעות (לדוגמה,
- לוחצים על יצירה.
יצירת משתמש IAM עם גישה ל-S3
- פותחים את מסוף IAM.
- לוחצים על משתמשים > הוספת משתמש.
- מזינים שם משתמש (לדוגמה,
chronicle-s3-reader). - לוחצים על גישה פרוגרמטית.
- לוחצים על הבא: הרשאות.
- בוחרים באפשרות צירוף מדיניות קיימת ישירות.
- מחפשים את המדיניות AmazonS3FullAccess ובוחרים בה.
- לוחצים על Next: Tags.
- לוחצים על הבא: בדיקה.
- לוחצים על יצירת משתמש.
- לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
- לוחצים על Close.
הגדרת האפליקציה לכתיבת יומנים ל-S3
מגדירים את האפליקציה בהתאמה אישית כך שתכתוב יומני גישה לקטגוריית S3 שיצרתם. צריך להשתמש באותם פורמטים של יומנים שמתוארים בקטע GCS (JSON, CSV או NDJSON).
הגדרת פיד ב-Google SecOps כדי להטמיע יומנים מ-S3
- עוברים אל SIEM Settings > Feeds.
- לוחצים על הוספת פיד חדש.
- לוחצים על Configure a single feed (הגדרת פיד יחיד).
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Custom Application Access Logs - S3). - בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור Log type.
- לוחצים על הבא ואז על שליחה.
מציינים ערכים לפרמטרים הבאים של הקלט:
S3 URI: מזינים את ה-URI של הקטגוריה בפורמט הבא:
s3://custom-app-access-logs/אפשרות מחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.
גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים).
מזהה מפתח הגישה: מפתח הגישה של המשתמש עם גישה לקטגוריית S3.
מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
מרחב השמות של הנכס: מרחב השמות של הנכס.
תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה,
custom_app_access).
לוחצים על הבא ואז על שליחה.
אפשרות 3: הטמעה מ-Azure Blob Storage
יצירת חשבון אחסון ב-Azure
- ב-Azure portal, מחפשים Storage accounts.
- לוחצים על + Create.
ממלאים את פרטי ההגדרה הבאים:
הגדרה ערך מינוי בוחרים את המינוי ל-Azure. קבוצת משאבים בוחרים קבוצה קיימת או יוצרים קבוצה חדשה שם חשבון האחסון מזינים שם ייחודי (לדוגמה, customappaccesslogs)אזור בוחרים את האזור (לדוגמה, East US)ביצועים רגיל (מומלץ) יתירות LRS (אחסון עם יתירות מקומית) לוחצים על Review + create.
בודקים את הסקירה הכללית של החשבון ולוחצים על יצירה.
מחכים עד שהפריסה תסתיים.
קבלת פרטי הכניסה לחשבון האחסון
- עוברים אל Storage Account שיצרתם.
- בסרגל הניווט הימני, בקטע Security + networking, לוחצים על Access keys.
- לוחצים על הצגת מקשים.
- מעתיקים ושומרים את הפרטים הבאים לשימוש בהמשך:
- שם חשבון האחסון:
customappaccesslogs - Key 1 או Key 2: מפתח הגישה המשותף
- שם חשבון האחסון:
יצירת קונטיינר של Blob
- באותו חשבון אחסון, בוחרים באפשרות Containers בתפריט הניווט הימני.
- לוחצים על + מאגר תגים.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים
access-logs - רמת גישה ציבורית: בוחרים באפשרות פרטי (אין גישה אנונימית).
- שם: מזינים
- לוחצים על יצירה.
הגדרת האפליקציה לכתיבת יומנים ב-Azure Blob Storage
מגדירים את האפליקציה בהתאמה אישית כך שתכתוב יומני גישה למאגר Azure Blob Storage שיצרתם. צריך להשתמש באותם פורמטים של יומנים שמתוארים בקטע של GCS (JSON, CSV או NDJSON).
הגדרת פיד ב-Google SecOps כדי להטמיע יומנים מ-Azure
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Custom Application Access Logs - Azure). - בקטע Source type, בוחרים באפשרות Microsoft Azure Blob Storage V2.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
- לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
Azure URI: מזינים את כתובת ה-URL של נקודת הקצה של Blob Service עם הנתיב של המאגר:
https://customappaccesslogs.blob.core.windows.net/access-logs/אפשרות למחיקת מקור: בוחרים את אפשרות המחיקה לפי ההעדפה שלכם
גיל הקובץ המקסימלי: הכללת קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים)
מפתח משותף: מזינים את ערך המפתח המשותף (מפתח הגישה) שקיבלתם מחשבון האחסון.
מרחב השמות של הנכס: מרחב השמות של הנכס
תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה,
custom_app_access)
לוחצים על הבא.
בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.
אפשרות 4: הטמעה באמצעות Webhook
יצירת פיד של webhook ב-Google SecOps
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Custom Application Access Logs - Webhook). - בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול: מזינים
\nכדי לפצל אירועים שמופרדים בשורה חדשה (אם שולחים כמה אירועים לכל בקשה). - מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה,
custom_app_access).
- תו מפריד לפיצול: מזינים
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
יצירה ושמירה של מפתח סודי
- בדף הפרטים של הפיד, לוחצים על יצירת מפתח סודי.
- תיפתח תיבת דו-שיח עם המפתח הסודי.
מעתיקים את המפתח הסודי ושומרים אותו במקום מאובטח.
קבלת כתובת ה-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.
- נכנסים אל הדף Credentials במסוף Google Cloud.
- בוחרים את הפרויקט (הפרויקט שמשויך למכונה של Chronicle).
- לוחצים על Create credentials > מפתח API.
- מפתח API נוצר ומוצג בתיבת דו-שיח.
- לוחצים על Edit API key כדי להגביל את המפתח.
- בדף ההגדרות מפתח API:
- שם: מזינים שם תיאורי (לדוגמה,
Chronicle Webhook API Key).
- שם: מזינים שם תיאורי (לדוגמה,
- בקטע API restrictions (הגבלות על API):
- בוחרים באפשרות הגבלת מקש.
- בתפריט הנפתח Select APIs (בחירת ממשקי API), מחפשים את Google SecOps API (או Chronicle API) ובוחרים אותו.
- לוחצים על Save.
- מעתיקים את הערך של מפתח ה-API מהשדה API key (מפתח API) בחלק העליון של הדף.
- שומרים את מפתח ה-API בצורה מאובטחת.
הגדרת האפליקציה לשליחת יומנים באמצעות webhook
מגדירים את האפליקציה בהתאמה אישית כך שתשלח בקשות POST לנקודת הקצה של ה-webhook ב-Chronicle.
יוצרים את כתובת ה-URL של ה-webhook:
מוסיפים את מפתח ה-API לכתובת ה-URL של נקודת הקצה של הפיד:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=<API_KEY>מחליפים את הערך
<API_KEY>במפתח ה-API שיצרתם.
פורמט של בקשת POST ב-HTTP:
POST https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}לכמה אירועים (מופרדים בשורות חדשות):
POST https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> {"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success"} {"timestamp": "2025-01-15T10:30:05Z", "user": "jane.smith@example.com", "action": "access", "result": "denied"}דוגמה לשימוש ב-curl:
curl -X POST \ "https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=YOUR_API_KEY" \ -H "Content-Type: application/json" \ -H "x-chronicle-auth: YOUR_SECRET_KEY" \ -d '{"timestamp": "2025-01-15T10:30:00Z", "user": "john.doe@example.com", "action": "login", "result": "success", "source_ip": "203.0.113.45"}'
אפשרות 5: הטמעה באמצעות Amazon Kinesis Data Firehose
יצירת פיד ב-Google SecOps
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Custom Application Access Logs - Firehose). - בוחרים באפשרות Amazon Data Firehose בתור סוג המקור.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול: מזינים
\nכדי לפצל יומנים שמופרדים בשורה חדשה. - מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה,
custom_app_access).
- תו מפריד לפיצול: מזינים
- לוחצים על הבא.
- בודקים את הגדרות הפיד ולוחצים על שליחה.
- לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
- מעתיקים ושומרים את המפתח הסודי, כי אי אפשר לראות אותו שוב.
- עוברים לכרטיסייה פרטים.
- מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה).
- לוחצים על סיום.
יצירת מפתח API לשימוש בפיד Amazon Data Firehose
- נכנסים לדף Credentials במסוף Google Cloud בכתובת https://console.cloud.google.com/apis/credentials
- לוחצים על Create credentials ואז על מפתח API.
- לוחצים על Edit API key כדי להגביל את המפתח.
- בקטע API restrictions, בוחרים באפשרות Restrict key.
- מחפשים את Google SecOps API ובוחרים בו.
- לוחצים על Save.
- מעתיקים ושומרים את מפתח ה-API.
הרכבת כתובת ה-URL של נקודת הקצה
מוסיפים את מפתח ה-API לכתובת ה-URL של נקודת הקצה של הפיד בפורמט הבא:
<FEED_ENDPOINT_URL>?key=<API_KEY>מחליפים את מה שכתוב בשדות הבאים:
<FEED_ENDPOINT_URL>: כתובת ה-URL של נקודת הקצה של הפיד בשלב הקודם-
<API_KEY>: מפתח ה-API מהשלב הקודם
לדוגמה:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...שומרים את כתובת ה-URL המלאה הזו לשלב הבא.
יצירת מדיניות IAM ל-Firehose
- במסוף AWS, עוברים אל הכרטיסייה IAM > Policies > Create policy > JSON.
מדביקים את מדיניות ה-JSON הבאה:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/CustomAppAccessToChronicle" } ] }מחליפים את מה שכתוב בשדות הבאים:
-
us-east-1: האזור שלכם ב-AWS -
123456789012: מזהה החשבון ב-AWS (מספר בן 12 ספרות) -
CustomAppAccessToChronicle: השם של Firehose delivery stream (תיצרו אותו בשלב הבא)
-
נותנים למדיניות את השם
CustomAppAccessFirehoseWritePolicy.לוחצים על יצירת מדיניות.
יצירת תפקיד IAM ל-CloudWatch Logs
- עוברים אל IAM > Roles > Create role (ניהול הרשאות גישה > תפקידים > יצירת תפקיד).
בוחרים באפשרות Custom trust policy ומדביקים:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }מחליפים את
us-east-1באזור AWS.לוחצים על הבא.
מחפשים ובוחרים את המדיניות
CustomAppAccessFirehoseWritePolicyשיצרתם בשלב הקודם.לוחצים על הבא.
נותנים לתפקיד את השם
CloudWatchLogsToFirehoseRole.לוחצים על יצירת תפקיד.
יצירת מקור נתונים למסירה ב-Kinesis Data Firehose
- ב-AWS Console, עוברים אל Kinesis > Data Firehose > Create delivery stream.
מספקים את פרטי ההגדרה הבאים:
מקור ויעד:
- מקור: בוחרים באפשרות PUT ישיר או מקורות אחרים
- יעד: בוחרים באפשרות נקודת קצה (endpoint) מסוג HTTP.
שם מקור הנתונים:
- Delivery stream name: מזינים
CustomAppAccessToChronicle
- Delivery stream name: מזינים
יעד של נקודת קצה (endpoint) מסוג HTTP:
- כתובת ה-URL של נקודת הקצה (endpoint) בפרוטוקול HTTP: מזינים את כתובת ה-URL המלאה של נקודת הקצה שיצרתם קודם (נקודת הקצה של הפיד + מפתח ה-API)
- קידוד התוכן: בוחרים באפשרות GZIP (מומלץ לחיסכון ברוחב הפס)
כותרות HTTP בהתאמה אישית:
- לוחצים על הוספת כותרת HTTP בהתאמה אישית.
- שם הכותרת: מזינים
X-Goog-Chronicle-Auth - ערך הכותרת: מזינים את המפתח הסודי ששמרתם בשלב קודם
הגדרות גיבוי:
- גיבוי של רשומת המקור ב-Amazon S3: בוחרים באפשרות נתונים שנכשלו בלבד (מומלץ)
- S3 bucket: בוחרים קטגוריה קיימת או יוצרים קטגוריה חדשה לרשומות שנכשלו
הצעות למאגר זמני:
- Buffer size: מזינים
1MiB (המינימום לנקודות קצה ב-HTTP) - מרווח מאגר נתונים זמני: מזינים
60שניות
- Buffer size: מזינים
משך הניסיון החוזר:
- משך הניסיון החוזר: מזינים
300שניות (5 דקות)
- משך הניסיון החוזר: מזינים
לוחצים על Create delivery stream.
מחכים שהסטטוס של מקור הנתונים ישתנה ל-Active (דקה או שתיים).
הגדרת האפליקציה לכתיבה ביומני CloudWatch
מגדירים את האפליקציה המותאמת אישית כך שתכתוב יומני גישה לקבוצת יומנים של CloudWatch. לאחר מכן, יוצרים מסנן מינויים כדי להעביר בסטרימינג את היומנים אל Firehose.
- ב-AWS Console, עוברים אל CloudWatch > Logs > Log groups.
- יוצרים קבוצת יומנים חדשה או בוחרים קבוצה קיימת שבה האפליקציה כותבת יומנים.
- לוחצים על הכרטיסייה מסנני מינויים.
- לוחצים על Create > Create Amazon Kinesis Data Firehose subscription filter.
מספקים את פרטי ההגדרה הבאים:
- יעד: בוחרים בזרם העברת נתונים
CustomAppAccessToChronicle. - מתן הרשאה: בוחרים את התפקיד
CloudWatchLogsToFirehoseRole. - thought
Subscription filter name: מזינים
CustomAppAccessToChronicle. - פורמט יומן: בוחרים באפשרות אחר (המערכת של Google SecOps מטפלת בניתוח).
- תבנית מסנן מינויים: משאירים את השדה ריק כדי לשלוח את כל האירועים.
- יעד: בוחרים בזרם העברת נתונים
לוחצים על התחלת השידור.
היומנים מועברים בזמן אמת ל-Google SecOps דרך Firehose.
יצירת מנתח מותאם אישית
אחרי שמבצעים המרה של יומנים, צריך ליצור מנתח מותאם אישית כדי לנרמל את הנתונים לפורמט UDM.
- עוברים אל SIEM Settings > Parsers.
- לוחצים על Create Parser.
- בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
משתמשים בכלי לעריכת מנתחים כדי ליצור תבניות Grok או תוספים למנתחים שממפים את שדות היומן לשדות UDM.
מיפוי של מנתח לדוגמה:
שדה יומן בהתאמה אישית שדה UDM timestampmetadata.event_timestampuserprincipal.user.email_addressesactionsecurity_result.actionresultsecurity_result.summarysource_ipprincipal.ipapplicationtarget.applicationresourcetarget.resource.nameבודקים את מנתח היומנים באמצעות יומנים לדוגמה.
לוחצים על שמירה כדי להפעיל את מנתח הנתונים.
הוראות מפורטות ליצירת מנתח מופיעות במאמר אפשרויות של מנתח בשירות עצמי.
אימות ההטמעה
אחרי שמגדירים את הפיד ואת מנתח התוכן, מוודאים שהיומנים נקלטים:
- עוברים אל חיפוש > חיפוש UDM.
מריצים את השאילתה הבאה:
metadata.log_type = "CUSTOM_APPLICATION_ACCESS_CUSTOM"מוודאים שהאירועים מופיעים בתוצאות החיפוש.
בודקים ששדות ה-UDM מאוכלסים בצורה נכונה על סמך הגדרות המנתח.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| נוסף | מוזג עם תוויות שנוצרו מ-service, env, msg.attachment.fileName, msg.attachment.digest, msg.attachment.key, msg.attachment.authorizeId, msg.attachment.contentType, dest.type, type, msg.sortID, msg.refID, state.reported.applications_installed, state.reported.applications_status, state.reported.ota_queue, state.reported.VICMB_Deg_Battery_LimpHome, state.reported.VICMB_Inhibit_Propulsion, state.reported.VICMB_FA_LostComm_BPCM, state.reported.VICMB_FA_LostComm_SFAM1, state.reported.VICMB_Inhibit_HV, state.reported.VICMB_FA_LostComm_RIDM, state.reported.VICMB_FA_LostComm_RWAM1, state.reported.uname, meta.reported.battery_charging_rate_kw.timestamp, state.reported.battery_charging_rate_kw, meta.reported.cell.connected.timestamp, meta.reported.cell.packet_loss.timestamp, meta.reported.cell.average_ping_ms.timestamp, meta.reported.cell.bitrate.timestamp, meta.reported.cell.download_speed_bytes_per_sec.timestamp, meta.reported.cell.signal_strength.timestamp, meta.reported.cell.signal.timestamp, state.reported.cell.connected, state.reported.cell.packet_loss, state.reported.cell.average_ping_ms, state.reported.cell.bitrate, state.reported.cell.download_speed_bytes_per_sec, state.reported.cell.signal_strength, state.reported.cell.signal | |
| request_time | metadata.collected_timestamp | מנותח מ-request_time באמצעות פורמט ISO8601 |
| msg_1, msg.body | metadata.description | ערך מ-msg_1 אם הוא לא ריק, אחרת msg.body |
| user_id, src_email, otadata.1687965118.initiator | metadata.event_type | הערך הוא USER_UNCATEGORIZED אם יש ערך לאחד מהפרמטרים user_id, src_email, otadata.1687965118.initiator, אחרת הערך הוא GENERIC_EVENT |
| otadata.1687965118.deployment_id | metadata.product_deployment_id | הערך הועתק ישירות |
| גרסה | metadata.product_version | הערך הועתק ישירות |
| response.status | network.http.response_code | הומר למספר שלם |
| request_id | principal.resource.product_object_id | הערך הועתק ישירות |
| msg.attachment.url, otadata.1687965118.download_url | principal.url | הערך מ-msg.attachment.url אם הוא לא ריק, אחרת otadata.1687965118.download_url |
| src_email, otadata.1687965118.initiator | principal.user.email_addresses | הערך מ-src_email אם הוא תואם לביטוי הרגולרי של האימייל, אחרת הערך מ-otadata.1687965118.initiator |
| user_id | principal.user.userid | הערך הועתק ישירות |
| רמה | security_result.severity | אם הרמה היא INFO, צריך להגדיר את הערך INFORMATIONAL |
| metadata.product_name | הגדרה של 'גישה מותאמת אישית לאפליקציה' | |
| metadata.vendor_name | מגדירים את האפשרות "גישה לאפליקציה בהתאמה אישית" | |
timestamp |
metadata.event_timestamp |
מופה מיומן השינויים |
level |
additional.fields |
מופה מיומן השינויים |
service |
additional.fields |
מופה מיומן השינויים |
env |
additional.fields |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.