איסוף יומנים של Tanium Threat Response

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומנים של Tanium Threat Response ב-Google Security Operations באמצעות פונקציית הייצוא המקורית של Tanium Connect ל-AWS S3. ‫Tanium Threat Response יוצר התראות על זיהוי איומים, ממצאי חקירה ונתוני תגובה לאירועים בפורמט JSON, שאפשר לייצא ישירות ל-S3 באמצעות Tanium Connect בלי להשתמש בפונקציות Lambda בהתאמה אישית. הכלי לניתוח נתונים הופך נתוני JSON גולמיים מ-Tanium Threat Response למודל נתונים מאוחד (UDM). הוא מנסה קודם לנתח את ההודעה הנכנסת כ-JSON, מטפל בשגיאות פוטנציאליות, ואז מחלץ וממפה שדות רלוונטיים למבנה UDM, כולל פרטים על המארח, המשתמש, התהליך, פעילות הרשת וממצאי האבטחה שהושפעו.

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

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

  • מופע של Google SecOps
  • Tanium Core Platform גרסה 7.0 ואילך
  • מודול Tanium Threat Response מותקן ומוגדר
  • מודול Tanium Connect מותקן עם רישיון תקף
  • Tanium Direct Connect בגרסה 1.9.30 ואילך לצורך יכולות חקירה
  • גישת פריבילגיה ל-Tanium Console עם הרשאות אדמין
  • גישת אדמין ל-AWS‏ (S3, ‏ IAM)

הגדרת חשבון שירות של Tanium Threat Response

  1. נכנסים ל-Tanium Console.
  2. עוברים אל Modules > Threat Response.
  3. לוחצים על הגדרות בפינה השמאלית העליונה.
  4. בקטע Service Account (חשבון שירות), מגדירים את האפשרויות הבאות:
    • משתמש בחשבון שירות: בוחרים משתמש עם הרשאות מתאימות ל-Threat Response.
    • מוודאים שלחשבון יש הרשאה של תפקיד משתמש עם גישת Connect.
    • מאשרים גישה להתראות של Threat Response ולנתוני חקירה.
  5. לוחצים על Save כדי להחיל את ההגדרה של חשבון השירות.

איסוף דרישות מוקדמות של Tanium Threat Response

  1. נכנסים ל-Tanium Console כאדמינים.
  2. עוברים אל ניהול > הרשאות > משתמשים.
  3. יוצרים או מאתרים משתמש בחשבון שירות עם התפקידים הבאים:
    • תפקיד אדמין של תגובה לאיומים או משתמש עם הרשאת קריאה בלבד של תגובה לאיומים.
    • הרשאת התפקיד Connect User.
    • גישה לקבוצות מחשבים שנמצאות במעקב (מומלץ: קבוצת כל המחשבים).
    • הרשאה Read Saved Question עבור ערכות תוכן של Threat Response.

הגדרה של קטגוריית AWS S3 ו-IAM ל-Google SecOps

  1. יוצרים קטגוריה ב-Amazon S3 לפי מדריך המשתמש הזה: יצירת קטגוריה
  2. שומרים את השם של ה-bucket ואת האזור לעיון בעתיד (לדוגמה, tanium-threat-response-logs).
  3. יוצרים משתמש לפי מדריך המשתמש הזה: יצירת משתמש IAM.
  4. בוחרים את המשתמש שנוצר.
  5. לוחצים על הכרטיסייה פרטי כניסה לאבטחה.
  6. בקטע מפתחות גישה, לוחצים על יצירת מפתח גישה.
  7. בוחרים באפשרות שירות של צד שלישי בתור תרחיש השימוש.
  8. לוחצים על הבא.
  9. אופציונלי: מוסיפים תג תיאור.
  10. לוחצים על Create access key (יצירת מפתח גישה).
  11. לוחצים על הורדת קובץ CSV כדי לשמור את מפתח הגישה ואת מפתח הגישה הסודי לשימוש מאוחר יותר.
  12. לוחצים על סיום.
  13. לוחצים על הכרטיסייה Permissions (הרשאות).
  14. בקטע Permissions policies, לוחצים על Add permissions.
  15. לוחצים על הוספת הרשאות.
  16. בוחרים באפשרות צירוף מדיניות ישירות.
  17. מחפשים את המדיניות AmazonS3FullAccess ובוחרים בה.
  18. לוחצים על הבא.
  19. לוחצים על הוספת הרשאות.

