איסוף יומני גישה לאפליקציות בהתאמה אישית

גרסת המנתח: 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. לפני שמבצעים המרה של יומנים, צריך ליצור סוג יומן מותאם אישית.

  1. עוברים אל הגדרות SIEM > סוגי יומנים זמינים.
  2. לוחצים על בקשה של סוג יומן.
  3. בקטע Create a custom log type on your own, מזינים את הפרטים הבאים:
    • ספק/מוצר: מזינים Custom Application Access Logs
    • סוג היומן: מזינים CUSTOM_APPLICATION_ACCESS
  4. לוחצים על Create Log Type.

  5. לפני שיוצרים פידים, ממתינים 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

  1. נכנסים למסוף Google Cloud.
  2. בוחרים את הפרויקט או יוצרים פרויקט חדש.
  3. בתפריט הניווט, נכנסים ל-Cloud Storage > Buckets.
  4. לוחצים על Create bucket.
  5. ממלאים את פרטי ההגדרה הבאים:

    הגדרה ערך
    Name your bucket מזינים שם ייחודי גלובלית (לדוגמה, custom-app-access-logs)
    סוג המיקום בוחרים לפי הצרכים שלכם (אזור, שני אזורים, מספר אזורים)
    Location בוחרים את המיקום (לדוגמה, us-central1)
    סוג האחסון (storage class) רגיל (מומלץ ליומנים שצריך לגשת אליהם לעיתים קרובות)
    בקרת גישה אחידה (מומלץ)
    כלי הגנה אופציונלי: הפעלת ניהול גרסאות של אובייקטים או מדיניות שמירת נתונים
  6. לוחצים על יצירה.

הגדרת האפליקציה לכתיבת יומנים ב-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/users
    
  • ‫JSON מופרד בשורות חדשות (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. צריך להעניק לחשבון השירות הזה גישה לדלי.

  1. עוברים אל SIEM Settings > Feeds.
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על Configure a single feed (הגדרת פיד יחיד).
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Custom Application Access Logs - GCS).
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור Log type.
  7. לוחצים על Get Service Account (קבלת חשבון שירות).
  8. תוצג כתובת אימייל ייחודית של חשבון שירות, לדוגמה:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. מעתיקים את כתובת האימייל הזו לשימוש בשלב הבא.

הקצאת הרשאות IAM לחשבון השירות של Google SecOps

לחשבון השירות של Google SecOps צריך להיות התפקיד צפייה באובייקט אחסון בקטגוריה של GCS.

  1. נכנסים לדף Cloud Storage > Buckets.
  2. לוחצים על שם הקטגוריה.
  3. עוברים לכרטיסייה Permissions.
  4. לוחצים על הענקת גישה.
  5. מספקים את פרטי ההגדרה הבאים:
    • Add principals: מדביקים את כתובת האימייל של חשבון השירות של Google SecOps.
    • הקצאת תפקידים: בוחרים באפשרות צפייה באובייקטים באחסון.
  6. לוחצים על Save.

הגדרת הפיד ב-Google SecOps

  1. חוזרים לדף ליצירת פיד (או עוברים אל הגדרות SIEM > פידים > הוספת פיד חדש).
  2. לוחצים על הבא.
  3. מציינים ערכים לפרמטרים הבאים של הקלט:

    • כתובת ה-URL של קטגוריית האחסון: מזינים את ה-URI של קטגוריית GCS עם נתיב הקידומת:

      gs://custom-app-access-logs/
      
    • אפשרות למחיקת המקור: בוחרים את אפשרות המחיקה המועדפת:

      • אף פעם: לא נמחקים קבצים אחרי ההעברה (מומלץ לבדיקות).
      • מחיקת קבצים שהועברו: מחיקת קבצים אחרי שהם הועברו בהצלחה.
      • מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות אחרי שההעברה מסתיימת בהצלחה.
    • גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים).

    • מרחב השמות של הנכס: מרחב השמות של הנכס.

    • תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה, custom_app_access).

  4. לוחצים על הבא.

  5. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

אפשרות 2: הטמעה מ-Amazon S3

