איסוף יומנים של OpenCanary

נתמך ב:

הכלי הזה מחלץ שדות מיומני OpenCanary SYSLOG ו-JSON, מבצע נורמליזציה שלהם לפורמט UDM ומעשיר את הנתונים בשדות נגזרים כמו metadata.event_type ו-security_result.severity. הוא מטפל בפורמטים שונים של יומנים, מבצע אימות של כתובות IP וממפה שדות לאובייקטים מתאימים של UDM כמו principal,‏ target ו-network.

לפני שמתחילים

ודאו שאתם עומדים בדרישות המוקדמות הבאות:

  • מופע של Google SecOps.
  • גישה מיוחדת ל-OpenCanary.

הגדרת פידים

כדי להגדיר פיד:

  1. עוברים אל SIEM Settings (הגדרות SIEM) > Feeds (פידים).
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה Feed name, נותנים שם לפיד, לדוגמה OpenCanary Logs.
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות OpenCanary בתור סוג היומן.
  7. לוחצים על הבא.
  8. אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
    • ‫Split delimiter: התו או המחרוזת שמשמשים להפרדה בין שורות ביומן, כמו \n.
  9. לוחצים על הבא.
  10. בודקים את הגדרות הפיד במסך סיום ולוחצים על שליחה.
  11. לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
  12. מעתיקים ושומרים את המפתח הסודי. לא ניתן להציג שוב את המפתח הסודי הזה. במקרה הצורך, אפשר ליצור מחדש מפתח סודי חדש, אבל הפעולה הזו מייתרת את המפתח הסודי הקודם.
  13. בכרטיסייה Details (פרטים), מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה Endpoint Information (פרטי נקודת הקצה). צריך לציין את כתובת ה-URL של נקודת הקצה הזו באפליקציית הלקוח.
  14. לוחצים על סיום.

יצירת מפתח API ל-Webhook Feed

  1. עוברים אל Google Cloud מסוף > Credentials (אמצעי אימות).

    כניסה לדף Credentials

  2. לוחצים על Create credentials ואז על מפתח API.

  3. מגבילים את הגישה של מפתח ה-API ל-Google Security Operations API.

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

  1. באפליקציית הלקוח, מציינים את כתובת ה-URL של נקודת הקצה של HTTPS שמופיעה בפיד ה-webhook.
  2. כדי להפעיל אימות, מציינים את מפתח ה-API ואת המפתח הסודי כחלק מהכותרת המותאמת אישית בפורמט הבא:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    המלצה: ציינו את מפתח ה-API ככותרת במקום לציין אותו בכתובת ה-URL.

  3. אם לקוח ה-webhook שלכם לא תומך בכותרות בהתאמה אישית, אתם יכולים לציין את מפתח ה-API ואת המפתח הסודי באמצעות פרמטרים של שאילתות בפורמט הבא:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של הפיד.
    • ‫API_KEY: מפתח ה-API לאימות ב-Google Security Operations.
    • ‫SECRET: המפתח הסודי שיצרתם כדי לאמת את הפיד.

הגדרה של OpenCanary Webhook ל-Google SecOps

  1. מוצאים את קובץ התצורה של OpenCanary, ‏ config.json.

  2. פותחים קובץ config.json בכלי לעריכת טקסט.

  3. בתוך קובץ ההגדרה, מחפשים את הקטע עם התווית alerters.

  4. אם כבר קיים התרעה מסוג webhook, משנים אותה. אחרת, מוסיפים רשומה חדשה לwebhook המשתמש ששלח את ההתראה.

  5. משתמשים בהגדרה הבאה (מחליפים את ENDPOINT_URL, ‏ SECRET ו-API_KEY בערכים שלכם):

