איסוף יומנים של 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

יצירת הפיד

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, OCI Cloud Guard Problems).
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות Oracle Cloud Infrastructure - Oracle Cloud Guard בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:
    • תו מפריד לפיצול (אופציונלי): משאירים ריק (כל הפעלה של הפונקציה שולחת אירוע יחיד).
    • מרחב השמות של הנכס: מרחב השמות של הנכס
    • תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה
  9. לוחצים על הבא.
  10. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

יצירה ושמירה של מפתח סודי

אחרי שיוצרים את הפיד, צריך ליצור מפתח סודי לאימות:

  1. בדף פרטי הפיד, לוחצים על יצירת מפתח סודי.
  2. תיפתח תיבת דו-שיח עם המפתח הסודי.
  3. מעתיקים ושומרים את המפתח הסודי באופן מאובטח.

חשוב: המפתח הסודי מוצג רק פעם אחת, ואי אפשר לאחזר אותו בהמשך. אם מאבדים אותו, צריך ליצור מפתח סודי חדש.

קבלת כתובת ה-URL של נקודת הקצה של הפיד

  1. עוברים לכרטיסייה פרטים של הפיד.
  2. בקטע Endpoint Information, מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד.
  3. הפורמט של כתובת ה-URL הוא:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    או

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. שומרים את כתובת ה-URL הזו כדי להשתמש בה בשלבים הבאים.

  5. לוחצים על סיום.

יצירת מפתח API של Google Cloud

כדי לבצע אימות ב-Chronicle, צריך מפתח API. יוצרים מפתח API מוגבל במסוף Google Cloud.

יצירת מפתח API

  1. נכנסים אל הדף Credentials במסוף Google Cloud.
  2. בוחרים את הפרויקט (הפרויקט שמשויך למופע Chronicle).
  3. לוחצים על Create credentials > API key.
  4. מפתח API נוצר ומוצג בתיבת דו-שיח.
  5. לוחצים על Edit API key כדי להגביל את המפתח.

הגבלת מפתח ה-API

  1. בדף ההגדרות API key:
    • שם: מזינים שם תיאורי (לדוגמה, Chronicle Webhook API Key)
  2. בקטע API restrictions (הגבלות על API):
    1. בוחרים באפשרות הגבלת מקש.
    2. בתפריט הנפתח Select APIs (בחירת ממשקי API), מחפשים את Google SecOps API (או Chronicle API) ובוחרים אותו.
  3. לוחצים על Save.
  4. מעתיקים את הערך של מפתח ה-API מהשדה מפתח ה-API בחלק העליון של הדף.
  5. שומרים את מפתח ה-API בצורה מאובטחת.

הפעלת Cloud Guard Cloud Event responder

‫Cloud Guard משתמש בכלי להגדרת תגובה לאירועים ב-Cloud כדי לשלוח פרטים על בעיות אל OCI Events Service. התגובה לאירוע ב-Cloud היא חלק ממתכון התגובה, והיא צריכה להיות מופעלת ומוגדרת להפעלה אוטומטית.

הפעלת כלל Cloud Event במתכון של כלי התגובה

  1. נכנסים למסוף Oracle Cloud Infrastructure.
  2. פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Cloud Guard > Recipes.
  3. בוחרים באפשרות Responder Recipes (מתכונים של כלי המענה).
  4. לוחצים על המתכון של המשיב או המשיבה שמצורף ליעד.
  5. בקטע Responder Rules (כללי תגובה), מאתרים את הכלל Cloud Events (אירועים בענן).
  6. אם הסטטוס הוא מושבת:
    1. פותחים את תפריט הפעולות (סמל האפשרויות הנוספות) ולוחצים על עריכה.
    2. משנים את הסטטוס למופעל.
    3. לוחצים על Save.

הגדרת הפעלה אוטומטית ביעד

  1. ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Cloud Guard > Configuration > Targets.
  2. בוחרים את תא היעד.
  3. בקטע משאבים, בוחרים באפשרות מתכונים של משיב אוטומטי.
  4. לוחצים על הקישור למתכון של המשיב/ה.
  5. מחפשים את כלל המענה Cloud Event.
  6. פותחים את תפריט הפעולות (סמל האפשרויות הנוספות) ולוחצים על עריכה.
  7. מגדירים את הפעלת הכלל לביצוע אוטומטי.
  8. מסמנים את תיבת הסימון CONFIRM EXECUTE AUTOMATICALLY (אישור הפעלה אוטומטית).
  9. לוחצים על Save.

יצירת אפליקציית OCI Functions

יוצרים אפליקציית OCI Functions שתארח את הפונקציה שאחראית להעברת אירועים מ-Cloud Guard אל Google SecOps.

יצירת האפליקציה

  1. במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
  2. בוחרים את התא שבו רוצים ליצור את האפליקציה.
  3. לוחצים על יצירת אפליקציה.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם: מזינים cloudguard-chronicle-forwarder
    • ‫VCN: בוחרים VCN עם גישה לאינטרנט (נדרש כדי שהפונקציה תגיע לנקודת הקצה של ה-webhook של Chronicle)
    • ‫Subnets: בוחרים רשת משנה ציבורית או רשת משנה פרטית עם שער NAT מוגדר
  5. לוחצים על יצירה.

יצירה ופריסה של הפונקציה

