Mengumpulkan log Akses Jarak Jauh Aman BeyondTrust

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log Akses Jarak Jauh Aman BeyondTrust menggunakan Bindplane. Parser menangani dua format syslog. Format pertama menggunakan pasangan nilai kunci dalam pesan terstruktur, sedangkan format kedua menggunakan kolom yang dipisahkan pipa; parser mengekstrak kolom yang relevan dari kedua format tersebut dan memetakan ke UDM. Model ini juga melakukan kategorisasi jenis peristiwa berdasarkan kata kunci yang diekstrak dan menangani logika tertentu untuk peristiwa login/logout dan jenis autentikasi.

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.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Akses Jarak Jauh Aman BeyondTrust.

Mendapatkan file autentikasi penyerapan Google SecOps

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

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
    

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
    

Referensi penginstalan tambahan

Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. Akses file konfigurasi:

    1. Temukan file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. 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: '/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: BEYONDTRUST_REMOTE_ACCESS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  5. 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 dukungan jarak jauh BeyondTrust

  1. Login ke UI web BeyondTrust.
  2. Pilih Appliance > Security > Appliance administration.
  3. Di bagian Syslog, lakukan tindakan berikut:
    • Format pesan: Pilih Format BSD lama.
    • Server syslog jarak jauh: Masukkan alamat IP dan Port Bindplane.
  4. Klik Kirim.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
