Mengumpulkan log MOVEit Transfer Progres
Dokumen ini menjelaskan cara menyerap log Progress MOVEit Transfer ke Google Security Operations menggunakan Bindplane.
Progress MOVEit Transfer adalah solusi transfer file terkelola (MFT) yang menyediakan transfer file terenkripsi yang aman menggunakan protokol seperti HTTPS, FTPS, dan SFTP. Layanan ini menawarkan logging audit yang tahan terhadap gangguan, kontrol akses berbasis peran, dan dukungan kepatuhan untuk peraturan termasuk HIPAA, PCI DSS, dan GDPR. MOVEit Transfer mencatat semua aktivitas transfer file, peristiwa autentikasi pengguna, dan tindakan administratif dalam database auditnya.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Windows Server 2016 atau yang lebih baru, atau host Linux dengan
systemd - Konektivitas jaringan antara agen Bindplane dan server Progress MOVEit Transfer
- Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses tingkat SysAdmin ke konsol administrasi web Progress MOVEit Transfer
- Port UDP 514 (atau port syslog yang Anda pilih) terbuka dari server MOVEit Transfer ke host agen Bindplane
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal agen Bindplane
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sc query observiq-otel-collectorLayanan akan ditampilkan sebagai RUNNING.
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sudo systemctl status observiq-otel-collectorLayanan akan ditampilkan sebagai aktif (berjalan).
Referensi penginstalan tambahan
Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen BindPlane.
Mengonfigurasi agen BindPlane untuk menyerap syslog dan mengirimkannya ke Google SecOps
Cari file konfigurasi
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan konfigurasi berikut: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
Parameter konfigurasi
Ganti placeholder berikut.
Konfigurasi eksportir:
<CREDS_FILE_PATH>: Jalur lengkap ke file autentikasi penyerapan:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<CUSTOMER_ID>: ID pelanggan Google SecOps yang disalin sebelumnya<REGION_ENDPOINT>: URL endpoint regional:- Amerika Serikat:
malachiteingestion-pa.googleapis.com - Eropa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Lihat Endpoint Regional untuk mengetahui daftar lengkapnya
- Amerika Serikat:
Contoh konfigurasi
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
Simpan file konfigurasi
Setelah mengedit, simpan file:
* Linux: Tekan Ctrl+O, lalu Enter, lalu Ctrl+X
* Windows: Klik File > Simpan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, lakukan hal berikut:
Jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa log untuk mengetahui error:
sudo journalctl -u observiq-otel-collector -f
Untuk memulai ulang agen Bindplane di Windows, lakukan langkah berikut:
Pilih salah satu opsi berikut:
Command Prompt atau PowerShell sebagai administrator:
net stop observiq-otel-collector && net start observiq-otel-collectorKonsol layanan:
- Tekan
Win+R, ketikservices.msc, lalu tekan Enter. - Temukan observIQ OpenTelemetry Collector.
- Klik kanan, lalu pilih Mulai Ulang.
Pastikan layanan sedang berjalan:
sc query observiq-otel-collectorPeriksa log untuk mengetahui error:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Tekan
Mengonfigurasi penerusan syslog MOVEit Transfer Progress
Untuk mengonfigurasi MOVEit Transfer agar meneruskan entri log audit ke agen BindPlane melalui syslog:
- Login ke konsol administrasi web MOVEit Transfer sebagai pengguna dengan izin SysAdmin.
- Buka SETELAN > Sistem > Audit > Syslog. Halaman Configure Syslog Settings akan ditampilkan.
- Di bagian Syslog Logging, pilih Enabled. Jika diaktifkan, setiap entri log audit akan dikirim ke host syslog yang ditentukan serta ke database audit MOVEit Transfer.
- Di kolom Syslog Host, masukkan alamat IP atau nama host dari host agen Bindplane (misalnya,
192.168.1.100). Di kolom Syslog Port, masukkan
514. Jika kolom ini dibiarkan kosong, kolom ini akan kembali ke port default514.Di dropdown Syslog Facility, pilih fasilitas yang akan menampilkan pesan syslog MOVEit Transfer di host syslog jarak jauh. Nilai defaultnya adalah FTP. Fasilitas syslog standar berikut tersedia:
- KERN
- PENGGUNA
- DAEMON
- AUTH
- SYSLOG
- LPR
- BERITA
- UUCP
- CRON
- AUTHPRIV
- FTP (default)
- LOCAL0 hingga LOCAL7
Klik Ubah Setelan Logging untuk menyimpan konfigurasi.
Klik Send Test Syslog Message untuk mengirim pesan pengujian ke host agen Bindplane yang ditentukan. Karena penerapan BSD Syslog didasarkan pada UDP, verifikasi secara manual bahwa pesan pengujian telah tiba dengan memeriksa log agen Bindplane.
Pastikan pesan pengujian diterima oleh agen BindPlane:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Persyaratan firewall
Pastikan aturan firewall berikut diterapkan untuk mengizinkan traffic syslog dari MOVEit Transfer ke agen Bindplane:
| Arah | Protokol | Sumber | Tujuan | Port |
|---|---|---|---|---|
| Keluar dari MOVEit Transfer | UDP | IP server MOVEit Transfer | IP host agen Bindplane | 514 |
Tabel pemetaan UDM
| Kolom log | Pemetaan UDM | Logika |
|---|---|---|
| kolom1 | metadata.collected_timestamp | Dikonversi menggunakan pola kecocokan tanggal: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A |
| kolom1 | metadata.event_timestamp | Dikonversi menggunakan pola kecocokan tanggal: d/M/yyyy H:mm:ss A, M/d/yyyy H:mm:ss A, MM/dd/yyyy HH:mm:ss A |
| kolom2 | security_result.action_details | Nilai disalin secara langsung |
| kolom3 | target.hostname, target.asset.hostname | Nilai disalin langsung dari column3 |
| column4 | principal.ip, principal.asset.ip | Diekstrak dari column4 menggunakan pola grok untuk IP |
| column6 | target.file.full_path | Digabungkan dari folderPath dan fileName jika keduanya ada, atau dari fileName saja |
| column7 | target.file.full_path | |
| column15 | target.file.full_path | |
| column7 | target.user.email_addresses | Digabungkan jika column2 == file_sentemail |
| column10 | metadata.description | Nilai disalin secara langsung |
| column11 | metadata.product_event_type | Nilai disalin secara langsung jika bukan None |
| column12 | target.ip, target.asset.ip | Diekstrak dari column12 menggunakan pola grok untuk IP |
| column16 | target.file.full_path | Digabungkan dari folderPath dan fileName jika keduanya ada, atau dari fileName saja |
| column23 | target.file.full_path | |
| column19 | target.user.user_display_name | Nilai disalin langsung jika column2 == file_sentemail dan column8 == sender, atau untuk pengguna target |
| event_received_time | metadata.collected_timestamp | Dikonversi menggunakan pola kecocokan tanggal: 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 |
| timestamp | metadata.event_timestamp | Dikonversi menggunakan pola pencocokan tanggal: 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 | Nilai disalin secara langsung |
| AgentVersion | metadata.product_version | Nilai disalin secara langsung |
| principal_host | principal.hostname, principal.asset.hostname | Nilai disalin secara langsung |
| Nama pengguna | principal.user.userid | Nilai disalin secara langsung |
| company_name | principal.user.company_name | Nilai disalin secara langsung |
| ID | target.process.pid | Nilai disalin secara langsung |
| InstID | metadata.product_log_id | Nilai disalin secara langsung |
| FileID | target.resource.attribute.labels | Digabungkan sebagai additional_id_2 dengan kunci FileID dan nilai dari FileID |
| FolderID | target.resource.attribute.labels | Digabungkan sebagai additional_id_3 dengan kunci FolderID dan nilai dari FolderID |
| FolderPath | target.file.full_path | Digabungkan dari FolderPath dan FileName jika keduanya ada, atau dari FolderPath |
| FileName | target.file.full_path | |
| FileName | target.resource.attribute.labels | Digabungkan sebagai nama file dengan kunci FileName dan nilai dari FileName |
| host | principal.hostname, principal.asset.hostname | Nilai disalin secara langsung |
| log_level | security_result.severity | Ditetapkan ke INFORMATIONAL jika INFO atau DEBUG, ERROR jika ERROR |
| source_module_name | observer.resource.attribute.labels | Digabungkan sebagai source_module_label dengan kunci source_module_name dan nilai dari source_module_name |
| source_module_type | observer.application | Nilai disalin secara langsung |
| log_msg | metadata.description | Nilai dari log_msg jika http_method != GET dan file_path kosong, atau log_desc, atau description, atau Message |
| log_desc | metadata.description | |
| deskripsi | metadata.description | |
| Pesan | metadata.description | |
| port | principal.port | Nilai disalin langsung, dikonversi menjadi bilangan bulat |
| tgtport | target.port | Nilai disalin langsung, dikonversi menjadi bilangan bulat |
| paket | principal.process.command_line | Nilai disalin secara langsung |
| srcip | principal.ip, principal.asset.ip | Nilai disalin secara langsung |
| nama pengguna | principal.user.userid | Nilai disalin secara langsung |
| versi | metadata.product_version | Nilai disalin secara langsung |
| http_method | network.http.method | Nilai disalin secara langsung |
| tindakan | security_result.action_details | Nilai disalin secara langsung |
| ringkasan | security_result.summary | Nilai disalin secara langsung |
| security_result | security_result | Digabungkan secara langsung |
| tgtip | target.ip, target.asset.ip | Nilai disalin secara langsung |
| application_proto | network.application_protocol | Huruf kapital dan disalin secara langsung |
| url | network.http.referral_url | Nilai disalin secara langsung |
| status_code | network.http.response_code | Nilai disalin langsung, dikonversi menjadi bilangan bulat |
| file_path | principal.process.file.full_path | Nilai disalin secara langsung |
| file_size | principal.process.file.size | Dikonversi menjadi uinteger jika bukan 0 |
| process_id | principal.process.pid | Nilai disalin secara langsung |
| session_id | network.session_id | Nilai disalin secara langsung |
| task_id | additional.fields | Digabungkan sebagai additional_field dengan key TASK_ID dan string_value dari task_id |
| AgentBrand | metadata.product_event_type | Nilai disalin secara langsung |
| Parm1 | additional.fields | Digabungkan sebagai additional_field_3 dengan kunci Parm1 dan string_value dari Parm1 |
| Parm2 | additional.fields | Digabungkan sebagai additional_field_4 dengan kunci Parm2 dan string_value dari Parm2 |
| Error | additional.fields | Digabungkan sebagai additional_field_5 dengan kunci Error dan string_value dari Error |
| XFerSize | target.resource.attribute.labels | Digabungkan sebagai additional_field_1 dengan kunci XFerSize dan nilai dari XFerSize |
| FolderPath | metadata.event_type | Disetel ke FILE_DELETION jika FolderPath dan action_performed cocok dengan Hapus File, NETWORK_HTTP jika tgtip atau host dan application_proto == HTTP, USER_LOGIN jika Username atau username, STATUS_UPDATE jika tgtip atau host atau principal_host atau IPAddress, atau GENERIC_EVENT |
| tgtip | metadata.event_type | |
| host | metadata.event_type | |
| principal_host | metadata.event_type | |
| IPAddress | metadata.event_type | |
| Nama pengguna | metadata.event_type | |
| nama pengguna | metadata.event_type | |
| tgtip | metadata.event_type | Disetel ke USER_LOGIN jika column2 == sec_signon dan tgtip atau tar_host, USER_LOGOUT jika sec_signoff dan tgtip atau tar_host, FILE_UNCATEGORIZED jika folder_add, FILE_CREATION jika file_upload atau download dan tgtip dan is_tgt_file_present, FILE_DELETION jika file_delete dan srcip dan is_tgt_file_present, FILE_MODIFICATION jika file_rename, FILE_UNCATEGORIZED jika file_dlhashchk, EMAIL_TRANSACTION jika file_sentemail dan useremail, STATUS_UPDATE jika srcip, atau GENERIC_EVENT |
| tar_host | metadata.event_type | |
| srcip | metadata.event_type | |
| is_tgt_file_present | metadata.event_type | |
| kolom2 | metadata.event_type | |
| useremail | metadata.event_type | |
| security_result | metadata.event_type | |
| extensions.auth.type | extensions.auth.type | Disetel ke MACHINE untuk peristiwa login/logout |
| metadata.vendor_name | metadata.vendor_name | Disetel ke "IPS" |
| metadata.product_name | metadata.product_name | Tetapkan ke "IPSWITCH MOVEIT TRANSFER" |
target_application |
event.idm.read_only_udm.target.application |
Dipetakan dari log perubahan |
product_event |
event.idm.read_only_udm.metadata.product_event_type |
Dipetakan dari log perubahan |
dstip |
event.idm.read_only_udm.target.ip dan event.idm.read_only_udm.target.asset.ip |
Dipetakan dari log perubahan |
AdminTrust |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
Permission |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
log_status |
event.idm.read_only_udm.security_result.action.details |
Dipetakan dari log perubahan |
srcip |
event.idm.read_only_udm.principal.ip dan event.idm.read_only_udm.principal.asset.ip |
Dipetakan dari log perubahan |
EventReceivedTime |
event.timestamp |
Dipetakan dari log perubahan |
SourceModuleName |
observer.resource.attribute.labels |
Dipetakan dari log perubahan |
SourceModuleType |
observer.application |
Dipetakan dari log perubahan |
SourceName |
metadata.product_event_type |
Dipetakan dari log perubahan |
Severity |
security_result. |
Dipetakan dari log perubahan |
Hostname |
principal.hostname |
Dipetakan dari log perubahan |
Channel |
security_result.about.resource.attribute.labels |
Dipetakan dari log perubahan |
AgentVersion |
metadata.version |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.