יצירת קטגוריה ב-Amazon S3

  1. פותחים את מסוף Amazon S3.
  2. לוחצים על Create Bucket.
  3. מזינים את פרטי ההגדרה הבאים:
    • ‫Bucket Name: נותנים לקטגוריה שם בעל משמעות (לדוגמה, custom-app-access-logs).
    • ‫Region: בוחרים את האזור שבו האפליקציה פועלת (לדוגמה, us-east-1).
  4. לוחצים על יצירה.

יצירת משתמש IAM עם גישה ל-S3

  1. פותחים את מסוף IAM.
  2. לוחצים על משתמשים > הוספת משתמש.
  3. מזינים שם משתמש (לדוגמה, chronicle-s3-reader).
  4. לוחצים על גישה פרוגרמטית.
  5. לוחצים על הבא: הרשאות.
  6. בוחרים באפשרות צירוף מדיניות קיימת ישירות.
  7. מחפשים את המדיניות AmazonS3FullAccess ובוחרים בה.
  8. לוחצים על Next: Tags.
  9. לוחצים על הבא: בדיקה.
  10. לוחצים על יצירת משתמש.
  11. לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לעיון עתידי.
  12. לוחצים על Close.

הגדרת האפליקציה לכתיבת יומנים ל-S3

מגדירים את האפליקציה בהתאמה אישית כך שתכתוב יומני גישה לקטגוריית S3 שיצרתם. צריך להשתמש באותם פורמטים של יומנים שמתוארים בקטע GCS (JSON,‏ CSV או NDJSON).

הגדרת פיד ב-Google SecOps כדי להטמיע יומנים מ-S3

  1. עוברים אל SIEM Settings > Feeds.
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על Configure a single feed (הגדרת פיד יחיד).
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Custom Application Access Logs - S3).
  5. בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
  6. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור Log type.
  7. לוחצים על הבא ואז על שליחה.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    • ‫S3 URI: מזינים את ה-URI של הקטגוריה בפורמט הבא:

      s3://custom-app-access-logs/
      
    • אפשרות מחיקת המקור: בוחרים את אפשרות המחיקה הרצויה.

    • גיל הקובץ המקסימלי: כולל קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים).

    • מזהה מפתח הגישה: מפתח הגישה של המשתמש עם גישה לקטגוריית S3.

    • מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.

    • מרחב השמות של הנכס: מרחב השמות של הנכס.

    • תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה, custom_app_access).

  9. לוחצים על הבא ואז על שליחה.

אפשרות 3: הטמעה מ-Azure Blob Storage

יצירת חשבון אחסון ב-Azure

  1. ב-Azure portal, מחפשים Storage accounts.
  2. לוחצים על ‎+ Create.
  3. ממלאים את פרטי ההגדרה הבאים:

    הגדרה ערך
    מינוי בוחרים את המינוי ל-Azure.
    קבוצת משאבים בוחרים קבוצה קיימת או יוצרים קבוצה חדשה
    שם חשבון האחסון מזינים שם ייחודי (לדוגמה, customappaccesslogs)
    אזור בוחרים את האזור (לדוגמה, East US)
    ביצועים רגיל (מומלץ)
    יתירות LRS (אחסון עם יתירות מקומית)
  4. לוחצים על Review + create.

  5. בודקים את הסקירה הכללית של החשבון ולוחצים על יצירה.

  6. מחכים עד שהפריסה תסתיים.

קבלת פרטי הכניסה לחשבון האחסון

  1. עוברים אל Storage Account שיצרתם.
  2. בסרגל הניווט הימני, בקטע Security + networking, לוחצים על Access keys.
  3. לוחצים על הצגת מקשים.
  4. מעתיקים ושומרים את הפרטים הבאים לשימוש בהמשך:
    • שם חשבון האחסון: customappaccesslogs
    • ‫Key 1 או Key 2: מפתח הגישה המשותף

יצירת קונטיינר של Blob

  1. באותו חשבון אחסון, בוחרים באפשרות Containers בתפריט הניווט הימני.
  2. לוחצים על + מאגר תגים.
  3. מזינים את פרטי ההגדרה הבאים:
    • שם: מזינים access-logs
    • רמת גישה ציבורית: בוחרים באפשרות פרטי (אין גישה אנונימית).
  4. לוחצים על יצירה.