datetime metadata.event_timestamp Stempel waktu diuraikan dari kolom datetime menggunakan format RFC3 339 jika kolom when tidak ada.
deviceHost target.hostname Nilai deviceHost dipetakan langsung ke target.hostname.
dstHost target.ip Nilai dstHost dipetakan langsung ke target.ip setelah divalidasi sebagai alamat IP yang valid.
dstPriv additional.fields.[key=dstPriv].value.string_value Nilai dstPriv ditempatkan di kolom additional dengan kunci dstPriv.
dstUid target.user.userid Nilai dstUid dipetakan langsung ke target.user.userid.
dstUser target.user.user_display_name Nilai dstUser dipetakan langsung ke target.user.user_display_name.
eventName metadata.event_type Jika eventName adalah login (tidak peka huruf besar/kecil), metadata.event_type ditetapkan ke USER_LOGIN. Jika eventName adalah logout (tidak peka huruf besar/kecil), metadata.event_type ditetapkan ke USER_LOGOUT. Jika tidak, jika eventName tidak kosong, metadata.event_type akan ditetapkan ke USER_UNCATEGORIZED. Jika eventName kosong, dan pesan cocok dengan pola grok kedua, metadata.event_type ditetapkan ke GENERIC_EVENT. Jika eventName kosong, dan pesan cocok dengan pola grok pertama, metadata.event_type ditetapkan ke GENERIC_EVENT. Jika srcUid, userid, atau who tidak kosong, metadata.event_type ditetapkan ke USER_CHANGE_PERMISSIONS. Jika deviceHost atau site tidak kosong, metadata.event_type akan ditetapkan ke USER_UNCATEGORIZED. Jika tidak, metadata.event_type ditetapkan ke GENERIC_EVENT.
event_name additional.fields.[key=event_name].value.string_value Nilai event_name ditempatkan di kolom additional dengan kunci event_name.
event_name metadata.product_event_type Nilai event_name digunakan bersama dengan kolom id untuk mengisi metadata.product_event_type dalam format [id] -event_name``.
externalKeyLabel additional.fields.[key=externalKeyLabel].value.string_value Nilai externalKeyLabel ditempatkan di kolom additional dengan kunci externalKeyLabel.
id metadata.product_event_type Nilai id digunakan bersama dengan kolom event_name untuk mengisi metadata.product_event_type dalam format [id] -event_name``.
jumpGroupId additional.fields.[key=jumpGroupId].value.string_value Nilai jumpGroupId ditempatkan di kolom additional dengan kunci jumpGroupId.
jumpGroupName additional.fields.[key=jumpGroupName].value.string_value Nilai jumpGroupName ditempatkan di kolom additional dengan kunci jumpGroupName.
jumpGroupType additional.fields.[key=jumpGroupType].value.string_value Nilai jumpGroupType ditempatkan di kolom additional dengan kunci jumpGroupType.
jumpointId additional.fields.[key=jumpointId].value.string_value Nilai jumpointId ditempatkan di kolom additional dengan kunci jumpointId.
jumpointName additional.fields.[key=jumpointName].value.string_value Nilai jumpointName ditempatkan di kolom additional dengan kunci jumpointName.
kv_data Berbagai kolom UDM Kolom kv_data diuraikan menjadi key-value pair, yang kemudian dipetakan ke berbagai kolom UDM berdasarkan kuncinya (mis., eventName, when, who, who_ip, site, target, status, reason).
kvdata Berbagai kolom UDM Kolom kvdata diuraikan menjadi key-value pair, yang kemudian dipetakan ke berbagai kolom UDM berdasarkan kuncinya (mis., msg, srcUser, srcUid, srcHost, dstUser, dstUid, dstHost, sessionId, jumpointId, jumpointName, jumpGroupId, jumpGroupName, jumpGroupType, externalKeyLabel, dstPriv).
message Berbagai kolom UDM Kolom message diuraikan menggunakan pola grok untuk mengekstrak berbagai kolom, yang kemudian dipetakan ke kolom UDM.
msg metadata.description Nilai msg dipetakan langsung ke metadata.description.
product_event_type metadata.product_event_type Nilai product_event_type dipetakan langsung ke metadata.product_event_type.
product_log_id metadata.product_log_id Nilai product_log_id dipetakan langsung ke metadata.product_log_id.
process_id principal.process.pid Nilai process_id dipetakan langsung ke principal.process.pid.
reason security_result.description Nilai reason dipetakan langsung ke security_result.description.
segment_number additional.fields.[key=segment_number].value.string_value Nilai segment_number ditempatkan di kolom additional dengan kunci segment_number.
sessionId network.session_id Nilai sessionId dipetakan langsung ke network.session_id.
site target.hostname Nilai site dipetakan langsung ke target.hostname.
site_id additional.fields.[key=site_id].value.string_value Nilai site_id ditempatkan di kolom additional dengan kunci site_id.
srcHost principal.ip Nilai srcHost dipetakan langsung ke principal.ip setelah divalidasi sebagai alamat IP yang valid.
srcUid principal.user.userid Nilai srcUid dipetakan langsung ke principal.user.userid.
srcUser principal.user.user_display_name Nilai srcUser dipetakan langsung ke principal.user.user_display_name.
status security_result.action Jika status adalah failure (tidak peka huruf besar/kecil), security_result.action akan ditetapkan ke BLOCK. Jika tidak, security_result.action ditetapkan ke ALLOW.
status security_result.action_details Nilai status dipetakan langsung ke security_result.action_details.
target target.application Nilai target dipetakan langsung ke target.application. rep_client diganti dengan Representative Console dan web/login diganti dengan Web/Login.
target extensions.auth.type Jika target adalah rep_client, extensions.auth.type akan ditetapkan ke MACHINE. Jika target adalah web/login, extensions.auth.type akan ditetapkan ke SSO. Jika tidak, extensions.auth.type ditetapkan ke AUTHTYPE_UNSPECIFIED.
timestamp metadata.event_timestamp timestamp dari log mentah digunakan sebagai penggantian jika datetime atau when tidak ada.
total_segments additional.fields.[key=total_segments].value.string_value Nilai total_segments ditempatkan di kolom additional dengan kunci total_segments.
device_product additional.fields.[key=device_product].value.string_value Nilai device_product ditempatkan di kolom additional dengan kunci device_product.
device_vendor additional.fields.[key=device_vendor].value.string_value Nilai device_vendor ditempatkan di kolom additional dengan kunci device_vendor.
device_version metadata.product_version Nilai device_version dipetakan langsung ke metadata.product_version.
when metadata.event_timestamp Stempel waktu diuraikan dari kolom when menggunakan format UNIX jika ada.
who principal.user.userid Jika kolom who cocok dengan pola ekspresi reguler, userid yang diekstrak akan dipetakan ke principal.user.userid. Jika tidak, seluruh kolom who akan dipetakan ke principal.user.userid.
who principal.user.user_display_name Jika kolom who cocok dengan pola ekspresi reguler, user_display_name yang diekstrak akan dipetakan ke principal.user.user_display_name.
who_ip principal.ip Nilai who_ip dipetakan langsung ke principal.ip.
(Logika Parser) metadata.log_type Jenis log ditetapkan ke BEYONDTRUST_REMOTE_ACCESS.
(Logika Parser) metadata.product_name Nama produk ditetapkan ke BeyondTrust Secure Remote Access.
(Logika Parser) metadata.vendor_name Nama vendor ditetapkan ke BeyondTrust.
(Logika Parser) security_result.summary Nilai ini berasal dari format User %{eventName}.
(Logika Parser) extensions.auth.mechanism Jika method berisi using password, mekanisme akan ditetapkan ke USERNAME_PASSWORD. Jika method berisi using elevate, mekanisme akan ditetapkan ke REMOTE.

Perubahan

2022-09-30

Peningkatan:

  • Menulis grok untuk mengurai syslog yang tidak diuraikan`.
  • Memetakan device_vendor ke additional.fields.
  • Memetakan event_name ke additional.fields.
  • Memetakan device_product ke additional.fields.
  • Memetakan externalKeyLabel ke additional.fields.
  • Memetakan dstPriv ke additional.fields.
  • Memetakan filePath ke target.file.full_path.
  • Memetakan fsize ke target.file.size.

2022-07-14

  • Parser yang baru dibuat.

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