איסוף יומני התקדמות של MOVEit Transfer

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומנים של Progress MOVEit Transfer ב-Google Security Operations באמצעות Bindplane.

‫Progress MOVEit Transfer הוא פתרון לניהול העברת קבצים (MFT) שמספק העברות מאובטחות ומוצפנות של קבצים באמצעות פרוטוקולים כמו HTTPS,‏ FTPS ו-SFTP. הוא מציע יומני ביקורת שמונעים שינויים, אמצעי בקרה לגישה שמבוססים על תפקידים ותמיכה בתקנות, כולל HIPAA,‏ PCI DSS ו-GDPR. במסד הנתונים של הביקורת ב-MOVEit Transfer נרשמת כל פעילות העברת הקבצים, אירועי אימות משתמשים ופעולות אדמיניסטרטיביות.

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

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

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין שרת Progress MOVEit Transfer
  • אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • גישה ברמת SysAdmin למסוף ניהול האינטרנט של Progress MOVEit Transfer
  • יציאת UDP‏ 514 (או יציאת ה-syslog שבחרתם) פתוחה מהשרת של MOVEit Transfer למארח של סוכן Bindplane

קבלת קובץ אימות להטמעת נתונים ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents.
  3. מורידים את קובץ האימות להטמעת נתונים. שומרים את הקובץ בצורה מאובטחת במערכת שבה תותקן Bindplane.

איך מוצאים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
  3. מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת סוכן Bindplane

מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.

התקנה ב-Windows

  1. פותחים את שורת הפקודה או את PowerShell כאדמין.
  2. מריצים את הפקודה הבאה:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. מחכים שההתקנה תסתיים.

  4. כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:

    sc query observiq-otel-collector
    

    השירות צריך להופיע עם הערך RUNNING.

התקנה ב-Linux

  1. פותחים טרמינל עם הרשאות root או sudo.
  2. מריצים את הפקודה הבאה:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

  4. כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:

    sudo systemctl status observiq-otel-collector
    

    השירות צריך להופיע כפעיל (פועל).

מקורות מידע נוספים להתקנה

אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.

הגדרה של סוכן Bindplane להטמעה של syslog ושליחה אל Google SecOps

איתור קובץ ההגדרות

  • ‫Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • ‫Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

עריכת קובץ ההגדרות

  • מחליפים את כל התוכן של config.yaml בהגדרה הבאה:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/moveit_transfer:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: IPSWITCH_MOVEIT_TRANSFER
            raw_log_field: body
            ingestion_labels:
                log_source: moveit_transfer
    
    service:
        pipelines:
            logs/moveit_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/moveit_transfer
    

פרמטרים להגדרה

מחליפים את ה-placeholders הבאים.

הגדרת כלי הייצוא:

  • ‫<CREDS_FILE_PATH>: הנתיב המלא לקובץ האימות להטמעת נתונים:
    • ‫Linux: /etc/bindplane-agent/ingestion-auth.json
    • ‫Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
  • ‫<CUSTOMER_ID>: מספר הלקוח ב-Google SecOps שהעתקתם קודם
  • ‫<REGION_ENDPOINT>: כתובת URL של נקודת קצה אזורית:

    • ארה"ב: malachiteingestion-pa.googleapis.com
    • אירופה: europe-malachiteingestion-pa.googleapis.com
    • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
    • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
  • הגדרה לדוגמה

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/moveit_transfer:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: IPSWITCH_MOVEIT_TRANSFER
            raw_log_field: body
            ingestion_labels:
                log_source: moveit_transfer
    
    service:
        pipelines:
            logs/moveit_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/moveit_transfer
    

שמירת קובץ ההגדרות

אחרי העריכה, שומרים את הקובץ: * Linux: מקישים על Ctrl+O, ואז על Enter, ואז על Ctrl+X * Windows: לוחצים על File > Save

מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.

כדי להפעיל מחדש את סוכן Bindplane ב-Linux:

  1. מריצים את הפקודה הבאה:

    sudo systemctl restart observiq-otel-collector
    
  2. מוודאים שהשירות פועל:

    sudo systemctl status observiq-otel-collector
    
  3. בודקים אם יש שגיאות ביומנים:

    sudo journalctl -u observiq-otel-collector -f
    

