Mengumpulkan log Akamai WAF

Didukung di:

Dokumen ini menjelaskan cara menyerap log Akamai WAF ke Google Security Operations menggunakan Akamai CEF Connector dan Bindplane.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Host Windows 2016 atau yang lebih baru atau Linux dengan systemd untuk penginstalan agen Bindplane
  • Server Linux (direkomendasikan CentOS/RHEL/Ubuntu) dengan minimal 2 core CPU, RAM 6 GB, ruang disk kosong 2 GB untuk Akamai CEF Connector
  • Java 8 (JRE 1.8) atau yang lebih baru diinstal di host CEF Connector
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane dan bahwa daftar yang diizinkan proxy *.cloudsecurity.akamaiapis.net dan *.luna.akamaiapis.net
  • Akses istimewa ke Akamai Control Center
  • Konfigurasi keamanan Akamai dengan App & API Protector, Kona Site Defender, Web Application Protector, Bot Manager, atau Account Protector diaktifkan

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.

Mengaktifkan integrasi SIEM di Akamai Control Center

  1. Login ke Akamai Control Center.
  2. Di bagian WEB & DATA CENTER SECURITY, klik Security Configuration.
  3. Buka konfigurasi keamanan dan versi yang sesuai yang datanya ingin Anda kumpulkan ke SIEM.
  4. Klik Setelan Lanjutan dan luaskan Pengumpulan data untuk Integrasi SIEM.
  5. Klik Aktif untuk mengaktifkan SIEM.
  6. Pilih kebijakan keamanan yang datanya ingin Anda ekspor:
    • Semua kebijakan Keamanan: Pilih opsi ini untuk mengirim data SIEM untuk peristiwa yang melanggar kebijakan keamanan apa pun atau semua kebijakan keamanan dalam konfigurasi keamanan.
    • Kebijakan keamanan tertentu: Pilih opsi ini untuk mengirim data terkait satu atau beberapa kebijakan keamanan tertentu. Pilih kebijakan yang sesuai dari menu drop-down.
  7. Opsional: Jika Anda menggunakan Account Protector dan ingin menyertakan nama pengguna yang tidak dienkripsi, aktifkan kotak centang Sertakan nama pengguna.
  8. Opsional: Jika Anda ingin menerima informasi sidik jari JA4 dalam peristiwa SIEM, aktifkan kotak centang Sertakan Sidik Jari TLS Klien JA4.
  9. Opsional: Jika Anda ingin mengecualikan peristiwa yang termasuk dalam jenis dan tindakan perlindungan tertentu, klik Tambahkan pengecualian. Pilih perlindungan dan tindakan terkait yang tidak ingin Anda kumpulkan oleh SIEM. Klik Simpan.
  10. Salin nilai di kolom ID Konfigurasi Keamanan Web. Simpan ID ini untuk digunakan nanti.
  11. Klik Aktifkan untuk menerapkan perubahan konfigurasi keamanan Anda ke jaringan produksi. Di bagian Jaringan, klik Produksi, lalu klik Aktifkan.

Menyiapkan pengguna untuk mengelola SIEM di Akamai Control Center

  1. Di Akamai Control Center, klik Identity & access di bagian ACCOUNT ADMIN.
  2. Di tab Pengguna dan Klien API, temukan pengguna yang ingin Anda tetapkan perannya atau klik tombol Buat pengguna.
  3. Untuk menetapkan peran SIEM kepada pengguna yang sudah ada:
    • Buka akun pengguna, lalu klik tab Edit peran.
    • Temukan grup yang sesuai, klik menu Peran, lalu pilih peran Kelola SIEM.
    • Klik Kirim.
  4. Untuk menetapkan peran SIEM kepada pengguna baru:
    • Klik Buat pengguna.
    • Masukkan informasi dasar untuk pengguna dan buka bagian Tetapkan Peran.
    • Temukan grup yang sesuai, klik menu Peran, lalu pilih peran Kelola SIEM.
    • Klik Simpan.

