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

נתמך ב:

במסמך הזה מוסבר איך להטמיע ב-Google Security Operations יומנים של Halcyon Anti-Ransomware באמצעות 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 כדי לקרוא ל-API בארכיטקטורת REST של Halcyon, לאחזר יומני אירועים ולכתוב אותם ב-GCS בפורמט JSON.

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

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

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

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

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

    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.

    • אם אתם מתכננים להשתמש באפשרות המחיקה (מחיקת קבצים שהועברו), תנו את התפקיד אדמין של אובייקטים באחסון במקום התפקיד "צפייה באובייקטים באחסון".

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

  1. עוברים אל הגדרות > ניהול נתונים > פידים. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פידים.
  2. לוחצים על הוספת פיד חדש.
  3. לוחצים על הגדרת פיד יחיד.
  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 Logic (פונקציה לוגית)
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 הערך מ-msg אם הוא קיים, מוחלף על ידי reason.cause אם הוא קיים
חותמת זמן 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 הגדרה ל "הלסיון"
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.