Mengumpulkan log Nix Systems Ubuntu Server (Sistem Unix)

Didukung di:

Dokumen ini menjelaskan cara menyerap log Ubuntu Server (Sistem Unix) ke Google Security Operations menggunakan BindPlane. Parser menyerap log berformat syslog dan JSON, menginisialisasi berbagai kolom Model Data Terpadu (UDM) ke string kosong, melakukan beberapa penggantian string pada kolom message, lalu mencoba mengurai pesan sebagai JSON. Jika penguraian JSON gagal, maka akan menggunakan pola grok untuk mengekstrak kolom berdasarkan konten message dan event_details.original, memetakan kolom yang diekstrak ke UDM berdasarkan jenis peristiwa dan berbagai pemeriksaan bersyarat, menangani berbagai format dan struktur log dari berbagai proses dan layanan sistem Unix.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Jika dijalankan di belakang proxy, port firewall terbuka
  • Akses istimewa ke server RHEL

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. 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 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

Untuk opsi penginstalan tambahan, lihat panduan penginstalan.

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:
    • Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux.
    • Buka file menggunakan editor teks (misalnya, nano atau vi).
  2. Edit file config.yaml sebagai berikut:

    receivers:
      filelog/unix:
        include:
          - /var/log/auth.log
          - /var/log/lastlog
          - /var/log/btmp
          - /var/log/wtmp
          - /var/log/faillog
          - /var/log/dpkg.log
          - /var/log/boot.log
          - /var/log/kern.log
          - /var/log/syslog
        start_at: end
        poll_interval: 5s
    
    exporters:
        chronicle/linux:
            # 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
            log_type: 'NIX_SYSTEM'
            override_log_type: false
            raw_log_field: body
    
    service:
      pipelines:
        logs/linux:
          receivers:
          - filelog/linux
      exporters: [chronicle/linux]
    
  3. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  4. Perbarui /path/to/ingestion-authentication-file.json ke jalur tempat file autentikasi disimpan di bagian Dapatkan file autentikasi penyerapan Google SecOps.

