Mengumpulkan log Threat Intelligence STIX
Dokumen ini menjelaskan cara menyerap log STIX Threat Intelligence ke Google Security Operations menggunakan agen Bindplane.
STIX (Structured Threat Information Expression) adalah bahasa dan format standar untuk membagikan indikator kompromi (IOC) dan data threat intelligence antarorganisasi. Data STIX biasanya diterima sebagai file JSON atau XML dari server TAXII atau platform threat intelligence. Agen Bindplane mengumpulkan file data STIX langsung dari sistem file lokal.
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
- Klien TAXII atau platform intelijen ancaman yang menyimpan file berformat STIX (JSON atau XML) ke direktori lokal
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 log dan mengirimkannya ke Google SecOps
Cari file konfigurasi
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan konfigurasi berikut:receivers: filelog: include: - /var/log/stix/*.json start_at: beginning exporters: chronicle/stix: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: STIX raw_log_field: body ingestion_labels: env: production service: pipelines: logs/stix_to_chronicle: receivers: - filelog exporters: - chronicle/stix
Parameter konfigurasi
Ganti placeholder berikut:
Konfigurasi penerima:
filelog: Jenis penerima untuk mengumpulkan file log dari diskinclude: Daftar jalur file yang akan dipantau. Tetapkan ini ke direktori tempat file STIX disimpan:- Linux:
/var/log/stix/*.json - Windows:
C:\Logs\stix\*.json
- Linux:
start_at: Setel kebeginninguntuk membaca log yang ada atauenduntuk hanya membaca entri baru
Konfigurasi pengekspor:
stix: Nama deskriptif untuk eksportircreds_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 dari langkah sebelumnyaendpoint: 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:
STIX: Jenis log persis seperti yang muncul di Chronicleingestion_labels: Label opsional dalam format YAML (misalnya,env: production)
Konfigurasi pipeline:
stix_to_chronicle: Nama deskriptif untuk pipeline
Simpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X - Windows: Klik File > Simpan
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, 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, 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. - Cari 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 pengumpulan file data STIX
STIX adalah format data, bukan produk. Data intelijen ancaman STIX biasanya diterima sebagai file JSON atau XML dari klien TAXII, platform intelijen ancaman, atau download manual. Anda harus memastikan file ini ditempatkan di direktori yang dipantau oleh agen BindPlane.
Linux
Buat direktori untuk menyimpan file data STIX:
sudo mkdir -p /var/log/stixKonfigurasi klien TAXII atau platform intelijen ancaman Anda untuk menyimpan file STIX ke
/var/log/stix/.Pastikan akun layanan agen Bindplane memiliki akses baca ke direktori:
sudo chmod 755 /var/log/stix
Windows
Buat direktori untuk menyimpan file data STIX:
mkdir C:\Logs\stixKonfigurasi klien TAXII atau platform threat intelligence Anda untuk menyimpan file STIX ke `C:\Logs\stix`.
Perbarui jalur
includeagen Bindplane diconfig.yamlagar cocok:include: - C:\Logs\stix\*.json
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
| entity.administrative_domain | Ditetapkan ke "TEST" | |
| assetid_value | entity.asset.asset_id | Nilai dari assetid_value jika tidak kosong |
| condition_label, related_indicators_relationship_label, related_indicators_scope, indicator_types_label, valid_start_time_label, controlled_structure_label, marking_structure_label | entity.asset.attribute.labels | Digabungkan dari berbagai label |
| nama | entity.file.full_path | Nilai disalin secara langsung |
| val, hash.simple_hash_value, MD5_val, hash_value | entity.file.md5 | Nilai dari val jika cocok dengan ekspresi reguler MD5, atau hash.simple_hash_value jika jenisnya MD5, atau MD5_val, atau hash_value |
| nilai | entity.file.names | Nilai disalin secara langsung |
| val, hash.simple_hash_value, sha1_val, hash_value | entity.file.sha1 | Nilai dari val jika cocok dengan ekspresi reguler sha1, atau hash.simple_hash_value jika jenisnya SHA1, atau sha1_val, atau hash_value |
| val, hash.simple_hash_value, sha256val, sha_value, sha_value | entity.file.sha256 | Nilai dari val jika cocok dengan regex sha256, atau hash.simple_hash_value jika jenisnya SHA256, atau sha256val, atau sha_value |
| observable.object.properties.value, dom, value, host, name, external_references.0.source_name | entity.hostname | Nilai dari observable.object.properties.value jika jenisnya FQDN, jika tidak, dom dari grok, jika tidak, nilai jika jenisnya domain-name, jika tidak, host, jika tidak, name jika main_observable_type adalah domain/hostname, jika tidak, external_references.0.source_name |
| ip_val, ipval, ip, source_ip, value, src_ip | entity.ip | Nilai dari ip_val jika grok cocok, atau ipval jika kategori ipv4-addr, atau ip dari grok pola, atau source_ip, atau nilai jika jenis ipv4, atau src_ip dari grok |
| source_port, src_port | entity.port | Nilai dari source_port atau src_port |
| indicator_label, extension_value1, extension_value2, extension_value3, extension_value4, revoked_value, spec_version_value, object_marking_ref_value, label_value | entity.resource.attribute.labels | Digabungkan dari berbagai label |
| observable.object.properties.value, url_val, value, observable_properties_value | entity.url | Nilai dari observable.object.properties.value jika jenisnya URL, atau url_val dari grok, atau nilai jika jenisnya url, atau observable_properties_value jika tidak kosong |
| email_val, mail, value | entity.user.email_addresses | Nilai dari email_val jika grok cocok, jika tidak, email dari grok, jika tidak, nilai jika jenis email-addr |
| timestamp | metadata.collected_timestamp | Dikonversi menggunakan kecocokan tanggal ISO8601/RFC 3339 |
| judul, deskripsi | metadata.description | Nilai dari judul atau deskripsi |
| entity_type | metadata.entity_type | Nilai disalin secara langsung |
| timestamp, valid_until | metadata.interval.end_time | Dikonversi dari timestamp atau valid_until menggunakan kecocokan tanggal ISO8601/RFC 3339 |
| timestamp, valid_from, created | metadata.interval.start_time | Dikonversi dari stempel waktu, valid_from, created, atau timestamp menggunakan kecocokan tanggal ISO8601/RFC 3339 |
| id | metadata.product_entity_id | Nilai disalin secara langsung |
| versi | metadata.product_version | Nilai disalin secara langsung |
| threat_detail | metadata.threat | Digabungkan dari threat_detail |
| threat_detail_category | threat.category | Nilai disalin secara langsung |
| confidence_value, confidence, x_stix_confidence, x_ctix_confidence_score | threat.confidence_details | Nilai dari confidence_value, atau confidence jika no_value, atau x_stix_confidence, atau x_ctix_confidence_score |
| nilai, keyakinan, x_ctix_confidence_score | threat.confidence_score | Nilai dari value jika namanya adalah Confidence Score, jika tidak, confidence, jika tidak, x_ctix_confidence_score, dikonversi menjadi float |
| property_label, sha512_value, observable_id, observable_object_id, keyword_label | threat.detection_fields | Digabungkan dari berbagai label |
| deskripsi | threat.description | Nilai disalin secara langsung |
| value, extensions.extension-definition--ea279b3e-5c71-4632-ac08-831c66a786ba.score | threat.risk_score | Nilai dari nilai jika nama Risiko, atau skor ekstensi, dikonversi menjadi float |
| metadata.product_name | Setel ke "STIX" | |
| metadata.vendor_name | Setel ke "STIX" | |
dom |
event.idm.entity.entity.hostname |
Dipetakan dari log perubahan |
name |
event.idm.entity.entity.url |
Dipetakan dari log perubahan |
valid_from |
event.idm.entity.entity.resource.attribute.labels |
Dipetakan dari log perubahan |
valid_until |
event.idm.entity.entity.resource.attribute.labels |
Dipetakan dari log perubahan |
pattern_version |
event.idm.entity.entity.resource.attribute.labels |
Dipetakan dari log perubahan |
observable.object.properties.value.condition |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
handling.controlled_structure |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
handling.marking_structures.color |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
related_indicators.related_indicators |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
related_indicators.scope |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
indicator_types |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
valid_time_positions |
event.idm.entity.entity.asset.attribute.labels |
Dipetakan dari log perubahan |
observable.object.properties.custom_properties |
event.idm.entity.metadata.threat.detection_fields |
Dipetakan dari log perubahan |
observable.object.properties.value |
event.ioc.domain_and_ports.domain |
Dipetakan dari log perubahan |
mitre-extension-definition.extension_type |
entity.resource.attribute.labels.value |
Dipetakan dari log perubahan |
sco-extension-definition.extension_type |
entity.resource.attribute.labels.value |
Dipetakan dari log perubahan |
x_ctix_confidence_score |
threat_detail.confidence_score |
Dipetakan dari log perubahan |
modified |
timestamp |
Dipetakan dari log perubahan |
valid_from |
entity_event.metadata.interval.start_time |
Dipetakan dari log perubahan |
confidence |
threat_detail.confidence_score |
Dipetakan dari log perubahan |
name |
entity.entity.file.full_path |
Dipetakan dari log perubahan |
description |
threat_detail.description |
Dipetakan dari log perubahan |
external_references.0.source_name |
entity_event.entity.hostname |
Dipetakan dari log perubahan |
entity_type |
IP_ADDRESS |
Dipetakan dari log perubahan |
entity_type |
USER |
Dipetakan dari log perubahan |
entity_type |
FILE |
Dipetakan dari log perubahan |
entity_type |
DOMAIN_NAME |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.