איסוף יומנים של Cloud Next Generation Firewall
גרסת מנתח הנתונים: 2.0
במאמר הזה מוסבר איך לייצא יומנים של Cloud NGFW ולהטמיע אותם ב-Google Security Operations באמצעות Google Cloud. הכלי לניתוח מחלץ שדות מיומני Google Cloud חומת האש, מבצע טרנספורמציה וממפה אותם ל-UDM. הוא מטפל בשדות שונים של יומנים, כולל פרטי חיבור, מידע על איומים, פרטי כללים ומידע על הרשת. הוא מבצע המרות של סוגי נתונים, שינוי שמות ולוגיקה מותנית על סמך השדות action ו-direction כדי לאכלס את מודל ה-UDM בצורה נכונה.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps.
- Cloud NGFW פעיל ומוגדר בסביבת Google Cloud .
- גישת הרשאה ל- Google Cloud והרשאות מתאימות לגישה ליומנים של Cloud NGFW.
יצירת קטגוריה של Cloud Storage
- נכנסים למסוףGoogle Cloud .
נכנסים לדף Cloud Storage Buckets.
לוחצים על Create.
ממלאים את פרטי הקטגוריה בדף Create a bucket. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- מזינים שם ייחודי שעומד בדרישות לשמות של קטגוריות. לדוגמה, gcp-ngfw-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.
לוחצים על יצירה.
הגדרת ייצוא של יומנים מ-Cloud NGFW
- נכנסים למסוףGoogle Cloud .
- עוברים אל Logging > Log Router.
- לוחצים על Create Sink.
מציינים את פרמטרי ההגדרה הבאים:
- שם מאגר: מזינים שם בעל משמעות, לדוגמה,
NGFW-Export-Sink. - יעד להעברה: בוחרים באפשרות Google Cloud Storage ומזינים את ה-URI של הקטגוריה, לדוגמה,
gs://gcp-ngfw-logs/. מסנן יומן:
logName="projects/<your-project-id>/logs/gcp-firewall"
- שם מאגר: מזינים שם בעל משמעות, לדוגמה,
לוחצים על יצירה.
הגדרת הרשאות ל-Cloud Storage
- נכנסים אל IAM & Admin > IAM.
- מאתרים את חשבון השירות של Cloud Logging.
- מקצים את התפקיד roles/storage.admin בקטגוריה.
הגדרת פידים
יש שתי נקודות כניסה שונות להגדרת פידים בפלטפורמת Google SecOps:
- הגדרות SIEM > פידים > הוספת פיד חדש
- מרכז התוכן > חבילות תוכן > תחילת העבודה
איך מגדירים את פיד Google Cloud NGFW Enterprise
- לוחצים על חבילת פלטפורמת Google Cloud Compute.
- מאתרים את סוג היומן GCP NGFW Enterprise.
- לוחצים על הבא.
מציינים ערכים בשדות הבאים:
- סוג המקור: Google Cloud Storage V2
- כתובת URI של קטגוריית אחסון: Google Cloud כתובת URL של קטגוריית אחסון, לדוגמה,
gs://gcp-ngfw-logs/. כתובת ה-URL צריכה להסתיים בקו נטוי (/). אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה לפי ההעדפה.
הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במהלך מספר הימים האחרונים. ברירת המחדל היא 180 ימים.
לצד השדה Chronicle Service Account (חשבון שירות של Chronicle), לוחצים על Get a Service Account (קבלת חשבון שירות).
אפשרויות מתקדמות
- שם הפיד: ערך שמולא מראש ומזהה את הפיד.
- מרחב שמות של נכס: מרחב השמות שמשויך לפיד.
- תוויות של העברה: תוויות שמוחלות על כל האירועים מהפיד הזה.
לוחצים על יצירת פיד.
מידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו זמין במאמר בנושא הגדרת פידים לפי מוצר.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
insertId |
metadata.product_log_id |
ממופה ישירות מהשדה insertId. |
jsonPayload.action |
security_result.action_details |
ממופה ישירות מהשדה jsonPayload.action. |
jsonPayload.connection.clientIp |
principal.asset.ip |
ממופה ישירות מהשדה jsonPayload.connection.clientIp. |
jsonPayload.connection.clientIp |
principal.ip |
ממופה ישירות מהשדה jsonPayload.connection.clientIp. |
jsonPayload.connection.clientPort |
principal.port |
מופה ישירות מהשדה jsonPayload.connection.clientPort והומר למספר שלם. |
jsonPayload.connection.protocol |
network.ip_protocol |
מיפוי מ-jsonPayload.connection.protocol. אם הערך הוא tcp, השדה UDM מוגדר כ-TCP. לוגיקה דומה חלה על udp, icmp ו-igmp. |
jsonPayload.connection.serverIp |
target.asset.ip |
ממופה ישירות מהשדה jsonPayload.connection.serverIp. |
jsonPayload.connection.serverIp |
target.ip |
ממופה ישירות מהשדה jsonPayload.connection.serverIp. |
jsonPayload.connection.serverPort |
target.port |
מופה ישירות מהשדה jsonPayload.connection.serverPort והומר למספר שלם. |
jsonPayload.interceptVpc.projectId |
security_result.rule_labels |
מיפוי מ-jsonPayload.interceptVpc.projectId עם מפתח rule_details_projectId. |
jsonPayload.interceptVpc.vpc |
security_result.rule_labels |
מיפוי מ-jsonPayload.interceptVpc.vpc עם מפתח rule_details_vpc_network. |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
מיפוי מ-jsonPayload.securityProfileGroupDetails.securityProfileGroupId עם מפתח rule_details_security_profile_group. |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
מיפוי מ-jsonPayload.securityProfileGroupDetails.securityProfileGroupId עם מפתח rule_details_securityProfileGroupDetails_id. |
jsonPayload.threatDetails.category |
security_result.rule_labels |
מיפוי מ-jsonPayload.threatDetails.category עם מפתח rule_details_category. |
jsonPayload.threatDetails.direction |
security_result.rule_labels |
מיפוי מ-jsonPayload.threatDetails.direction עם מפתח rule_details_direction. |
jsonPayload.threatDetails.id |
security_result.threat_id |
ממופה ישירות מהשדה jsonPayload.threatDetails.id. |
jsonPayload.threatDetails.severity |
security_result.severity |
מיפוי מ-jsonPayload.threatDetails.severity. אם הערך הוא CRITICAL, השדה UDM מוגדר כ-CRITICAL. אותה לוגיקה חלה על HIGH, MEDIUM, LOW ו-INFO. |
jsonPayload.threatDetails.threat |
security_result.threat_name |
ממופה ישירות מהשדה jsonPayload.threatDetails.threat. |
jsonPayload.threatDetails.type |
security_result.rule_labels |
מיפוי מ-jsonPayload.threatDetails.type עם מפתח rule_details_threat_type. |
jsonPayload.threatDetails.uriOrFilename |
security_result.rule_labels |
מיפוי מ-jsonPayload.threatDetails.uriOrFilename עם מפתח rule_details_uriOrFilename. |
logName |
metadata.product_event_type |
ממופה ישירות מהשדה logName. |
metadata.collected_timestamp |
metadata.collected_timestamp |
ממופה ישירות מהשדה receiveTimestamp ומנותח באמצעות פורמט התאריך שצוין. |
metadata.event_type |
metadata.event_type |
הערך צריך להיות NETWORK_CONNECTION אם יש גם principal_ip וגם target_ip. הערך שמוגדר הוא STATUS_UNCATEGORIZED אם קיים רק principal_ip. אחרת, מגדירים את הערך GENERIC_EVENT. |
metadata.product_name |
metadata.product_name |
הקוד הקשיח הוא GCP Firewall. |
metadata.vendor_name |
metadata.vendor_name |
הקוד הקשיח הוא Google Cloud Platform. |
receiveTimestamp |
metadata.collected_timestamp |
ממופה ישירות מהשדה receiveTimestamp. |
security_result.action |
security_result.action |
הערך נגזר מהשדה jsonPayload.action. ממופה לערך ALLOW, BLOCK או UNKNOWN_ACTION על סמך הערך של jsonPayload.action. |
timestamp |
metadata.event_timestamp |
ממופה ישירות מהשדה timestamp. |
timestamp |
timestamp |
ממופה ישירות מהשדה timestamp. |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.