איסוף יומנים של Oracle Cloud Infrastructure – Oracle Cloud Guard
במאמר הזה מוסבר איך להגדיר את Oracle Cloud Infrastructure Cloud Guard כדי לשלוח יומנים ל-Google Security Operations באמצעות ווּבְּהוּקים.
Oracle Cloud Guard הוא שירות אבטחה מבוסס-ענן שמנטר את Oracle Cloud Infrastructure (OCI), מזהה בעיות ועוזר לשמור על מצב אבטחה חזק. Cloud Guard בודק את המשאבים ב-OCI כדי לזהות חולשות אבטחה שקשורות להגדרות, ומזהה פעילות חריגה. כש-Cloud Guard מזהה חריגה מכלל של גלאי, הוא יוצר אירוע Problem (בעיה) שמספק ניטור לצורכי אבטחה מקיף בכל הדיירות של OCI. השילוב הזה משתמש ב-OCI Events Service וב-OCI Functions כדי להעביר אירועים של בעיות ב-Cloud Guard אל Google SecOps כמעט בזמן אמת.
לפני שמתחילים
חשוב לוודא שמתקיימות דרישות הסף הבאות:
- מופע של Google SecOps
- דיירות פעילה ב-Oracle Cloud Infrastructure עם Cloud Guard מופעל
- גישת אדמין למסוף Oracle Cloud Infrastructure
- הרשאות ליצירה ולניהול של אפליקציות OCI Functions
- הרשאות ליצירת כללים של OCI Events ונושאים של Notifications
- גישה ל-OCI Cloud Shell או לסביבה מקומית שבה מותקן Fn Project CLI
- Docker מותקן (לפיתוח פונקציות OCI באופן מקומי)
- גישה למסוף Google Cloud (ליצירת מפתח API)
יצירת פיד של webhook ב-Google SecOps
יצירת הפיד
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
OCI Cloud Guard Problems). - בוחרים באפשרות Webhook בתור סוג המקור.
- בוחרים באפשרות Oracle Cloud Infrastructure - Oracle Cloud Guard בתור סוג היומן.
- לוחצים על הבא.
- מציינים ערכים לפרמטרים הבאים של הקלט:
- תו מפריד לפיצול (אופציונלי): משאירים ריק (כל הפעלה של הפונקציה שולחת אירוע יחיד).
- מרחב השמות של הנכס: מרחב השמות של הנכס
- תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה
- לוחצים על הבא.
- בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
יצירה ושמירה של מפתח סודי
אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:
- בדף פרטי הפיד, לוחצים על יצירת מפתח סודי.
- תיפתח תיבת דו-שיח עם המפתח הסודי.
- מעתיקים ושומרים את המפתח הסודי באופן מאובטח.
חשוב: המפתח הסודי מוצג רק פעם אחת, ואי אפשר לאחזר אותו בהמשך. אם מאבדים אותו, צריך ליצור מפתח סודי חדש.
קבלת כתובת ה-URL של נקודת הקצה של הפיד
- עוברים לכרטיסייה פרטים של הפיד.
- בקטע Endpoint Information, מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד.
הפורמט של כתובת ה-URL הוא:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateאו
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateשומרים את כתובת ה-URL הזו כדי להשתמש בה בשלבים הבאים.
לוחצים על סיום.
יצירת מפתח API של Google Cloud
כדי לבצע אימות ב-Chronicle, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud.
יצירת מפתח API
- נכנסים אל הדף Credentials במסוף Google Cloud.
- בוחרים את הפרויקט (הפרויקט שמשויך למופע Chronicle).
- לוחצים על Create credentials > API key.
- מפתח API נוצר ומוצג בתיבת דו-שיח.
- לוחצים על Edit API key כדי להגביל את המפתח.
הגבלת מפתח ה-API
- בדף ההגדרות API key:
- שם: מזינים שם תיאורי (לדוגמה,
Chronicle Webhook API Key)
- שם: מזינים שם תיאורי (לדוגמה,
- בקטע API restrictions (הגבלות על API):
- בוחרים באפשרות הגבלת מקש.
- בתפריט הנפתח Select APIs (בחירת ממשקי API), מחפשים את Google SecOps API (או Chronicle API) ובוחרים אותו.
- לוחצים על Save.
- מעתיקים את הערך של מפתח ה-API מהשדה מפתח ה-API בחלק העליון של הדף.
שומרים את מפתח ה-API בצורה מאובטחת.
הפעלת Cloud Guard Cloud Event responder
Cloud Guard משתמש בכלי להגדרת תגובה לאירועים ב-Cloud כדי לשלוח פרטים על בעיות אל OCI Events Service. התגובה לאירוע ב-Cloud היא חלק ממתכון התגובה, והיא צריכה להיות מופעלת ומוגדרת להפעלה אוטומטית.
הפעלת כלל Cloud Event במתכון של כלי התגובה
- נכנסים למסוף Oracle Cloud Infrastructure.
- פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Cloud Guard > Recipes.
- בוחרים באפשרות Responder Recipes (מתכונים של כלי המענה).
- לוחצים על המתכון של המשיב או המשיבה שמצורף ליעד.
- בקטע Responder Rules (כללי תגובה), מאתרים את הכלל Cloud Events (אירועים בענן).
- אם הסטטוס הוא מושבת:
- פותחים את תפריט הפעולות (סמל האפשרויות הנוספות) ולוחצים על עריכה.
- משנים את הסטטוס למופעל.
- לוחצים על Save.
הגדרת הפעלה אוטומטית ביעד
- ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Cloud Guard > Configuration > Targets.
- בוחרים את תא היעד.
- בקטע משאבים, בוחרים באפשרות מתכונים של משיב אוטומטי.
- לוחצים על הקישור למתכון של המשיב/ה.
- מחפשים את כלל המענה Cloud Event.
- פותחים את תפריט הפעולות (סמל האפשרויות הנוספות) ולוחצים על עריכה.
- מגדירים את הפעלת הכלל לביצוע אוטומטי.
- מסמנים את תיבת הסימון CONFIRM EXECUTE AUTOMATICALLY (אישור הפעלה אוטומטית).
לוחצים על Save.
יצירת אפליקציית OCI Functions
יוצרים אפליקציית OCI Functions שתארח את הפונקציה שאחראית להעברת אירועים מ-Cloud Guard אל Google SecOps.
יצירת האפליקציה
- במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
- בוחרים את התא שבו רוצים ליצור את האפליקציה.
- לוחצים על יצירת אפליקציה.
- מספקים את פרטי ההגדרה הבאים:
- שם: מזינים
cloudguard-chronicle-forwarder - VCN: בוחרים VCN עם גישה לאינטרנט (נדרש כדי שהפונקציה תגיע לנקודת הקצה של ה-webhook של Chronicle)
- Subnets: בוחרים רשת משנה ציבורית או רשת משנה פרטית עם שער NAT מוגדר
- שם: מזינים
- לוחצים על יצירה.
יצירה ופריסה של הפונקציה
משתמשים ב-OCI Cloud Shell או בסביבה מקומית עם Fn Project CLI כדי ליצור ולפרוס את הפונקציה.
- פותחים את OCI Cloud Shell ממסוף Oracle Cloud Infrastructure (לוחצים על סמל Cloud Shell בסרגל הניווט העליון).
מגדירים את ההקשר של Fn לאפליקציית OCI Functions:
fn list context fn use context <your-region-context> fn update context oracle.compartment-id <compartment_OCID> fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicleמאתחלים פונקציית Python חדשה:
fn init --runtime python cloudguard-to-chronicle cd cloudguard-to-chronicleמחליפים את התוכן של הקובץ
func.pyבקוד הבא:import io import json import logging import requests from fdk import response def handler(ctx, data: io.BytesIO = None): """ OCI Function that receives Cloud Guard events from OCI Events Service and forwards them to Google SecOps (Chronicle) webhook endpoint. """ logger = logging.getLogger() try: cfg = ctx.Config() chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT") chronicle_api_key = cfg.get("CHRONICLE_API_KEY") chronicle_secret = cfg.get("CHRONICLE_SECRET") if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]): logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET") return response.Response( ctx, response_data=json.dumps({"error": "Missing configuration"}), headers={"Content-Type": "application/json"}, status_code=500 ) event_data = json.loads(data.getvalue()) logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}") webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}" headers = { "Content-Type": "application/json" } resp = requests.post( webhook_url, json=event_data, headers=headers, timeout=30 ) if resp.status_code >= 200 and resp.status_code < 300: logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})") else: logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}") return response.Response( ctx, response_data=json.dumps({"status": resp.status_code}), headers={"Content-Type": "application/json"}, status_code=200 ) except Exception as e: logger.error(f"Error processing Cloud Guard event: {str(e)}") return response.Response( ctx, response_data=json.dumps({"error": str(e)}), headers={"Content-Type": "application/json"}, status_code=500 )מחליפים את התוכן של הקובץ
requirements.txt:fdk>=0.1.0 requests>=2.25.0פורסים את הפונקציה באפליקציה:
fn -v deploy --app cloudguard-chronicle-forwarderמחכים שהפריסה תסתיים.
הגדרת משתני סביבה של פונקציות
- במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
- לוחצים על האפליקציה cloudguard-chronicle-forwarder.
- בקטע Resources, בוחרים באפשרות Functions.
- לוחצים על הפונקציה cloudguard-to-chronicle.
- בקטע Resources (מקורות מידע), בוחרים באפשרות Configuration (הגדרה).
לוחצים על עריכה ומוסיפים את צמדי המפתח/ערך הבאים:
מפתח ערך CHRONICLE_ENDPOINTכתובת ה-URL של נקודת הקצה של ה-webhook ב-Chronicle (לדוגמה, https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate)CHRONICLE_API_KEYמפתח ה-API של Google Cloud שנוצר בשביל ה-webhook של Chronicle CHRONICLE_SECRETהמפתח הסודי של ה-webhook של Chronicle לוחצים על Save.
יצירת כללי מדיניות IAM ל-OCI Functions
שירות OCI Functions ושירות Events דורשים מדיניות IAM כדי להפעיל את הפונקציה.
יצירת קבוצה דינמית לפונקציה
- ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Domains (זהות ואבטחה > דומיינים).
- בוחרים את דומיין ברירת המחדל.
- בקטע משאבים של דומיין הזהויות, בוחרים באפשרות קבוצות דינמיות.
- לוחצים על יצירת קבוצה דינמית.
מספקים את פרטי ההגדרה הבאים:
- שם: מזינים
cloudguard-chronicle-functions - תיאור: מזינים
Dynamic group for Cloud Guard to Chronicle forwarder function - כללים תואמים: מזינים את הכלל הבא:
ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}- שם: מזינים
לוחצים על יצירה.
יצירת כללי מדיניות IAM
- ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Policies.
- מוודאים שאתם נמצאים בתא הבסיס.
- לוחצים על יצירת מדיניות.
- מספקים את פרטי ההגדרה הבאים:
- שם: מזינים
cloudguard-chronicle-policy - תיאור: מזינים
Allows Events Service to invoke Cloud Guard Chronicle forwarder function - תא: מוודאים שהתא הבסיסי נבחר.
- שם: מזינים
- בקטע Policy Builder, מעבירים את המתג Show manual editor למצב מופעל.
בשדה Statement, מזינים את הצהרות המדיניות הבאות:
Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name> Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name> Allow service cloudguardevents to use fn-function in compartment <compartment_name> Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>לוחצים על יצירה.
יצירת כלל OCI Events עבור Cloud Guard
יוצרים כלל Events שמפעיל את הפונקציה OCI Function כש-Cloud Guard מזהה בעיה, מבטל אותה או מתקן אותה.
יצירת כלל האירועים
ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Observability & Management > Events Service > Rules.
לוחצים על יצירת כלל.
מספקים את פרטי ההגדרה הבאים:
- שם לתצוגה: מזינים
cloudguard-to-chronicle - תיאור: מזינים
Forwards Cloud Guard problem events to Google SecOps via OCI Functions
- שם לתצוגה: מזינים
בקטע תנאים לשימוש בכללים:
- מגדירים את התנאי לסוג אירוע.
- מגדירים את שם השירות לערך Cloud Guard.
- מגדירים את סוג האירוע לאפשרויות הבאות (אפשר לבחור כמה):
- זוהתה בעיה
- נפתרה - בעיה
- טופל – בעיה
בקטע פעולות:
- מגדירים את סוג הפעולה לפונקציות.
- מגדירים את Function Compartment לתא שמכיל את אפליקציית הפונקציה.
- מגדירים את Function Application (אפליקציית פונקציה) ל-cloudguard-chronicle-forwarder.
- מגדירים את Function (פונקציה) לערך cloudguard-to-chronicle.
לוחצים על יצירת כלל.
אופציונלי: סינון לפי רמת סיכון
כדי להעביר רק בעיות ברמת חומרה גבוהה, מוסיפים מסנן מאפיינים לכלל האירועים:
- בקטע תנאי הכלל, לוחצים על + תנאי נוסף.
- מגדירים את Condition (תנאי) לערך Attribute (מאפיין).
- מגדירים את שם המאפיין לערך
riskLevel. מגדירים את ערכי המאפיינים לרמות הסיכון הרצויות:
CRITICALHIGH
אימות השילוב
בדיקת הפונקציה באופן ידני
- במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
- לוחצים על האפליקציה cloudguard-chronicle-forwarder.
- בקטע Resources, בוחרים באפשרות Functions.
- לוחצים על הפונקציה cloudguard-to-chronicle.
לוחצים על Invoke כדי לבדוק את הפונקציה עם נתונים לדוגמה, או משתמשים ב-OCI Cloud Shell:
echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicleכדי לוודא שהפונקציה מתועדת ביומנים, עוברים אל Developer Services > Functions > Applications > cloudguard-chronicle-forwarder ובוחרים בקטע Logs.
מחפשים רשומות ביומן שמאשרות שההעברה בוצעה בהצלחה:
Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected Successfully forwarded event to Chronicle (HTTP 200)
אימות ב-Google SecOps
- נכנסים ל-Google SecOps.
- עוברים אל חיפוש ומריצים שאילתה לאירועים עם סוג היומן
OCI_CLOUDGUARD. - מוודאים שאירועי בעיות של Cloud Guard מופיעים בתוצאות החיפוש.
אם האירועים לא מופיעים:
- בדיקה של כתובת ה-URL של נקודת הקצה של ה-webhook של Chronicle, מפתח ה-API והמפתח הסודי בהגדרת הפונקציה
- בודקים שכלל האירועים נמצא באזור OCI הנכון (אזור הדיווח של Cloud Guard)
- מוודאים שהתורן של Cloud Event מופעל ומוגדר להפעלה אוטומטית
- בדיקת יומני הפונקציות כדי למצוא הודעות שגיאה
הפניה לסוגי אירועים ב-Cloud Guard
Cloud Guard פולט את סוגי האירועים הבאים דרך שירות האירועים של OCI:
| סוג האירוע | הטריגר |
|---|---|
com.oraclecloud.cloudguard.problemdetected |
זוהתה בעיה חדשה |
com.oraclecloud.cloudguard.problemdismissed |
בעיה נסגרת |
com.oraclecloud.cloudguard.problemremediated |
בעיה נפתרה |
com.oraclecloud.cloudguard.sightingdetected |
זוהה מיקום חדש |
הפניה לשיטות אימות
פידים של Chronicle webhook תומכים בכמה שיטות אימות. בוחרים את השיטה שהספק תומך בה.
שיטה 1: כותרות מותאמות אישית (מומלץ)
אם הספק שלכם תומך בכותרות HTTP בהתאמה אישית, כדאי להשתמש בשיטה הזו כדי לשפר את האבטחה.
פורמט הבקשה:
POST <ENDPOINT_URL> HTTP/1.1 Content-Type: application/json x-goog-chronicle-auth: <API_KEY> x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
היתרונות:
- מפתח ה-API והסוד לא מוצגים בכתובת ה-URL
- מאובטח יותר (הכותרות לא מתועדות ביומני הגישה של שרת האינטרנט)
- השיטה המועדפת אם הספק תומך בה
שיטה 2: פרמטרים של שאילתה
אם הספק לא תומך בכותרות מותאמות אישית, צריך לצרף את פרטי הכניסה לכתובת ה-URL.
פורמט כתובת ה-URL:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>לדוגמה:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...פורמט הבקשה:
POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1 Content-Type: application/json { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
החסרונות:
- פרטי הכניסה גלויים בכתובת ה-URL
- יכול להיות שיירשם ביומני הגישה של שרת האינטרנט
- פחות מאובטח מכותרות
שיטה 3: היברידית (כתובת URL + כותרת)
חלק מההגדרות משתמשות במפתח API בכתובת ה-URL ובמפתח סודי בכותרת.
פורמט הבקשה:
POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
שמות של כותרות אימות
מערכת Chronicle מקבלת את שמות הכותרות הבאים לאימות:
למפתח API:
x-goog-chronicle-auth(מומלץ)-
X-Goog-Chronicle-Auth(לא תלוי-רישיות)
למפתח סודי:
x-chronicle-auth(מומלץ)-
X-Chronicle-Auth(לא תלוי-רישיות)
מגבלות ושיטות מומלצות לשימוש ב-Webhook
מגבלות על בקשות
| הגבלה | ערך |
|---|---|
| גודל בקשה מקסימלי | 4MB |
| מספר QPS מקסימלי (שאילתות לשנייה) | 15,000 |
| זמן קצוב לתפוגה של בקשה | 30 שניות |
| התנהגות של ניסיון חוזר | אוטומטי עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff) |
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| contentType | additional.fields | מוזגו משדות נוספים שונים |
| cloudEventsVersion | additional.fields | |
| data.additionalDetails.reason | additional.fields | |
| data.additionalDetails.tenantId | additional.fields | |
| data.additionalDetails.problemType | additional.fields | |
| data.resourceName | additional.fields | |
| data.resourceId | additional.fields | |
| סטטוס | additional.fields | |
| problem_recommendation | additional.fields | |
| compartment_id | additional.fields | |
| compartment_name | additional.fields | |
| product_event | extensions.auth.type | אם product_event תואם לכניסה, צריך להגדיר את הערך כ-AUTHTYPE_UNSPECIFIED |
| data.additionalDetails.problemDescription | metadata.description | הערך מ-data.additionalDetails.problemDescription אם הוא לא ריק, אחרת הערך מ-data.additionalDetails.description |
| data.additionalDetails.description | metadata.description | |
| has_user | metadata.event_type | הערך הוא USER_RESOURCE_ACCESS אם יש has_user ו-has_target_resource, USER_UNCATEGORIZED אם יש has_user, USER_LOGIN אם product_event תואם ל-login, STATUS_UPDATE אם יש has_principal, אחרת GENERIC_EVENT |
| has_target_resource | metadata.event_type | |
| product_event | metadata.event_type | |
| has_principal | metadata.event_type | |
| eventType | metadata.product_event_type | הערך מ-eventType אם הוא לא ריק, אחרת הערך הוא product_event |
| product_event | metadata.product_event_type | |
| eventID | metadata.product_log_id | הערך הועתק ישירות |
| גרסה | metadata.product_version | הערך הועתק ישירות |
| הישות שזיהתה את האירו | observer.domain.name | דומיין שחולץ מהמשקיף באמצעות grok |
| הישות שזיהתה את האירו | observer.hostname | ערך מהמשקיף אם לא כתובת IP |
| הישות שזיהתה את האירו | observer.ip | ערך מהמשקיף אם כתובת ה-IP |
| משתמש (principal) | principal.administrative_domain | הדומיין שחולץ מהמשתמש הראשי או מהמארח הראשי באמצעות grok |
| principal_host | principal.administrative_domain | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.asset.ip | הערך מ-data.additionalDetails.problemAdditionalDetails.public_ips אם הוא לא ריק, אחרת הערך מ-vnicDetails.0.vnicPublicIp אם הוא לא ריק, אחרת הערך מ-principal אם הוא כתובת IP, אחרת הערך מ-principal_host אם הוא כתובת IP |
| vnicDetails.0.vnicPublicIp | principal.asset.ip | |
| משתמש (principal) | principal.asset.ip | |
| principal_host | principal.asset.ip | |
| משתמש (principal) | principal.hostname | הערך מהמשתמש הראשי אם הוא לא כתובת IP, אחרת הערך הוא principal_host אם הוא לא כתובת IP |
| principal_host | principal.hostname | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.ip | הערך מ-data.additionalDetails.problemAdditionalDetails.public_ips אם הוא לא ריק, אחרת הערך מ-vnicDetails.0.vnicPublicIp אם הוא לא ריק, אחרת הערך מ-principal אם הוא כתובת IP, אחרת הערך מ-principal_host אם הוא כתובת IP |
| vnicDetails.0.vnicPublicIp | principal.ip | |
| משתמש (principal) | principal.ip | |
| principal_host | principal.ip | |
| data.additionalDetails.region | principal.location.name | הערך הועתק ישירות |
| principal_port | principal.port | הומר למספר שלם מ-principal_port |
| data.additionalDetails.resourceName | principal.resource.name | הערך מ-data.additionalDetails.resourceName אם הוא לא ריק, אחרת הערך מ-data.additionalDetails.principalResourceName |
| data.additionalDetails.principalResourceName | principal.resource.name | |
| data.additionalDetails.resourceId | principal.resource.product_object_id | הערך מ-data.additionalDetails.resourceId אם הוא לא ריק, אחרת הערך מ-data.additionalDetails.principalResourceId |
| data.additionalDetails.principalResourceId | principal.resource.product_object_id | |
| data.additionalDetails.resourceType | principal.resource.resource_subtype | הערך מ-data.additionalDetails.resourceType אם הוא לא ריק, אחרת הערך מ-data.additionalDetails.principalResourceType |
| data.additionalDetails.principalResourceType | principal.resource.resource_subtype | |
| data.additionalDetails.resourceName | principal.user.userid | הערך מ-data.additionalDetails.resourceName אם data.additionalDetails.resourceType == "User", אחרת מ-data.additionalDetails.principalResourceName אם data.additionalDetails.principalResourceType == "User" |
| data.additionalDetails.principalResourceName | principal.user.userid | |
| פעולה | security_result.action | הערך הוא BLOCK אם הפעולה תואמת לחסימה, ALLOW אם הפעולה הצליחה, FAIL אם הפעולה נכשלה, אחרת UNKNOWN |
| פעולה | security_result.action_details | הערך הועתק ישירות |
| data.additionalDetails.tacticName | security_result.attack_details.tactics | הערך מועתק ישירות אל tactic_data.name ואז מתבצע מיזוג |
| data.additionalDetails.techniqueName | security_result.attack_details.techniques | הערך מועתק ישירות אל technique_data.name ואז מתבצע מיזוג |
| data.additionalDetails.confidence | security_result.confidence_score | הערך הועתק ישירות |
| sightingType | security_result.detection_fields | מוזגו מהתוויות sightingType, sightingScore ו-riskScore |
| sightingScore | security_result.detection_fields | |
| riskScore | security_result.detection_fields | |
| data.additionalDetails.detectorRuleId | security_result.rule_id | הערך הועתק ישירות |
| data.additionalDetails.detectorRuleType | security_result.rule_name | הערך הועתק ישירות |
| severity | security_result.severity | הערך הוא INFORMATIONAL אם החומרה היא INFO, LOW אם היא Low, MEDIUM אם היא WARN, HIGH אם היא High ו-CRITICAL אם היא Critical |
| severity | security_result.severity_details | הערך הועתק ישירות |
| target | target.administrative_domain | הדומיין חולץ מהיעד או מהמארח של היעד באמצעות grok |
| target_host | target.administrative_domain | |
| target | target.hostname | ערך מהיעד אם הוא לא כתובת IP, אחרת target_host אם הוא לא כתובת IP |
| target_host | target.hostname | |
| target | target.ip | הערך מהיעד אם כתובת ה-IP, אחרת target_host אם כתובת ה-IP |
| target_host | target.ip | |
| target_port | target.port | הומר למספר שלם מ-target_port |
| targetId | target.resource.attribute.labels | מיזוג משדות שונים של תוויות |
| labels | target.resource.attribute.labels | |
| vnicAttachmentId | target.resource.attribute.labels | |
| vnicAttachmentDisplayName | target.resource.attribute.labels | |
| רשתות משנה | target.resource.attribute.labels | |
| instance_ocid | target.resource.attribute.labels | |
| route_table_ocids | target.resource.attribute.labels | |
| security_list_ocids | target.resource.attribute.labels | |
| data.additionalDetails.impactedResourceName | target.resource.name | הערך מ-data.additionalDetails.impactedResourceName אם הוא לא ריק, אחרת vnicDetails.0.vnicDisplayName |
| vnicDetails.0.vnicDisplayName | target.resource.name | |
| data.additionalDetails.impactedResourceId | target.resource.product_object_id | הערך מ-data.additionalDetails.impactedResourceId אם הוא לא ריק, אחרת vnicDetails.0.vnicId |
| vnicDetails.0.vnicId | target.resource.product_object_id | |
| data.additionalDetails.impactedResourceType | target.resource.resource_subtype | הערך הועתק ישירות |
| target_url | target.url | הערך הועתק ישירות |
| target_user | target.user.userid | הערך הועתק ישירות |
| מוצר | metadata.product_name | הערך הועתק ישירות |
| ספק | metadata.vendor_name | הערך הועתק ישירות |
data.additionalDetails.tacticName |
security_result.attack_details.tactics.name |
מופה מיומן השינויים |
data.additionalDetails.techniqueName |
security_result.attack_details.techniques.name |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.