איסוף יומנים של Secure Web Proxy
גרסת כלי הניתוח: 2.0
במאמר הזה מוסבר איך לייצא את Secure Web Proxy ולהטמיע אותו ב-Google Security Operations באמצעות Cloud Storage. מנתח הנתונים מחלץ שדות מיומני JSON וממיר אותם למודל הנתונים המאוחד (UDM). הוא מאתחל את שדות ה-UDM, מנתח את המטען הייעודי (payload) של ה-JSON, מחלץ מידע על הרשת, פרטי אבטחה ומאפייני משאבים, ומגדיר את סוג האירוע על סמך הנוכחות של מידע על הגורם העיקרי והיעד.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps.
- Secure Web Proxy פעיל ומוגדר בסביבת Google Cloud .
- גישת אדמין ל- Google Cloud וההרשאות המתאימות לגישה ליומנים של Secure Web Proxy.
יצירת קטגוריה של Cloud Storage
- נכנסים לGoogle Cloud מסוף.
נכנסים לדף Cloud Storage Buckets.
לוחצים על Create.
ממלאים את פרטי הקטגוריה בדף Create a bucket. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
בקטע Get started (תחילת העבודה), מבצעים את הפעולות הבאות:
- מזינים שם ייחודי שעומד בדרישות לשמות של קטגוריות, לדוגמה, gcp-swp-logs.
כדי להפעיל את מרחב השמות ההיררכי, לוחצים על החץ להרחבה כדי להרחיב את הקטע Optimize for file oriented and data-intensive workloads (אופטימיזציה לעומסי עבודה שמתמקדים בקבצים ובנתונים), ואז בוחרים באפשרות Enable Hierarchical namespace on this bucket (הפעלת מרחב שמות היררכי בדלי הזה).
כדי להוסיף תווית לקטגוריה, לוחצים על החץ להרחבת הקטע Labels.
לוחצים על הוספת תווית ומציינים מפתח וערך לתווית.
בקטע 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.
לוחצים על יצירה.
הגדרת ייצוא של יומנים של Secure Web Proxy
- נכנסים לGoogle Cloud מסוף.
- עוברים אל Logging > Log Router.
- לוחצים על Create Sink.
מציינים את פרמטרי ההגדרה הבאים:
- שם יעד: מזינים שם בעל משמעות, לדוגמה,
SWP-Export-Sink. - יעד של Sink: בוחרים באפשרות Cloud Storage Storage ומזינים את ה-URI של הקטגוריה, לדוגמה,
gs://gcp-swp-logs/. - מסנן יומנים:
logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"- שם יעד: מזינים שם בעל משמעות, לדוגמה,
לוחצים על יצירה.
הגדרת הרשאות ל-Cloud Storage
- נכנסים אל IAM & Admin > IAM.
- מאתרים את חשבון השירות של Cloud Logging.
- מקצים את התפקיד roles/storage.admin בקטגוריה.
הגדרת פידים
כדי להגדיר פיד:
- עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה Feed name (שם הפיד), מזינים שם לפיד. לדוגמה, Google Cloud SWP Logs (יומני SWP).
- בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
- בוחרים באפשרות GCP Secure Web Proxy (שרת proxy מאובטח לאינטרנט ב-GCP) בתור סוג היומן.
- לוחצים על Get Service Account (קבלת חשבון שירות) לצד השדה Chronicle Service Account (חשבון השירות של Chronicle).
- לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
- URI של קטגוריית אחסון: כתובת URL של קטגוריית Cloud Storage, לדוגמה,
gs://gcp-swp-logs/. כתובת ה-URL צריכה להסתיים בקו נטוי (/). אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה בהתאם להעדפה.
הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.
- URI של קטגוריית אחסון: כתובת URL של קטגוריית Cloud Storage, לדוגמה,
לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
httpRequest.latency |
additional.fields[].key: HTTPRequest Latency additional.fields[].value.string_value: 0.124462s |
ממופה ישירות משדה היומן הגולמי. |
httpRequest.protocol |
network.application_protocol: HTTPnetwork.application_protocol_version: 2 |
הפרוטוקול והגרסה נשלפים מהשדה httpRequest.protocol באמצעות תבנית grok. |
httpRequest.remoteIp |
target.asset.ip: 1.1.0.1 target.ip: 1.1.0.1 |
כתובת ה-IP מחולצת מהשדה httpRequest.remoteIp באמצעות תבנית grok. |
httpRequest.requestMethod |
network.http.method: GET |
ממופה ישירות משדה היומן הגולמי. |
httpRequest.requestSize |
network.sent_bytes: 144 |
ממופה ישירות משדה היומן הגולמי ומומר למספר שלם. |
httpRequest.requestUrl |
target.url: https://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack |
ממופה ישירות מהשדה של היומן הגולמי. |
httpRequest.responseSize |
network.received_bytes: 225 |
ממופה ישירות משדה היומן הגולמי ומומר למספר שלם. |
httpRequest.serverIp |
principal.asset.ip: 1.8.1.4 principal.ip: 1.8.1.4 |
כתובת ה-IP מחולצת מהשדה httpRequest.serverIp באמצעות תבנית grok. |
httpRequest.status |
network.http.response_code: 401 |
ממופה ישירות משדה היומן הגולמי ומומר למספר שלם. |
httpRequest.userAgent |
network.http.user_agent: git/2.34.1network.http.parsed_user_agent: {family: USER_DEFINED,device: git,device_version: 2.34.1} |
ממופה ישירות משדה היומן הגולמי. השדה parsed_user_agent נגזר מניתוח של השדה httpRequest.userAgent. |
insertId |
metadata.product_log_id: 1yh8wczer5o8n |
ממופה ישירות משדה היומן הגולמי. |
jsonPayload.@type |
additional.fields[].key: Log Typeadditional.fields[].value.string_value: type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry |
ממופה ישירות משדה היומן הגולמי. |
jsonPayload.enforcedGatewaySecurityPolicy.hostname |
target.asset.hostname: github.comtarget.hostname: github.com |
ממופה ישירות משדה היומן הגולמי. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action |
security_result.action: ALLOWsecurity_result.action_details: ALLOWED |
הערך של security_result.action נגזר מהערך של jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action. אם הפעולה היא ALLOWED, השדה UDM מוגדר כ-ALLOW. אם הפעולה היא DENIED, השדה של ה-UDM מוגדר כ-BLOCK. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name |
security_result.rule_name: projects/671807354785/locations/us-central1/gatewaySecurityPolicies/github-access-gateway-security-policy-5cec30cd/rules/github-access-gateway-security-policy-rule-5cec30cd |
ממופה ישירות משדה היומן הגולמי. |
jsonPayload.enforcedGatewaySecurityPolicy.requestWasTlsIntercepted |
security_result.detection_fields[].key: requestWasTlsIntercepted security_result.detection_fields[].value: true |
ממופה ישירות משדה היומן הגולמי. |
logName |
additional.fields[].key: Log Nameadditional.fields[].value.string_value: projects/rws-w6uza3pn5jzzh6z3hc3d/logs/networkservices.googleapis.com%2Fgateway_requests |
ממופה ישירות משדה היומן הגולמי. |
receiveTimestamp |
metadata.collected_timestamp: {seconds: 1710189647,nanos: 661101224} |
הערך הזה מנותח משדה היומן הגולמי באמצעות פורמט התאריך RFC 3339. |
resource.labels.gateway_name |
security_result.detection_fields[].key: gateway-namesecurity_result.detection_fields[].value: github-access-gateway-5cec30cd |
ממופה ישירות משדה היומן הגולמי. |
resource.labels.gateway_type |
security_result.detection_fields[].key: gateway-typesecurity_result.detection_fields[].value: SECURE_WEB_GATEWAY |
ממופה ישירות משדה היומן הגולמי. |
resource.labels.location |
target.resource.attribute.cloud.availability_zone: us-central1 |
ממופה ישירות משדה היומן הגולמי. |
resource.labels.network_name |
target.resource.attribute.labels[].key: rc_network_nametarget.resource.attribute.labels[].value: projects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace |
ממופה ישירות משדה היומן הגולמי. |
resource.type |
target.resource.attribute.labels[].key: Resource Typetarget.resource.attribute.labels[].value: networkservices.googleapis.com/Gateway |
ממופה ישירות משדה היומן הגולמי. |
severity |
security_result.severity: MEDIUM |
ממופה משדה היומן הגולמי. הערך מתורגם לרמת חומרה ב-UDM. במקרה הזה, WARNING ממופה ל-MEDIUM. |
timestamp |
metadata.event_timestamp: {seconds: 1710189639,nanos: 952848000} |
הערך הזה מנותח משדה היומן הגולמי באמצעות פורמט התאריך RFC 3339. |
| (Parser Logic) | metadata.event_type: NETWORK_HTTP |
הערך נקבע על ידי לוגיקת הניתוח על סמך הנוכחות של has_principal, has_target ופרוטוקול שתואם ל-http. |
| (לוגיקת הניתוח) | metadata.log_type: GCP_SWP |
ערך בתוך הקוד שמבוסס על המוצר. |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.