Mulai agen Bindplane dan terapkan perubahan

  1. Mulai agen Bindplane:

    sudo systemctl start bindplane-agent
    
  2. Aktifkan Layanan pengumpul otel observIQ:

    systemctl enable --now bindplane-agent
    
  3. Mulai ulang agen Bindplane jika diperlukan:

    sudo systemctl restart bindplane-agent
    

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
AccessControlRuleAction security_result.action Jika AccessControlRuleAction adalah Allow, tetapkan ke ALLOW. Jika AccessControlRuleAction adalah Block, tetapkan ke BLOCK.
ACPolicy security_result.rule_labels Kunci: ACPolicy, Nilai: ACPolicy
AccessControlRuleName security_result.rule_name Pemetaan langsung.
acct event.idm.read_only_udm.target.user.userid Pemetaan langsung setelah menghapus tanda petik dan garis miring terbalik.
addr event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Pemetaan langsung jika tidak kosong, ?, atau UNKNOWN.
ApplicationProtocol event.idm.read_only_udm.network.application_protocol Pemetaan langsung.
auid event.idm.read_only_udm.additional.fields Kunci: auid, Nilai: auid
comm event.idm.read_only_udm.target.process.command_line Pemetaan langsung.
command event.idm.read_only_udm.target.process.command_line Pemetaan langsung setelah menghapus spasi kosong di awal/akhir.
Computer event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Pemetaan langsung. Jika kosong, gunakan HostName.
ConnectionID security_result.detection_fields Kunci: Connection ID, Nilai: ConnectionID
cwd event.idm.read_only_udm.target.process.file.full_path Pemetaan langsung setelah menghapus tanda petik.
data message Digunakan dalam pola grok.
desc security_result.description Pemetaan langsung.
description event.idm.read_only_udm.metadata.description, security_result.description Pemetaan langsung.
descript security_result.description Pemetaan langsung setelah menghapus hash.
DeviceUUID event.idm.read_only_udm.metadata.product_log_id Pemetaan langsung.
DNSQuery event.idm.read_only_udm.additional.fields Kunci: DNSQuery, Nilai: DNSQuery
DNSRecordType event.idm.read_only_udm.additional.fields Kunci: DNSRecordType, Nilai: DNSRecordType
DNSResponseType event.idm.read_only_udm.additional.fields Kunci: DNSResponseType, Nilai: DNSResponseType
DNS_TTL event.idm.read_only_udm.additional.fields Kunci: DNS_TTL, Nilai: DNS_TTL
DstIP event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Pemetaan langsung.
DstPort event.idm.read_only_udm.target.port Pemetaan langsung, dikonversi menjadi bilangan bulat.
dvc event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip, event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.intermediary.ip, event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Jika IP valid, dipetakan ke IP utama/target. Jika nama host, dipetakan ke nama host target/principal. Juga digunakan untuk IP perantara jika IP valid.
EgressInterface event.idm.read_only_udm.principal.asset.attribute.labels Kunci: EgressInterface, Nilai: EgressInterface
EgressVRF event.idm.read_only_udm.principal.asset.attribute.labels Kunci: EgressVRF, Nilai: EgressVRF
EgressZone event.idm.read_only_udm.target.location.name Pemetaan langsung.
eventType event.idm.read_only_udm.metadata.product_event_type, event.idm.read_only_udm.target.application Pemetaan langsung. Untuk SERVICE_START dan SERVICE_STOP, dipetakan ke target.application, lalu dihapus.
EventTime @timestamp Diuraikan sebagai stempel waktu.
exe event.idm.read_only_udm.target.process.command_line Pemetaan langsung setelah menghapus tanda petik dan garis miring terbalik.
extended_description event.idm.read_only_udm.metadata.description Pemetaan langsung setelah menghapus tanda hubung dan tanda petik.
Facility event.idm.read_only_udm.principal.resource.attribute.labels Kunci: Facility, Nilai: Facility
filepath event.idm.read_only_udm.principal.process.file.full_path Pemetaan langsung.
file_path event.idm.read_only_udm.target.file.full_path Pemetaan langsung.
file_path_value event.idm.read_only_udm.target.file.full_path Pemetaan langsung.
FirstPacketSecond security_result.detection_fields Kunci: FirstPacketSecond, Nilai: FirstPacketSecond
from event.idm.read_only_udm.network.email.from Pemetaan langsung setelah menghapus tanda kurung sudut.
generic_ip event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung jika IP valid dan bukan A256:.
gid event.idm.read_only_udm.target.user.group_identifiers Pemetaan langsung.
grp event.idm.read_only_udm.target.group.group_display_name Pemetaan langsung setelah menghapus tanda petik dan garis miring terbalik.
hashing_algo security_result.summary Pemetaan langsung.
home event.idm.read_only_udm.target.file.full_path Pemetaan langsung.
HostName Computer Digunakan jika Computer kosong.
HostIP event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Bagian HostIP sebelum % diekstrak dan dipetakan sebagai validated_ip.
hostname event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname, event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Pemetaan langsung jika tidak kosong atau ?.
host_name event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Pemetaan langsung.
InitiatorBytes event.idm.read_only_udm.network.sent_bytes Pemetaan langsung, dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
InitiatorPackets event.idm.read_only_udm.network.sent_packets Pemetaan langsung, dikonversi menjadi bilangan bulat.
insertId event.idm.read_only_udm.metadata.product_log_id Pemetaan langsung.
InstanceID security_result.detection_fields Kunci: Instance ID, Nilai: InstanceID
int_dvc event.idm.read_only_udm.intermediary.hostname Pemetaan langsung.
ip event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung.
ip_protocol event.idm.read_only_udm.network.ip_protocol Pemetaan langsung.
laddr event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung jika tidak kosong atau ?.
level security_result.severity Jika info, tetapkan ke INFORMATIONAL.
log.syslog.facility.name event.idm.read_only_udm.target.application Pemetaan langsung.
log.syslog.severity.name security_result.severity Jika Emergency, tetapkan ke HIGH.
logName logname Pemetaan langsung.
log_description security_result.description Pemetaan langsung.
log_level security_result.severity Jika error, tetapkan ke ERROR.
log_summary security_result.summary Pemetaan langsung.
logger_name event.idm.read_only_udm.principal.resource.attribute.labels Kunci: logger_name, Nilai: logger_name
log_type event.idm.read_only_udm.metadata.log_type Hardcode ke NIX_SYSTEM.
lport event.idm.read_only_udm.principal.port Pemetaan langsung, dikonversi menjadi bilangan bulat.
MG event.idm.read_only_udm.principal.resource.attribute.labels Kunci: MG, Nilai: MG
method event.idm.read_only_udm.network.http.method Pemetaan langsung, dikonversi menjadi huruf besar.
msg1 event.idm.read_only_udm.metadata.description, event.idm.read_only_udm.additional.fields, security_result.description Diuraikan menggunakan pola grok. Jika event_type adalah GENERIC_EVENT, dipetakan ke description.
msg2 event.idm.read_only_udm.network.received_bytes, security_result.summary Jika berisi digit, dikonversi menjadi bilangan bulat tidak bertanda dan dipetakan ke received_bytes. Jika tidak, dipetakan ke summary.
NAPPolicy security_result.rule_labels Kunci: NAPPolicy, Nilai: NAPPolicy
name event.idm.read_only_udm.target.process.file.full_path Pemetaan langsung setelah menghapus tanda petik.
outcome security_result.action Jika Succeeded atau berisi success, tetapkan ke ALLOW.
p_id event.idm.read_only_udm.target.process.pid Pemetaan langsung.
pid event.idm.read_only_udm.target.process.pid, event.idm.read_only_udm.principal.process.pid Pemetaan langsung.
principal_hostname event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Pemetaan langsung.
principal_ip event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung.
principal_present event.idm.read_only_udm.metadata.event_type Jika true dan has_target adalah true, setel event_type ke NETWORK_UNCATEGORIZED. Jika true atau user_present adalah true, setel event_type ke USER_UNCATEGORIZED.
process event.idm.read_only_udm.target.application, event.idm.read_only_udm.metadata.product_event_type Pemetaan langsung. Jika eventType kosong, digunakan sebagai target.application.
ProcessID event.idm.read_only_udm.principal.process.pid Pemetaan langsung, dikonversi menjadi string.
ProcessName event.idm.read_only_udm.principal.resource.attribute.labels Kunci: ProcessName, Nilai: ProcessName
prod_eve_type event.idm.read_only_udm.metadata.product_event_type Pemetaan langsung.
product_event_type event.idm.read_only_udm.metadata.product_event_type Pemetaan langsung.
Protocol event.idm.read_only_udm.network.ip_protocol Jika cocok dengan icmp, udp, atau tcp (tidak peka huruf besar/kecil), dipetakan ke nilai huruf besar yang sesuai.
proto event.idm.read_only_udm.network.application_protocol Jika ssh atau ssh2, tetapkan ke SSH.
pwd event.idm.read_only_udm.target.file.full_path Pemetaan langsung.
reason security_result.summary, security_result.description Digunakan bersama dengan action dan desc untuk membuat security_result.description. Juga dipetakan ke security_result.summary.
relayHostname event.idm.read_only_udm.intermediary.hostname Pemetaan langsung.
relayIp event.idm.read_only_udm.intermediary.ip Pemetaan langsung.
res security_result.summary Pemetaan langsung.
resource.labels.instance_id event.idm.read_only_udm.target.resource.product_object_id Pemetaan langsung.
resource.labels.project_id event.idm.read_only_udm.target.asset.attribute.cloud.project.id Pemetaan langsung.
resource.labels.zone event.idm.read_only_udm.target.asset.attribute.cloud.availability_zone Pemetaan langsung.
resource.type event.idm.read_only_udm.target.resource.resource_subtype Pemetaan langsung.
response_code event.idm.read_only_udm.network.http.response_code Pemetaan langsung, dikonversi menjadi bilangan bulat.
ResponderBytes event.idm.read_only_udm.network.received_bytes Pemetaan langsung, dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
ResponderPackets event.idm.read_only_udm.network.received_packets Pemetaan langsung, dikonversi menjadi bilangan bulat.
rhost event.idm.read_only_udm.additional.fields Kunci: rhost, Nilai: rhost
ruser srcUser Pemetaan langsung.
sec_action security_result.action Dipetakan berdasarkan action atau eventType.
sec_summary security_result.summary Pemetaan langsung.
security_action security_result.action Pemetaan langsung.
sent_bytes event.idm.read_only_udm.network.sent_bytes Pemetaan langsung, dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
ses event.idm.read_only_udm.network.session_id, event.idm.read_only_udm.network.session_duration Jika numerik, diurai sebagai stempel waktu UNIX dan dipetakan ke session_duration. Jika tidak, dipetakan ke session_id.
SeverityLevel security_result.severity Dipetakan ke tingkat keparahan yang berbeda berdasarkan nilai (pemberitahuan/info -> INFORMATIONAL, peringatan -> HIGH, error -> ERROR, lainnya -> UNKNOWN_SEVERITY).
sessionId event.idm.read_only_udm.network.session_id Pemetaan langsung.
size event.idm.read_only_udm.network.received_bytes Pemetaan langsung, dikonversi menjadi bilangan bulat yang tidak bertanda tangan.
source event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Pemetaan langsung setelah menghapus spasi kosong di awal.
SourceSystem event.idm.read_only_udm.principal.resource.attribute.labels, event.idm.read_only_udm.principal.platform Kunci: SourceSystem, Nilai: SourceSystem. Juga dipetakan ke platform (Linux -> LINUX, Window -> WINDOWS, Mac/iOS -> MAC).
SrcIP event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung.
SrcPort event.idm.read_only_udm.principal.port Pemetaan langsung, dikonversi menjadi bilangan bulat.
srcIp event.idm.read_only_udm.principal.ip, event.idm.read_only_udm.principal.asset.ip Pemetaan langsung.
srcPort event.idm.read_only_udm.principal.port Pemetaan langsung, dikonversi menjadi bilangan bulat.
srcUser event.idm.read_only_udm.principal.user.userid Pemetaan langsung.
src_user event.idm.read_only_udm.principal.user.userid Pemetaan langsung.
src_user_display_name event.idm.read_only_udm.principal.user.user_display_name Pemetaan langsung.
status security_result.action Jika Deferred, tetapkan ke BLOCK. Jika Sent, tetapkan ke ALLOW.
summary security_result.summary Pemetaan langsung.
SyslogMessage security_result.description Pemetaan langsung.
targetEmail event.idm.read_only_udm.network.email.to Pemetaan langsung.
targetEmailfrom event.idm.read_only_udm.network.email.from Pemetaan langsung.
targetHostname event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Pemetaan langsung.
target_hostname event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Pemetaan langsung.
target_ip event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Pemetaan langsung.
target_mac event.idm.read_only_udm.target.mac Pemetaan langsung.
target_uri event.idm.read_only_udm.target.url Pemetaan langsung.
TenantId event.idm.read_only_udm.principal.user.product_object_id Pemetaan langsung.
terminal event.idm.read_only_udm.additional.fields Kunci: terminal, Nilai: terminal jika tidak kosong atau ?.
TimeGenerated event.idm.read_only_udm.metadata.collected_timestamp Diuraikan sebagai stempel waktu.
timestamp @timestamp Diuraikan sebagai stempel waktu.
tls_cipher event.idm.read_only_udm.network.tls.cipher Pemetaan langsung.
Type event.idm.read_only_udm.principal.resource.attribute.labels Kunci: Type, Nilai: Type
uid event.idm.read_only_udm.principal.user.userid Jika 0, tetapkan ke root. Jika tidak, pemetaan langsung.
uid_2 event.idm.read_only_udm.target.user.userid Pemetaan langsung jika uid kosong.
unit event.idm.read_only_udm.target.application Pemetaan langsung.
url event.idm.read_only_udm.target.url Pemetaan langsung.
user username Pemetaan langsung.
username event.idm.read_only_udm.target.user.userid, event.idm.read_only_udm.principal.user.userid Pemetaan langsung.
user_display_name event.idm.read_only_udm.target.user.user_display_name Pemetaan langsung.
user_present event.idm.read_only_udm.metadata.event_type Jika true atau principal_present adalah true, setel event_type ke USER_UNCATEGORIZED.
_Internal_WorkspaceResourceId event.idm.read_only_udm.target.resource.attribute.labels, event.idm.read_only_udm.target.resource.product_object_id Kunci: _Internal_WorkspaceResourceId, Nilai: _Internal_WorkspaceResourceId. ID langganan diekstrak dan dipetakan ke product_object_id.
_ItemId event.idm.read_only_udm.principal.resource.attribute.labels Kunci: _ItemId, Nilai: _ItemId
_ResourceId event.idm.read_only_udm.principal.resource.attribute.labels, event.idm.read_only_udm.principal.resource.product_object_id Kunci: _ResourceId, Nilai: _ResourceId. ID langganan diekstrak dan dipetakan ke product_object_id.
_timestamp @timestamp Diuraikan sebagai stempel waktu.
_timestamp_tz @timestamp Diuraikan sebagai stempel waktu.

event.idm.read_only_udm.metadata.event_type: Awalnya disetel ke GENERIC_EVENT, lalu diganti berdasarkan logika parser. event.idm.read_only_udm.metadata.product_name: Di-hardcode ke Unix System. event.idm.read_only_udm.extensions.auth.type: Tetapkan ke MACHINE untuk jenis peristiwa tertentu. event.idm.read_only_udm.target.asset.attribute.cloud.environment: Setel ke GOOGLE_CLOUD_PLATFORM untuk Google Cloud log audit. event.idm.read_only_udm.target.resource.resource_type: Setel ke VIRTUAL_MACHINE untuk Google Cloud log audit. event.idm.read_only_udm.extensions.auth.mechanism: Tetapkan ke USERNAME_PASSWORD untuk peristiwa login. has_target_resource: Ditetapkan ke true jika resource.labels.instance_id atau _Internal_WorkspaceResourceId ada.

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