הגדרת יעד AWS S3 ב-Tanium Connect

  1. נכנסים ל-Tanium Console.
  2. עוברים אל Modules > Connect (מודולים > חיבור).
  3. לוחצים על יצירת חיבור.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם: מזינים שם תיאורי (לדוגמה, Threat Response Alerts to S3 for SecOps).
    • תיאור: תיאור אופציונלי (לדוגמה, Export threat detection alerts and investigation findings to AWS S3 for Google SecOps ingestion).
    • הפעלה: בוחרים באפשרות הזו כדי להפעיל את החיבור כך שיפעל לפי לוח הזמנים.
  5. לוחצים על הבא.

הגדרת מקור החיבור

  1. בקטע מקור, מציינים את פרטי ההגדרה הבאים:
    • סוג המקור: בוחרים באפשרות שאלה שמורה.
    • שאלה שמורה: בוחרים אחת מהשאלות השמורות הבאות שקשורות לתגובה לאיומים:
      • תגובה לאיומים – התראות להתראות על זיהוי איומים.
      • תגובה לאיומים – תוצאות החקירה לתוצאות החקירה.
      • תגובה לאיומים – התאמות לנתוני מודיעין להתאמות לנתוני מודיעין איומי סייבר.
      • תגובה לאיומים – פעילות בנקודת קצה כדי לראות פעילות חשודה בנקודת קצה.
      • תגובה לאיומים – חיבורים לרשת לאיומים שמבוססים על רשת.
    • קבוצת מחשבים: בוחרים באפשרות כל המחשבים או בקבוצות מחשבים ספציפיות למעקב.
    • מרווח רענון: מגדירים מרווח מתאים לאיסוף הנתונים (לדוגמה, 10 דקות להתראות על איומים).
  2. לוחצים על הבא.

הגדרת יעד ב-AWS S3

  1. בקטע יעד, מספקים את פרטי ההגדרה הבאים:
    • סוג היעד: בוחרים באפשרות AWS S3.
    • שם היעד: מזינים שם ייחודי (לדוגמה, Google SecOps ThreatResponse S3 Destination).
    • מפתח גישה ל-AWS: מזינים את מפתח הגישה ל-AWS מקובץ ה-CSV שהורדתם בשלב ההגדרה של AWS S3.
    • מפתח גישה סודי של AWS: מזינים את מפתח הגישה הסודי של AWS מקובץ ה-CSV שהורד בשלב ההגדרה של AWS S3.
    • שם הקטגוריה: מזינים את שם הקטגוריה ב-S3 (לדוגמה, tanium-threat-response-logs).
    • אזור: בוחרים את אזור AWS שבו נמצאת קטגוריית ה-S3.
    • Key Prefix (קידומת מפתח): מזינים קידומת לאובייקטים ב-S3 (לדוגמה, tanium/threat-response/).
  2. לוחצים על הבא.

הגדרת מסננים

  1. בקטע Filters, מגדירים את אפשרויות סינון הנתונים:
    • שליחת פריטים חדשים בלבד: בוחרים באפשרות הזו כדי לשלוח רק התראות חדשות על איומים מאז הייצוא האחרון.
    • מסנני עמודות: אם צריך, אפשר להוסיף מסננים על סמך מאפיינים ספציפיים של התראות (לדוגמה, סינון לפי חומרת ההתראה, סוג האיום או סטטוס החקירה).
  2. לוחצים על הבא.

עיצוב נתונים ל-AWS S3

  1. בקטע Format (פורמט), מגדירים את פורמט הנתונים:
    • פורמט: בוחרים באפשרות JSON.
    • אפשרויות:
      • כולל כותרות: מבטלים את הסימון כדי שהכותרות לא ייכללו בפלט JSON.
      • כולל תאים ריקים: בוחרים לפי ההעדפה.
    • אפשרויות מתקדמות:
      • שמות קבצים: שימוש בשמות שמתבססים על חותמת זמן כברירת מחדל.
      • דחיסה: בוחרים באפשרות Gzip כדי לצמצם את עלויות האחסון ואת זמן ההעברה.
  2. לוחצים על הבא.

תזמון החיבור

  1. בקטע Schedule (לוח זמנים), מגדירים את לוח הזמנים לייצוא:
    • הפעלת תזמון: בוחרים באפשרות הזו כדי להפעיל ייצוא אוטומטי מתוזמן.
    • סוג התזמון: בוחרים באפשרות חוזר.
    • תדירות: בוחרים באפשרות כל 10 דקות כדי לקבל התראות בזמן אמת על תגובות לאיומים.
    • שעת התחלה: מגדירים שעת התחלה מתאימה לייצוא הראשון.
  2. לוחצים על הבא.

