איסוף יומני הקשר של Google Cloud Compute
גרסת מנתח הנתונים: 3.0
במאמר הזה מוסבר איך לייצא יומני הקשר של Compute ולהטמיע אותם ב-Google Security Operations באמצעות Cloud Storage. Google Cloud הכלי לניתוח מחלץ מידע מהיומנים בפורמט JSON. לאחר מכן, המערכת מבצעת נרמול ומבנה של הנתונים שחולצו בפורמט UDM של Google SecOps, תוך התמקדות בפרטים על מכונות וירטואליות כמו מפרטי חומרה, הגדרות רשת, הגדרות אבטחה ויחסים לישויות אחרות.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps.
- שירות Compute מוגדר ופעיל בסביבת Google Cloud שלכם.
- גישה עם הרשאות מיוחדות ל- Google Cloud והרשאות מתאימות.
יצירת קטגוריה של Cloud Storage
- נכנסים למסוףGoogle Cloud .
נכנסים לדף Cloud Storage Buckets.
לוחצים על Create.
ממלאים את פרטי הקטגוריה בדף Create a bucket. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- מזינים שם ייחודי שעומד בדרישות לשמות של קטגוריות. לדוגמה, compute-context-logs.
כדי להפעיל את מרחב השמות ההיררכי, לוחצים על חץ ההרחבה כדי להרחיב את הקטע אופטימיזציה לעומסי עבודה שמתמקדים בקבצים ובעיבוד נתונים, ואז בוחרים באפשרות הפעלת מרחב שמות היררכי בדלי הזה.
כדי להוסיף תווית למאגר, לוחצים על החץ להרחבה כדי להרחיב את הקטע תוויות.
לוחצים על הוספת תווית ומציינים מפתח וערך לתווית.
בקטע 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 encryption ובוחרים Data encryption method.
לוחצים על יצירה.
הגדרה של ייצוא יומנים של Compute Google Cloud
- נכנסים למסוףGoogle Cloud .
- עוברים אל Logging > Log Router.
- לוחצים על Create Sink.
מציינים את פרמטרי ההגדרה הבאים:
- שם מאגר: מזינים שם בעל משמעות, לדוגמה,
Compute-Context-Sink. - יעד של Sink: בוחרים באפשרות Cloud Storage Storage ומזינים את ה-URI של הקטגוריה, לדוגמה,
gs://compute-context-logs/. מסנן יומן:
logName="*compute*" resource.type="gce_instance"
- שם מאגר: מזינים שם בעל משמעות, לדוגמה,
לוחצים על יצירה.
הגדרת הרשאות ל-Cloud Storage
- נכנסים אל IAM & Admin > IAM.
- מאתרים את חשבון השירות של Cloud Logging.
- מקצים את התפקיד roles/storage.admin בקטגוריה.
הגדרת פידים
יש שתי נקודות כניסה שונות להגדרת פידים בפלטפורמת Google SecOps:
- הגדרות SIEM > פידים > הוספת פיד חדש
- מרכז התוכן > חבילות תוכן > תחילת העבודה
איך מגדירים את הפיד של Google Cloud Compute Context
- לוחצים על חבילת פלטפורמת Google Cloud Compute.
- מאתרים את סוג היומן GCP Compute Context.
מציינים את הערכים הבאים:
- סוג המקור: Google Cloud Storage V2.
- Storage Bucket URI: כתובת URL של קטגוריה של Cloud Storage, לדוגמה,
gs://compute-context-logs/. כתובת ה-URL צריכה להסתיים בקו נטוי (/). אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה לפי ההעדפה.
הגיל המקסימלי של הקובץ: קבצים שעברו שינוי במהלך מספר הימים האחרון. ברירת המחדל היא 180 ימים.
חשבון שירות של Chronicle: מעתיקים את חשבון השירות. תצטרכו אותו כדי להוסיף הרשאות בקטגוריה לחשבון השירות הזה, כדי לאפשר ל-Google SecOps לקרוא או למחוק נתונים בקטגוריה.
אפשרויות מתקדמות
- שם הפיד: ערך שמולא מראש ומזהה את הפיד.
- מרחב שמות של נכס: מרחב השמות שמשויך לפיד.
- תוויות של העברה: תוויות שמוחלות על כל האירועים מהפיד הזה.
לוחצים על יצירת פיד.
מידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו זמין במאמר בנושא הגדרת פידים לפי מוצר.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
| ישויות אב | event.idm.entity.entity.asset.attribute.labels.value | כל ערך של ישות אב במערך ancestors ממופה לתווית נפרדת עם המפתח ancestors. |
| assetType | event.idm.entity.entity.asset.category | ממופה ישירות מהשדה assetType. |
| asset_type | event.idm.entity.entity.asset.category | ממופה ישירות מהשדה asset_type. |
| name | event.idm.entity.entity.resource.name | ממופה ישירות משדה השם. |
| resource.data.cpuPlatform | event.idm.entity.entity.asset.hardware.cpu_platform | ממופה ישירות מהשדה resource.data.cpuPlatform. |
| resource.data.creationTimestamp | event.idm.entity.entity.asset.attribute.creation_time | הערך מנותח לפורמט של חותמת זמן מהשדה resource.data.creationTimestamp. |
| resource.data.id | event.idm.entity.entity.asset.product_object_id | ממופה ישירות מהשדה resource.data.id. |
| resource.data.labels.business_function | event.idm.entity.entity.asset.attribute.labels.value | ממופה ישירות מהשדה resource.data.labels.business_function, כשהמפתח מוגדר ל-business_function. |
| resource.data.labels.environment | event.idm.entity.entity.asset.attribute.labels.value | ממופה ישירות מהשדה resource.data.labels.environment, כשהמפתח מוגדר ל-environment. |
| resource.data.labels.infra_location | event.idm.entity.entity.asset.attribute.labels.value | ממופה ישירות מהשדה resource.data.labels.infra_location, כשהמפתח מוגדר ל-infra_location. |
| resource.data.labels.instance_group | event.idm.entity.user.group_identifiers | ממופה ישירות מהשדה resource.data.labels.instance_group. |
| resource.data.labels.os | event.idm.entity.entity.asset.platform_software.platform_version | ממופה ישירות מהשדה resource.data.labels.os. |
| resource.data.labels.primary_application | event.idm.entity.entity.asset.attribute.labels.value | ממופה ישירות מהשדה resource.data.labels.primary_application, כשהמפתח מוגדר ל-primary_application. |
| resource.data.labels.project_code | event.idm.entity.entity.asset.attribute.labels.value | ממופה ישירות מהשדה resource.data.labels.project_code, כשהמפתח מוגדר ל-project_code. |
| resource.data.lastStartTimestamp | event.idm.entity.entity.asset.last_boot_time | הערך מנותח לפורמט של חותמת זמן מהשדה resource.data.lastStartTimestamp. |
| resource.data.machineType | event.idm.entity.entity.asset.hardware.model | סוג המכונה מחולץ מהשדה resource.data.machineType באמצעות ביטוי רגולרי. |
| resource.data.name | event.idm.entity.entity.asset.hostname | ממופה ישירות מהשדה resource.data.name. |
| resource.data.networkInterfaces.0.accessConfigs.0.natIP | event.idm.entity.entity.asset.nat_ip | כתובת ה-IP הראשונה של NAT מממשק הרשת הראשון ממופה. |
| resource.data.networkInterfaces.0.network | event.idm.entity.entity.asset.attribute.cloud.vpc.name | מזהה הרשת מחולץ מהשדה resource.data.networkInterfaces.0.network באמצעות ביטוי רגולרי. |
| resource.data.networkInterfaces.0.networkIP | event.idm.entity.entity.asset.ip | כתובת ה-IP של ממשק הרשת הראשון ממופה. |
| resource.data.networkInterfaces.1.networkIP | event.idm.entity.entity.asset.ip | כתובת ה-IP של ממשק הרשת השני ממופה. |
| resource.data.selfLink | event.idm.entity.entity.url | מופה ישירות מהשדה resource.data.selfLink. |
| resource.data.serviceAccounts.0.email | event.idm.entity.relations.entity.user.email_addresses | כתובת האימייל של חשבון השירות הראשון ממופה. |
| resource.data.status | event.idm.entity.entity.asset.deployment_status | הערך ACTIVE אם הסטטוס הוא אחד מהערכים הבאים: RUNNING, PROVISIONING, STAGING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, TERMINATED. אחרת, ממופה לכתובת DEPLOYMENT_STATUS_UNSPECIFIED. |
| event.idm.entity.entity.asset.attribute.cloud.availability_zone | אזור הזמינות נוצר משילוב של השדות region ו-zone_suffix. | |
| event.idm.entity.entity.asset.attribute.cloud.environment | הוגדר לערך GOOGLE_CLOUD_PLATFORM. |
|
| event.idm.entity.entity.asset.attribute.cloud.project.name | מזהה הפרויקט מחולץ משדה השם באמצעות ביטוי רגולרי. | |
| event.idm.entity.entity.asset.attribute.cloud.project.resource_type | הוגדר לערך CLOUD_PROJECT. |
|
| event.idm.entity.entity.asset.attribute.cloud.vpc.resource_type | הוגדר לערך VPC_NETWORK. |
|
| event.idm.entity.entity.resource.resource_type | הערך צריך להיות VIRTUAL_MACHINE אם המאפיין asset_type או assetType מכיל את הערך Instance. |
|
| event.idm.entity.entity.resource.type | הערך צריך להיות VIRTUAL_MACHINE אם asset_type או assetType מכילים את הערך Instance. |
|
| event.idm.entity.metadata.collected_timestamp | הערך מוגדר לחותמת הזמן של האירוע ב-Logstash. | |
| event.idm.entity.metadata.entity_type | הוגדר לערך ASSET. |
|
| event.idm.entity.metadata.product_name | הוגדר לערך GCP Compute Context. |
|
| event.idm.entity.metadata.vendor_name | הוגדר לערך Google Cloud Platform. |
|
| event.idm.entity.relations.entity.user.attribute.cloud.environment | הוגדר לערך GOOGLE_CLOUD_PLATFORM. |
|
| event.idm.entity.relations.entity_type | הוגדר לערך USER. |
|
| event.idm.entity.relations.relationship | הוגדר לערך ADMINISTERS. |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.