Mengumpulkan log Microsoft Defender for IoT (CyberX)

Didukung di:

Dokumen ini menjelaskan cara menyerap log Microsoft Defender for IoT (CyberX) ke Google Security Operations menggunakan Bindplane.

Microsoft Defender for IoT (sebelumnya CyberX) adalah platform keamanan IoT/OT tanpa agen yang menyediakan penemuan aset, manajemen kerentanan, dan pemantauan ancaman berkelanjutan untuk sistem kontrol industri (ICS) dan lingkungan teknologi operasional (OT). Layanan ini mendeteksi perilaku anomali dan ancaman yang diketahui di seluruh jaringan IoT/OT tanpa memengaruhi proses operasional. Parser mengekstrak kolom dari syslog CyberX dan log berformat kunci-nilai. Parser ini menggunakan grok dan/atau kv untuk mengurai pesan log, lalu memetakan nilai ini ke Model Data Terpadu (UDM). Fungsi ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses istimewa ke konsol sensor Microsoft Defender for IoT

Mendapatkan kredensial Google SecOps untuk agen Bindplane

Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:

  • Deployment baru: Gunakan Chronicle API (Opsi 1).
  • Deployment lama: Terus menggunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
  1. Login ke Google Cloud konsol dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
  2. Buka IAM & Admin > Service Accounts.
  3. Klik Create service account.
  4. Berikan detail konfigurasi berikut:
    • Nama akun layanan: Masukkan nama untuk akun (misalnya, bindplane-ingest).
    • Deskripsi akun layanan: Masukkan deskripsi (misalnya, Bindplane agent log ingestion).
  5. Klik Create and continue.
  6. Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
  7. Klik Continue lalu klik Done.
  8. Klik akun layanan yang Anda buat, lalu buka tab Keys.
  9. Klik Add key > Create new key.
  10. Pilih JSON, lalu klik Create. File kunci akan didownload ke komputer Anda.
  11. Simpan file kunci sebagai ingestion-auth.json di direktori Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.json di Linux atau C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json di Windows), atau perbarui creds_file_path di config.yaml agar sesuai dengan jalur tempat Anda menyimpannya.
  12. Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.

Opsi 2: Mendownload file autentikasi penyerapan (lama)

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Collection Agents.
  3. Download file autentikasi penyerapan.
  4. Simpan file dengan aman di sistem tempat agen Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Profile.
  3. 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

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sc query observiq-otel-collector
    

Layanan akan ditampilkan sebagai RUNNING.

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sudo systemctl status observiq-otel-collector
    

Layanan akan ditampilkan sebagai aktif (berjalan).

Referensi penginstalan tambahan

Untuk opsi pemasangan dan pemecahan masalah tambahan, lihat Panduan pemasangan agen BindPlane.

Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps

Menemukan file konfigurasi

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

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

Mengedit file konfigurasi

  • Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'CYBERX'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    

Parameter konfigurasi