שמירה ואימות של החיבור

  1. בודקים את הגדרות החיבור במסך הסיכום.
  2. לוחצים על שמירה כדי ליצור את הקישור.
  3. לוחצים על בדיקת החיבור כדי לוודא שההגדרה תקינה.
  4. אם הבדיקה תסתיים בהצלחה, לוחצים על הפעלה מיידית כדי לבצע ייצוא ראשוני.
  5. עוקבים אחרי סטטוס החיבור בדף Connect Overview.

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

  1. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  2. לוחצים על + הוספת פיד חדש.
  3. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Tanium Threat Response logs).
  4. בוחרים באפשרות Amazon S3 V2 בתור סוג המקור.
  5. בוחרים באפשרות Tanium Threat Response בתור סוג היומן.
  6. לוחצים על הבא.
  7. מציינים ערכים לפרמטרים הבאים של הקלט:
    • S3 URI: s3://tanium-threat-response-logs/tanium/threat-response/
    • אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה לפי ההעדפה.
    • הגיל המקסימלי של הקובץ: כולל קבצים ששונו במספר הימים האחרון. ברירת המחדל היא 180 ימים.
    • מזהה מפתח הגישה: מפתח הגישה של המשתמש עם גישה לקטגוריית S3.
    • מפתח גישה סודי: מפתח סודי של משתמש עם גישה לקטגוריית S3.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות של נתוני אירועים: התווית שמוחלת על האירועים מהפיד הזה.
  8. לוחצים על הבא.
  9. בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM לוגיקה