הגדרת האפליקציה לכתיבת יומנים ב-Azure Blob Storage

מגדירים את האפליקציה בהתאמה אישית כך שתכתוב יומני גישה למאגר Azure Blob Storage שיצרתם. צריך להשתמש באותם פורמטים של יומנים שמתוארים בקטע של GCS‏ (JSON,‏ CSV או NDJSON).

הגדרת פיד ב-Google SecOps כדי להטמיע יומנים מ-Azure

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Custom Application Access Logs - Azure).
  5. בקטע Source type, בוחרים באפשרות Microsoft Azure Blob Storage V2.
  6. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    • Azure URI: מזינים את כתובת ה-URL של נקודת הקצה של Blob Service עם הנתיב של המאגר:

      ‫
      https://customappaccesslogs.blob.core.windows.net/access-logs/
      
    • אפשרות למחיקת מקור: בוחרים את אפשרות המחיקה לפי ההעדפה שלכם

    • גיל הקובץ המקסימלי: הכללת קבצים ששונו במספר הימים האחרונים (ברירת המחדל היא 180 ימים)

    • מפתח משותף: מזינים את ערך המפתח המשותף (מפתח הגישה) שקיבלתם מחשבון האחסון.

    • מרחב השמות של הנכס: מרחב השמות של הנכס

    • תוויות הטמעה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה, custom_app_access)

  9. לוחצים על הבא.

  10. בודקים את הגדרות הפיד החדש במסך סיום ולוחצים על שליחה.

אפשרות 4: הטמעה באמצעות Webhook

יצירת פיד של webhook ב-Google SecOps

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Custom Application Access Logs - Webhook).
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:
    • תו מפריד לפיצול: מזינים \n כדי לפצל אירועים שמופרדים בשורה חדשה (אם שולחים כמה אירועים לכל בקשה).
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה, custom_app_access).
  9. לוחצים על הבא.
  10. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

יצירה ושמירה של מפתח סודי

  1. בדף הפרטים של הפיד, לוחצים על יצירת מפתח סודי.
  2. תיפתח תיבת דו-שיח עם המפתח הסודי.
  3. מעתיקים את המפתח הסודי ושומרים אותו במקום מאובטח.

קבלת כתובת ה-URL של נקודת הקצה של הפיד

  1. עוברים לכרטיסייה פרטים של הפיד.
  2. בקטע Endpoint Information, מעתיקים את Feed endpoint URL.
  3. הפורמט של כתובת ה-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>.

  4. שומרים את כתובת ה-URL הזו לשלבים הבאים.

  5. לוחצים על סיום.

יצירת מפתח API של Google Cloud

כדי לבצע אימות ב-Google SecOps, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud.

  1. נכנסים אל הדף Credentials במסוף Google Cloud.
  2. בוחרים את הפרויקט (הפרויקט שמשויך למכונה של Chronicle).
  3. לוחצים על Create credentials > מפתח API.
  4. מפתח API נוצר ומוצג בתיבת דו-שיח.
  5. לוחצים על Edit API key כדי להגביל את המפתח.
  6. בדף ההגדרות מפתח API:
    • שם: מזינים שם תיאורי (לדוגמה, Chronicle Webhook API Key).
  7. בקטע API restrictions (הגבלות על API):
    1. בוחרים באפשרות הגבלת מקש.
    2. בתפריט הנפתח Select APIs (בחירת ממשקי API), מחפשים את Google SecOps API (או Chronicle API) ובוחרים אותו.
  8. לוחצים על Save.
  9. מעתיקים את הערך של מפתח ה-API מהשדה API key (מפתח API) בחלק העליון של הדף.
  10. שומרים את מפתח ה-API בצורה מאובטחת.

הגדרת האפליקציה לשליחת יומנים באמצעות webhook