Ganti placeholder berikut:

  • Konfigurasi penerima:

    • udplog: Gunakan udplog untuk syslog UDP atau tcplog untuk syslog TCP
    • 0.0.0.0: Alamat IP yang akan didengarkan (0.0.0.0 untuk mendengarkan semua antarmuka)
    • 514: Nomor port yang akan diproses (port syslog standar)
  • Konfigurasi pengekspor:

    • creds_file_path: Jalur lengkap ke file kunci JSON akun layanan (Opsi 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • YOUR_CUSTOMER_ID: ID pelanggan dari bagian Mendapatkan ID pelanggan
    • location: Ganti <LOCATION> dengan region instance Google SecOps Anda (misalnya, us, europe, atau asia-southeast1). Pengekspor mengawali chronicle.googleapis.com dengan nilai ini. Lihat Endpoint Regional untuk mengetahui daftar lengkapnya.
    • project: Ganti <PROJECT_NUMBER> dengan nomor project dari IAM & Admin > Settings.
    • endpoint: Tetap tetapkan ke chronicle.googleapis.com.
    • log_type: Jenis log persis seperti yang muncul di Google SecOps (CYBERX)

Pengekspor API penyerapan lama

  • Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok exporters dengan kode berikut. Tetapkan creds_file_path ke jalur file autentikasi penyerapan, dan jika instance Anda berada di luar Amerika Serikat, ganti malachiteingestion-pa.googleapis.com dengan endpoint regional Anda (misalnya, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CYBERX'
        raw_log_field: body
        ingestion_labels:
    

Menyimpan file konfigurasi

  • Setelah mengedit, simpan file:
    • Linux: Tekan Ctrl+O, lalu Enter, lalu Ctrl+X
    • Windows: Klik File > Save

Mulai ulang agen Bindplane untuk menerapkan perubahan

Untuk memulai ulang agen Bindplane di Linux:

  1. Jalankan perintah berikut:

    sudo systemctl restart observiq-otel-collector
    
  2. Pastikan layanan sedang berjalan:

    sudo systemctl status observiq-otel-collector
    
  3. Periksa log untuk mengetahui error:

    sudo journalctl -u observiq-otel-collector -f
    

Untuk memulai ulang agen Bindplane di Windows:

  1. Pilih salah satu opsi berikut:

    • Command Prompt atau PowerShell sebagai administrator:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Konsol layanan:
      1. Tekan Win+R, ketik services.msc, lalu tekan Enter.
      2. Cari observIQ OpenTelemetry Collector.
      3. Klik kanan, lalu pilih Restart.
  2. Pastikan layanan sedang berjalan:

    sc query observiq-otel-collector
    
  3. Periksa log untuk mengetahui error:

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

Mengonfigurasi penerusan syslog di Microsoft Defender for IoT

  1. Login ke konsol sensor OT Microsoft Defender for IoT sebagai pengguna Admin.
  2. Pilih Penerusan di menu sebelah kiri.
  3. Klik + Buat aturan baru.
  4. Di panel Add forwarding rule, berikan detail berikut:
    • Rule name: Masukkan nama deskriptif (misalnya, Google-SecOps-Bindplane).
    • Tingkat pemberitahuan minimum: Pilih Ringan untuk meneruskan semua tingkat keparahan, atau pilih tingkat yang lebih tinggi untuk memfilter.
    • Semua protokol yang terdeteksi: Aktifkan untuk meneruskan pemberitahuan dari semua traffic protokol, atau nonaktifkan dan pilih protokol tertentu.
    • Traffic yang terdeteksi oleh mesin apa pun: Aktifkan untuk meneruskan pemberitahuan dari semua mesin deteksi, atau nonaktifkan dan pilih mesin tertentu.
  5. Di area Actions, konfigurasikan server syslog:

    • Server: Pilih SYSLOG Server (format CEF).
    • Host: Masukkan alamat IP host agen Bindplane.
    • Port: Masukkan 514.
    • Zona waktu: Pilih UTC (direkomendasikan).
  6. Klik Simpan. Aturan tersebut tercantum di halaman Penerusan.

  7. Verifikasi aturan dengan memilih menu opsi (...) untuk aturan tersebut, lalu klik Kirim Pesan Uji.

  8. Periksa log agen Bindplane untuk mengonfirmasi bahwa pesan syslog diterima.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
Masker Akses security_result.detection_fields.value Nilai access_mask dari access_request_kvdata yang diuraikan
Domain Akun principal.administrative_domain Nilai principal_domain dari principal_kvdata yang diuraikan
Domain Akun target.administrative_domain Nilai target_domain dari target_kvdata yang diuraikan
Nama Akun principal.user.userid Nilai principal_account_name dari principal_kvdata yang diuraikan
Nama Akun target.user.userid Nilai target_account_name dari target_kvdata yang diurai
tindakan security_result.action_details Nilai tindakan
tindakan security_result.action Turunan. Jika tindakan adalah "accept", "passthrough", "pass", "permit", "detected", atau "close", petakan ke "ALLOW". Jika tindakan adalah "deny", "dropped", atau "blocked", petakan ke "BLOCK". Jika tindakan adalah "timeout", petakan ke "GAGAL". Jika tidak, petakan ke "UNKNOWN_ACTION".
Nama Algoritma security_result.detection_fields.value Nilai algorithm_name dari cryptographic_kvdata yang diuraikan
aplikasi target.application Nilai layanan jika app_protocol_output kosong
appcat security_result.detection_fields.value Nilai appcat
Nama Aplikasi principal.application Nilai application_name
Paket Autentikasi security_result.about.resource.name Nilai authentication_package
Azure Defender for IoT Alert security_result.detection_fields.value Nilai azure_defender_for_iot_alert
saluran security_result.detection_fields.value Nilai saluran
Alamat Klien principal.ip, principal.asset.ip Nilai source_ip
Port Klien principal.port Nilai source_port
craction security_result.detection_fields.value Nilai craction
Kredensial Pengelola Kredensial dicadangkan security_result.description Nilai deskripsi
Kredensial Pengelola Kredensial telah dibaca. security_result.description Nilai deskripsi
crscore security_result.severity_details Nilai crscore
crlevel security_result.severity, security_result.severity_details Nilai crlevel. Jika crlevel adalah "HIGH", "MEDIUM", "LOW", atau "CRITICAL", petakan ke tingkat keparahan UDM yang sesuai.
Operasi Kriptografis metadata.description Nilai product_desc
Nama platform CyberX security_result.detection_fields.value Nilai cyberx_platform_name
Deskripsi security_result.description Nilai deskripsi jika Pesan kosong
Tujuan target.ip, target.asset.ip, atau target.hostname Jika Destination adalah alamat IP, petakan ke target.ip dan target.asset.ip. Jika tidak, petakan ke target.hostname.
Alamat Tujuan target.ip, target.asset.ip Nilai destination_ip dari network_information yang diuraikan
DRA tujuan target.resource.name Nilai destination_dra
IP tujuan target.ip, target.asset.ip Nilai destination_ip
Port Tujuan target.port Nilai destination_port dari network_information yang diuraikan
devid principal.resource.product_object_id Nilai devid
devname principal.resource.name Nilai devname
Arah network.direction Jika Arah adalah "masuk", "masuk", atau "respons", petakan ke "MASUK". Jika Direction adalah "outgoing", "outbound", atau "request", petakan ke "OUTBOUND".
dstip target.ip, target.asset.ip Nilai dstip jika destination_ip kosong
dstcountry target.location.country_or_region Nilai dstcountry
dstintf security_result.detection_fields.value Nilai dstintf
dstintfrole security_result.detection_fields.value Nilai dstintfrole
dstosname target.platform Nilai dstosname jika "WINDOWS", "LINUX", atau "MAC".
dstport target.port Nilai dstport jika destination_port kosong
dstswversion target.platform_version Nilai dstswversion
durasi network.session_duration.seconds Nilai durasi
event_id security_result.rule_name Digunakan untuk membuat nama aturan sebagai "EventID: %{event_id}"
event_in_sequence security_result.detection_fields.value Nilai event_in_sequence
ID Run-Time Filter security_result.detection_fields.value Nilai filter_run_time_id dari filter_information yang diuraikan
Keanggotaan Grup security_result.detection_fields.value Nilai group_membership jika event_id bukan 4627
Keanggotaan Grup target.user.group_identifiers Nilai dari group_membership yang diuraikan jika event_id adalah 4627
handle_id security_result.detection_fields.value Nilai handle_id dari object_kvdata yang diuraikan
ID Nama sebutan channel security_result.detection_fields.value Nilai handle_id dari object_kvdata yang diuraikan
impersonation_level security_result.detection_fields.value Nilai impersonation_level dari logon_information_kvdata yang diuraikan
Panjang Kunci security_result.detection_fields.value Nilai key_length dari auth_kvdata yang diurai
Nama Kunci security_result.detection_fields.value Nilai key_name dari cryptographic_kvdata yang diuraikan
Jenis Kunci security_result.detection_fields.value Nilai key_type dari cryptographic_kvdata yang diuraikan
kata kunci security_result.detection_fields.value Nilai kata kunci
Nama Lapisan security_result.detection_fields.value Nilai layer_name dari filter_information yang diuraikan
ID Waktu Proses Lapisan security_result.detection_fields.value Nilai layer_run_time_id dari filter_information yang diuraikan
logid metadata.product_log_id Nilai logid
GUID Login principal.resource.product_object_id Nilai logon_guid
ID Logon security_result.detection_fields.value Nilai logon_id
logon_type event.idm.read_only_udm.extensions.auth.mechanism Turunan. Jika logon_type adalah '3', petakan ke "NETWORK". Jika '4', petakan ke "BATCH". Jika '5', petakan ke "SERVICE". Jika '8', petakan ke "NETWORK_CLEAR_TEXT". Jika '9', petakan ke "NEW_CREDENTIALS". Jika '10', petakan ke "REMOTE_INTERACTIVE". Jika '11', petakan ke "CACHED_INTERACTIVE". Jika tidak, jika tidak kosong, petakan ke "MECHANISM_OTHER".
Akun Login security_result.detection_fields.value Nilai logon_id dari penguraian grok
Proses Logon security_result.detection_fields.value Nilai logon_process dari auth_kvdata yang diurai
Label Wajib security_result.detection_fields.value Nilai mandatory_label
mastersrcmac principal.mac Nilai mastersrcmac
Pesan security_result.description Nilai Pesan
new_process_id target.process.pid Nilai new_process_id dari process_kvdata yang diurai
new_process_name target.process.file.full_path Nilai new_process_name dari process_kvdata yang diuraikan
Nama Objek security_result.detection_fields.value Nilai object_name dari object_kvdata yang diuraikan
Server Objek security_result.detection_fields.value Nilai object_server dari object_kvdata yang diurai
Jenis Objek security_result.detection_fields.value Nilai object_type dari object_kvdata yang diuraikan
osname principal.platform Nilai osname jika "WINDOWS", "LINUX", atau "MAC".
Nama Paket (khusus NTLM) security_result.detection_fields.value Nilai package_name dari auth_kvdata yang diuraikan
policyid security_result.rule_id Nilai policyid
policyname security_result.rule_name Nilai policyname
policytype security_result.rule_type Nilai policytype
ID proses principal.process.pid Nilai process_id
Nama Proses principal.process.file.full_path Nilai creator_process_name dari process_kvdata yang diuraikan
profile_changed security_result.detection_fields.value Nilai profile_changed
Profil Berubah security_result.detection_fields.value Nilai profile_changed dari penguraian grok
proto network.ip_protocol Jika proto adalah "17", petakan ke "UDP". Jika "6" atau subjenisnya adalah "wad", petakan ke "TCP". Jika "41", petakan ke "IP6IN4". Jika layanan adalah "PING" atau proto adalah "1" atau layanan berisi "ICMP", petakan ke "ICMP".
Protokol network.application_protocol Nilai app_protocol_output yang berasal dari Protocol
Nama Penyedia security_result.detection_fields.value Nilai provider_name dari provider_kvdata atau cryptographic_kvdata yang diuraikan
rcvdbyte network.received_bytes Nilai rcvdbyte
rcvdpkt security_result.detection_fields.value Nilai rcvdpkt
restricted_admin_mode security_result.detection_fields.value Nilai restricted_admin_mode dari logon_information_kvdata yang diurai
Kode Status security_result.detection_fields.value Nilai return_code dari cryptographic_kvdata yang diuraikan
respons security_result.detection_fields.value Nilai respons
rule_id security_result.rule_id Nilai rule_id
ID Keamanan principal.user.windows_sid Nilai principal_security_id dari principal_kvdata yang diuraikan
ID Keamanan target.user.windows_sid Nilai target_security_id dari target_kvdata yang diuraikan
sentbyte network.sent_bytes Nilai sentbyte
sentpkt security_result.detection_fields.value Nilai sentpkt
pelanggan network.application_protocol atau target.application Nilai app_protocol_output yang berasal dari layanan. Jika app_protocol_output kosong, petakan ke target.application.
ID layanan security_result.detection_fields.value Nilai service_id dari service_kvdata yang diuraikan
Nama Layanan security_result.detection_fields.value Nilai service_name dari service_kvdata yang diuraikan
sessionid network.session_id Nilai sessionid
Keparahan security_result.severity, security_result.severity_details Jika Tingkat Keparahan adalah "ERROR" atau "CRITICAL", petakan ke tingkat keparahan UDM yang sesuai. Jika "INFO", petakan ke "INFORMATIONAL". Jika "MINOR", petakan ke "LOW". Jika "WARNING", petakan ke "MEDIUM". Jika "MAJOR", petakan ke "HIGH". Petakan juga nilai mentah ke severity_details.
tingkat keseriusan, security_result.severity, security_result.severity_details Jika tingkat keparahan adalah "1", "2", atau "3", petakan ke "LOW". Jika "4", "5", atau "6", petakan ke "MEDIUM". Jika "7", "8", atau "9", petakan ke "TINGGI". Petakan juga nilai mentah ke severity_details.
Nama Bagikan security_result.detection_fields.value Nilai share_name dari share_information_kvdata yang diuraikan
Bagikan Jalur security_result.detection_fields.value Nilai share_path dari share_information_kvdata yang diuraikan
Sumber principal.ip, principal.asset.ip, atau principal.hostname, principal.asset.hostname Jika Sumber adalah alamat IP, petakan ke principal.ip dan principal.asset.ip. Jika tidak, petakan ke principal.hostname dan principal.asset.hostname.
Alamat Sumber principal.ip, principal.asset.ip Nilai source_ip dari network_information yang diuraikan
DRA Sumber principal.resource.name Nilai source_dra
IP sumber principal.ip Nilai source_ip
Alamat Jaringan Sumber principal.ip, principal.asset.ip Nilai source_ip
Port Sumber principal.port Nilai source_port dari network_information yang diuraikan
Workstation Sumber workstation_name Nilai source_workstation_name
srcip source_ip Nilai srcip jika source_ip kosong
srccountry principal.location.country_or_region Nilai srccountry
srcmac principal.mac Nilai srcmac
srcname principal.hostname, principal.asset.hostname Nilai srcname
srcport source_port Nilai srcport jika source_port kosong
srcswversion principal.platform_version Nilai srcswversion
Kode Status network.http.response_code Nilai status_code
Jenis Elevasi Token security_result.detection_fields.value Nilai token_elevation_type
transited_services security_result.detection_fields.value Nilai transited_services dari auth_kvdata yang diuraikan
transip principal.nat_ip Nilai transip
transportasi principal.nat_port Nilai transportasi
jenis metadata.product_event_type Digunakan dengan subjenis untuk membuat metadata.product_event_type
Jenis security_result.detection_fields.value Value of Type
UUID metadata.product_log_id Nilai UUID
vd principal.administrative_domain Nilai vd
virtual_account security_result.detection_fields.value Nilai virtual_account dari logon_information_kvdata yang diuraikan
Nama Workstation principal.hostname, principal.asset.hostname Nilai workstation_name jika tidak ada ID utama lainnya
metadata.event_type metadata.event_type Turunan. Jika principal_present dan target_present bernilai benar, petakan ke "NETWORK_CONNECTION". Jika user_present benar (true), petakan ke "USER_RESOURCE_ACCESS". Jika principal_present adalah benar (true), petakan ke "STATUS_UPDATE". Jika tidak, petakan ke "GENERIC_EVENT".
metadata.log_type metadata.log_type Dikodekan secara permanen ke "CYBERX"
metadata.product_name metadata.product_name Dikodekan secara permanen ke "CYBERX"
metadata.vendor_name metadata.vendor_name Diprogram secara permanen ke "CYBERX"
metadata.event_timestamp metadata.event_timestamp Disalin dari kolom stempel waktu tingkat atas, atau berasal dari kolom eventtime atau date dan time.
intermediary_hostname event.idm.read_only_udm.intermediary.hostname Dipetakan dari log perubahan
type event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
protocol event.idm.read_only_udm.network.application_protocol Dipetakan dari log perubahan
UUID event.idm.read_only_udm.metadata.product_log_id Dipetakan dari log perubahan
product_version_x metadata.product_version Dipetakan dari log perubahan
pro_event_type metadata.product_event_type Dipetakan dari log perubahan
title security_result.description Dipetakan dari log perubahan
msg metadata.description Dipetakan dari log perubahan
client_ip principal.ip Dipetakan dari log perubahan
src_ip principal.ip Dipetakan dari log perubahan
dst_ip target.ip Dipetakan dari log perubahan
src_mac principal.mac Dipetakan dari log perubahan
timestamp" and "ts metadata.event_timestamp Dipetakan dari log perubahan
source_ip2 principal.ip Dipetakan dari log perubahan
destination_ip2 target.ip Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.