משתמשים ב-OCI Cloud Shell או בסביבה מקומית עם Fn Project CLI כדי ליצור ולפרוס את הפונקציה.

  1. פותחים את OCI Cloud Shell ממסוף Oracle Cloud Infrastructure (לוחצים על סמל Cloud Shell בסרגל הניווט העליון).
  2. מגדירים את ההקשר של 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
    
  3. מאתחלים פונקציית Python חדשה:

    fn init --runtime python cloudguard-to-chronicle
    cd cloudguard-to-chronicle
    
  4. מחליפים את התוכן של הקובץ 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
            )
    
  5. מחליפים את התוכן של הקובץ requirements.txt:

    fdk>=0.1.0
    requests>=2.25.0
    
  6. פורסים את הפונקציה באפליקציה:

    fn -v deploy --app cloudguard-chronicle-forwarder
    
  7. מחכים שהפריסה תסתיים.

הגדרת משתני סביבה של פונקציות

  1. במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
  2. לוחצים על האפליקציה cloudguard-chronicle-forwarder.
  3. בקטע Resources, בוחרים באפשרות Functions.
  4. לוחצים על הפונקציה cloudguard-to-chronicle.
  5. בקטע Resources (מקורות מידע), בוחרים באפשרות Configuration (הגדרה).
  6. לוחצים על עריכה ומוסיפים את צמדי המפתח/ערך הבאים:

    מפתח ערך
    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
  7. לוחצים על Save.

יצירת כללי מדיניות IAM ל-OCI Functions

שירות OCI Functions ושירות Events דורשים מדיניות IAM כדי להפעיל את הפונקציה.

יצירת קבוצה דינמית לפונקציה

  1. ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Domains (זהות ואבטחה > דומיינים).
  2. בוחרים את דומיין ברירת המחדל.
  3. בקטע משאבים של דומיין הזהויות, בוחרים באפשרות קבוצות דינמיות.
  4. לוחצים על יצירת קבוצה דינמית.
  5. מספקים את פרטי ההגדרה הבאים:

    • שם: מזינים cloudguard-chronicle-functions
    • תיאור: מזינים Dynamic group for Cloud Guard to Chronicle forwarder function
    • כללים תואמים: מזינים את הכלל הבא:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}
    
  6. לוחצים על יצירה.

יצירת כללי מדיניות IAM

  1. ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Identity & Security > Policies.
  2. מוודאים שאתם נמצאים בתא הבסיס.
  3. לוחצים על יצירת מדיניות.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם: מזינים cloudguard-chronicle-policy
    • תיאור: מזינים Allows Events Service to invoke Cloud Guard Chronicle forwarder function
    • תא: מוודאים שהתא הבסיסי נבחר.
  5. בקטע Policy Builder, מעבירים את המתג Show manual editor למצב מופעל.
  6. בשדה 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>
    
  7. לוחצים על יצירה.

יצירת כלל OCI Events עבור Cloud Guard

יוצרים כלל Events שמפעיל את הפונקציה OCI Function כש-Cloud Guard מזהה בעיה, מבטל אותה או מתקן אותה.

יצירת כלל האירועים

  1. ב-Oracle Cloud Infrastructure Console, פותחים את תפריט הניווט ובוחרים באפשרות Observability & Management > Events Service > Rules.

  2. לוחצים על יצירת כלל.

  3. מספקים את פרטי ההגדרה הבאים:

    • שם לתצוגה: מזינים cloudguard-to-chronicle
    • תיאור: מזינים Forwards Cloud Guard problem events to Google SecOps via OCI Functions
  4. בקטע תנאים לשימוש בכללים:

    1. מגדירים את התנאי לסוג אירוע.
    2. מגדירים את שם השירות לערך Cloud Guard.
    3. מגדירים את סוג האירוע לאפשרויות הבאות (אפשר לבחור כמה):
      • זוהתה בעיה
      • נפתרה - בעיה
      • טופל – בעיה
  5. בקטע פעולות:

    1. מגדירים את סוג הפעולה לפונקציות.
    2. מגדירים את Function Compartment לתא שמכיל את אפליקציית הפונקציה.
    3. מגדירים את Function Application (אפליקציית פונקציה) ל-cloudguard-chronicle-forwarder.
    4. מגדירים את Function (פונקציה) לערך cloudguard-to-chronicle.
  6. לוחצים על יצירת כלל.

אופציונלי: סינון לפי רמת סיכון

כדי להעביר רק בעיות ברמת חומרה גבוהה, מוסיפים מסנן מאפיינים לכלל האירועים:

  1. בקטע תנאי הכלל, לוחצים על + תנאי נוסף.
  2. מגדירים את Condition (תנאי) לערך Attribute (מאפיין).
  3. מגדירים את שם המאפיין לערך riskLevel.
  4. מגדירים את ערכי המאפיינים לרמות הסיכון הרצויות:

    • CRITICAL
    • HIGH

אימות השילוב

בדיקת הפונקציה באופן ידני

  1. במסוף Oracle Cloud Infrastructure, פותחים את תפריט הניווט ובוחרים באפשרות Developer Services > Functions > Applications.
  2. לוחצים על האפליקציה cloudguard-chronicle-forwarder.
  3. בקטע Resources, בוחרים באפשרות Functions.
  4. לוחצים על הפונקציה cloudguard-to-chronicle.
  5. לוחצים על 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
    
  6. כדי לוודא שהפונקציה מתועדת ביומנים, עוברים אל Developer Services > Functions > Applications > cloudguard-chronicle-forwarder ובוחרים בקטע Logs.

  7. מחפשים רשומות ביומן שמאשרות שההעברה בוצעה בהצלחה:

    Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected
    Successfully forwarded event to Chronicle (HTTP 200)
    

אימות ב-Google SecOps

  1. נכנסים ל-Google SecOps.
  2. עוברים אל חיפוש ומריצים שאילתה לאירועים עם סוג היומן OCI_CLOUDGUARD.
  3. מוודאים שאירועי בעיות של 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 תומכים בכמה שיטות אימות. בוחרים את השיטה שהספק תומך בה.

אם הספק שלכם תומך בכותרות 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.