"handlers": {
    "Webhook": {
        "class": "opencanary.logger.WebhookHandler",
        "url": "<ENDPOINT_URL>",
        "method": "POST",
        "data": {"message": "%(message)s"},
        "status_code": 200,
        "headers": {
            "X-Webhook-Access-Key": "<SECRET>",
            "X-goog-api-key": "<API_KEY>"
         }
    }
}
  1. שומרים את קובץ ה-config.json.
  2. מפעילים מחדש את שירות OpenCanary כדי להחיל את השינויים. (לדוגמה, sudo systemctl restart opencanary).

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
dst_host target.asset.ip השדה dst_host ביומן הגולמי ממופה ל-UDM. ממופה גם אל target.ip.
dst_host target.ip השדה dst_host ביומן הגולמי ממופה ל-UDM. ממופה גם ל-target.asset.ip.
dst_port target.port השדה dst_port ביומן הגולמי מומר למחרוזת ואז למספר שלם וממופה ל-UDM.
local_time metadata.event_timestamp השדה local_time ביומן הגולמי משמש לאכלוס השדה metadata.event_timestamp ב-UDM. המנתח משתמש ב-create_time מאובייקט האצווה אם השדה local_time לא קיים.
local_time_adjusted security_result.detection_fields השדה local_time_adjusted של היומן הגולמי נוסף כצמד מפתח/ערך למערך security_result.detection_fields ב-UDM.
logdata.COMMUNITY_STRING security_result.detection_fields השדה logdata.COMMUNITY_STRING של היומן הגולמי מתווסף כצמד מפתח/ערך למערך security_result.detection_fields ב-UDM.
logdata.DOMAIN principal.administrative_domain השדה logdata.DOMAIN של היומן הגולמי ממופה ל-UDM.
logdata.FILENAME target.file.full_path השדה logdata.FILENAME ביומן הגולמי ממופה ל-UDM.
logdata.HOSTNAME principal.asset.hostname אם השדה logdata.HOSTNAME לא מכיל כתובת IP, הוא ממופה ל-UDM. ממופה גם ל-principal.hostname.
logdata.HOSTNAME principal.asset.ip אם השדה logdata.HOSTNAME הוא כתובת IP, הוא ממופה ל-UDM. ממופה גם ל-principal.ip.
logdata.HOSTNAME principal.hostname אם השדה logdata.HOSTNAME הוא לא כתובת IP, הוא ממופה ל-UDM. ממופה גם אל principal.asset.hostname.
logdata.HOSTNAME principal.ip אם השדה logdata.HOSTNAME הוא כתובת IP, הוא ממופה ל-UDM. ממופה גם ל-principal.asset.ip.
logdata.LOCALNAME principal.asset.hostname השדה logdata.LOCALNAME ביומן הגולמי ממופה ל-UDM. ממופה גם ל-principal.hostname.
logdata.LOCALNAME principal.hostname השדה logdata.LOCALNAME ביומן הגולמי ממופה ל-UDM. ממופה גם ל-principal.asset.hostname.
logdata.LOCALVERSION principal.platform_version השדה logdata.LOCALVERSION של היומן הגולמי ממופה ל-UDM.
logdata.PASSWORD extensions.auth.mechanism הנוכחות של השדה logdata.PASSWORD גורמת למנתח התחביר להגדיר את extensions.auth.mechanism ל-USERNAME_PASSWORD ב-UDM.
logdata.PATH network.http.referral_url השדה logdata.PATH ביומן הגולמי ממופה ל-UDM.
logdata.REMOTENAME target.asset.hostname השדה logdata.REMOTENAME ביומן הגולמי ממופה ל-UDM. ממופה גם ל-target.hostname.
logdata.REMOTENAME target.hostname השדה logdata.REMOTENAME ביומן הגולמי ממופה ל-UDM. ממופה גם ל-target.asset.hostname.
logdata.REMOTEVERSION target.platform_version השדה logdata.REMOTEVERSION ביומן הגולמי ממופה ל-UDM.
logdata.SMBVER network.application_protocol הנוכחות של השדה logdata.SMBVER גורמת למנתח התחביר להגדיר את network.application_protocol ל-SMB ב-UDM.
logdata.USERAGENT network.http.parsed_user_agent השדה logdata.USERAGENT של היומן הגולמי מומר לסוכן משתמש מנותח וממופה ל-UDM.
logdata.USERAGENT network.http.user_agent השדה logdata.USERAGENT ביומן הגולמי ממופה ל-UDM.
logdata.USERNAME target.user.userid השדה logdata.USERNAME ביומן הגולמי ממופה ל-UDM.
loglevel security_result.severity השדה loglevel ביומן הגולמי קובע את ה-security_result.severity ב-UDM. ‫WARNING maps to HIGH, INFO/INFORMATION maps to LOW.
logtype security_result.detection_fields השדה logtype ביומן הגולמי מתווסף כמערך של צמדי מפתח/ערך security_result.detection_fields ב-UDM.
node_id principal.asset.asset_id השדה node_id ביומן הגולמי מתחיל ב-"id:‎" וממופה ל-UDM.
src_host principal.asset.ip השדה src_host ביומן הגולמי ממופה ל-UDM. ממופה גם ל-principal.ip.
src_host principal.ip השדה src_host של היומן הגולמי ממופה ל-UDM. ממופה גם ל-principal.asset.ip.
src_port principal.port השדה src_port ביומן הגולמי מומר למספר שלם וממופה ל-UDM.
utc_time security_result.detection_fields השדה utc_time ביומן הגולמי מתווסף כמערך של צמדי מפתח/ערך security_result.detection_fields ב-UDM.

יומן שינויים

צפייה ביומן השינויים של המנתח הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.