כדי להפעיל מחדש את סוכן Bindplane ב-Windows:

  1. בוחרים אחת מהאפשרויות האלה:

    • שורת הפקודה או PowerShell כאדמין:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • מסוף השירותים:

      1. מקישים על Win+R, מקלידים services.msc ומקישים על Enter.
      2. מחפשים את observIQ OpenTelemetry Collector.
      3. לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
      4. מוודאים שהשירות פועל:

        sc query observiq-otel-collector
        
      5. בודקים אם יש שגיאות ביומנים:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

הגדרת העברה של יומן המערכת (syslog) ב-Progress MOVEit Transfer

כדי להגדיר את MOVEit Transfer להעברת רשומות ביומן הביקורת לסוכן Bindplane דרך syslog:

  1. נכנסים למסוף הניהול באינטרנט של MOVEit Transfer כמשתמש עם הרשאות SysAdmin.
  2. עוברים אל הגדרות > מערכת > ביקורת > Syslog. מוצג הדף Configure Syslog Settings.
  3. בקטע Syslog Logging, בוחרים באפשרות Enabled. כשהאפשרות הזו מופעלת, כל רשומה ביומן הביקורת נשלחת למארח syslog שצוין וגם למסד הנתונים של הביקורת ב-MOVEit Transfer.
  4. בשדה Syslog Host (מארח Syslog), מזינים את כתובת ה-IP או את שם המארח של מארח סוכן Bindplane (לדוגמה, 192.168.1.100).
  5. בשדה יציאת Syslog, מזינים 514. אם לא ממלאים את השדה הזה, המערכת חוזרת ליציאת ברירת המחדל 514.

  6. בתפריט הנפתח Syslog Facility (מתקן Syslog), בוחרים את המתקן שבו יופיעו הודעות Syslog של MOVEit Transfer במארח Syslog המרוחק. ערך ברירת המחדל הוא FTP. אלה המתקנים הרגילים של syslog שזמינים:

    • KERN
    • משתמש
    • דואר
    • DAEMON
    • AUTH
    • SYSLOG
    • LPR
    • חדשות
    • UUCP
    • CRON
    • AUTHPRIV
    • ‫FTP (ברירת מחדל)
    • ‫LOCAL0 עד LOCAL7
  7. לוחצים על שמירת הגדרות הרישום כדי לשמור את ההגדרה.

  8. לוחצים על Send Test Syslog Message (שליחת הודעת בדיקה של Syslog) כדי לשלוח הודעת בדיקה למארח של סוכן Bindplane שצוין. ההטמעה של BSD Syslog מבוססת על UDP, ולכן צריך לבדוק באופן ידני שהודעת הבדיקה הגיעה על ידי בדיקת היומנים של סוכן Bindplane.

  9. מוודאים שהודעת הבדיקה התקבלה על ידי סוכן Bindplane:

    • ‫Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • ‫Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

דרישות לגבי חומת אש

מוודאים שכלל חומת האש הבא מוגדר כדי לאפשר תעבורת נתוני syslog מ-MOVEit Transfer לסוכן Bindplane:

