איסוף יומנים של Halcyon Anti-Ransomware

נתמך ב:

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

‫Halcyon היא פלטפורמה למניעת תוכנות כופר שמשתמשת ב-AI כדי לזהות מתקפות של תוכנות כופר, למנוע אותן ולשחזר נתונים שנפגעו. הוא יוצר התראות לגבי אירועים של זיהוי תוכנות כופר, ניסיונות הצפנה ופעולות שחזור. הכלי לניתוח מחלק שדות יומן בפורמט JSON למודל נתונים מאוחד (UDM), ומטפל בסוגי אירועים כמו פעולות על קבצים, פעילות משתמשים ותוצאות אבטחה.

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

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

  • מופע של Google SecOps
  • פרויקט ב-GCP שבו מופעל Cloud Storage API
  • הרשאות ליצירה ולניהול של קטגוריות GCS ומדיניות IAM
  • גישה עם הרשאות למסוף Halcyon עם יכולות ייצוא יומנים

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

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

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

ייצוא יומנים של Halcyon ל-Google Cloud Storage

‫Halcyon תומך בייצוא נתוני יומן בפורמט JSON. כדי להעביר יומנים ל-GCS, אפשר להשתמש באחת מהגישות הבאות.

אפשרות א': ייצוא יומנים באמצעות Halcyon API והעלאה ל-GCS

  1. נכנסים למסוף הניהול של Halcyon.
  2. עוברים אל הגדרות > גישת API ויוצרים מפתח API עם הרשאות קריאה.
  3. מעתיקים את מפתח ה-API ושומרים אותו.
  4. משתמשים בסקריפט מתוזמן או בפונקציית Cloud Run כדי לקרוא ל-Halcyon API בארכיטקטורת REST, לאחזר יומני אירועים ולכתוב אותם ב-GCS בפורמט JSON.

אפשרות ב': הגדרת שילוב עם SIEM והעברה ל-GCS

  1. נכנסים למסוף הניהול של Halcyon.
  2. עוברים אל הגדרות > שילובים > SIEM.
  3. מגדירים את יעד ייצוא היומן כדי לכתוב אירועים בפורמט JSON לספרייה מקומית או לאחסון ביניים.
  4. משתמשים בפונקציית Cloud Run כדי להעלות יומנים מדי פעם לקטגוריה של GCS.

    • מוודאים שהקבצים שיוצאו הם בפורמט JSON.
    • כל קובץ צריך להכיל רשומת אירוע אחת או יותר.

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
  3. לוחצים על הוספת פיד חדש.
  4. לוחצים על Configure a single feed (הגדרת פיד יחיד).
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Halcyon Anti Ransomware בתור סוג היומן.
  7. לוחצים על קבלת חשבון שירות. תוצג כתובת האימייל בחשבון שירות ייחודי, לדוגמה:

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

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

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

    • אם אתם מתכננים להשתמש באפשרות המחיקה (מחיקת קבצים שהועברו), צריך להעניק את התפקיד Storage Object Admin במקום Storage Object Viewer.

