איסוף יומנים של Google Cloud DNS Threat Detector

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

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומנים של Google Cloud DNS Threat Detector ב-Google Security Operations באמצעות Google Cloud Storage V2.

‫DNS Armor, שמופעל על ידי Infoblox, הוא שירות מנוהל מלא שמספק אבטחה בשכבת ה-DNS לעומסי העבודה שלכם ב-Google Cloud. הכלי המתקדם לזיהוי איומים נועד לזהות פעילות זדונית בשלב המוקדם ביותר בשרשרת התקיפה, כלומר בשאילתת ה-DNS, בלי להוסיף מורכבות תפעולית או עומס יתר על הביצועים. אחרי שזוהה איום, אפשר לקבל תובנות פרקטיות לגבי איומי DNS באמצעות Cloud Logging.

כשמפעילים גלאי איומים ב-DNS עבור פרויקט, DNS Armor שולח בצורה מאובטחת את יומני שאילתות ה-DNS שמוגבלות לאינטרנט למנוע הניתוח שמבוסס על Google Cloud ומופעל על ידי Infoblox. המנוע הזה משתמש בשילוב של פידים של מודיעין איומי סייבר וניתוח התנהגותי מבוסס-AI כדי לזהות איומים. כל פעילות זדונית שמזוהה יוצרת יומן איומים של DNS Armor, שנשלח בחזרה לפרויקט ונכתב ב-Cloud Logging כדי שתוכלו לצפות בו ולפעול בהתאם.

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

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

  • מופע של Google SecOps.
  • פרויקט ב-GCP עם Cloud Storage API מופעל.
  • הרשאות ליצירה ולניהול של קטגוריות GCS.
  • הרשאות לניהול מדיניות IAM בקטגוריות GCS.
  • ‫Network Security API מופעל בפרויקט.
  • התפקידים שצריך ב-IAM כדי להפעיל כלי לזיהוי איומים ב-DNS.
  • הרשאות לצפייה ביומני איומים של DNS: ‏resourcemanager.projects.get, ‏ resourcemanager.projects.list, ‏ networksecurity.dnsThreatDetectors.get, ‏ networksecurity.dnsThreatDetectors.list או התפקידים roles/networksecurity.dnsThreatDetectorViewer ו-roles/logging.viewer.

יצירת קטגוריה של Google Cloud Storage

  1. נכנסים אל מסוף Google Cloud.
  2. בוחרים פרויקט או יוצרים פרויקט חדש.
  3. בתפריט הניווט, עוברים אל Cloud Storage > Buckets.
  4. לוחצים על Create bucket.
  5. מזינים את פרטי ההגדרה הבאים:

    הגדרה ערך
    Name your bucket (שם הקטגוריה) מזינים שם ייחודי גלובלית (לדוגמה, dns-threat-detector-logs)
    סוג מיקום בוחרים לפי הצרכים שלכם (אזור, בשני אזורים, במספר אזורים)
    Location בוחרים את המיקום (לדוגמה, us-central1).
    סוג אחסון (storage class) רגיל (מומלץ ליומנים שמתבצעת אליהם גישה לעיתים קרובות)
    בקרת גישה אחיד (מומלץ)
    כלים להגנה אופציונלי: הפעלת ניהול גרסאות של אובייקטים או מדיניות שמירת נתונים
  6. לוחצים על יצירה.

יצירת כלי לזיהוי איומים ב-DNS

בקטע הזה מוסבר איך ליצור כלי לזיהוי איומים ב-DNS כדי לעקוב אחרי פעילות זדונית ב-DNS שמוגבלת לאינטרנט ברשתות VPC.

אפשר להפעיל רק גלאי איומים אחד של DNS לכל פרויקט.

שימוש במסוף Google Cloud

  1. נכנסים לדף Advanced threat detection במסוף Google Cloud.
  2. לוחצים על יצירת כלי לזיהוי איומים ב-DNS.
  3. מזינים שם לגלאי האיומים ב-DNS.
  4. בוחרים באפשרות All VPC networks in the project (כל רשתות ה-VPC בפרויקט).
  5. לוחצים על יצירה.

שימוש בכלי שורת הפקודה של Google Cloud

אפשר גם ליצור גלאי איומי DNS באמצעות הפקודה gcloud:

gcloud beta network-security dns-threat-detectors create my-dns-threat-detector \
--location=global \
--project=PROJECT_ID \
--provider="infoblox"

