איסוף יומני ביקורת של CircleCI

גרסת כלי הניתוח: 2.0

נתמך ב:

הכלי הזה מנתח יומני ביקורת של CircleCI בפורמטים CSV ו-JSON, ומשנה אותם לפורמט של מודל נתונים מאוחד (UDM). הוא מטפל בשני הפורמטים, מבצע טרנספורמציות והעשרה של הנתונים וממפה את השדות שחולצו לשדות UDM המתאימים להם באובייקט event. הוא מתמקד בפעולות משתמש, בגישה למשאבים ובאירועי עדכון, מסווג אותם ומאכלס שדות רלוונטיים של UDM כמו principal,‏ target,‏ network ו-metadata.

לפני שמתחילים

חשוב לוודא שמתקיימות דרישות הסף הבאות:

  • מופע של Google SecOps.
  • גישה עם הרשאות מיוחדות ל-CircleCI.

הגדרת פידים

כדי להגדיר פיד:

  1. עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים).
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, CircleCI Logs).
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות CircleCI בתור סוג היומן.
  7. לוחצים על הבא.
  8. אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
    • ‫Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו \n.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות להוספה: התווית שמוחלת על האירועים מהפיד הזה.
  9. לוחצים על הבא.
  10. בודקים את הגדרות הפיד במסך סיום ולוחצים על שליחה.
  11. לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
  12. מעתיקים את המפתח הסודי ושומרים אותו. לא ניתן להציג שוב את המפתח הסודי הזה. במקרה הצורך, אפשר ליצור מחדש מפתח סודי חדש, אבל הפעולה הזו מייתרת את המפתח הסודי הקודם.
  13. בכרטיסייה Details (פרטים), מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה). צריך לציין את כתובת ה-URL של נקודת הקצה הזו באפליקציית הלקוח.
  14. לוחצים על סיום.

יצירת מפתח API ל-Webhook Feed

  1. עוברים אל Google Cloud מסוף > Credentials (פרטי כניסה).

    כניסה לדף Credentials

  2. לוחצים על Create credentials ואז על API key.

  3. מגבילים את הגישה של מפתח ה-API אל Google Security Operations API.

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

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

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    המלצה: כדאי לציין את מפתח ה-API ככותרת במקום לציין אותו בכתובת ה-URL.

  3. אם לקוח ה-webhook שלכם לא תומך בכותרות בהתאמה אישית, אתם יכולים לציין את מפתח ה-API ואת המפתח הסודי באמצעות פרמטרים של שאילתות בפורמט הבא:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של הפיד.
    • ‫API_KEY: מפתח ה-API לאימות ב-Google SecOps.
    • ‫SECRET: המפתח הסודי שיצרתם כדי לאמת את הפיד.

הגדרת webhook ב-CircleCI

  1. נכנסים לממשק האינטרנט של CircleCI.
  2. בוחרים את הפרויקט שממנו רוצים להעביר את היומנים.
  3. לוחצים על Project Settings (הגדרות הפרויקט).
  4. בוחרים באפשרות Webhooks.
  5. לוחצים על Add Webhook (הוספת Webhook).
  6. מציינים ערכים לפרמטרים הבאים של הקלט:

    • שם ה-Webhook: מציינים שם תיאורי (לדוגמה, Google SecOps).
    • כתובת URL של נקודת קצה ל-API: מזינים את <ENDPOINT_URL> של נקודת קצה ל-API של Google SecOps.
    • אירועים: בוחרים את האירועים ב-CircleCI שצריכים להפעיל את ה-webhook (לדוגמה, בוחרים באפשרות workflow-completed כדי לשלוח נתונים אחרי סיום תהליך העבודה).
  7. כדי ליצור את ה-webhook, לוחצים על שמירה.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
