Mengumpulkan log JFrog Artifactory

Didukung di:

Dokumen ini menjelaskan cara menyerap log JFrog Artifactory ke Google Security Operations menggunakan agen Bindplane.

JFrog Artifactory adalah pengelola repositori artefak universal yang menghasilkan pesan syslog untuk peristiwa akses repositori, autentikasi, perubahan konfigurasi, dan operasi artefak. Parser mengekstrak kolom dari log yang diformat JSON dan syslog menggunakan pola grok, lalu memetakannya ke Model Data Terpadu (UDM).

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Konektivitas jaringan antara agen Bindplane dan server JFrog Artifactory
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses SSH ke instance JFrog Artifactory

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan.
  4. Simpan file dengan aman di sistem tempat agen 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.

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
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sc query observiq-otel-collector
    

    Layanan akan ditampilkan sebagai RUNNING.

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
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sudo systemctl status observiq-otel-collector
    

    Layanan akan ditampilkan sebagai aktif (berjalan).

Referensi penginstalan tambahan

Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen BindPlane.

Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps

Cari file konfigurasi

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edit file konfigurasi

  • Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/jfrog_artifactory:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: JFROG_ARTIFACTORY
            raw_log_field: body
    
    service:
        pipelines:
            logs/jfrog_artifactory_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/jfrog_artifactory
    

Parameter konfigurasi

Ganti placeholder berikut:

  • Konfigurasi penerima:

    • listen_address: Alamat IP dan port yang akan diproses:
      • 0.0.0.0 untuk mendengarkan di semua antarmuka (direkomendasikan)
      • Port 514 adalah port syslog standar (memerlukan root di Linux; gunakan 1514 untuk non-root)
  • Konfigurasi eksportir:

    • creds_file_path: Jalur lengkap ke file autentikasi penyerapan:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID Pelanggan yang disalin dari konsol Google SecOps
    • endpoint: URL endpoint regional:
      • Amerika Serikat: malachiteingestion-pa.googleapis.com
      • Eropa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Lihat Endpoint Regional untuk mengetahui daftar lengkapnya

Simpan file konfigurasi

  • Setelah mengedit, simpan file:
    • Linux: Tekan Ctrl+O, lalu Enter, lalu Ctrl+X
    • Windows: Klik File > Save

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

    sudo systemctl restart observiq-otel-collector
    
    1. Pastikan layanan sedang berjalan:

      sudo systemctl status observiq-otel-collector
      
    2. Periksa log untuk mengetahui error:

      sudo journalctl -u observiq-otel-collector -f
      
  • Untuk memulai ulang agen Bindplane di Windows, pilih salah satu opsi berikut:

    • Command Prompt atau PowerShell sebagai administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Konsol layanan:

      1. Tekan Win+R, ketik services.msc, lalu tekan Enter.
      2. Temukan observIQ OpenTelemetry Collector.
      3. Klik kanan, lalu pilih Mulai Ulang.
      4. Pastikan layanan sedang berjalan:

        sc query observiq-otel-collector
        
      5. Periksa log untuk mengetahui error:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Mengonfigurasi syslog JFrog Artifactory

  1. Hubungkan ke instance JFrog Artifactory.
  2. Edit file $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml:

    vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
    
  3. Tambahkan appender syslog berikut ke file:

    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost><BINDPLANE_IP></syslogHost>
        <facility>SYSLOG</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>
    
    • Ganti <BINDPLANE_IP> dengan alamat IP agen Bindplane yang sebenarnya.
  4. Tambahkan referensi appender syslog ke logger root:

    <root>
        <level value="debug"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="SYSLOG"/>
    </root>
    
  5. Simpan file dengan menekan ESC dan mengetik :wq.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
tindakan 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. Dikodekan secara permanen ke "USER_RESOURCE_ACCESS". Dikodekan secara permanen ke "JFROG_ARTIFACTORY". Dikodekan secara permanen ke "Artifactory". Dikodekan secara permanen ke "JFROG".
pemilik 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.
cakupan read_only_udm.target.resource.name Dipetakan langsung dari kolom scope log mentah (dari payload JSON).
cakupan 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 petik dihapus dari kolom sequenceId, lalu dipetakan.
subjek read_only_udm.about.labels.key Dikodekan secara permanen ke "subject" jika subject ada di 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).
user 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).
data.repository_key", "data.release_bundle_name", "data.release_bundle_version", "data.property_key", "data.property_values", "data.platforms.architecture", and "data.platforms.os additional.fields Dipetakan dari log perubahan
data.repo_key" ,"subscription_key","source","image_name", "data.platforms additional.fields Dipetakan dari log perubahan
domain principal.administrative_domain Dipetakan dari log perubahan
data.path target.file.full_path Dipetakan dari log perubahan
data.name target.user.user_display_name Dipetakan dari log perubahan
data.size target.file.size Dipetakan dari log perubahan
SHA256 target.process.file.sha256 Dipetakan dari log perubahan
target_ip target.ip Dipetakan dari log perubahan
desc metadata.description Dipetakan dari log perubahan
method network.http.method Dipetakan dari log perubahan
url target.url Dipetakan dari log perubahan
prin_url principal.url Dipetakan dari log perubahan
response_code network.http.response_code Dipetakan dari log perubahan
RequestMethod network.http.method Dipetakan dari log perubahan
RequestPath target.url Dipetakan dari log perubahan
DownstreamContentSize" and "DownstreamStatus Additional.Fields Dipetakan dari log perubahan
ServiceAddr principal.hostname Dipetakan dari log perubahan
ClientAddr target.ip Dipetakan dari log perubahan
user_agent network.http.user_agent Dipetakan dari log perubahan
level security_result.severity Dipetakan dari log perubahan
msg security_result.description Dipetakan dari log perubahan
protocol network.application_protocol Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

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