Mengumpulkan log APM F5 BIG-IP

Didukung di:

Dokumen ini menjelaskan cara menyerap log F5 BIG-IP APM ke Google Security Operations menggunakan Bindplane.

F5 BIG-IP Access Policy Manager (APM) menyediakan akses yang aman dan terpadu ke aplikasi, API, dan data. Solusi ini menyediakan kontrol akses berbasis konteks dan identitas dengan kemampuan SSO, autentikasi multi-faktor, dan SSL VPN untuk jaringan perusahaan. Parser mengekstrak kolom dari log yang diformat syslog F5 BIG-IP APM. Log ini menggunakan grok dan/atau kv untuk mengurai pesan log, lalu memetakan nilai ini ke Model Data Terpadu (UDM). Layanan 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 antarmuka pengelolaan F5 BIG-IP

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  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 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.yaml
    
  • Windows:

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

Edit file konfigurasi

  • Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    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: 'F5_BIGIP_APM'
            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 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
      • YOUR_CUSTOMER_ID: ID Pelanggan dari bagian Dapatkan ID pelanggan
      • 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
      • log_type: Jenis log persis seperti yang muncul di Chronicle (F5_BIGIP_APM)

Simpan 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, jalankan perintah berikut:

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

        sudo systemctl status observiq-otel-collector
      
    2. Periksa 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-collector
      
    • Konsol layanan:

      1. Tekan Win+R, ketik services.msc, lalu tekan Enter.
      2. Temukan observIQ OpenTelemetry Collector.
      3. Klik kanan, lalu pilih Mulai Ulang.

      4. Pastikan layanan sedang berjalan:

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

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

Mengonfigurasi penerusan syslog F5 BIG-IP APM

  1. Login ke antarmuka web F5 BIG-IP (TMUI/Configuration Utility).
  2. Buka System > Logs > Configuration > Remote Logging.
  3. Di bagian Remote Logging, berikan detail konfigurasi berikut:
    • IP Jarak Jauh: Masukkan alamat IP host agen Bindplane.
    • Remote Port: Masukkan 514.
  4. Klik Tambahkan.
  5. Klik Perbarui untuk menyimpan konfigurasi.
  6. Untuk mengonfigurasi logging berkecepatan tinggi (HSL) untuk log APM mendetail melalui CLI:

    1. SSH ke sistem F5 BIG-IP.
    2. Jalankan perintah berikut:

      tmsh create ltm pool syslog_pool members add { BINDPLANE_IP:514 }
      tmsh create sys log-config destination remote-high-speed-log secops_hsl pool-name syslog_pool protocol udp
      tmsh create sys log-config destination remote-syslog secops_syslog remote-high-speed-log secops_hsl
      tmsh create sys log-config publisher secops_publisher destinations add { secops_syslog }
      tmsh save sys config
      
      • Ganti BINDPLANE_IP dengan alamat IP host agen Bindplane.
  7. Tetapkan penayang ke profil akses APM:

    1. Buka Access > Profiles / Policies > Access Profiles.
    2. Pilih profil akses target.
    3. Di tab Setelan Log, pilih penayang yang dibuat.
    4. Klik Update.
  8. Pastikan pesan syslog dikirim dengan memeriksa log agen Bindplane.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
application principal.application Nilai diambil dari kolom aplikasi yang diekstrak oleh filter grok.
bytes_in network.received_bytes Nilai diambil dari kolom bytes_in yang diekstrak oleh filter grok dan dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
bytes_out network.sent_bytes Nilai diambil dari kolom bytes_out yang diekstrak oleh filter grok dan dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
cmd_data principal.process.command_line Nilai diambil dari kolom cmd_data yang diekstrak oleh filter kv.
destination_ip target.ip Nilai diambil dari kolom destination_ip yang diekstrak oleh filter grok.
destination_port target.port Nilai diambil dari kolom destination_port yang diekstrak oleh filter grok dan dikonversi menjadi bilangan bulat.
folder principal.process.file.full_path Nilai diambil dari kolom folder yang diekstrak oleh filter kv.
geoCountry principal.location.country_or_region Nilai diambil dari kolom geoCountry yang diekstrak oleh filter grok.
geoState principal.location.state Nilai diambil dari kolom geoState yang diekstrak oleh filter grok.
inner_msg security_result.description Nilai diambil dari kolom inner_msg yang diekstrak oleh filter grok jika tidak ada deskripsi spesifik lainnya.
ip_protocol network.ip_protocol Nilai diambil dari kolom ip_protocol yang diekstrak oleh filter grok.
principal_hostname principal.hostname Nilai diambil dari kolom principal_hostname yang diekstrak oleh filter grok.
principal_ip principal.ip Nilai diambil dari kolom principal_ip yang diekstrak oleh filter grok.
process_id principal.process.pid Nilai diambil dari kolom process_id yang diekstrak oleh filter grok.
peran user_role.name Nilai diambil dari kolom peran yang diekstrak oleh filter grok. Jika kolom peran berisi "admin" (tidak peka huruf besar/kecil), nilai ditetapkan ke "ADMINISTRATOR".
tingkat keseriusan, security_result.severity_details Nilai asli dari pesan syslog disimpan di sini. Nilai ini berasal dari kolom tingkat keparahan menggunakan logika bersyarat: , CRITICAL -> CRITICAL , ERR -> ERROR , ALERT, EMERGENCY -> HIGH , INFO, NOTICE -> INFORMATIONAL , DEBUG -> LOW , WARN -> MEDIUM
source_ip principal.ip Nilai diambil dari kolom source_ip yang diekstrak oleh filter grok.
source_port principal.port Nilai diambil dari kolom source_port yang diekstrak oleh filter grok dan dikonversi menjadi bilangan bulat.
status security_result.summary Nilai diambil dari kolom status yang diekstrak oleh filter kv.
timestamp metadata.event_timestamp, timestamp Nilai diambil dari kolom stempel waktu yang diekstrak oleh filter grok dan diuraikan ke dalam objek stempel waktu. Kolom stempel waktu dalam objek peristiwa tingkat teratas juga mendapatkan nilai ini.
pengguna principal.user.userid Nilai diambil dari kolom pengguna yang diekstrak oleh filter grok, setelah menghapus awalan "id" atau "ID". Nilai diturunkan berdasarkan keberadaan kolom lain: , Jika pengguna ada: USER_UNCATEGORIZED , Jika source_ip dan destination_ip ada: NETWORK_CONNECTION , Jika principal_ip atau principal_hostname ada: STATUS_UPDATE , Jika tidak: GENERIC_EVENT Hardcode ke "BIGIP_APM". Dikodekan secara permanen ke "F5". Jika kolom hasil adalah "failed", nilainya akan ditetapkan ke "BLOCK".

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