Mengumpulkan log Juniper NetScreen Firewall
Dokumen ini menjelaskan cara menyiapkan log Juniper NetScreen Firewall untuk dikirim ke Google Security Operations. Parser mengekstrak kolom menggunakan pola grok, menangani berbagai format syslog dan payload JSON. Kemudian, sistem memetakan kolom yang diekstrak ini ke UDM, mengategorikan peristiwa sebagai koneksi jaringan, login pengguna, pembaruan status, atau peristiwa umum berdasarkan keberadaan kolom tertentu seperti alamat IP, nama pengguna, dan port.
Sebelum memulai
- Pastikan Anda memiliki akses administratif ke Juniper NetScreen Firewall.
- Pastikan Anda memiliki instance Google Security Operations.
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
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" /quiet
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.sh
Referensi penginstalan tambahan
- Untuk opsi penginstalan tambahan, lihat panduan penginstalan ini.
Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps
Akses file konfigurasi:
- Cari file
config.yaml
. Biasanya, file ini berada di direktori/etc/bindplane-agent/
di Linux atau di direktori penginstalan di Windows. - Buka file menggunakan editor teks (misalnya,
nano
,vi
, atau Notepad).
- Cari file
Edit file
config.yaml
sebagai berikut:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: SYSLOG namespace: juniper_firewall raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
Ganti
<customer_id>
dengan ID pelanggan yang sebenarnya.Perbarui
/path/to/ingestion-authentication-file.json
ke jalur tempat file autentikasi disimpan di bagian Dapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi firewall Juniper Networks NetScreen
- Login ke antarmuka web Juniper NetScreen.
- Pilih Konfigurasi > Setelan laporan > Setelan log.
- Centang semua kotak Tingkat keparahan peristiwa.
- Klik Terapkan.
- Pilih Konfigurasi > Setelan laporan > Syslog.
- Centang kotak Enable syslog messages.
- Dalam daftar Source interface, pilih antarmuka NetScreen tempat paket syslog perlu dikirim.
- Di bagian Server syslog, centang kotak Aktifkan dan berikan informasi berikut:
- IP/Hostname: masukkan alamat IP
Bindplane
. - Port: masukkan nomor port
Bindplane
. - Fasilitas MDR: pilih tingkat fasilitas Local0.
- Fasilitas: pilih tingkat fasilitas Local0.
- IP/Hostname: masukkan alamat IP
- Klik Terapkan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
ACTION |
security_result.action_details |
Dipetakan langsung dari kolom ACTION yang diekstrak melalui filter GROK dan KV. |
APPLICATION |
principal.application |
Dipetakan langsung dari kolom APPLICATION yang diekstrak melalui filter GROK dan KV. |
application |
target.application |
Dipetakan langsung dari kolom application yang diekstrak melalui GROK. |
attack-name |
security_result.threat_name |
Dipetakan langsung dari kolom attack-name yang diekstrak melalui GROK. |
bytes-from-client |
network.sent_bytes |
Dipetakan langsung dari kolom bytes-from-client yang diekstrak melalui GROK. |
bytes-from-server |
network.received_bytes |
Dipetakan langsung dari kolom bytes-from-server yang diekstrak melalui GROK. |
command |
target.process.command_line |
Dipetakan langsung dari kolom command yang diekstrak melalui GROK. |
destination-address |
target.ip |
Dipetakan langsung dari kolom destination-address yang diekstrak melalui GROK. |
destination-port |
target.port |
Dipetakan langsung dari kolom destination-port yang diekstrak melalui GROK. |
destination-zone |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom destination-zone yang diekstrak melalui filter GROK dan KV. key disetel ke destination-zone . |
destination_zone-name |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom destination_zone-name yang diekstrak melalui GROK. key disetel ke dstzone . |
dst-nat-rule-name |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom dst-nat-rule-name yang diekstrak melalui GROK. key disetel ke dst-nat-rule-name . |
dst-nat-rule-type |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom dst-nat-rule-type yang diekstrak melalui GROK. key disetel ke dst-nat-rule-type . |
elapsed-time |
network.session_duration.seconds |
Dipetakan langsung dari kolom elapsed-time yang diekstrak melalui GROK. |
encrypted |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom encrypted yang diekstrak melalui GROK. key disetel ke encrypted . |
event_time |
metadata.event_timestamp |
Stempel waktu diekstrak dari log mentah menggunakan berbagai pola GROK, dengan memprioritaskan event_time , lalu TIMESTAMP_ISO8601 , dan terakhir SYSLOGTIMESTAMP . Kemudian, nilai tersebut dikonversi menjadi objek stempel waktu. |
host |
principal.hostname , intermediary.hostname |
Jika type adalah NetScreen , dipetakan ke intermediary.hostname . Jika tidak, dipetakan ke principal.hostname . |
host_ip |
intermediary.ip |
Dipetakan langsung dari kolom host_ip yang diekstrak melalui GROK. |
icmp-type |
network.icmp_type |
Dipetakan langsung dari kolom icmp-type yang diekstrak melalui GROK. |
ident |
target.application |
Dipetakan langsung dari kolom ident yang diekstrak melalui filter GROK dan JSON. |
inbound-bytes |
network.received_bytes |
Dipetakan langsung dari kolom inbound-bytes yang diekstrak melalui GROK. |
inbound-packets |
network.received_packets |
Dipetakan langsung dari kolom inbound-packets yang diekstrak melalui GROK. |
ip |
principal.ip , intermediary.ip |
Jika type adalah NetScreen , dipetakan ke intermediary.ip . Jika tidak, dipetakan ke principal.hostname . |
message |
security_result.description |
Jika pesan berupa JSON dan kolom log_message_data tidak ada, kolom message akan digunakan sebagai deskripsi. |
msg_data |
security_result.summary |
Dipetakan langsung dari kolom msg_data yang diekstrak melalui GROK. |
nat-destination-address |
target.nat_ip |
Dipetakan langsung dari kolom nat-destination-address yang diekstrak melalui GROK. |
nat-destination-port |
target.nat_port |
Dipetakan langsung dari kolom nat-destination-port yang diekstrak melalui GROK. |
nat-source-address |
principal.nat_ip |
Dipetakan langsung dari kolom nat-source-address yang diekstrak melalui GROK. |
nat-source-port |
principal.nat_port |
Dipetakan langsung dari kolom nat-source-port yang diekstrak melalui GROK. |
outbound-bytes |
network.sent_bytes |
Dipetakan langsung dari kolom outbound-bytes yang diekstrak melalui GROK. |
outbound-packets |
network.sent_packets |
Dipetakan langsung dari kolom outbound-packets yang diekstrak melalui GROK. |
packets-from-client |
network.sent_packets |
Dipetakan langsung dari kolom packets-from-client yang diekstrak melalui GROK. |
packets-from-server |
network.received_packets |
Dipetakan langsung dari kolom packets-from-server yang diekstrak melalui GROK. |
packet-incoming-interface |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom packet-incoming-interface yang diekstrak melalui GROK. key disetel ke packet-incoming-interface . |
pid |
target.process.pid |
Dipetakan langsung dari kolom pid yang diekstrak melalui filter GROK dan JSON. |
policy-name |
security_result.rule_name |
Dipetakan langsung dari kolom policy-name yang diekstrak melalui GROK. |
PROFILE |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom PROFILE yang diekstrak melalui filter GROK dan KV. key disetel ke PROFILE . |
protocol-id , protocol-name |
network.ip_protocol |
Dipetakan dari kolom protocol-id atau protocol-name yang diekstrak melalui GROK. Nilai dikonversi ke enum protokol IP yang sesuai. |
REASON |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom REASON yang diekstrak melalui filter GROK dan KV. key disetel ke REASON . |
reason |
security_result.description |
Dipetakan langsung dari kolom reason yang diekstrak melalui GROK. |
rule-name |
security_result.rule_name |
Dipetakan langsung dari kolom rule-name yang diekstrak melalui GROK. |
SESSION_ID |
network.session_id |
Dipetakan langsung dari kolom SESSION_ID yang diekstrak melalui filter GROK dan KV. |
service-name |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom service-name yang diekstrak melalui GROK. key disetel ke srvname . |
source-address |
principal.ip |
Dipetakan langsung dari kolom source-address yang diekstrak melalui GROK. |
source-port |
principal.port |
Dipetakan langsung dari kolom source-port yang diekstrak melalui GROK. |
source-zone |
additional.fields[].value.string_value |
Dipetakan langsung dari kolom source-zone yang diekstrak melalui filter GROK dan KV. key disetel ke source-zone . |
source_zone-name |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom source_zone-name yang diekstrak melalui GROK. key disetel ke srczone . |
src-nat-rule-name |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom src-nat-rule-name yang diekstrak melalui GROK. key disetel ke src-nat-rule-name . |
src-nat-rule-type |
security_result.detection_fields[].value |
Dipetakan langsung dari kolom src-nat-rule-type yang diekstrak melalui GROK. key disetel ke src-nat-rule-type . |
subtype |
metadata.product_event_type |
Dipetakan langsung dari kolom subtype yang diekstrak melalui GROK. |
threat-severity |
security_result.severity_details |
Dipetakan langsung dari kolom threat-severity yang diekstrak melalui GROK. |
time |
metadata.event_timestamp |
Dipetakan langsung dari kolom time yang diekstrak melalui filter GROK dan JSON. Dikonversi ke objek stempel waktu. |
username |
target.user.userid |
Dipetakan langsung dari kolom username yang diekstrak melalui GROK. |
metadata.log_type |
Hardcode ke JUNIPER_FIREWALL . Dikodekan secara permanen ke JUNIPER_FIREWALL atau NetScreen berdasarkan kolom type . Hardcode ke JUNIPER_FIREWALL . Disetel ke ALLOW atau BLOCK berdasarkan logika di parser. Tetapkan ke LOW, MEDIUM, HIGH, INFORMATIONAL, atau CRITICAL berdasarkan kolom subtype dan severity_details . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.