הגדרת פיד ב-Google SecOps להטמעה של יומנים של Halcyon Anti-Ransomware

  1. עוברים אל SIEM Settings > Feeds.
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על Configure a single feed (הגדרת פיד יחיד).
  4. בשדה שם הפיד, מזינים שם לפיד (לדוגמה, Halcyon Anti-Ransomware logs).
  5. בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
  6. בוחרים באפשרות Halcyon Anti Ransomware בתור סוג היומן.
  7. לוחצים על הבא.
  8. מציינים ערכים לפרמטרים הבאים של הקלט:

    שדה ערך
    URI של קטגוריית אחסון gs://halcyon-logs/halcyon/events/
    אפשרות למחיקת מקור בוחרים את אפשרות המחיקה הרצויה.
    גיל מקסימלי של הקובץ (ימים) ברירת המחדל היא 180 ימים
    מרחב שמות של נכס מרחב השמות של הנכס
    תוויות הטמעה התווית שתתווסף לאירועים מהפיד הזה
    • מחליפים את halcyon-logs בשם האמיתי של קטגוריית GCS.
    • תמיד צריך לכלול את הקו הנטוי (/) בסוף ה-URI.
  9. לוחצים על הבא.

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

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
sshd, ‏ tty, ‏ euid, ‏ dataType, ‏ filterName, ‏ totalOccurrences, ‏ occurredAt, ‏ count, ‏ occurrences.IncorrectPasswords, ‏ occurrences.FailedPassword, ‏ occurrences.AuthFailure, ‏ policyMode, ‏ action additional.fields אם יש תוויות שנוצרו מכל שדה, הן ימוזגו עם התוויות האלה. השדות totalOccurrences, ‏ count ו-occurrences יומרו למחרוזת.
dnsArtifact.uri network.dns.questions מוזג עם מערך השאלות שמכיל את השם
asset.id principal.asset.asset_id מחובר כמחרוזת 'ASSET:' + asset.id
asset.kind principal.asset.attribute.labels הנכס מוזג עם asset_kind_label שנוצר מ-asset.kind
asset.name principal.asset.hostname הערך הועתק ישירות
ipArtifact.ipAddress principal.asset.ip הערך הועתק ישירות
summary.applicationName principal.application הערך הועתק ישירות
phost, asset.name principal.hostname הערך מ-phost אם הוא קיים, ומוחלף על ידי asset.name אם הוא קיים
ipArtifact.ipAddress principal.ip הערך הועתק ישירות
process.commandLine principal.process.command_line הערך הועתק ישירות
modifiedFilePath, artifact.filePath, process.artifact.filePath, processes.artifact.filePath principal.process.file.full_path הערך מוגדר ל-modifiedFilePath אם הוא קיים, מוחלף על ידי artifact.filePath אם הוא קיים, מוחלף על ידי process.artifact.filePath אם הוא קיים, מוחלף על ידי processes.artifact.filePath אם הוא קיים (המרכאות הוסרו עבור processes.artifact.filePath)
lastOccurredAt principal.process.file.last_seen_time ההמרה בוצעה באמצעות מסנן תאריכים בפורמט ISO8601
process.artifact.kind, artifact.kind, primaryProcess.artifact.kind principal.process.file.mime_type הערך של process.artifact.kind אם הוא קיים, מוחלף על ידי artifact.kind אם הוא קיים, מוחלף על ידי primaryProcess.artifact.kind אם הוא קיים
artifact.sha256, process.artifact.sha256, processes.artifact.sha256 principal.process.file.sha256 הערך מ-artifact.sha256 אם הוא קיים, מוחלף על ידי process.artifact.sha256 אם הוא קיים, מוחלף על ידי processes.artifact.sha256 אם הוא קיים
process.parentPid principal.process.parent_pid הערך הועתק ישירות
process.pid principal.process.pid הערך הועתק ישירות
user_displayname principal.user.user_display_name הערך הועתק ישירות
משתמש principal.user.userid הערך הועתק ישירות
summary.artifact.filePath target.file.full_path הערך הועתק ישירות
summary.artifact.sha256 target.file.sha256 הערך הועתק ישירות
primaryProcess.commandLine target.process.command_line הערך מועתק ישירות אחרי הסרת המירכאות
primaryProcess.kind target.process.file.mime_type הערך הועתק ישירות
primaryProcess.parentPid target.process.parent_process.pid הערך הועתק ישירות
primaryProcess.pid target.process.pid הערך הועתק ישירות
uid target.user.userid הערך הועתק ישירות
id target.asset_id המחרוזת שנוצרת היא 'ASSET:' + מזהה
פעולה security_result.action באותיות רישיות אם הפעולה היא 'חסימה' או 'אישור'
reason.exitCode security_result.action_details הערך הועתק ישירות
dxpRule, monitoringReason, tenantId security_result.detection_fields אם יש תוויות שנוצרו מכל שדה, הן ימוזגו עם התוויות האלה. אם יש תוויות שנוצרו מ-dxpRule, הן ימוזגו עם התוויות האלה.
dxpRuleType security_result.rule_type הערך הועתק ישירות
ipArtifact.version security_result.rule_version הערך הועתק ישירות
msg, reason.cause security_result.summary הערך מההודעה אם הוא קיים, מוחלף על ידי הסיבה.הגורם אם הוא קיים
חותמת זמן metadata.event_timestamp ההמרה מתבצעת באמצעות מסנן תאריכים עם הפורמטים MMM dd HH:mm:ss או MMM d HH:mm:ss
phost, ipArtifact.ipAddress, asset.name, user, uid, summary.artifact.sha256, summary.artifact.filePath metadata.event_type הערך הוא FILE_UNCATEGORIZED אם יש has_principal ו-has_target_file; הערך הוא USER_UNCATEGORIZED אם יש has_principal ו-has_target; הערך הוא STATUS_UPDATE אם יש has_principal; אחרת הערך הוא GENERIC_EVENT (הדגלים נגזרים ממקורות)
סיווג metadata.product_event_type הערך הועתק ישירות
gupid, guid metadata.product_log_id הערך מ-gupid אם הוא קיים, או הערך מ-guid אם הוא קיים
metadata.product_name צריך להגדיר את "Halcyon Anti Ransomware"
metadata.vendor_name הגדרה ל-Halcyon
primaryProcess.kind event.idm.read_only_udm.target.process.file.mime_type מופה מיומן השינויים
primaryProcess.artifact.kind event.idm.read_only_udm.principal.process.file.mime_type מופה מיומן השינויים
processes.artifact.filePath event.idm.read_only_udm.principal.process.file.full_path מופה מיומן השינויים
processes.artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 מופה מיומן השינויים
action event.idm.read_only_udm.additional.fields מופה מיומן השינויים
filterName event.idm.read_only_udm.additional.fields מופה מיומן השינויים
policyMode event.idm.read_only_udm.additional.fields מופה מיומן השינויים
euid event.idm.read_only_udm.additional.fields מופה מיומן השינויים
occurrences.AuthFailure event.idm.read_only_udm.additional.fields מופה מיומן השינויים
occurrences.FailedPassword event.idm.read_only_udm.additional.fields מופה מיומן השינויים
occurredAt event.idm.read_only_udm.additional.fields מופה מיומן השינויים
occurrences.IncorrectPasswords event.idm.read_only_udm.additional.fields מופה מיומן השינויים
guid event.idm.read_only_udm.metadata.product_log_id מופה מיומן השינויים
gupid event.idm.read_only_udm.metadata.product_log_id מופה מיומן השינויים
count event.idm.read_only_udm.additional.fields מופה מיומן השינויים
artifact.filePath event.idm.read_only_udm.principal.process.file.full_path מופה מיומן השינויים
artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 מופה מיומן השינויים
artifact.kind event.idm.read_only_udm.principal.process.file.mime_type מופה מיומן השינויים
monitoringReason event.idm.read_only_udm.security_result.detection_fields מופה מיומן השינויים
dxpRule event.idm.read_only_udm.security_result.detection_fields מופה מיומן השינויים
modifiedFilePath event.idm.read_only_udm.principal.process.file.full_path מופה מיומן השינויים
ipArtifact.version event.idm.read_only_udm.security_result.rule_version מופה מיומן השינויים
ipArtifact.ipAddress event.idm.read_only_udm.principal.ip מופה מיומן השינויים
ipArtifact.ipAddress event.idm.read_only_udm.principal.asset.ip מופה מיומן השינויים
process.parentPid event.idm.read_only_udm.principal.process.parent_pid מופה מיומן השינויים
dxpRuleType event.idm.read_only_udm.security_result.rule_type מופה מיומן השינויים
summary.applicationName event.idm.read_only_udm.principal.application מופה מיומן השינויים
process.pid event.idm.read_only_udm.principal.process.pid מופה מיומן השינויים
reason.exitCode event.idm.read_only_udm.security_result.action_details מופה מיומן השינויים
reason.cause event.idm.read_only_udm.security_result.summary מופה מיומן השינויים
dnsArtifact_uri event.idm.read_only_udm.network.dns.questions מופה מיומן השינויים
uid event.idm.read_only_udm.target.user.userid מופה מיומן השינויים
tty event.idm.read_only_udm.additional.fields מופה מיומן השינויים
sshd event.idm.read_only_udm.additional.fields מופה מיומן השינויים
phost event.idm.read_only_udm.principal.hostname מופה מיומן השינויים
user_displayname event.idm.read_only_udm.principal.user.user_display_name מופה מיומן השינויים
msg event.idm.read_only_udm.security_result.summary מופה מיומן השינויים
timestamp event.idm.read_only_udm.metadata.event_timestamp מופה מיומן השינויים
user event.idm.read_only_udm.principal.user.userid מופה מיומן השינויים

יומן שינויים

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

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