מחליפים את: - my-dns-threat-detector: השם של הכלי לזיהוי איומים ב-DNS. ‫- PROJECT_ID: מזהה הפרויקט.

הגדרת Cloud Logging לייצוא יומנים של DNS Threat Detector ל-GCS

יומני האיומים של DNS Armor נכתבים ב-Cloud Logging. כדי לייצא את היומנים האלה לקטגוריה של GCS, צריך להגדיר sink ביומן.

  1. ב-מסוף Google Cloud, עוברים אל רישום ביומן > Logs Router.
  2. לוחצים על Create sink (יצירת יעד).
  3. מזינים את פרטי ההגדרה הבאים:
    • שם יעד: מזינים שם תיאורי (לדוגמה, dns-threat-detector-to-gcs).
    • תיאור של יעד: תיאור אופציונלי.
  4. לוחצים על הבא.
  5. בקטע Select sink service (בחירת שירות יעד):
    • שירות היעד: בוחרים באפשרות קטגוריה של Cloud Storage.
    • בחירת קטגוריה של Cloud Storage: בוחרים את הקטגוריה (לדוגמה, dns-threat-detector-logs) מהתפריט הנפתח.
  6. לוחצים על הבא.
  7. בקטע Choose logs to include in sink (בחירת יומנים שיכללו ב-sink), מזינים את שאילתת המסנן הבאה:

    resource.type="networksecurity.googleapis.com/DnsThreatDetector"
    logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2FDnsThreatDetector"
    

מחליפים את PROJECT_ID במזהה הפרויקט ב-GCP.

  1. לוחצים על הבא.
  2. בודקים את ההגדרות ולוחצים על Create sink.

שימוש בכלי שורת הפקודה של Google Cloud

אפשר גם ליצור sink ביומן באמצעות הפקודה gcloud:

gcloud logging sinks create dns-threat-detector-to-gcs \
    gs://dns-threat-detector-logs \
    --log-filter='resource.type="networksecurity.googleapis.com/DnsThreatDetector" AND logName="projects/PROJECT_ID/logs/networksecurity.googleapis.com%2FDnsThreatDetector"' \
    --project=PROJECT_ID

מחליפים את: - dns-threat-detector-logs: שם הקטגוריה שלכם ב-GCS. ‫– PROJECT_ID: מזהה הפרויקט ב-GCP.

אחזור חשבון השירות של Google SecOps

‫Google SecOps משתמש בחשבון שירות ייחודי כדי לקרוא נתונים ממאגר GCS שלכם. צריך להעניק לחשבון השירות הזה גישה לדלי.

הגדרת פיד ב-Google SecOps להטמעה של יומנים של Google Cloud DNS Threat Detector

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, GCP DNS Threat Detector Logs).
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Google Cloud DNS Threat Detector (גלאי האיומים של Google Cloud DNS) בתור סוג היומן.

  7. לוחצים על Get Service Account (קבלת חשבון שירות).

  8. תוצג כתובת האימייל בחשבון שירות ייחודי, לדוגמה:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. מעתיקים את כתובת האימייל הזו. תשתמשו בו בשלב הבא.

  10. לוחצים על הבא.

  11. מציינים ערכים לפרמטרים הבאים של הקלט:

    • כתובת ה-URL של קטגוריית האחסון: מזינים את ה-URI של קטגוריית GCS עם נתיב הקידומת:

      gs://dns-threat-detector-logs/
      

      מחליפים את:

      • dns-threat-detector-logs: שם דלי ה-GCS.
    • אפשרות מחיקת המקור: בוחרים את אפשרות המחיקה הרצויה:
      • אף פעם: לא נמחקים קבצים אחרי ההעברה (מומלץ לבדיקות).
      • מחיקת קבצים שהועברו: הקבצים נמחקים אחרי שההעברה מסתיימת בהצלחה.
      • מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות אחרי שההעברה מסתיימת בהצלחה.
    • הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה.
  12. לוחצים על הבא.

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

הענקת הרשאות IAM לחשבון השירות של Google SecOps

