Mengumpulkan log ForgeRock OpenAM
Dokumen ini menjelaskan cara menyerap log ForgeRock OpenAM ke Google Security Operations menggunakan Bindplane. Parser mengekstrak kolom dari log dalam format CSV, Syslog + KV, atau JSON, menormalisasinya, dan memetakannya ke Model Data Terpadu (UDM). Logstash menangani berbagai jenis peristiwa OpenAM, termasuk login/logout, hasil akses, dan log umum, yang memperkaya data dengan informasi pengguna, grup, dan jaringan sekaligus melakukan transformasi tertentu untuk berbagai format log dan jenis peristiwa. Parser memprioritaskan penguraian JSON, lalu kembali ke Syslog+KV, dan terakhir CSV, yang akan menghapus log dengan format yang tidak didukung.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps
- Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
- Jika dijalankan di belakang proxy, port firewall terbuka
- Akses istimewa ke Forgerock OpenAM (misalnya, amAdmin)
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
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.
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: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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: 'OPENAM' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 Audit Logging di Forgerock OpenAM
- Login ke konsol AM.
- Buka Configure > Global Services > Audit Logging.
- Aktifkan Logging audit untuk memulai fitur logging audit.
- Dalam daftar Filter yang diizinkan untuk kolom dan Filter yang diblokir untuk kolom, masukkan nilai yang akan disertakan (daftar yang diizinkan) atau dikecualikan (daftar yang diblokir) dari log peristiwa audit.
- Klik Simpan.
Mengonfigurasi Handler Syslog untuk Forgerock OpenAM
- Login ke konsol AM sebagai administrator, misalnya amAdmin.
- Untuk membuat pengendali peristiwa di konfigurasi global, buka Konfigurasi > Layanan Global > Audit Logging.
- Untuk membuat pengendali peristiwa di realm, buka Realms > Realm Name > Services > Audit Logging.
- Klik Tambahkan Konfigurasi Sekunder > Syslog.
- Berikan detail konfigurasi berikut:
- Nama: Masukkan nama untuk pengendali peristiwa (misalnya, Google SecOps
Syslog Event Handler
). - Nama host server: Masukkan alamat IP agen Bindplane.
- Port server: Masukkan nomor port agen Bindplane (misalnya,
514
untuk UDP). - Transport Protocol: Pilih UDP.
- Waktu tunggu koneksi: Masukkan jumlah detik untuk menghubungkan (misalnya,
120
). - Opsional: Aktifkan opsi Buffering.
- Nama: Masukkan nama untuk pengendali peristiwa (misalnya, Google SecOps
- Klik Buat.
- Setelah handler peristiwa audit syslog dibuat, beberapa tab konfigurasi akan muncul.
- Pada tab General Handler Configuration, pilih Enabled untuk mengaktifkan pengendali peristiwa, jika dinonaktifkan.
- Pilih topik untuk log audit:
- Akses
- Aktivitas
- Autentikasi
- Konfigurasi
- Klik Simpan.
- Di tab Syslog Configuration, berikan detail konfigurasi berikut:
- Nama host server: Masukkan alamat IP agen Bindplane.
- Port server: Masukkan nomor port agen Bindplane.
- Waktu tunggu koneksi: Masukkan jumlah detik untuk menghubungkan (misalnya,
120
). - Transport Protocol: Pilih UDP.
- Fasilitas: Pilih Local0.
- Semua topik menetapkan tingkat keparahan ke INFORMASI.
- Klik Simpan.
Di tab Buffering, pilih Buffering Diaktifkan untuk mengaktifkannya.
Klik Simpan.
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
client.ip |
principal.ip |
Alamat IP klien yang membuat permintaan. |
client.ip |
principal.asset.ip |
Alamat IP aset klien yang membuat permintaan. |
client.port |
principal.port |
Port yang digunakan oleh klien yang membuat permintaan. |
entries[0].info.authLevel |
principal.resource.resource_subtype |
Tingkat autentikasi yang terkait dengan peristiwa. Diawali dengan "authLevel:". |
entries[0].info.displayName |
security_result.description |
Nama deskriptif untuk node di hierarki autentikasi. |
entries[0].info.ipAddress |
principal.asset.ip |
Alamat IP yang terkait dengan pihak utama dalam peristiwa. |
entries[0].info.ipAddress |
principal.ip |
Alamat IP yang terkait dengan pihak utama dalam peristiwa. |
entries[0].info.nodeId |
principal.resource.id |
ID unik node di pohon autentikasi. Diawali dengan "nodeId:". |
entries[0].info.nodeOutcome |
principal.resource.attribute.labels.value |
Hasil node di pohon autentikasi. |
entries[0].info.nodeType |
principal.resource.type |
Jenis node di pohon autentikasi. Diawali dengan "nodeType:". |
entries[0].info.treeName |
principal.resource.name |
Nama hierarki autentikasi. Diawali dengan "treeName:". |
eventName |
metadata.product_event_type |
Nama peristiwa mentah dari log OpenAM. |
http.request.headers.host[0] |
target.asset.hostname |
Nama host server target, diekstrak dari header host . |
http.request.headers.host[0] |
target.hostname |
Nama host server target, diekstrak dari header host . |
http.request.headers.user-agent[0] |
network.http.user_agent |
Agen pengguna permintaan HTTP. |
http.request.method |
network.http.method |
Metode HTTP yang digunakan dalam permintaan. |
http.request.path |
target.url |
Jalur URL permintaan HTTP. |
info.failureReason |
security_result.summary |
Alasan kegagalan autentikasi. Dikodekan secara permanen ke "SSO". Ditentukan oleh logika berdasarkan eventName dan kolom lainnya. Dapat berupa GENERIC_EVENT , USER_LOGIN , USER_LOGOUT , NETWORK_HTTP , atau STATUS_UPDATE . Dikodekan secara permanen ke "OPENAM". Dikodekan secara permanen ke "OpenAM". Hardcode ke "ForgeRock". |
principal |
target.user.userid |
ID pengguna yang terlibat dalam peristiwa, diekstrak dari kolom userId , principal , atau runAs . |
result |
security_result.action_details |
Hasil acara (misalnya, "SUCCESSFUL", "FAILED"). |
response.detail.reason |
security_result.summary |
Alasan kegagalan dalam peristiwa hasil akses. |
response.status |
security_result.action_details |
Status respons dalam peristiwa hasil akses. |
runAs |
target.user.userid |
ID pengguna yang terlibat dalam peristiwa, diekstrak dari kolom userId , principal , atau runAs . |
security_result.action |
security_result.action |
Tindakan yang diambil sebagai akibat dari peristiwa keamanan (misalnya, "ALLOW", "BLOCK"). |
server.ip |
target.asset.ip |
Alamat IP server target. |
server.ip |
target.ip |
Alamat IP server target. |
server.port |
target.port |
Port server target. |
timestamp |
metadata.event_timestamp |
Stempel waktu acara. |
trackingIds |
metadata.product_log_id |
ID pelacakan yang terkait dengan peristiwa. |
transactionId |
metadata.product_deployment_id |
ID transaksi yang terkait dengan peristiwa. |
userId |
target.user.userid |
ID pengguna yang terlibat dalam peristiwa, diekstrak dari kolom userId , principal , atau runAs . |
userId |
target.user.group_identifiers |
ID grup yang terkait dengan pengguna. |
am_group |
target.user.group_identifiers |
ID grup yang terkait dengan pengguna. |
am_user |
target.user.email_addresses |
Alamat email pengguna, jika ada di kolom am_user . |
loginID[0] |
target.user.userid |
ID login yang digunakan dalam acara. |
loginID[0] |
target.user.email_addresses |
Alamat email yang digunakan untuk login, jika ada di kolom loginID . |
hostip |
intermediary.hostname |
Nama host perangkat perantara. |
hostip |
intermediary.ip |
Alamat IP perangkat perantara. |
src_ip |
principal.asset.ip |
Alamat IP sumber. |
src_ip |
principal.ip |
Alamat IP sumber. |
desc |
metadata.description |
Deskripsi peristiwa. |
payload |
metadata.description |
Payload peristiwa. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.