Mengumpulkan log Linux Audit Daemon

Didukung di:

Dokumen ini menjelaskan cara menyerap log Linux Audit Daemon (auditd) ke Google Security Operations menggunakan Bindplane.

Linux Audit Daemon adalah komponen userspace dari sistem audit Linux. Audit merekam peristiwa yang relevan dengan keamanan di sistem, termasuk akses file, panggilan sistem, peristiwa autentikasi, dan penolakan SELinux. Log auditd sangat penting untuk pemantauan kepatuhan, deteksi penyusupan, dan analisis forensik di host Linux.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps.
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd.
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane.
  • Akses root atau sudo di host Linux yang menjalankan auditd.
  • Paket auditd diinstal dan berjalan di host Linux sumber.
  • Paket audispd-plugins yang diinstal di host Linux sumber (menyediakan plugin audisp-syslog).

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

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
    

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 agen BindPlane.

Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    • Linux: /status observiq-otel-collector/config.yaml
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  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_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: '<your_customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'AUDITD'
            raw_log_field: body
            ingestion_labels:
    
    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 <your_customer_id> dengan ID Pelanggan yang sebenarnya.
  • Ganti /path/to/ingestion-authentication-file.json dengan jalur file tempat file autentikasi disimpan di langkah Mendapatkan file autentikasi penyerapan.

Mulai ulang agen Bindplane untuk menerapkan perubahan

Untuk memulai ulang agen Bindplane di Linux:

  1. Jalankan perintah berikut:

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

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

    sudo journalctl -u observiq-otel-collector -f
    

Untuk memulai ulang agen Bindplane di Windows:

  1. 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.
  2. Pastikan layanan sedang berjalan:

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

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

Mengonfigurasi auditd untuk meneruskan log melalui syslog

Plugin audisp syslog meneruskan peristiwa audit ke syslog, yang kemudian mengirimkannya ke agen Bindplane. Ini adalah metode yang direkomendasikan untuk meneruskan log auditd.

Menginstal plugin syslog audisp

  1. Login ke host Linux yang menjalankan auditd dengan hak istimewa root atau sudo.
  2. Menginstal paket audispd-plugins

    • RHEL/CentOS/Fedora:
    sudo yum install audispd-plugins
    
    • Debian/Ubuntu:
    sudo apt install audispd-plugins
    

Mengonfigurasi plugin syslog

  1. Edit file konfigurasi plugin syslog:

    sudo nano /etc/audit/plugins.d/syslog.conf
    
  2. Tetapkan nilai berikut dalam file:

    active = yes
    direction = out
    path = /sbin/audisp-syslog
    type = always
    args = LOG_LOCAL6
    format = string
    
    • active: Setel ke yes untuk mengaktifkan plugin.
    • path: Jalur ke biner audisp-syslog.
    • type: Tetapkan ke always untuk menjalankan plugin sebagai program eksternal.
    • args: Fasilitas syslog yang akan digunakan. LOG_LOCAL6 direkomendasikan untuk memisahkan log audit dari pesan syslog lainnya.
    • format: Setel ke string untuk meneruskan peristiwa dalam format teks yang sesuai untuk syslog.

Mengonfigurasi aturan audit (opsional)

  1. Edit file aturan audit untuk menentukan peristiwa mana yang akan direkam:

    sudo nano /etc/audit/rules.d/audit.rules
    
  2. Tambahkan aturan berdasarkan persyaratan pemantauan Anda. Contoh:

    ## Delete all existing rules
    -D
    
    ## Set buffer size (increase for high-volume systems)
    -b 8192
    
    ## Set failure mode (1 = printk, 2 = panic)
    -f 1
    
    ## Monitor authentication-related files
    -w /etc/passwd -p wa -k identity
    -w /etc/group -p wa -k identity
    -w /etc/shadow -p wa -k identity
    -w /etc/sudoers -p wa -k sudoers
    
    ## Monitor login events
    -w /var/log/faillog -p wa -k logins
    -w /var/log/lastlog -p wa -k logins
    
    ## Monitor process execution
    -a always,exit -F arch=b64 -S execve -k exec
    
    ## Monitor network configuration changes
    -a always,exit -F arch=b64 -S sethostname -S setdomainname -k network
    
    ## Make the configuration immutable (must be the last rule)
    -e 2
    
  3. Muat aturan audit baru:

    sudo augenrules --load
    

Mulai ulang auditd

  1. Mulai ulang layanan auditd untuk menerapkan perubahan plugin dan aturan:

    sudo service auditd restart
    

