Mengumpulkan log Akamai WAF
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.netdan*.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
- 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.
Mengaktifkan integrasi SIEM di Akamai Control Center
- Login ke Akamai Control Center.
- Di bagian WEB & DATA CENTER SECURITY, klik Security Configuration.
- Buka konfigurasi keamanan dan versi yang sesuai yang datanya ingin Anda kumpulkan ke SIEM.
- Klik Setelan Lanjutan dan luaskan Pengumpulan data untuk Integrasi SIEM.
- Klik Aktif untuk mengaktifkan SIEM.
- 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.
- Opsional: Jika Anda menggunakan Account Protector dan ingin menyertakan nama pengguna yang tidak dienkripsi, aktifkan kotak centang Sertakan nama pengguna.
- Opsional: Jika Anda ingin menerima informasi sidik jari JA4 dalam peristiwa SIEM, aktifkan kotak centang Sertakan Sidik Jari TLS Klien JA4.
- 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.
- Salin nilai di kolom ID Konfigurasi Keamanan Web. Simpan ID ini untuk digunakan nanti.
- 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
- Di Akamai Control Center, klik Identity & access di bagian ACCOUNT ADMIN.
- Di tab Pengguna dan Klien API, temukan pengguna yang ingin Anda tetapkan perannya atau klik tombol Buat pengguna.
- 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.
- 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
- Buka halaman Membuat kredensial autentikasi di dokumentasi Akamai.
- Ikuti langkah-langkah untuk menyediakan SIEM API bagi pengguna yang Anda tetapkan untuk mengelola SIEM.
- Salin dan simpan kredensial berikut dengan aman:
- Token Akses
- Token Klien
- Rahasia Klien
- URL Dasar
Menginstal Akamai CEF Connector
- Di server Linux Anda, download paket distribusi CEF Connector terbaru dari repositori GitHub Akamai.
- Transfer paket ke server Anda menggunakan
wgetatau SFTP. - Verifikasi hash SHA256 dari file yang didownload untuk memastikan integritas.
Ekstrak paket distribusi:
unzip CEFConnector-<version>.zipBuka direktori yang diekstrak:
cd CEFConnector-<version>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
Buka direktori
configdalam penginstalan CEF Connector:cd configBuka file
CEFConnector.propertiesmenggunakan editor teks (misalnya,nano,vi):sudo nano CEFConnector.propertiesKonfigurasi 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=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
Simpan dan tutup file tersebut.
Mengonfigurasi logging CEF Connector
- Buka direktori
configdalam penginstalan CEF Connector. Buka file
log4j2.xmlmenggunakan editor teks:sudo nano log4j2.xmlKonfigurasi 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>Ganti placeholder berikut:
<BINDPLANE_IP_ADDRESS>: Alamat IP server tempat agen Bindplane diinstal<BINDPLANE_PORT>: Nomor port tempat agen Bindplane memproses (misalnya,514untuk UDP atau601untuk TCP)<PROTOCOL>: PilihUDPatauTCP
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 claritySimpan dan tutup file tersebut.
Mulai Akamai CEF Connector
Mulai layanan CEF Connector:
sudo /etc/init.d/AkamaiCEFConnector startPastikan layanan sedang berjalan:
sudo /etc/init.d/AkamaiCEFConnector statusPantau 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
- 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.yamlsebagai 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-agentUntuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Memverifikasi penyerapan log
- Login ke konsol Google SecOps.
- Buka Penelusuran atau Pemindaian Log Raw.
Telusuri log WAF Akamai terbaru menggunakan label penyerapan:
metadata.log_type = "AKAMAI_WAF"Pastikan log muncul dengan kolom dan stempel waktu yang diharapkan.
Pastikan kolom format CEF diuraikan dan dipetakan ke UDM dengan benar.
Pemecahan masalah
Masalah konektor CEF
- Tidak ada peristiwa yang ditarik: Periksa file
cefconnector.loguntuk 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.timebaseddisetel kefalse. - Berdasarkan waktu: Memungkinkan Anda mengambil peristiwa yang terjadi dalam jangka waktu tertentu (hingga 12 jam sebelumnya).
Untuk mengambil peristiwa keamanan yang hilang atau sebelumnya:
Buka file konfigurasi konektor:
sudo nano /path/to/CEFConnector-<version>/config/CEFConnector.propertiesUbah 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).
- Ganti
Mulai ulang CEF Connector:
sudo /etc/init.d/AkamaiCEFConnector restartSetelah data historis diambil, kembali ke mode offset:
akamai.data.timebased=falseMulai 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.