מגדירים את האפליקציה בהתאמה אישית כך שתשלח בקשות POST לנקודת הקצה של ה-webhook ב-Chronicle.

  • יוצרים את כתובת ה-URL של ה-webhook:

    1. מוסיפים את מפתח ה-API לכתובת ה-URL של נקודת הקצה של הפיד:

      https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=<API_KEY>
      
    2. מחליפים את הערך <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

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Custom Application Access Logs - Firehose).
  5. בוחרים באפשרות Amazon Data Firehose בתור סוג המקור.
  6. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:
    • תו מפריד לפיצול: מזינים \n כדי לפצל יומנים שמופרדים בשורה חדשה.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה (לדוגמה, custom_app_access).
  9. לוחצים על הבא.
  10. בודקים את הגדרות הפיד ולוחצים על שליחה.
  11. לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
  12. מעתיקים ושומרים את המפתח הסודי, כי אי אפשר לראות אותו שוב.
  13. עוברים לכרטיסייה פרטים.
  14. מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה).
  15. לוחצים על סיום.

יצירת מפתח API לשימוש בפיד Amazon Data Firehose

  1. נכנסים לדף Credentials במסוף Google Cloud בכתובת https://console.cloud.google.com/apis/credentials
  2. לוחצים על Create credentials ואז על מפתח API.
  3. לוחצים על Edit API key כדי להגביל את המפתח.
  4. בקטע API restrictions, בוחרים באפשרות Restrict key.
  5. מחפשים את Google SecOps API ובוחרים בו.
  6. לוחצים על Save.
  7. מעתיקים ושומרים את מפתח ה-API.

הרכבת כתובת ה-URL של נקודת הקצה

  1. מוסיפים את מפתח ה-API לכתובת ה-URL של נקודת הקצה של הפיד בפורמט הבא:

    <FEED_ENDPOINT_URL>?key=<API_KEY>
    
  2. מחליפים את מה שכתוב בשדות הבאים:

    • <FEED_ENDPOINT_URL>: כתובת ה-URL של נקודת הקצה של הפיד בשלב הקודם
    • ‫<API_KEY>: מפתח ה-API מהשלב הקודם

    לדוגמה:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...
    
  3. שומרים את כתובת ה-URL המלאה הזו לשלב הבא.

יצירת מדיניות IAM ל-Firehose

  1. במסוף AWS, עוברים אל הכרטיסייה IAM > Policies > Create policy > JSON.
  2. מדביקים את מדיניות ה-JSON הבאה:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecordBatch"
                ],
                "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/CustomAppAccessToChronicle"
            }
        ]
    }
    
  3. מחליפים את מה שכתוב בשדות הבאים:

    • ‫us-east-1: האזור שלכם ב-AWS
    • ‫123456789012: מזהה החשבון ב-AWS (מספר בן 12 ספרות)
    • ‫CustomAppAccessToChronicle: השם של Firehose delivery stream (תיצרו אותו בשלב הבא)
  4. נותנים למדיניות את השם CustomAppAccessFirehoseWritePolicy.

  5. לוחצים על יצירת מדיניות.

יצירת תפקיד IAM ל-CloudWatch Logs

  1. עוברים אל IAM > Roles > Create role (ניהול הרשאות גישה > תפקידים > יצירת תפקיד).
  2. בוחרים באפשרות Custom trust policy ומדביקים:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "logs.us-east-1.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  3. מחליפים את us-east-1 באזור AWS.

  4. לוחצים על הבא.

  5. מחפשים ובוחרים את המדיניות CustomAppAccessFirehoseWritePolicy שיצרתם בשלב הקודם.

  6. לוחצים על הבא.

  7. נותנים לתפקיד את השם CloudWatchLogsToFirehoseRole.

  8. לוחצים על יצירת תפקיד.