כיוון פרוטוקול מקור יעד יציאה
יוצא מ-MOVEit Transfer UDP כתובת ה-IP של שרת MOVEit Transfer כתובת ה-IP של המארח של סוכן Bindplane 514

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
דףה 1 metadata.collected_timestamp ההמרה מתבצעת באמצעות תבניות התאמה של תאריכים: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A
דףה 1 metadata.event_timestamp ההמרה מתבצעת באמצעות תבניות התאמה של תאריכים: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A
דףה 2 security_result.action_details הערך הועתק ישירות
דףה 3 target.hostname, target.asset.hostname הערך מועתק ישירות מעמודה 3
column4 principal.ip, principal.asset.ip נשלף מעמודה 4 באמצעות תבנית grok לכתובת IP
column6 target.file.full_path השם המלא של הקובץ, שנוצר מתיקיית הנתיב ושם הקובץ אם שניהם קיימים, אחרת רק משם הקובץ
column7 target.file.full_path
column15 target.file.full_path
column7 target.user.email_addresses המיזוג מתבצע אם column2 == file_sentemail
column10 metadata.description הערך הועתק ישירות
column11 metadata.product_event_type הערך מועתק ישירות אם הוא לא None
column12 target.ip, target.asset.ip חילוץ מ-column12 באמצעות תבנית grok לכתובת IP
column16 target.file.full_path השם מורכב מ-folderPath ומ-fileName אם שניהם קיימים, אחרת רק מ-fileName
column23 target.file.full_path
column19 target.user.user_display_name הערך מועתק ישירות אם column2 == file_sentemail ו-column8 == sender, אחרת הערך מועתק למשתמש היעד
event_received_time metadata.collected_timestamp ההמרה מתבצעת באמצעות תבניות התאמה של תאריכים: UNIX_MS, ‏ dd/MM/yyyy HH:mm:ss, ‏ yyyy-MM-dd HH:mm:ss, ‏ MM/dd/yyyy HH:mm:ss A, ‏ yyyy/MM/dd HH:mm:ss, ‏ RFC 3339, ‏ yyyy-MM-ddTHH:mm:ss
חותמת זמן metadata.event_timestamp ההמרה מתבצעת באמצעות תבניות התאמה של תאריכים: MMM d HH:mm:ss, ‏ MMM dd HH:mm:ss, ‏ ISO8601, ‏ yyyy-MM-dd HH:mm:ss, ‏ yyyy-MM-dd HH:mm:ss Z, ‏ MM/dd/yyyy HH:mm:ss A, ‏ yy-MM-dd HH:mm:ss, ‏ RFC 3339, ‏ yyyy-MM-ddTHH:mm:ss
prin_ip principal.ip, principal.asset.ip הערך הועתק ישירות
AgentVersion metadata.product_version הערך הועתק ישירות
principal_host principal.hostname, principal.asset.hostname הערך הועתק ישירות
שם משתמש principal.user.userid הערך הועתק ישירות
company_name principal.user.company_name הערך הועתק ישירות
מזהה target.process.pid הערך הועתק ישירות
InstID metadata.product_log_id הערך הועתק ישירות
FileID target.resource.attribute.labels המיזוג בוצע כ-additional_id_2 עם המפתח FileID והערך מ-FileID
FolderID target.resource.attribute.labels המיזוג בוצע כ-additional_id_3 עם המפתח FolderID והערך מ-FolderID
FolderPath target.file.full_path השם מורכב מ-FolderPath ומ-FileName אם שניהם קיימים, אחרת מ-FolderPath
FileName target.file.full_path
FileName target.resource.attribute.labels המיזוג מתבצע בתור שם הקובץ עם המפתח FileName והערך מ-FileName
מארח principal.hostname, principal.asset.hostname הערך הועתק ישירות
log_level security_result.severity מוגדר כ-INFORMATIONAL אם INFO או DEBUG, ‏ ERROR אם ERROR
source_module_name observer.resource.attribute.labels המיזוג מתבצע בתור source_module_label עם המפתח source_module_name והערך מ-source_module_name
source_module_type observer.application הערך הועתק ישירות
log_msg metadata.description הערך מ-log_msg אם http_method != GET ו-file_path ריק, אחרת log_desc, אחרת description, אחרת Message
log_desc metadata.description
description metadata.description
הודעה metadata.description
יציאה principal.port הערך הועתק ישירות והומר למספר שלם
tgtport target.port הערך הועתק ישירות והומר למספר שלם
חבילה principal.process.command_line הערך הועתק ישירות
srcip principal.ip, principal.asset.ip הערך הועתק ישירות
שם משתמש principal.user.userid הערך הועתק ישירות
גרסה metadata.product_version הערך הועתק ישירות
http_method network.http.method הערך הועתק ישירות
פעולה security_result.action_details הערך הועתק ישירות
סיכום security_result.summary הערך הועתק ישירות
security_result security_result מיזוג ישיר
tgtip target.ip, target.asset.ip הערך הועתק ישירות
application_proto network.application_protocol הועתק ישירות באותיות רישיות
url network.http.referral_url הערך הועתק ישירות
status_code network.http.response_code הערך הועתק ישירות והומר למספר שלם
file_path principal.process.file.full_path הערך הועתק ישירות
file_size principal.process.file.size הומר למספר שלם לא שלילי אם הוא לא 0
process_id principal.process.pid הערך הועתק ישירות
session_id network.session_id הערך הועתק ישירות
task_id additional.fields המיזוג בוצע כ-additional_field עם המפתח TASK_ID והערך string_value מ-task_id
AgentBrand metadata.product_event_type הערך הועתק ישירות
Parm1 additional.fields המיזוג מתבצע כ-additional_field_3 עם המפתח Parm1 והערך string_value מ-Parm1
Parm2 additional.fields המיזוג מתבצע כ-additional_field_4 עם המפתח Parm2 והערך string_value מ-Parm2
שגיאה additional.fields המיזוג בוצע כ-additional_field_5 עם המפתח Error והערך string_value מ-Error
XFerSize target.resource.attribute.labels מוזגו כ-additional_field_1 עם המפתח XFerSize והערך מ-XFerSize
FolderPath metadata.event_type הערך הוא FILE_DELETION אם FolderPath ו-action_performed תואמים ל-Delete File, ‏ NETWORK_HTTP אם tgtip או host ו-application_proto == HTTP, ‏ USER_LOGIN אם Username או username, ‏ STATUS_UPDATE אם tgtip או host או principal_host או IPAddress, אחרת GENERIC_EVENT
tgtip metadata.event_type
מארח metadata.event_type
principal_host metadata.event_type
IPAddress metadata.event_type
שם משתמש metadata.event_type
שם משתמש metadata.event_type
tgtip metadata.event_type הערך הוא USER_LOGIN אם column2 == sec_signon ו-tgtip או tar_host, ‏ USER_LOGOUT אם sec_signoff ו-tgtip או tar_host, ‏ FILE_UNCATEGORIZED אם folder_add, ‏ FILE_CREATION אם file_upload או download ו-tgtip ו-is_tgt_file_present, ‏ FILE_DELETION אם file_delete ו-srcip ו-is_tgt_file_present, ‏ FILE_MODIFICATION אם file_rename, ‏ FILE_UNCATEGORIZED אם file_dlhashchk, ‏ EMAIL_TRANSACTION אם file_sentemail ו-useremail, ‏ STATUS_UPDATE אם srcip, אחרת GENERIC_EVENT
tar_host metadata.event_type
srcip metadata.event_type
is_tgt_file_present metadata.event_type
דףה 2 metadata.event_type
useremail metadata.event_type
security_result metadata.event_type
extensions.auth.type extensions.auth.type הגדרה ל-MACHINE לאירועי התחברות/התנתקות
metadata.vendor_name metadata.vendor_name ההגדרה היא 'IPS'
metadata.product_name metadata.product_name הגדרה של 'IPSWITCH MOVEIT TRANSFER'
target_application event.idm.read_only_udm.target.application מופה מיומן השינויים
product_event event.idm.read_only_udm.metadata.product_event_type מופה מיומן השינויים
dstip event.idm.read_only_udm.target.ip וגם event.idm.read_only_udm.target.asset.ip מופה מיומן השינויים
AdminTrust event.idm.read_only_udm.additional.fields מופה מיומן השינויים
Permission event.idm.read_only_udm.additional.fields מופה מיומן השינויים
log_status event.idm.read_only_udm.security_result.action.details מופה מיומן השינויים
srcip event.idm.read_only_udm.principal.ip וגם event.idm.read_only_udm.principal.asset.ip מופה מיומן השינויים
EventReceivedTime event.timestamp מופה מיומן השינויים
SourceModuleName observer.resource.attribute.labels מופה מיומן השינויים
SourceModuleType observer.application מופה מיומן השינויים
SourceName metadata.product_event_type מופה מיומן השינויים
Severity security_result. מופה מיומן השינויים
Hostname principal.hostname מופה מיומן השינויים
Channel security_result.about.resource.attribute.labels מופה מיומן השינויים
AgentVersion metadata.version מופה מיומן השינויים

יומן שינויים

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

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