Mengumpulkan log JFrog Artifactory
Dokumen ini menjelaskan cara menyerap log Jfrog Artifactory ke Google Security Operations menggunakan Bindplane. Parser menangani dua format log JFrog Artifactory yang berbeda. Fungsi ini menggunakan pola grok untuk mengidentifikasi dan mengekstrak kolom dari setiap format. Kemudian, kolom tersebut dipetakan ke UDM, menangani payload JSON dalam salah satu format, dan menghapus log yang tidak cocok dengan salah satu format.
Sebelum memulai
- Pastikan Anda memiliki instance Google SecOps.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses dengan hak istimewa ke instance Jfrog Artifactory.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. 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
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 mengirim ke Google SecOps
Akses file konfigurasi:
- Temukan 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).
- Temukan file
Edit file
config.yaml
sebagai berikut:```yaml 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: '/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: 'JFROG_ARTIFACTORY' 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 Mendapatkan 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 Syslog Jfrog Artifactory
- Hubungkan ke instance Jfrog Artifactory.
Edit file
$JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
menggunakan vi:vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
Tambahkan appender syslog berikut ke file:
<appender name="SYSLOG" class= "ch.qos.logback.classic.net.SyslogAppender"> <syslogHost>Bindplane-Agent-IP</syslogHost> <facility>SYSLOG</facility> <suffixPattern>[%thread] %logger %msg</suffixPattern> </appender>
- Ganti
Bindplane-Agent-IP
di syslogHost, dengan alamat IP sebenarnya yang dikonfigurasi untuk agen Bindplane.
- Ganti
Tambahkan data konfigurasi tambahan ke file:
<root> < level value="debug"/> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> <appender-ref ref="SYSLOG"/> </root>
Simpan file dengan mengklik tombol
ESC
(escape) di keyboard dan mengetik:wq
.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action | read_only_udm.metadata.product_event_type |
Nilai action dari log mentah dikonversi menjadi huruf kecil dan dipetakan. |
datetime | read_only_udm.metadata.event_timestamp |
Kolom datetime log mentah diuraikan dan dikonversi menjadi stempel waktu. |
hostname | read_only_udm.principal.hostname |
Dipetakan langsung dari kolom hostname log mentah. |
id | read_only_udm.metadata.product_log_id |
Dipetakan langsung dari kolom id log mentah (dari payload JSON). |
ip | read_only_udm.principal.ip |
Dipetakan langsung dari kolom ip log mentah. Di-hardcode ke "USER_RESOURCE_ACCESS". Di-hardcode ke "JFROG_ARTIFACTORY". Di-hardcode ke "Artifactory". Di-hardcode ke "JFROG". |
owner | read_only_udm.principal.user.userid |
Dipetakan jika username tidak ada dalam log mentah (dari payload JSON). |
repo_name | read_only_udm.target.resource.name |
Dipetakan langsung dari kolom repo_name log mentah. |
repo_type | read_only_udm.target.resource.resource_subtype |
Dipetakan langsung dari kolom repo_type log mentah. |
scope | read_only_udm.target.resource.name |
Dipetakan langsung dari kolom scope log mentah (dari payload JSON). |
scope | read_only_udm.target.resource.resource_subtype |
Di-hardcode ke "scope" jika scope ada dalam log mentah. |
sequenceId | read_only_udm.metadata.product_log_id |
Tanda kutip dihapus dari kolom sequenceId, lalu dipetakan. |
subjek | read_only_udm.about.labels.key |
Di-hardcode ke "subjek" jika subjek ada dalam log mentah. |
subjek | read_only_udm.about.labels.value |
Dipetakan langsung dari kolom subject log mentah (dari payload JSON). |
jenis | read_only_udm.metadata.product_event_type |
Dipetakan langsung dari kolom type log mentah (dari payload JSON). |
pengguna | read_only_udm.principal.user.userid |
Dipetakan langsung dari kolom user log mentah. |
username | read_only_udm.principal.user.userid |
Dipetakan langsung dari kolom username log mentah (dari payload JSON). |
Perubahan
2025-02-27
Peningkatan:
- Memetakan "data.repository_key", "data.release_bundle_name", "data.release_bundle_version", "data.property_key", "data.property_values", "data.platforms.architecture", dan "data.platforms.os" ke "additional.fields".
2025-02-19
Peningkatan:
- Memetakan "data.repo_key" ,"subscription_key","source","image_name", "data.platforms" ke "additional.fields".
- Memetakan "domain" ke "principal.administrative_domain".
- Memetakan "event_type" ke "metadata.product_event_type".
- Memetakan "data.path" ke "target.file.full_path".
- Memetakan "data.name" ke "target.user.user_display_name".
- Memetakan "data.size" ke "target.file.size".
- Memetakan "SHA256" ke "target.process.file.sha256".
2024-09-23
Peningkatan:
- Menambahkan dukungan untuk mengurai log yang tidak diuraikan.
- Memetakan "target_ip" ke "target.ip" dan "target.asset.ip".
- Memetakan "desc" ke "metadata.description".
- Memetakan "method" ke "network.http.method".
- Memetakan "url" ke "target.url".
- Memetakan "prin_url" ke "principal.url".
- Memetakan "response_code" ke "network.http.response_code".
- Memetakan "RequestMethod" ke "network.http.method".
- Memetakan "RequestPath" ke "target.url".
- Memetakan "DownstreamContentSize" dan "DownstreamStatus" ke "Additional.Fields".
- Memetakan "ServiceAddr" ke "principal.hostname" dan "principal.port".
- Memetakan "ClientAddr" ke "target.ip" dan "target.port".
- Memetakan "user_agent" ke "network.http.user_agent".
- Memetakan "level" ke "security_result.severity".
- Memetakan "msg" ke "security_result.description".
- Memetakan "protocol" ke "network.application_protocol".
2023-08-25
- Parser yang baru dibuat.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.