מזהה ההתראה security_result.rule_instance הערך של השדה הזה נלקח מהשדה 'מזהה ההתראה' ביומן הגולמי.
כתובת ה-IP של המחשב principal.ip הערך של השדה הזה נלקח מהשדה 'כתובת ה-IP של המחשב' ביומן הגולמי.
כתובת ה-IP של המחשב target.ip הערך של השדה הזה נלקח מהשדה 'כתובת ה-IP של המחשב' ביומן הגולמי.
שם המחשב principal.hostname הערך של השדה הזה נלקח מהשדה Computer Name (שם המחשב) ביומן הגולמי.
שם המחשב target.hostname הערך של השדה הזה נלקח מהשדה Computer Name (שם המחשב) ביומן הגולמי.
id target.resource.attribute.labels הערך של השדה הזה נלקח מהשדה id ביומן הגולמי. המפתח מקודד באופן קשיח ל-id.
מזהה Intel security_result.rule_id הערך של השדה הזה נלקח מהשדה Intel Id ביומן הגולמי.
תוויות Intel security_result.description הערך של השדה הזה נלקח מהשדה Intel Labels (תוויות של Intel) ביומן הגולמי.
שם Intel security_result.summary הערך של השדה הזה נלקח מהשדה Intel Name (שם Intel) ביומן הגולמי.
שם Intel security_result.threat_name הערך של השדה הזה נלקח מהשדה 'שם Intel' ביומן הגולמי.
סוג Intel security_result.rule_type הערך של השדה הזה נלקח מהשדה Intel Type (סוג המידע) ביומן הגולמי.
MatchDetails.finding.system_info.bits principal.asset.platform_software.bits הערך של השדה הזה נלקח מהשדה MatchDetails.finding.system_info.bits ביומן הגולמי.
MatchDetails.finding.system_info.os principal.asset.platform_software.platform_version הערך של השדה הזה נלקח מהשדה MatchDetails.finding.system_info.os ביומן הגולמי.
MatchDetails.finding.system_info.patch_level principal.asset.platform_software.platform_patch_level הערך של השדה הזה נלקח מהשדה MatchDetails.finding.system_info.patch_level ביומן הגולמי.
MatchDetails.finding.system_info.platform principal.asset.platform_software.platform הערך של השדה הזה נלקח מהשדה MatchDetails.finding.system_info.platform ביומן הגולמי.
MatchDetails.match.contexts.0.event.registrySet.keyPath target.registry.registry_key הערך של השדה הזה נלקח מהשדה MatchDetails.match.contexts.0.event.registrySet.keyPath ביומן הגולמי.
MatchDetails.match.contexts.0.event.registrySet.valueName target.registry.registry_value_name הערך של השדה הזה נלקח מהשדה MatchDetails.match.contexts.0.event.registrySet.valueName ביומן הגולמי.
MatchDetails.match.properties.args security_result.about.process.command_line הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.args ביומן הגולמי.
MatchDetails.match.properties.file.fullpath target.process.file.full_path הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.file.fullpath ביומן הגולמי.
MatchDetails.match.properties.file.md5 target.process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.file.md5 ביומן הגולמי.
MatchDetails.match.properties.file.sha1 target.process.file.sha1 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.file.sha1 ביומן הגולמי.
MatchDetails.match.properties.file.sha256 target.process.file.sha256 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.file.sha256 ביומן הגולמי.
MatchDetails.match.properties.fullpath target.process.file.full_path הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.fullpath ביומן הגולמי.
MatchDetails.match.properties.local_port principal.port הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.local_port ביומן הגולמי.
MatchDetails.match.properties.md5 target.process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.args security_result.about.process.command_line הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.args ביומן הגולמי.
MatchDetails.match.properties.parent.file.fullpath target.process.parent_process.file.full_path הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.file.fullpath ביומן הגולמי.
MatchDetails.match.properties.parent.file.md5 target.process.parent_process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.file.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.parent.file.fullpath target.process.parent_process.parent_process.file.full_path הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.file.fullpath ביומן הגולמי.
MatchDetails.match.properties.parent.parent.file.md5 target.process.parent_process.parent_process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.file.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.file.full_path הערך של השדה הזה נלקח מהשדה 'MatchDetails.match.properties.parent.parent.parent.file.fullpath' ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.file.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.file.full_path הערך בשדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.parent.file.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.full_path הערך של השדה הזה נלקח מהשדה 'MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath' ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.md5 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 ביומן הגולמי.
MatchDetails.match.properties.parent.pid target.process.parent_process.pid הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.pid ביומן הגולמי.
MatchDetails.match.properties.parent.parent.pid target.process.parent_process.parent_process.pid הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.pid ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.pid הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.pid ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.pid הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.parent.pid ביומן הגולמי.
MatchDetails.match.properties.parent.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid הערך בשדה הזה נלקח מהשדה MatchDetails.match.properties.parent.parent.parent.parent.parent.pid ביומן הגולמי.
MatchDetails.match.properties.pid target.process.pid הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.pid ביומן הגולמי.
MatchDetails.match.properties.protocol network.ip_protocol הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.protocol ביומן הגולמי.
MatchDetails.match.properties.remote_ip target.ip הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.remote_ip ביומן הגולמי.
MatchDetails.match.properties.remote_port target.port הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.remote_port ביומן הגולמי.
MatchDetails.match.properties.sha1 target.process.file.sha1 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.sha1 ביומן הגולמי.
MatchDetails.match.properties.sha256 target.process.file.sha256 הערך של השדה הזה נלקח מהשדה MatchDetails.match.properties.sha256 ביומן הגולמי.
MatchDetails.match.properties.user target.administrative_domain שם הדומיין מחולץ מהשדה MatchDetails.match.properties.user ביומן הגולמי על ידי חיפוש של תו קו נטוי הפוך (""). התווים לפני הקו הנטוי ההפוך נחשבים לשם הדומיין.
MatchDetails.match.properties.user target.user.userid שם המשתמש מחולץ מהשדה MatchDetails.match.properties.user ביומן הגולמי על ידי חיפוש של התו 'קו נטוי הפוך' (""). התווים אחרי הקו הנטוי ההפוך נחשבים לשם המשתמש.
טכניקות MITRE security_result.threat_id הערך של השדה הזה נלקח מהשדה MITRE Techniques ביומן הגולמי.
params security_result.detection_fields הערך של השדה הזה נלקח מהשדה params ביומן הגולמי. המפתח מקודד באופן קשיח ל-params_‎ בצירוף האינדקס של הפרמטר.
חותמת הזמן metadata.event_timestamp הערך של השדה הזה נלקח מהשדה Timestamp (חותמת זמן) ביומן הגולמי.
לא רלוונטי is_alert השדה הזה מקודד כ-true אם השדה Computer IP (כתובת ה-IP של המחשב) ביומן הגולמי לא ריק.
לא רלוונטי metadata.log_type השדה הזה מקודד באופן קשיח לערך 'TANIUM_THREAT_RESPONSE'.
לא רלוונטי metadata.product_event_type השדה הזה מקודד באופן קשיח ל-Tanium Signal.
לא רלוונטי metadata.product_name השדה הזה מקודד כ-"Threat Response".
לא רלוונטי metadata.vendor_name השדה הזה מקודד באופן קשיח ל-Tanium.
לא רלוונטי network.http.method השדה הזה מקודד באופן קשיח לערך POST אם הערך של השדה method ביומן הגולמי הוא submit.

שנה רישום

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

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