Menyediakan kredensial SIEM API di Akamai Control Center

  1. Buka halaman Membuat kredensial autentikasi di dokumentasi Akamai.
  2. Ikuti langkah-langkah untuk menyediakan SIEM API bagi pengguna yang Anda tetapkan untuk mengelola SIEM.
  3. Salin dan simpan kredensial berikut dengan aman:
    • Token Akses
    • Token Klien
    • Rahasia Klien
    • URL Dasar

Menginstal Akamai CEF Connector

  1. Di server Linux Anda, download paket distribusi CEF Connector terbaru dari repositori GitHub Akamai.
  2. Transfer paket ke server Anda menggunakan wget atau SFTP.
  3. Verifikasi hash SHA256 dari file yang didownload untuk memastikan integritas.
  4. Ekstrak paket distribusi:

    unzip CEFConnector-<version>.zip
    
  5. Buka direktori yang diekstrak:

    cd CEFConnector-<version>
    
  6. Untuk menginstal layanan, buat link simbolis ke skrip startup:

    sudo ln -s /path/to/CEFConnector-<version>/bin/AkamaiCEFConnector.sh /etc/init.d/AkamaiCEFConnector
    

Mengonfigurasi Konektor CEF Akamai

  1. Buka direktori config dalam penginstalan CEF Connector:

    cd config
    
  2. Buka file CEFConnector.properties menggunakan editor teks (misalnya, nano, vi):

    sudo nano CEFConnector.properties
    
  3. Konfigurasi parameter wajib berikut:

    # Akamai API Configuration
    akamai.data.requesturlhost=https://cloudsecurity.akamaiapis.net
    akamai.data.configs=<YOUR_SECURITY_CONFIG_ID>
    akamai.data.timebased=false
    akamai.data.limit=200000
    
    # API Credentials (from Step: Provision SIEM API credentials)
    akamai.data.accesstoken=<YOUR_ACCESS_TOKEN>
    akamai.data.clienttoken=<YOUR_CLIENT_TOKEN>
    akamai.data.clientsecret=<YOUR_CLIENT_SECRET>
    akamai.data.baseurl=<YOUR_BASE_URL>
    
    # CEF Format Configuration
    akamai.cefformatheader=CEF:0|Akamai|akamai_siem|1.0|eventClassId()|name()|severity()
    
    akamai.cefformatextension=act=appliedAction() app=${httpMessage.protocol} c6a2=ipv6src() c6a2Label="Source IPv6 Address" cs1=${attackData.rules} cs1Label="Rules" cs2=${attackData.ruleMessages} cs2Label="Rule Messages" cs3=${attackData.ruleData} cs3Label="Rule Data" cs4=${attackData.ruleSelectors} cs4Label="Rule Selectors" cs5=${attackData.clientReputation} cs5Label="Client Reputation" cs6=${attackData.apiId} cs6Label="API ID" devicePayloadId=${httpMessage.requestId} dhost=${httpMessage.host} dpt=${httpMessage.port} flexString1=${attackData.configId} flexString1Label="Security Config ID" flexString2=${attackData.policyId} flexString2Label="Firewall Policy Id" out=${httpMessage.bytes} request=requestURL() requestMethod=${httpMessage.method} src=${attackData.clientIP} start=${httpMessage.start} AkamaiSiemSlowPostAction=${attackData.slowPostAction} AkamaiSiemSlowPostRate=${attackData.slowPostRate} AkamaiSiemRuleVersions=${attackData.ruleVersions} AkamaiSiemRuleTags=${attackData.ruleTags} AkamaiSiemJA4=${identity.ja4} AkamaiSiemRuleActions=${attackData.ruleActions}
    
    # Connector Pull Configuration
    connector.refresh.period=60
    connector.consumer.count=3
    connector.retry=5
    
    # Proxy Configuration (if applicable)
    # connector.proxy.host=
    # connector.proxy.port=
    
  4. Ganti placeholder berikut dengan nilai sebenarnya:

    • <YOUR_SECURITY_CONFIG_ID>: ID Konfigurasi Keamanan Web yang Anda salin sebelumnya. Untuk beberapa konfigurasi, pisahkan ID dengan titik koma (misalnya, 12345;67890).
    • <YOUR_ACCESS_TOKEN>: Token akses dari kredensial Akamai API
    • <YOUR_CLIENT_TOKEN>: Token klien dari kredensial Akamai API
    • <YOUR_CLIENT_SECRET>: Rahasia klien dari kredensial Akamai API
    • <YOUR_BASE_URL>: URL dasar dari kredensial Akamai API
  5. Simpan dan tutup file tersebut.

