איסוף יומנים של הקשר ניתוח ניהול זהויות והרשאות גישה (IAM)
גרסת כלי הניתוח: 1.0
במאמר הזה מוסבר איך לייצא יומנים של ניתוח IAM ולהטמיע אותם ב-Google Security Operations באמצעות Cloud Storage. הכלי לניתוח מחלץ נתונים על משתמשים ומשאבים מנתוני JSON של IAM. לאחר מכן, המערכת ממפה את השדות שחולצו ל-UDM, ויוצרת ישויות משתמשים עם תפקידים קשורים ויחסי משאבים, ובסופו של דבר מעשירה את הקשר האבטחה בפלטפורמת Google SecOps.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps.
- הגדרתם את IAM והוא פעיל בסביבת Google Cloud .
- גישה מיוחדת ל Google Cloud וההרשאות המתאימות לגישה ליומני IAM.
יצירת קטגוריה של Cloud Storage
- נכנסים לGoogle Cloud מסוף.
נכנסים לדף Cloud Storage Buckets.
לוחצים על Create.
ממלאים את פרטי הקטגוריה בדף Create a bucket. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- מזינים שם ייחודי שעומד בדרישות לשמות של קטגוריות. לדוגמה: google-cloud-iam-logs.
כדי להפעיל את מרחב השמות ההיררכי, לוחצים על החץ להרחבה כדי להרחיב את הקטע Optimize for file oriented and data-intensive workloads (אופטימיזציה לעומסי עבודה שמתמקדים בקבצים ובנתונים), ואז בוחרים באפשרות Enable Hierarchical namespace on this bucket (הפעלת מרחב שמות היררכי בדלי הזה).
כדי להוסיף תווית של מאגר, לוחצים על החץ להרחבה כדי להרחיב את הקטע תוויות.
לוחצים על הוספת תווית ומציינים מפתח וערך לתווית.
בקטע Choose where to store your data, מבצעים את הפעולות הבאות:
- בוחרים סוג מיקום.
בתפריט של סוג המיקום, בוחרים מיקום שבו נתוני האובייקטים בקטגוריה יאוחסנו באופן קבוע.
כדי להגדיר שכפול בין מאגרי מידע, מרחיבים את הקטע הגדרת שכפול בין מאגרי מידע.
בקטע Choose a storage class for your data, בוחרים default storage class לקטגוריה, או בוחרים ב-Autoclass לניהול אוטומטי של סוג האחסון (storage class) של נתוני הקטגוריה.
בקטע Choose how to control access to objects, בוחרים באפשרות not כדי לא לאכוף public access prevention, ובוחרים access control model לאובייקטים של הקטגוריה.
בקטע Choose how to protect object data:
- בוחרים באחת מהאפשרויות בקטע Data protection (הגנה על נתונים) שרוצים להגדיר לקטגוריה.
- כדי לבחור איך להצפין את נתוני האובייקט, לוחצים על החץ להרחבה של Data encryption ובוחרים Data encryption method.
לוחצים על יצירה.
הגדרה של ייצוא יומני ניתוח של IAM
- נכנסים לGoogle Cloud מסוף.
- עוברים אל Logging > Log Router.
- לוחצים על Create Sink.
מציינים את פרמטרי ההגדרה הבאים:
- שם יעד: מזינים שם בעל משמעות, לדוגמה,
IAM-Analysis-Sink. - יעד של Sink: בוחרים באפשרות Cloud Storage Storage ומזינים את ה-URI של הקטגוריה, לדוגמה,
gs://gcp-iam-analysis-logs/. מסנן יומן:
logName="*iam*" resource.type="gce_instance"
- שם יעד: מזינים שם בעל משמעות, לדוגמה,
הגדרת הרשאות ל-Cloud Storage
- נכנסים אל IAM & Admin > IAM.
- מאתרים את חשבון השירות של Cloud Logging.
- מקצים את התפקיד roles/storage.admin בקטגוריה.
הגדרת פידים
כדי להגדיר פיד:
- עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד, למשל IAM Analysis Logs.
- בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
- בוחרים באפשרות GCP IAM Analysis (ניתוח של GCP IAM) בתור סוג היומן.
- לוחצים על Get Service Account (קבלת חשבון שירות) לצד השדה Chronicle Service Account (חשבון השירות של Chronicle).
- לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
- URI של קטגוריית אחסון: כתובת URL של קטגוריית Cloud Storage, לדוגמה,
gs://gcp-iam-analysis-logs/. כתובת ה-URL צריכה להסתיים בקו נטוי (/). אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה בהתאם להעדפה.
הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.
- URI של קטגוריית אחסון: כתובת URL של קטגוריית Cloud Storage, לדוגמה,
לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| accessControlLists.accesses.permission | relations.entity.resource.attribute.permissions.name | ישירות מהשדה accessControlLists.accesses.permission ביומן הגולמי. |
| attachedResourceFullName | relations.entity.resource.name | ישירות מהשדה attachedResourceFullName ביומן הגולמי, אבל בלי שמות משאבים שמופיעים בסוף. |
| relations.entity.resource.attribute.cloud.environment | הערך שהוגדר הוא GOOGLE_CLOUD_PLATFORM. |
|
| relations.entity.resource.product_object_id | STORAGE_BUCKET, ישירות מהשדה attachedResourceFullName ביומן הגולמי, אבל בלי שמות משאבים נגררים. במערכי נתונים של BigQuery, זהו projectName (שחולץ מ-attachedResourceFullName) ואחריו נקודתיים והשדה datasetName (שחולץ מ-attachedResourceFullName). |
|
| relations.entity.resource.resource_type | נקבע לפי הדפוס של השדה attachedResourceFullName ביומן הגולמי. |
|
| relations.entity_type | הערך הוא RESOURCE, למעט SERVICE_ACCOUNT, שבו הערך הוא USER. |
|
| relations.relationship | הערך שהוגדר הוא MEMBER. |
|
| metadata.collected_timestamp | ישירות מהשדה timestamp ביומן הגולמי. |
|
| metadata.entity_type | הערך שהוגדר הוא USER. |
|
| metadata.product_name | הערך שהוגדר הוא GCP IAM ANALYSIS. |
|
| metadata.vendor_name | הערך שהוגדר הוא Google Cloud Platform. |
|
| iamBinding.role | entity.user.attribute.roles.name | ישירות מהשדה iamBinding.role ביומן הגולמי. |
| identityList.identities.name | entity.user.attribute.roles.type | הערך הוא SERVICE_ACCOUNT אם השדה identityList.identities.name מכיל את המחרוזת serviceAccount. |
| entity.user.email_addresses | אם השדה identityList.identities.name מכיל את הסמל @, הוא נחשב לכתובת אימייל. |
|
| entity.user.userid | אם השדה identityList.identities.name לא מכיל את הסמל @, הוא נחשב למזהה משתמש. |
|
| identityList.identities.product_object_id | entity.user.product_object_id | ישירות מהשדה identityList.identities.product_object_id ביומן הגולמי. |
| חותמת זמן | חותמת זמן | ישירות מהשדה timestamp ביומן הגולמי. |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.