Mengumpulkan log APM F5 BIG-IP

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log F5 BIG-IP Access Policy Manager (APM) menggunakan forwarder Google Security Operations.

Untuk mengetahui informasi selengkapnya, lihat Penambahan data ke Google Security Operations.

Label penyerapan mengidentifikasi parser yang menormalisasi data log mentah ke format UDM terstruktur. Informasi dalam dokumen ini berlaku untuk parser dengan label transfer F5_BIGIP_APM.

Mengonfigurasi APM F5 BIG-IP

  1. Login ke portal utilitas konfigurasi BIG-IP menggunakan kredensial administrator.
  2. Pilih Main > System > Logs > Configuration > Remote logging.
  3. Di bagian Properties, lakukan tindakan berikut:

    • Di kolom Remote IP, masukkan alamat IP penerusan Google Security Operations.
    • Di kolom Port jarak jauh, masukkan nomor port yang tinggi.
  4. Klik Tambahkan.

  5. Klik Perbarui.

    Untuk log dari APM, hanya format syslog Berkeley Software Distribution (BSD) yang didukung.

    Berdasarkan tanda tangan di APM, kolektor hanya memproses log APM. Pengumpul peristiwa APM F5 BIG-IP juga mendukung log multi-threading dari perangkat LTM 11.6 hingga 12.1.1.

    Jika Anda menggunakan iRule, gunakan format iRule yang direkomendasikan. Google Security Operations hanya mendukung format iRule berikut:

    # log_header_requests
    ###################################################################################
    #################################################
    # Purpose: logs header information to Local Traffic log
    # #
    #
    # Update-Log Date By Description
    # Created 02/07/2020 E01961 Initial implementation
    #
    #
    ###################################################################################
    ################################################
    when HTTP_REQUEST {
    set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host]
    [HTTP::uri]"
    log local5. "================="
    log local5. "$LogString (request)"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # set UserID [URI::query "?[HTTP::payload]" "UserID"]
    # log local0. "User $UserID attempted login from [IP::client_addr] and referer:
    [HTTP::header "Referer"]"
    # log local0. "============================================="
    }
    when HTTP_RESPONSE {
    log local5. "=================="
    log local5. "$LogString (response) - status: [HTTP::status]"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # log local0. "============================================="
    

Mengonfigurasi DNS F5 BIG-IP

Untuk mengonfigurasi DNS F5 BIG-IP, lakukan tugas berikut:

Membuat kumpulan server logging jarak jauh

  1. Di tab Main, pilih DNS > Delivery > Load balancing > Pools or local traffic > Pools.
  2. Di jendela Daftar kumpulan yang muncul, klik Buat.
  3. Di jendela New pool yang muncul, di kolom Name, berikan nama unik untuk kumpulan.
  4. Di bagian Anggota baru, tambahkan alamat IP untuk setiap server logging jarak jauh yang ingin Anda sertakan dalam kumpulan:
    1. Di kolom Alamat, masukkan alamat IP forwarder Operasi Keamanan Google atau pilih alamat node dari daftar node.
    2. Di kolom Service port, ketik nomor layanan atau pilih nama layanan dari daftar. Pastikan Anda telah mengonfigurasi port logging jarak jauh yang benar.
  5. Klik Tambahkan, lalu klik Selesai.

Membuat tujuan log berkecepatan tinggi jarak jauh

  1. Di tab Main, pilih System > Logs > Configuration > Log destinations.
  2. Di jendela Tujuan log yang muncul, klik Buat.
  3. Di kolom Name, berikan nama unik dan mudah dikenali untuk tujuan ini.
  4. Di daftar Type, pilih Remote high-speed log.
  5. Dalam daftar Pool name, pilih kumpulan server log jarak jauh yang ingin Anda kirimkan pesan log oleh sistem BIG-IP.
  6. Di daftar Protokol, pilih protokol yang digunakan oleh anggota kumpulan logging kecepatan tinggi.
  7. Klik Selesai.

Membuat tujuan log kecepatan tinggi jarak jauh yang diformat

  1. Di tab Main, pilih System > Logs > Configuration > Log Destinations.
  2. Di jendela Tujuan log yang muncul, klik Buat.
  3. Di kolom Name, berikan nama unik dan mudah dikenali untuk tujuan ini.
  4. Di daftar Type, pilih tujuan logging berformat sebagai Remote syslog. Sistem BIG-IP kini dikonfigurasi untuk mengirim string teks berformat ke server log.
  5. Dalam daftar Type, pilih format untuk log.
  6. Di tab Forward To, pilih daftar High-speed log destination, lalu pilih tujuan yang mengarah ke kumpulan server syslog jarak jauh yang ingin Anda kirim pesan log ke sistem BIG-IP.
  7. Klik Selesai.

Membuat penayang

  1. Di tab Main, pilih System > Logs > Configuration > Log publishers.
  2. Di jendela Log publishers yang muncul, klik Create.
  3. Di kolom Nama, berikan nama unik dan dapat diidentifikasi untuk penayang.
  4. Dalam daftar Log publisher, dari daftar yang tersedia, pilih tujuan yang dibuat sebelumnya.
  5. Untuk memindahkan tujuan ke daftar yang dipilih, klik << Pindahkan.
  6. Jika Anda menggunakan tujuan yang diformat, pilih tujuan yang baru dibuat yang cocok dengan server log Anda, seperti Remote syslog, Splunk, atau ArcSight.
  7. Klik Selesai.

Membuat profil logging DNS kustom

  1. Di tab Main, pilih DNS > Delivery > Profiles > Other DNS Logging atau Local traffic > Profiles > Others > DNS logging.
  2. Di jendela Daftar profil DNS Logging yang muncul, klik Buat.
  3. Di kolom Name, berikan nama unik untuk profil.
  4. Dalam daftar Log publisher, pilih tujuan tempat sistem BIG-IP mengirim entri log DNS.
  5. Jika Anda menginginkan sistem BIG-IP:
    • Untuk mencatat semua kueri DNS, dari setelan Log queries, pastikan kotak centang enabled dipilih.
    • Untuk mencatat semua respons DNS, dari setelan Log responses, pilih kotak centang yang diaktifkan.
    • Untuk menyertakan ID kueri yang dikirim oleh klien dalam pesan log, dari setelan Sertakan ID kueri, pilih kotak centang yang diaktifkan.
  6. Klik Selesai.

Menambahkan profil logging DNS ke pemroses

  1. Di tab Main, pilih DNS > Delivery > Listeners > DNS listener.
  2. Di bagian Service, dari daftar DNS profile, pilih profil DNS yang sebelumnya Anda konfigurasi.
  3. Klik Perbarui.

Mengonfigurasi forwarder Google Security Operations untuk menyerap log APM F5 BIG-IP

  1. Buka Setelan SIEM > Penerima.
  2. Klik Tambahkan penerusan baru.
  3. Di kolom Forwarder Name, masukkan nama unik untuk pengirim.
  4. Klik Kirim. Pengirim ditambahkan dan jendela Tambahkan konfigurasi kolektor akan muncul.
  5. Di kolom Nama kolektor, ketik nama.
  6. Pilih F5 BIGIP Access Policy Manager sebagai Jenis log.
  7. Pilih Syslog sebagai Jenis kolektor.
  8. Konfigurasikan parameter input wajib berikut:
    • Protocol: menentukan protokol.
    • Address: menentukan alamat IP atau nama host target tempat kolektor berada dan alamat ke data syslog.
    • Port: menentukan port target tempat kolektor berada dan memproses data syslog.
  9. Klik Kirim.

Untuk informasi selengkapnya tentang forwarder Google Security Operations, lihat Mengelola konfigurasi forwarder melalui UI Google Security Operations.

Jika Anda mengalami masalah saat membuat penerusan, hubungi dukungan Google Security Operations.

Referensi pemetaan kolom

Parser APM F5 BIG-IP ini mengekstrak kolom dari pesan syslog, yang dikategorikan berdasarkan sumber aplikasi (tmsh, tmm, apmd, httpd, atau lainnya). Kemudian, alat ini memetakan kolom yang diekstrak ini ke UDM, menangani berbagai format log, dan memperkaya data dengan metadata seperti tingkat keparahan, lokasi, dan informasi pengguna.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
application principal.application Nilai diambil dari kolom application 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 tanpa tanda tangan.
bytes_out network.sent_bytes Nilai diambil dari kolom bytes_out yang diekstrak oleh filter grok dan dikonversi menjadi bilangan bulat tanpa tanda 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 yang tersedia.
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 role yang diekstrak oleh filter grok. Jika kolom role berisi "admin" (tidak peka huruf besar/kecil), nilainya ditetapkan ke "ADMINISTRATOR".
tingkat keseriusan, security_result.severity_details Nilai asli dari pesan syslog disimpan di sini. Nilai ini berasal dari kolom severity 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 timestamp yang diekstrak oleh filter grok dan diuraikan menjadi objek stempel waktu. Kolom timestamp di objek event tingkat teratas juga mendapatkan nilai ini.
pengguna principal.user.userid Nilai diambil dari kolom user yang diekstrak oleh filter grok, setelah menghapus awalan "id\" atau "ID\". Nilai ini berasal dari keberadaan kolom lain:
Jika user 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". Di-hardcode ke "F5". Jika kolom result "gagal", nilainya akan ditetapkan ke "BLOCK".

Perubahan

2023-06-06

  • Parser yang baru dibuat.