Mengonfigurasi logging CEF Connector

  1. Buka direktori config dalam penginstalan CEF Connector.
  2. Buka file log4j2.xml menggunakan editor teks:

    sudo nano log4j2.xml
    
  3. Konfigurasi parameter berikut untuk output syslog ke Bindplane:

    <!-- Syslog Appender Configuration -->
    <Syslog name="SyslogAppender" 
            host="<BINDPLANE_IP_ADDRESS>" 
            port="<BINDPLANE_PORT>" 
            protocol="<PROTOCOL>" 
            facility="LOCAL0"
            format="RFC5424">
        <PatternLayout pattern="%m%n"/>
    </Syslog>
    
  4. Ganti placeholder berikut:

    • <BINDPLANE_IP_ADDRESS>: Alamat IP server tempat agen Bindplane diinstal
    • <BINDPLANE_PORT>: Nomor port tempat agen Bindplane memproses (misalnya, 514 untuk UDP atau 601 untuk TCP)
    • <PROTOCOL>: Pilih UDP atau TCP
  5. Pastikan CEF Connector mengirim log ke server syslog jarak jauh (BindPpane) dengan mengonfigurasi setelan khusus CEF:

    # In CEFConnector.properties, ensure these are set:
    # Note: These settings are typically in log4j2.xml but referenced here for clarity
    
  6. Simpan dan tutup file tersebut.

Mulai Akamai CEF Connector

  1. Mulai layanan CEF Connector:

    sudo /etc/init.d/AkamaiCEFConnector start
    
  2. Pastikan layanan sedang berjalan:

    sudo /etc/init.d/AkamaiCEFConnector status
    
  3. Pantau log untuk memastikan konektor menarik peristiwa dari Akamai dan mengirimkannya ke Bindplane:

    tail -f /path/to/CEFConnector-<version>/bin/logs/cefconnector.log
    

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
    

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
    

Referensi penginstalan tambahan

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    receivers:
        udplog:
          # Replace the port and IP address as required
          listen_address: "0.0.0.0:514"
        tcplog:
          # Alternative TCP receiver if using TCP protocol
          listen_address: "0.0.0.0:601"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in the Get ingestion authentication file section
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from the Get customer ID section
        customer_id: <YOUR_CUSTOMER_ID>
        # Select the appropriate regional endpoint based on where your Google SecOps instance is provisioned
        # For regional endpoints, see: https://cloud.google.com/chronicle/docs/reference/ingestion-api#regional_endpoints
        endpoint: malachiteingestion-pa.googleapis.com
        # Set the log_type to ensure the correct parser is applied
        log_type: 'AKAMAI_WAF'
        raw_log_field: body
        # Add optional ingestion labels for better organization
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
            # - tcplog  # Uncomment if using TCP
          exporters:
            - chronicle/chronicle_w_labels
    

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
    

Memverifikasi penyerapan log

  1. Login ke konsol Google SecOps.
  2. Buka Penelusuran atau Pemindaian Log Raw.
  3. Telusuri log WAF Akamai terbaru menggunakan label penyerapan:

    metadata.log_type = "AKAMAI_WAF"
    
  4. Pastikan log muncul dengan kolom dan stempel waktu yang diharapkan.

  5. Pastikan kolom format CEF diuraikan dan dipetakan ke UDM dengan benar.

Pemecahan masalah

Masalah konektor CEF

  • Tidak ada peristiwa yang ditarik: Periksa file cefconnector.log untuk mengetahui error. Pastikan kredensial Akamai API sudah benar dan ID konfigurasi keamanan valid.
  • Error koneksi: Pastikan setelan proxy (jika berlaku) dikonfigurasi dengan benar dan domain yang diperlukan diizinkan.
  • Reset database: Jika Anda perlu mereset pelacakan offset, jalankan:

    sudo /etc/init.d/AkamaiCEFConnector resetdb
    

