Mengumpulkan log CyberArk PAM
Kode parser ini pertama-tama mengekstrak kolom dari pesan syslog CyberArk Privileged Access Manager (PAM) menggunakan ekspresi reguler. Kemudian, alat ini memetakan kolom yang diekstrak ke model data terpadu (UDM), memperkaya data dengan konteks tambahan, dan menstandarkan jenis peristiwa berdasarkan kriteria tertentu.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan systemd.
- Jika berjalan di balik proxy, pastikan port firewall terbuka.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer.
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
- Untuk penginstalan Windows, jalankan skrip berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Untuk penginstalan Linux, jalankan skrip berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
- Akses komputer tempat BindPlane diinstal.
Edit file
config.yaml
sebagai berikut:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Cyberark_PAM raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Mulai ulang Agen BindPlane untuk menerapkan perubahan:
sudo systemctl restart bindplane
Mengonfigurasi Ekspor Syslog untuk CyberArk Vault
- Login ke server Vault.
- Buka file konfigurasi
dbparm.ini
, yang terletak di:C:\Program Files (x86)\CyberArk\Vault\Server\dbparm.ini
. Tambahkan atau ubah parameter berikut:
SyslogServer=<syslog_server_ip> SyslogPort=<syslog_server_port> SyslogProtocol=<TCP or UDP> SyslogFormat=Syslog
Simpan file
dbparm.ini
.Mulai ulang Server Vault:
net stop CyberArkVault net start CyberArkVault
Mengonfigurasi Ekspor Syslog di PVWA
- Login ke Server PVWA.
- Buka file
Web.config
, yang terletak di:C:\inetpub\wwwroot\PasswordVault\
Tambahkan atau ubah kunci berikut:
<add key="SyslogServer" value="<syslog_server_ip>" /> <add key="SyslogPort" value="<syslog_server_port>" /> <add key="SyslogProtocol" value="<TCP or UDP>" /> <add key="SyslogFormat" value="Syslog" />
Simpan perubahan ke file
Web.config
.Mulai ulang layanan IIS:
iisreset
Mengonfigurasi Ekspor Syslog di PTA
- Akses server PTA menggunakan SSH.
- Buka file
application.properties
, yang terletak di:/opt/cta/config/application.properties
Tambahkan atau ubah baris berikut:
syslog.server.ip=<syslog_server_ip> syslog.server.port=<syslog_server_port> syslog.protocol=<TCP or UDP>
Simpan file
application.properties
.Mulai ulang layanan PTA untuk menerapkan perubahan:
sudo service pta restart
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
tindakan | metadata.description | Dipetakan langsung dari kolom act . |
cn1 | additional.fields.value.string_value | Dipetakan langsung dari kolom cn1 jika cn1Label tidak kosong. |
cn1Label | additional.fields.key | Dipetakan langsung dari kolom cn1Label jika cn1 tidak kosong. |
cn2 | additional.fields.value.string_value | Dipetakan langsung dari kolom cn2 jika cn2Label tidak kosong. |
cn2Label | additional.fields.key | Dipetakan langsung dari kolom cn2Label jika cn2 tidak kosong. |
cs1 | additional.fields.value.string_value | Dipetakan langsung dari kolom cs1 jika cs1Label tidak kosong. |
cs1Label | additional.fields.key | Dipetakan langsung dari kolom cs1Label jika cs1 tidak kosong. |
cs2 | additional.fields.value.string_value | Dipetakan langsung dari kolom cs2 jika cs2Label tidak kosong. |
cs2Label | additional.fields.key | Dipetakan langsung dari kolom cs2Label jika cs2 tidak kosong. |
cs3 | additional.fields.value.string_value | Dipetakan langsung dari kolom cs3 jika cs3Label tidak kosong. |
cs3Label | additional.fields.key | Dipetakan langsung dari kolom cs3Label jika cs3 tidak kosong. |
cs4 | additional.fields.value.string_value | Dipetakan langsung dari kolom cs4 jika cs4Label tidak kosong. |
cs4Label | additional.fields.key | Dipetakan langsung dari kolom cs4Label jika cs4 tidak kosong. |
cs5 | additional.fields.value.string_value | Dipetakan langsung dari kolom cs5 jika cs5Label tidak kosong. |
cs5Label | additional.fields.key | Dipetakan langsung dari kolom cs5Label jika cs5 tidak kosong. |
dhost | target.hostname | Dipetakan dari kolom dhost jika bukan alamat IP. Jika kosong, dhost akan dipetakan dari shost (IP atau nama host). |
dhost | target.asset.hostname | Dipetakan dari kolom dhost jika bukan alamat IP. Jika kosong, dhost akan dipetakan dari shost (IP atau nama host). |
dhost | target.ip | Dipetakan dari kolom dhost jika berupa alamat IP. |
dhost | target.asset.ip | Dipetakan dari kolom dhost jika berupa alamat IP. |
duser | target.user.userid | Dipetakan langsung dari kolom duser . |
dvc | intermediary.ip | Dipetakan dari kolom dvc jika berupa alamat IP. |
externalId | metadata.product_log_id | Dipetakan langsung dari kolom externalId . |
fname | target.file.full_path | Dipetakan langsung dari kolom fname . |
nama | metadata.event_type | Digunakan untuk menentukan event_type berdasarkan kombinasi kolom name , shost , dan dhost . Nilai yang mungkin: USER_CHANGE_PASSWORD, FILE_READ, USER_LOGIN, FILE_OPEN, FILE_DELETION. Jika tidak ditemukan kecocokan, dan has_principal bernilai benar dan has_target bernilai salah, event_type akan ditetapkan ke STATUS_UPDATE. Jika tidak, nilai defaultnya adalah GENERIC_EVENT. |
prin_hostname | principal.hostname | Dipetakan langsung dari kolom prin_hostname . Jika kosong, alamat ini akan dipetakan dari shost jika shost bukan alamat IP. |
prin_hostname | principal.asset.hostname | Dipetakan langsung dari kolom prin_hostname . Jika kosong, alamat ini akan dipetakan dari shost jika shost bukan alamat IP. |
prin_ip | principal.ip | Dipetakan langsung dari kolom prin_ip . Jika kosong, alamat akan dipetakan dari shost jika shost adalah alamat IP. |
prin_ip | principal.asset.ip | Dipetakan langsung dari kolom prin_ip . Jika kosong, alamat akan dipetakan dari shost jika shost adalah alamat IP. |
produk | metadata.product_name | Dipetakan langsung dari kolom product . Setelan defaultnya adalah "PAM" jika tidak ada dalam log. |
alasan | security_result.description | Dipetakan langsung dari kolom reason . |
tingkat keseriusan, | security_result.severity | Dipetakan dari kolom severity berdasarkan logika berikut: 1-3: INFORMASI, 4: ERROR, 5: KRITIS. |
shost | principal.hostname | Dipetakan ke prin_hostname jika prin_hostname kosong dan shost bukan alamat IP. |
shost | principal.asset.hostname | Dipetakan ke prin_hostname jika prin_hostname kosong dan shost bukan alamat IP. |
shost | principal.ip | Dipetakan ke prin_ip jika prin_ip kosong dan shost adalah alamat IP. |
shost | principal.asset.ip | Dipetakan ke prin_ip jika prin_ip kosong dan shost adalah alamat IP. |
shost | target.hostname | Dipetakan ke target.hostname jika dhost kosong dan shost bukan alamat IP. |
shost | target.asset.hostname | Dipetakan ke target.hostname jika dhost kosong dan shost bukan alamat IP. |
shost | target.ip | Dipetakan ke target.ip jika dhost kosong dan shost adalah alamat IP. |
shost | target.asset.ip | Dipetakan ke target.ip jika dhost kosong dan shost adalah alamat IP. |
status | additional.fields.value.string_value | Dipetakan langsung dari kolom status . |
pengguna | principal.user.userid | Dipetakan dari kolom suser . Jika kosong, duser akan dianggap sebagai ID pengguna target. |
waktu | metadata.event_timestamp.seconds | Dipetakan langsung dari kolom time setelah dikonversi ke format stempel waktu. |
waktu | metadata.event_timestamp.nanos | Dipetakan langsung dari kolom time setelah dikonversi ke format stempel waktu. |
vendor | metadata.vendor_name | Dipetakan langsung dari kolom vendor . Defaultnya adalah "CYBERARK" jika tidak ada dalam log. |
versi | metadata.product_version | Dipetakan langsung dari kolom version . |
metadata.log_type | Di-hardcode ke "CYBERARK_PAM". | |
extensions.auth.mechanism | Tetapkan ke "USERNAME_PASSWORD" jika event_type adalah "USER_LOGIN". |
Perubahan
2024-05-05
- Parser yang baru dibuat.