יצירת מקור נתונים למסירה ב-Kinesis Data Firehose

  1. ב-AWS Console, עוברים אל Kinesis > Data Firehose > Create delivery stream.
  2. מספקים את פרטי ההגדרה הבאים:

    • מקור ויעד:

      • מקור: בוחרים באפשרות PUT ישיר או מקורות אחרים
      • יעד: בוחרים באפשרות נקודת קצה (endpoint) מסוג HTTP.
    • שם מקור הנתונים:

      • ‫Delivery stream name: מזינים CustomAppAccessToChronicle
    • יעד של נקודת קצה (endpoint) מסוג HTTP:

      • כתובת ה-URL של נקודת הקצה (endpoint) בפרוטוקול HTTP: מזינים את כתובת ה-URL המלאה של נקודת הקצה שיצרתם קודם (נקודת הקצה של הפיד + מפתח ה-API)
      • קידוד התוכן: בוחרים באפשרות GZIP (מומלץ לחיסכון ברוחב הפס)
    • כותרות HTTP בהתאמה אישית:

      • לוחצים על הוספת כותרת HTTP בהתאמה אישית.
      • שם הכותרת: מזינים X-Goog-Chronicle-Auth
      • ערך הכותרת: מזינים את המפתח הסודי ששמרתם בשלב קודם
    • הגדרות גיבוי:

      • גיבוי של רשומת המקור ב-Amazon S3: בוחרים באפשרות נתונים שנכשלו בלבד (מומלץ)
      • S3 bucket: בוחרים קטגוריה קיימת או יוצרים קטגוריה חדשה לרשומות שנכשלו
    • הצעות למאגר זמני:

      • Buffer size: מזינים 1MiB (המינימום לנקודות קצה ב-HTTP)
      • מרווח מאגר נתונים זמני: מזינים 60 שניות
    • משך הניסיון החוזר:

      • משך הניסיון החוזר: מזינים 300 שניות (5 דקות)
  3. לוחצים על Create delivery stream.

  4. מחכים שהסטטוס של מקור הנתונים ישתנה ל-Active (דקה או שתיים).

הגדרת האפליקציה לכתיבה ביומני CloudWatch

מגדירים את האפליקציה המותאמת אישית כך שתכתוב יומני גישה לקבוצת יומנים של CloudWatch. לאחר מכן, יוצרים מסנן מינויים כדי להעביר בסטרימינג את היומנים אל Firehose.

  1. ב-AWS Console, עוברים אל CloudWatch > Logs > Log groups.
  2. יוצרים קבוצת יומנים חדשה או בוחרים קבוצה קיימת שבה האפליקציה כותבת יומנים.
  3. לוחצים על הכרטיסייה מסנני מינויים.
  4. לוחצים על Create > Create Amazon Kinesis Data Firehose subscription filter.
  5. מספקים את פרטי ההגדרה הבאים:

    • יעד: בוחרים בזרם העברת נתונים CustomAppAccessToChronicle.
    • מתן הרשאה: בוחרים את התפקיד CloudWatchLogsToFirehoseRole.
    • thought Subscription filter name: מזינים CustomAppAccessToChronicle.
    • פורמט יומן: בוחרים באפשרות אחר (המערכת של Google SecOps מטפלת בניתוח).
    • תבנית מסנן מינויים: משאירים את השדה ריק כדי לשלוח את כל האירועים.
  6. לוחצים על התחלת השידור.

  7. היומנים מועברים בזמן אמת ל-Google SecOps דרך Firehose.

יצירת מנתח מותאם אישית

אחרי שמבצעים המרה של יומנים, צריך ליצור מנתח מותאם אישית כדי לנרמל את הנתונים לפורמט UDM.

  1. עוברים אל SIEM Settings > Parsers.
  2. לוחצים על Create Parser.
  3. בוחרים באפשרות CUSTOM_APPLICATION_ACCESS_CUSTOM בתור סוג היומן.
  4. משתמשים בכלי לעריכת מנתחים כדי ליצור תבניות Grok או תוספים למנתחים שממפים את שדות היומן לשדות UDM.

    מיפוי של מנתח לדוגמה:

    שדה יומן בהתאמה אישית שדה UDM
    timestamp metadata.event_timestamp
    user principal.user.email_addresses
    action security_result.action
    result security_result.summary
    source_ip principal.ip
    application target.application
    resource target.resource.name
  5. בודקים את מנתח היומנים באמצעות יומנים לדוגמה.

  6. לוחצים על שמירה כדי להפעיל את מנתח הנתונים.

הוראות מפורטות ליצירת מנתח מופיעות במאמר אפשרויות של מנתח בשירות עצמי.

אימות ההטמעה

אחרי שמגדירים את הפיד ואת מנתח התוכן, מוודאים שהיומנים נקלטים:

  1. עוברים אל חיפוש > חיפוש UDM.
  2. מריצים את השאילתה הבאה:

    metadata.log_type = "CUSTOM_APPLICATION_ACCESS_CUSTOM"
    
  3. מוודאים שהאירועים מופיעים בתוצאות החיפוש.

  4. בודקים ששדות ה-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.