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

גרסת מנתח הנתונים: 1.0

נתמך ב:

במאמר הזה מוסבר איך להגדיר את DNSFilter כדי לשלוח יומנים אל Google Security Operations באמצעות וווב-הוקים דרך פרוטוקול HTTP Event Collector ‏ (HEC).

‫DNSFilter הוא פתרון אבטחה מבוסס-AI ל-DNS, שמספק הגנה מפני איומים, סינון תוכן ושקיפות של הרשת. תכונת ייצוא הנתונים מאפשרת ייצוא אוטומטי של נתוני יומן שאילתות DNS לפלטפורמות SIEM באמצעות HTTP Event Collector (HEC) API, ותומכת בניטור לצורכי אבטחה בזמן אמת ובדיווח על תאימות.

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

חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • מופע של Google SecOps
  • גישה למרכז הבקרה של DNSFilter עם הרשאות אדמין או הרשאות גבוהות יותר
  • התכונה של תוסף ייצוא נתונים של DNSFilter מופעלת (זמינה בתוכניות Basic,‏ Pro ו-Enterprise כתוסף בתשלום)
  • גישה למסוף Google Cloud (ליצירת מפתח API)

יצירת פיד של webhook ב-Google SecOps

יצירת הפיד

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

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

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

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

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

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

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

    או

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

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

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

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

יצירת מפתח API

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

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

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

הגדרת ייצוא נתונים של DNSFilter

הרכבת כתובת ה-URL של נקודת הקצה של HEC

  • משלבים את כתובת ה-URL של נקודת הקצה של Google SecOps ואת מפתח ה-API כדי ליצור את כתובת ה-URL של HEC:

    <ENDPOINT_URL>?key=<API_KEY>
    
  • דוגמה:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

הגדרת ייצוא נתונים ב-DNSFilter

  1. נכנסים אל מרכז השליטה של DNSFilter.
  2. עוברים אל כלים > ייצוא נתונים.
  3. בקטע Export Destination, בוחרים באפשרות HTTP Event Collector (HEC).
  4. בקטע HEC Configuration (הגדרת HEC), מזינים את הפרטים הבאים:
    • כתובת ה-URL של HTTP Event Collector: מדביקים את כתובת נקודת הקצה המלאה עם מפתח ה-API מהשלב הקודם.
    • טוקן פעיל של כלי לאיסוף אירועים: מדביקים את המפתח הסודי שנוצר במהלך יצירת הפיד של Google SecOps.
  5. לוחצים על שמירת ההגדרה.
  6. מערכת DNSFilter תבדוק את החיבור ותציג הודעה על הצלחה אם ההגדרה נכונה.

אימות הטמעת הנתונים

  1. במרכז הבקרה של DNSFilter, עוברים אל Tools > Data Export (כלים > ייצוא נתונים).
  2. מוודאים שהסטטוס פעיל או מחובר.
  3. במסוף Google SecOps, עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  4. מאתרים את הפיד של DNSFilter ומוודאים שהסטטוס Status הוא Active.
  5. לוחצים על שם הפיד כדי לראות את הפרטים.
  6. כדי לוודא שהנתונים זורמים, בודקים את המדד Logs Ingested (יומן אירועים שהועבר).
  7. כדי לחפש אירועים של DNSFilter, עוברים אל חיפוש ומריצים את השאילתה הבאה:

    metadata.log_type = "DNSFILTER"
    

הפניה לשיטות אימות

פידים של וווב-הוק ב-Google SecOps תומכים בכמה שיטות אימות. השילוב של DNSFilter HEC משתמש בשיטה ההיברידית.

השיטה שבה נעשה שימוש: היברידית (כתובת URL + כותרת)

‫DNSFilter שולח את מפתח ה-API בכתובת ה-URL ואת המפתח הסודי (אסימון HEC) בכותרת הבקשה.

  • פורמט הבקשה:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    Authorization: Splunk <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

שיטה חלופית: כותרות מותאמות אישית

אם אתם מגדירים אפליקציה בהתאמה אישית לשליחת יומנים אל Google SecOps, מומלץ להשתמש בשיטה הזו כדי לשפר את האבטחה.

  • פורמט הבקשה:

    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
    • מאובטח יותר (הכותרות לא נרשמות ביומני הגישה של שרת האינטרנט)
    • השיטה המועדפת אם הספק תומך בה

שמות של כותרות אימות

מערכת Google SecOps מקבלת את שמות הכותרות הבאים לצורך אימות:

  • למפתח API:

    • x-goog-chronicle-auth (מומלץ)
    • X-Goog-Chronicle-Auth (case-insensitive)
  • למפתח סודי:

    • x-chronicle-auth (מומלץ)
    • X-Chronicle-Auth (case-insensitive)
    • Authorization: Splunk <TOKEN> (תאימות ל-HEC)

מגבלות ושיטות מומלצות לשימוש ב-Webhook

מגבלות על בקשות

הגבלה ערך
גודל בקשה מקסימלי ‫4MB
מספר QPS מקסימלי (שאילתות לשנייה) 15,000
זמן קצוב לתפוגה של בקשה ‫30 שניות
התנהגות של ניסיון חוזר אוטומטי עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff)