לחשבון השירות של Google SecOps צריך להיות התפקיד צפייה באובייקט אחסון בקטגוריית GCS.

  1. נכנסים אל Cloud Storage > Buckets (קטגוריות).
  2. לוחצים על שם הקטגוריה (לדוגמה, dns-threat-detector-logs).
  3. עוברים לכרטיסייה Permissions.
  4. לוחצים על הענקת גישה.
  5. מזינים את פרטי ההגדרה הבאים:
    • Add principals (הוספת ישויות מורשות): מדביקים את כתובת האימייל בחשבון של חשבון השירות של Google SecOps.
    • הקצאת תפקידים: בוחרים באפשרות צפייה באובייקט אחסון.
  6. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM לוגיקה
record.jsonPayload.dnsQuery.responseCode, record.jsonPayload.dnsQuery.authAnswer, record.jsonPayload.dnsQuery.queryTime, record.jsonPayload.partnerId, record.jsonPayload.detectionTime, record.logName additional.fields הערכים מועתקים למפת התוספים, ואז מתבצע מיזוג כרשומות במפה עם הערך string_value אם הוא לא ריק
record.receiveTimestamp metadata.collected_timestamp מנותח כחותמת זמן בפורמט ISO8601
metadata.event_type הערך הוא NETWORK_CONNECTION אם יש has_principal ו-has_target,‏ STATUS_UPDATE אם יש has_principal, אחרת GENERIC_EVENT
record.timestamp metadata.event_timestamp מנותח כחותמת זמן בפורמט ISO8601
record.insertId metadata.product_log_id הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.rdata network.dns.answers הערך מועתק אל answer.data, ואז מתבצע מיזוג כמערך אם הוא לא ריק
record.jsonPayload.dnsQuery.queryName, record.jsonPayload.dnsQuery.queryType network.dns.questions questions.name מ-queryName, ‏ questions.type ממופה ממחרוזת queryType למספר שלם, ואז מתבצע מיזוג כמערך אם הוא לא ריק
record.jsonPayload.dnsQuery.responseCode network.dns.response_code מיפוי ממחרוזת למספר שלם באמצעות טבלה מוגדרת מראש
record.jsonPayload.dnsQuery.protocol network.ip_protocol הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.sourceIp principal.asset.ip הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.sourceIp principal.ip הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.location principal.location.country_or_region הערך מועתק ישירות אם הוא לא ריק
record.resource.labels.location principal.location.name הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.vmProjectNumber, record.jsonPayload.dnsQuery.projectNumber principal.resource.attribute.labels הערכים מועתקים למפת התוספות, ואז מתבצע מיזוג כרשומות במפה אם היא לא ריקה
record.jsonPayload.dnsQuery.vmInstanceId principal.resource.id הערך מועתק ישירות אם הוא לא ריק
record.resource.labels.id principal.resource.product_object_id הערך מועתק ישירות אם הוא לא ריק
record.resource.type principal.resource.type הערך מועתק ישירות אם הוא לא ריק
security_result מוזג ממפת built security_result
record.jsonPayload.threatInfo.confidence security_result.confidence הערך LOW_CONFIDENCE אם יש התאמה ל- (?i)Low, הערך MEDIUM_CONFIDENCE אם יש התאמה ל- (?i)Medium, הערך HIGH_CONFIDENCE אם יש התאמה ל- (?i)High
record.jsonPayload.threatInfo.threatDescription security_result.description הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.threatInfo.threatIndicatorType, record.jsonPayload.threatInfo.threatIndicator, record.jsonPayload.threatInfo.threatFeed, record.jsonPayload.threatInfo.category, record.jsonPayload.threatInfo.type, record.jsonPayload.threatInfo.threat, record.jsonPayload.threatInfo.severity, record.resource.labels.resource_container security_result.detection_fields הערכים מועתקים למפת התוספות, ואז מתבצע מיזוג כרשומות במפה אם היא לא ריקה
record.severity security_result.severity המיפוי הוא LOW אם (?i)Low, ‏ INFORMATIONAL אם (?i)(Informational|Info), ‏ MEDIUM אם (?i)Medium, ‏ CRITICAL אם (?i)Critical, ‏ HIGH אם (?i)High
record.jsonPayload.threatInfo.threatId security_result.threat_id הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.destinationIp target.asset.ip הערך מועתק ישירות אם הוא לא ריק
record.jsonPayload.dnsQuery.destinationIp target.ip הערך מועתק ישירות אם הוא לא ריק
metadata.vendor_name הגדרה כ-Google Cloud
metadata.product_name ההגדרה היא Google Cloud DNS Threat Detector

שנה רישום

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

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