Masalah agen Bindplane

  • Log tidak mencapai Bindplane: Pastikan Konektor CEF dikonfigurasi untuk mengirim syslog ke alamat IP dan port Bindplane yang benar. Periksa aturan firewall antara CEF Connector dan agen Bindplane.
  • Log tidak mencapai Google SecOps: Verifikasi file konfigurasi Bindplane, ID pelanggan, dan jalur autentikasi penyerapan. Periksa log Bindplane untuk mengetahui error:

    sudo journalctl -u observiq-otel-collector -f
    

Jaringan dan konektivitas

  • Pastikan Konektor CEF dapat menjangkau endpoint Akamai SIEM API.
  • Pastikan agen Bindplane dapat menjangkau endpoint penyerapan Google SecOps (malachiteingestion-pa.googleapis.com).
  • Pastikan semua port firewall yang diperlukan terbuka.

Mengambil peristiwa keamanan sebelumnya

Akamai CEF Connector beroperasi dalam dua mode:

  • Berbasis offset (direkomendasikan): Konektor secara otomatis mencatat peristiwa keamanan ke dalam log saat dikumpulkan secara hampir real-time. Ini adalah mode default saat akamai.data.timebased disetel ke false.
  • Berdasarkan waktu: Memungkinkan Anda mengambil peristiwa yang terjadi dalam jangka waktu tertentu (hingga 12 jam sebelumnya).

Untuk mengambil peristiwa keamanan yang hilang atau sebelumnya:

  1. Buka file konfigurasi konektor:

    sudo nano /path/to/CEFConnector-<version>/config/CEFConnector.properties
    
  2. Ubah konfigurasi berbasis waktu:

    akamai.data.timebased=true
    akamai.data.timebased.from=<EPOCH_START_TIME>
    akamai.data.timebased.to=<EPOCH_END_TIME>
    
    • Ganti <EPOCH_START_TIME> dengan waktu mulai dalam format epoch (dalam 12 jam terakhir).
    • Ganti <EPOCH_END_TIME> dengan waktu berakhir dalam format epoch (opsional; jika dibiarkan kosong, akan menarik acara hingga saat ini).
  3. Mulai ulang CEF Connector:

    sudo /etc/init.d/AkamaiCEFConnector restart
    
  4. Setelah data historis diambil, kembali ke mode offset:

    akamai.data.timebased=false
    
  5. Mulai ulang CEF Connector.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
src (attackData.clientIP) principal.ip Alamat IP sumber klien yang membuat permintaan
c6a2 (ipv6src) principal.ip Alamat IPv6 sumber jika attackData.clientIP dalam format IPv6
dhost (httpMessage.host) target.hostname Nama host dari header HTTP HOST
dpt (httpMessage.port) target.port Nomor port yang digunakan oleh permintaan masuk
requestMethod (httpMessage.method) network.http.method Metode HTTP permintaan masuk (GET, POST, dll.)
request (requestURL) target.url Menghitung URL lengkap dari kolom httpMessage
cs1 (attackData.rules) security_result.rule_id ID aturan yang dipicu untuk permintaan ini
cs2 (attackData.ruleMessages) security_result.rule_name Pesan aturan yang dipicu
act (appliedAction) security_result.action Tindakan yang diambil (peringatan, tolak, batalkan, dll.)
severity security_result.severity Tingkat keparahan yang dihitung (5 untuk deteksi, 10 untuk mitigasi)
cs5 (attackData.clientReputation) security_result.threat_name Skor IP klien untuk Reputasi Klien
cs6 (attackData.apiId) security_result.detection_fields ID API untuk Perlindungan API
start (httpMessage.start) metadata.event_timestamp Waktu saat Server Edge memulai koneksi (format epoch)
devicePayloadId (httpMessage.requestId) metadata.product_log_id ID unik global pesan
flexString1 (attackData.configId) security_result.detection_fields ID Konfigurasi Keamanan yang diterapkan pada permintaan ini
flexString2 (attackData.policyId) security_result.detection_fields ID Kebijakan Firewall yang diterapkan pada permintaan ini
AkamaiSiemJA4 (identity.ja4) network.tls.client.ja3 Sidik jari TLS klien JA4

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