שיטות מומלצות

  • מעקב אחר סטטוס הייצוא: חשוב לבדוק באופן קבוע את סטטוס ייצוא הנתונים בלוח הבקרה של DNSFilter כדי לוודא זרימת נתונים רציפה.
  • רוטציית מפתחות API: כדי לשמור על רמת אבטחה גבוהה, מומלץ לבצע רוטציה תקופתית של מפתח Google Cloud API.
  • ניהול מפתחות סודיים: אחסון מאובטח של המפתח הסודי של Google SecOps ויצירה מחדש אם הוא נפרץ.
  • שמירת נתונים: צריך להגדיר מדיניות מתאימה לשמירת נתונים ב-DNSFilter וב-Google SecOps.
  • הגדרת התראות: הגדרת התראות ב-Google SecOps לאירועי אבטחה קריטיים ב-DNS.

פתרון בעיות

בדיקת החיבור נכשלת

אם בדיקת ההגדרה של ייצוא הנתונים ב-DNSFilter נכשלת:

  1. מוודאים שכתובת ה-URL של HEC נכונה וכוללת את הפרמטר של מפתח ה-API.
  2. מוודאים שהעתקתם את המפתח הסודי (אסימון HEC) בצורה נכונה, בלי רווחים מיותרים.
  3. בודקים שמפתח Google Cloud API כולל גישה ל-Chronicle API.
  4. מוודאים שהפיד של Google SecOps נמצא בסטטוס Active (פעיל).
  5. בודקים את הקישוריות לרשת מ-DNSFilter לנקודות קצה ב-Google Cloud.

לא מופיעים נתונים ב-Google SecOps

אם הקישור מצליח אבל לא מופיעים נתונים:

  1. מוודאים ששאילתות DNS נוצרות בפריסת DNSFilter.
  2. בודקים את יומן השאילתות של DNSFilter כדי לוודא שהתנועה עוברת עיבוד.
  3. ב-Google SecOps, מחפשים את metadata.log_type = "DNSFILTER" כדי לאמת את ההטמעה.
  4. בודקים את מדד הפיד Logs Ingested ב-Google SecOps.
  5. בודקים אם יש שגיאות בהעלאה ביומני השגיאות של הפיד.

הודעת שגיאה מוחזרת מייצוא הנתונים

סיבות נפוצות לשגיאות:

  • פרטי כניסה לא תקינים: מפתח ה-API או המפתח הסודי שגויים או שתוקפם פג.
  • חוסר התאמה באזור: האזור של כתובת ה-URL של נקודת הקצה של Google SecOps לא תואם למופע שלכם.
  • הרשאות: הגישה ל-Chronicle API לא מופעלת במפתח ה-API.
  • בעיות ברשת: חומת אש או שרת proxy חוסמים חיבורי HTTPS יוצאים.

טבלת מיפוי UDM

שדה היומן מיפוי UDM לוגיקה
פעם metadata.collected_timestamp ההמרה מתבצעת באמצעות פורמט התאריך: yyyy-MM-dd HH:mm:ss Z UTC
metadata.event_type הערך הוא STATUS_UPDATE אם principal_ip_present,‏ principal_hostname_present או principal_mac_present הוא true, אחרת הערך הוא GENERIC_EVENT
question_type network.dns.questions הומר question_type ל-question.type באמצעות מיפוי סוג רשומת DNS, ואז בוצע מיזוג למערך
קוד network.dns.response_code ההמרה בוצעה באמצעות מיפוי של קודי תגובה של DNS
פרוטוקול network.ip_protocol המרת כתובות באמצעות מיפוי פרוטוקול IP
לקוח principal.hostname הערך הועתק ישירות
request_address, ip4, ip6, source_addresses principal.ip מוזגו מהבקשה request_address (כתובת IP שחולצה), ip4 (כתובת IP שחולצה), ip6 (כתובת IP שחולצה) וכתובות IP שחולצו מהמערך source_addresses
אזור principal.location.country_or_region הערך הועתק ישירות
clientMac principal.mac הערך מועתק ישירות אם הוא תואם לביטוי הרגולרי של כתובת ה-MAC
clientID principal.resource.product_object_id הערך הועתק ישירות
שם משתמש principal.user.user_display_name הערך הועתק ישירות
user_id principal.user.userid הערך הועתק ישירות
code, original_code, clientType, collection, network_name, networkID, collectionID, policy, policyID, scheduled_policy, scheduled_policyID, sec_cats, sec_allow_cats, block_cats, block_allow_cats, threat, allowed, method, organization, organizationID, applicationID, application_name, application_categoryID, application_category_name security_result.detection_fields תוויות שמוזגו משדות מקור שונים כצמדי מפתח/ערך
דומיין target.administrative_domain הערך הועתק ישירות
fqdn target.domain.name הערך הועתק ישירות
metadata.product_name ההגדרה היא DNSFILTER
metadata.vendor_name ההגדרה היא DNSFILTER

שנה רישום

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

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