Mengonfigurasi rsyslog untuk meneruskan log audit ke BindPlane

  1. Buat file konfigurasi rsyslog baru untuk penerusan log audit:

    sudo nano /etc/rsyslog.d/audit-forward.conf
    
  2. Tambahkan baris berikut untuk meneruskan log melalui UDP ke agen Bindplane:

    local6.* @<BINDPLANE_IP>:514
    
  3. Mulai ulang rsyslog untuk menerapkan perubahan:

    sudo systemctl restart rsyslog
    

Memverifikasi penerusan log

  1. Di host Linux sumber, buat peristiwa audit pengujian:

    sudo auditctl -w /tmp/test_audit -p wa -k test_chronicle
    
  2. Picu smartwatch dengan menyentuh file:

    touch /tmp/test_audit
    
  3. Di host agen BindPlane, pastikan log diterima:

    sudo journalctl -u observiq-otel-collector -f
    

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
acct target.user.userid Nilai diambil dari kolom acct.
addr principal.ip Nilai diambil dari kolom addr jika merupakan alamat IP yang valid.
arch additional.fields Ditambahkan sebagai key-value pair dengan kunci "arch".
auid principal.user.userid Nilai diambil dari kolom auid. Digunakan sebagai ID pengguna audit.
comm target.process.command_line Nilai diambil dari kolom comm.
cwd additional.fields Ditambahkan sebagai key-value pair dengan kunci "cwd".
exe target.process.file.full_path Nilai diambil dari kolom exe.
exit additional.fields Ditambahkan sebagai key-value pair dengan kunci "exit".
gid principal.user.group_identifiers Nilai diambil dari kolom gid.
hostname principal.hostname Nilai diambil dari kolom hostname.
key security_result.detection_fields Ditambahkan sebagai key-value pair dengan kunci "audit_key".
msg metadata.description Diuraikan dari kolom msg. Berisi pesan peristiwa audit.
name target.file.full_path Nilai diambil dari kolom name jika berlaku.
node principal.hostname Nilai diambil dari kolom node jika hostname tidak ada.
op metadata.product_event_type Nilai diambil dari kolom op (jenis operasi).
pid principal.process.pid Nilai diambil dari kolom pid.
ppid principal.process.parent_process.pid Nilai diambil dari kolom ppid.
res security_result.action Setel ke "ALLOW" jika res adalah "success" atau "1". Disetel ke "BLOCK" jika res adalah "failed" atau "0".
ses network.session_id Nilai diambil dari kolom ses (ID sesi).
subj principal.process.file.full_path Nilai yang diambil dari kolom subj (konteks subjek SELinux).
syscall additional.fields Ditambahkan sebagai key-value pair dengan kunci "syscall".
terminal additional.fields Ditambahkan sebagai key-value pair dengan kunci "terminal".
type metadata.product_event_type Nilai diambil dari kolom type (jenis catatan audit, misalnya, SYSCALL, USER_LOGIN, EXECVE).
uid principal.user.userid Nilai diambil dari kolom uid.
metadata.event_type Berasal dari jenis catatan audit. Setel ke "USER_LOGIN" untuk peristiwa login, "USER_LOGOUT" untuk peristiwa logout, "PROCESS_LAUNCH" untuk peristiwa exec, "FILE_MODIFICATION" untuk peristiwa file. Default-nya adalah "GENERIC_EVENT".
metadata.product_name Tetapkan ke "auditd".
metadata.vendor_name Tetapkan ke "Linux".
home event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
shell event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
name event.idm.read_only_udm.target.user.userid Dipetakan dari log perubahan
name event.idm.read_only_udm.target.group.group_display_name Dipetakan dari log perubahan
UID event.idm.read_only_udm.target.user.product_object_id Dipetakan dari log perubahan
GID event.idm.read_only_udm.target.user.group_identifiers Dipetakan dari log perubahan
GID event.idm.read_only_udm.target.group.product_object_id Dipetakan dari log perubahan
key_type event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
hash event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
key_fingerprint event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
user event.idm.read_only_udm.target.user.userid Dipetakan dari log perubahan
error_detail1 event.idm.read_only_udm.security_result.summary Dipetakan dari log perubahan
service_name event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
ssh_disconnect_code event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
labels.bp_csoc event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
labels.bp_env_id event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
labels.log.file.name event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
resource.labels.node_id event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
intermediary_host event.idm.read_only_udm.intermediary.hostname Dipetakan dari log perubahan
PWD event.idm.read_only_udm.target.file.full_path Dipetakan dari log perubahan
log_details event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
indicator.SUID event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.UID event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.AUID event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
type_crypto_props.msg event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
usr event.idm.read_only_udm.principal.user.userid Dipetakan dari log perubahan
pi event.idm.read_only_udm.principal.process.pid Dipetakan dari log perubahan
cmnd event.idm.read_only_udm.target.process.command_line Dipetakan dari log perubahan
proctitle_value event.idm.read_only_udm.principal.process.file.full_path Dipetakan dari log perubahan
filename event.idm.read_only_udm.principal.process.file.names Dipetakan dari log perubahan
filepath event.idm.read_only_udm.target.file.full_path Dipetakan dari log perubahan
uid event.idm.read_only_udm.principal.user.userid Dipetakan dari log perubahan
acct event.idm.read_only_udm.principal.user.user_display_name Dipetakan dari log perubahan
exe event.idm.read_only_udm.target.process.file.full_path Dipetakan dari log perubahan
pid event.idm.read_only_udm.principal.process.pid Dipetakan dari log perubahan
auid event.idm.read_only_udm.about.user.userid Dipetakan dari log perubahan
ses event.idm.read_only_udm.network.session_id Dipetakan dari log perubahan
addr event.idm.read_only_udm.principal.ip dan event.idm.read_only_udm.principal.asset.ip Dipetakan dari log perubahan
subj event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
res event.idm.read_only_udm.security_result.summary Dipetakan dari log perubahan
op event.idm.read_only_udm.security_result.summary Dipetakan dari log perubahan
msg_value event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
grantors_value event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.msg event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.grantors event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
terminal event.idm.read_only_udm.principal.application Dipetakan dari log perubahan
sec_result event.idm.read_only_udm.security_result Dipetakan dari log perubahan
hostname event.idm.read_only_udm.principal.hostname Dipetakan dari log perubahan
indicator.mode event.idm.read_only_udm.src.user.attribute.permissions Dipetakan dari log perubahan
indicator.nametype event.idm.read_only_udm.security_result.rule_name Dipetakan dari log perubahan
indicator.cap_frootid event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.cap_fver event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.cap_fi event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.cap_fp event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
indicator.cap_fe event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
OUID event.idm.read_only_udm.principal.user.userid Dipetakan dari log perubahan
OGID event.idm.read_only_udm.principal.group.group_display_name Dipetakan dari log perubahan
action_data event.idm.read_only_udm.security_result.action_details Dipetakan dari log perubahan
target_email event.idm.ready_only_udm.target.user.email_addresses Dipetakan dari log perubahan
target_port event.idm.ready_only_udm.target.port Dipetakan dari log perubahan
status event.idm.ready_only_udm.security_result.action_details Dipetakan dari log perubahan
to_email event.idm.ready_only_udm.network.email.to Dipetakan dari log perubahan
target_hostname event.idm.ready_only_udm.target.hostname Dipetakan dari log perubahan
"relay_data" event.idm.ready_only_udm.additional.fields Dipetakan dari log perubahan
"delays_data" event.idm.ready_only_udm.additional.fields Dipetakan dari log perubahan
"delay_data" event.idm.ready_only_udm.additional.fields Dipetakan dari log perubahan
and "dns_data" event.idm.ready_only_udm.additional.fields Dipetakan dari log perubahan
bytes_sent event.idm.ready_only_udm.network.sent_bytes Dipetakan dari log perubahan
bytes_received event.idm.ready_only_udm.network.received_bytes Dipetakan dari log perubahan
response_code event.idm.ready_only_udm.network.http.response_code Dipetakan dari log perubahan
principal_user_name principal.user.userid Dipetakan dari log perubahan
remote principal.ip Dipetakan dari log perubahan
method network.http.method Dipetakan dari log perubahan
path principal.file.full_path Dipetakan dari log perubahan
code additional.fields Dipetakan dari log perubahan
size principal.file.size Dipetakan dari log perubahan
agent network.http.user_agent Dipetakan dari log perubahan
az principal.location.name Dipetakan dari log perubahan
ec2_instance_id principal.asset.product_object_id Dipetakan dari log perubahan
private_ip principal.ip Dipetakan dari log perubahan
ProviderName additional.fields Dipetakan dari log perubahan
Version additional.fields Dipetakan dari log perubahan
Task additional.fields Dipetakan dari log perubahan
EventRecordID additional.fields Dipetakan dari log perubahan
ThreadID additional.fields Dipetakan dari log perubahan
messageType target.resource.attribute.labels Dipetakan dari log perubahan
owner principal.user.userid Dipetakan dari log perubahan
logevent.id metadata.product_log_id Dipetakan dari log perubahan
logGroup secu_result.about.resource.name Dipetakan dari log perubahan
logStream secu_result.about.resource.attribute.labels Dipetakan dari log perubahan
ip_addr principal.ip Dipetakan dari log perubahan
gd secu_result.description Dipetakan dari log perubahan
process target.application Dipetakan dari log perubahan
pid target.process.pid Dipetakan dari log perubahan
status_code network.http.response_code Dipetakan dari log perubahan
url network.http.referral_url Dipetakan dari log perubahan
useragent network.http.user_agent Dipetakan dari log perubahan
request additional.fields Dipetakan dari log perubahan
tls_version network.tls.version Dipetakan dari log perubahan
hostname_is principal.hostname Dipetakan dari log perubahan
referrer network.http.referral_url Dipetakan dari log perubahan
metadata.event_type USER_LOGIN Dipetakan dari log perubahan
metadata.event_type PROCESS_UNCATEGORIZED Dipetakan dari log perubahan
srcIP principal.ip Dipetakan dari log perubahan
username principal.user.user_display_name Dipetakan dari log perubahan
type_syscall_props.msg additional.fields Dipetakan dari log perubahan
sw", "sw_type", and "subj security_result.detection_fields Dipetakan dari log perubahan
indicator.SYSCALL security_result.detection_fields Dipetakan dari log perubahan
exe principal.process.file.full_path Dipetakan dari log perubahan
target.user.userid principal.user.userid Dipetakan dari log perubahan
target_user_name target.user.userid Dipetakan dari log perubahan
field field33 Dipetakan dari log perubahan
fp network.tls.client.certificate.sha256 Dipetakan dari log perubahan
pid principal.process.pid Dipetakan dari log perubahan
syslog-tag security_result.detection_fields Dipetakan dari log perubahan
inter_ip intermediary.ip Dipetakan dari log perubahan
inter_hostname intermediary.hostname Dipetakan dari log perubahan
grp target.group.group_display_name Dipetakan dari log perubahan
id about.user.userid Dipetakan dari log perubahan
acct target.user.user_display_name Dipetakan dari log perubahan
uid principal.user.userid Dipetakan dari log perubahan
auid about.user.userid Dipetakan dari log perubahan
auid target.user.userid Dipetakan dari log perubahan
op" and "id security_result.summary Dipetakan dari log perubahan
op" and "acct security_result.summary Dipetakan dari log perubahan
labels.compute.googleapis.com/resource_name","jsonPayload._HOSTNAME" , "CollectorHostName", "HOSTNAME", and "Computer principal.hostname Dipetakan dari log perubahan
HostIP principal.ip Dipetakan dari log perubahan
ProcessID" and "jsonPayload._PID principal.process.pid Dipetakan dari log perubahan
SyslogMessage metadata.description Dipetakan dari log perubahan
TenantId", "_ItemId", "_Internal_WorkspaceResourceId", "_ResourceId", and "Facility additional.fields Dipetakan dari log perubahan
SeverityLevel security_result.severity Dipetakan dari log perubahan
SourceSystem principal.platform Dipetakan dari log perubahan
jsonPayload._COMM principal.application Dipetakan dari log perubahan
jsonPayload._EXE target.process.file.full_path Dipetakan dari log perubahan
jsonPayload._AUDIT_FIELD_FILE target.file.full_path Dipetakan dari log perubahan
jsonPayload._AUDIT_FIELD_HASH target.file.hash Dipetakan dari log perubahan
jsonPayload._AUDIT_SESSION network.session_id Dipetakan dari log perubahan
jsonPayload._PPID principal.process.parent_process.pid Dipetakan dari log perubahan
jsonPayload._AUDIT_FIELD_A0", "jsonPayload._AUDIT_FIELD_A1", "jsonPayload._AUDIT_FIELD_A2", "jsonPayload._AUDIT_FIELD_A3", "jsonPayload._BOOT_ID", and "jsonPayload._AUDIT_FIELD_EXIT security_result.detection_fields Dipetakan dari log perubahan
id target.user.userid Dipetakan dari log perubahan
ID target.user.user_display_name Dipetakan dari log perubahan
user_name principal.user.userid Dipetakan dari log perubahan
principal_user_userid principal.user.userid Dipetakan dari log perubahan
vendor_name Linux Dipetakan dari log perubahan
product_name AuditD Dipetakan dari log perubahan
ip target.ip Dipetakan dari log perubahan
success security_result.summary Dipetakan dari log perubahan
syscall", "exit", "tty", "a0", "a1", "a2", "a3 security_result.about.labels Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

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