account.id read_only_udm.about.resource.attribute.labels.value הערך של account.id מיומן הגולמי משויך לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value, כאשר key התואם הוא account_id.
action read_only_udm.metadata.product_event_type הערך של action מיומן הגולמי מוקצה לשדה UDM‏ read_only_udm.metadata.product_event_type.
actor.id read_only_udm.principal.user.product_object_id הערך של actor.id מיומן הגולמי משויך לשדה UDM‏ read_only_udm.principal.user.product_object_id.
actor.name read_only_udm.principal.user.userid הקידומת github:‎ מוסרת מהשדה actor.name ביומן הגולמי. הערך שנותר מוקצה לשדה UDM‏ read_only_udm.principal.user.userid. אם actor.name קיים ביומן הגולמי, הערך USER_RESOURCE_UPDATE_CONTENT מוקצה ל-read_only_udm.metadata.event_type. אחרת, מוקצית ההרשאה USER_RESOURCE_ACCESS.
id read_only_udm.metadata.product_log_id הערך של id מיומן הרישום הגולמי מוקצה לשדה UDM‏ read_only_udm.metadata.product_log_id. הכלי לניתוח מחרוזות מגדיר את read_only_udm.metadata.log_type ל-CIRCLECI. הכלי לניתוח מחרוזות מגדיר את read_only_udm.metadata.product_name ל-CIRCLECI. הכלי לניתוח מחרוזות מגדיר את read_only_udm.metadata.vendor_name ל-CIRCLECI.
occurred_at read_only_udm.metadata.event_timestamp הערך של occurred_at מיומן הגולמי מנותח כחותמת זמן ומוקצה לשדה UDM‏ read_only_udm.metadata.event_timestamp.
organization.name read_only_udm.target.administrative_domain הקידומת github:‎ מוסרת מהשדה organization.name ביומן הגולמי. הערך שנותר מוקצה לשדה UDM‏ read_only_udm.target.administrative_domain.
payload.job.id read_only_udm.about.resource.attribute.labels.value הערך של payload.job.id מיומן הגולמי משויך לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value, כאשר המפתח התואם הוא job_id.
payload.job.job_name read_only_udm.about.resource.attribute.labels.value הערך של payload.job.job_name מיומן הגולמי מוקצה לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value, כאשר המפתח התואם הוא job_name.
payload.job.job_status read_only_udm.about.resource.attribute.labels.value הערך של payload.job.job_status מיומן הגולמי משויך לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value שבו key התואם הוא job_status.
payload.workflow.id read_only_udm.about.resource.attribute.labels.value הערך של payload.workflow.id מיומן הגולמי משויך לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value, כאשר המפתח התואם הוא workflow_id.
request.id read_only_udm.network.session_id הערך של request.id מיומן הרישום הגולמי מוקצה לשדה UDM‏ read_only_udm.network.session_id.
scope.id read_only_udm.about.resource.attribute.labels.value הערך של scope.id מיומן הגולמי משויך לשדה UDM‏ read_only_udm.about.resource.attribute.labels.value, כאשר המפתח התואם הוא scope_id. הכלי לניתוח מחרוזות מגדיר את sec_action בתור BLOCK. אם השדה success ביומן הגולמי הוא true, הערך של sec_action משתנה ל-ALLOW. הערך של sec_action מוקצה לשדה UDM‏ read_only_udm.security_result.action.
target.id read_only_udm.target.resource.product_object_id הערך של target.id מיומן הרישום הגולמי מוקצה לשדה UDM‏ read_only_udm.target.resource.product_object_id.
target.name read_only_udm.target.resource.name הקידומת github:‎ הוסרה מהשדה target.name ביומן הגולמי. הערך שנותר מוקצה לשדה UDM‏ read_only_udm.target.resource.name. הכלי לניתוח מחרוזות מגדיר את read_only_udm.target.resource.resource_type כ-STORAGE_OBJECT.
version read_only_udm.target.resource.attribute.labels.value הערך של version מיומן הגולמי מומר למחרוזת ומוקצה לשדה UDM‏ read_only_udm.target.resource.attribute.labels.value, כאשר key התואם הוא version.

יומן שינויים

צפייה ביומן השינויים של מנתח התוכן הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.