Mengumpulkan log sistem Linux auditd dan AIX
Parser ini menangani log audit Linux dalam format SYSLOG, dan mengubahnya menjadi UDM. Proses ini memproses pesan log berformat JSON dan teks biasa, mengekstrak kolom menggunakan teknik grok, penguraian XML, dan penguraian JSON, serta memetakannya ke kolom UDM yang sesuai berdasarkan jenis peristiwa. Parser juga menangani format log audit tertentu dari sistem AIX dan memperkaya UDM dengan kolom tambahan seperti security_result
dan detail perantara.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda memiliki akses root ke host Auditd.
- Pastikan Anda telah menginstal rsyslog di host Auditd.
- Pastikan Anda memiliki host Windows 2012 SP2 atau yang lebih baru atau Linux dengan systemd.
- Jika berjalan di belakang proxy, pastikan port firewall terbuka.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- Download File Autentikasi Penyerapan.
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
- Untuk penginstalan Windows, jalankan skrip berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Untuk penginstalan Linux, jalankan skrip berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk memproses Syslog dan mengirimkannya ke Google SecOps
- Akses komputer tempat BindPlane diinstal.
Edit file
config.yaml
sebagai berikut:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: auditd raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Mulai ulang Bindplane Agent untuk menerapkan perubahan menggunakan perintah berikut:
sudo systemctl bindplane restart
Mengekspor Syslog dari Auditd
- Akses mesin tempat Anda ingin mengekspor log audit.
Buka file konfigurasi Auditd (biasanya terletak di
/etc/audit/auditd.conf
).sudo vi /etc/audit/auditd.conf
Temukan atau tambahkan baris berikut untuk mengonfigurasi auditd:
active = yes output = syslog log_format = ENRICHED dispatcher = /sbin/audispd
Opsional: Tentukan Fasilitas Syslog: Tambahkan atau ubah baris berikut di auditd.conf
:
```none
syslog_facility = LOG_AUTHPRIV
```
Buka file konfigurasi audispd (biasanya terletak di
/etc/audisp/plugins.d/syslog.conf
):sudo vi /etc/audisp/plugins.d/syslog.conf
Temukan atau tambahkan baris berikut untuk mengonfigurasi audispd:
active = yes direction = out path = builtin_syslog type = builtin args = LOG_INFO format = string
Mulai ulang layanan Auditd untuk menerapkan perubahan:
sudo systemctl restart auditd
Gunakan alat seperti
tail
untuk memantau syslog dan memverifikasi bahwa log Auditd sedang dikirim:tail -f /var/log/syslog | grep auditd # Follow syslog and filter for auditd messages (path may vary depending on your system)
Edit
rsyslog.conf
atau buat konfigurasi kustom:sudo vi /etc/rsyslog.d/50-audit-forwarding.conf
Tambahkan aturan untuk meneruskan log:
if $programname == 'auditd' then @@<Bindplane_Agent>:<Bindplane_Port>
- Gunakan
@
untuk UDP atau@@
untuk TCP - Ganti
<BindPlane_Agent>
dengan IP/nama host server Anda. - Ganti
<BindPlane_Port>
dengan Port server Anda.
Mulai ulang layanan rsyslog untuk menerapkan perubahan:
sudo systemctl restart rsyslog
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
acct |
target.user.user_display_name |
Nilai acct dari log mentah dipetakan ke kolom target.user.user_display_name di UDM. Ini mewakili akun yang terkait dengan peristiwa. |
addr |
principal.ip |
Nilai addr dari log mentah dipetakan ke kolom principal.ip di UDM. Ini mewakili alamat IP akun utama yang terlibat dalam peristiwa tersebut. |
additional.fields |
additional.fields |
Kolom tambahan dari pasangan nilai kunci atau label yang diuraikan ditambahkan ke array additional.fields di UDM. |
agent.googleapis.com/log_file_path |
(Tidak Dipetakan) | Label ini ada di beberapa log mentah, tetapi tidak dipetakan ke objek IDM di UDM. |
algo |
(Tidak digunakan dalam contoh ini) | Meskipun ada di parser dan beberapa log mentah, kolom ini tidak digunakan dalam contoh yang diberikan dan tidak muncul di UDM akhir. |
application |
principal.application |
Diperoleh dari kolom terminal dalam log mentah atau kolom lain seperti exe , bergantung pada jenis log. Mewakili aplikasi yang terlibat. |
arch |
security_result.about.platform_version |
Arsitektur dari kolom arch log mentah dipetakan ke security_result.about.platform_version . |
auid |
about.user.userid , security_result.detection_fields.auid |
ID pengguna audit (auid ) dipetakan ke about.user.userid dan ditambahkan sebagai kolom deteksi di security_result . |
cmd |
target.process.command_line |
Perintah dari kolom cmd log mentah dipetakan ke target.process.command_line . |
collection_time |
(Tidak Dipetakan) | Kolom ini adalah waktu pengumpulan log dan tidak dipetakan ke objek IDM di UDM. |
comm |
principal.application |
Nama perintah (comm ) dipetakan ke principal.application . |
compute.googleapis.com/resource_name |
principal.hostname |
Nama resource dari label ini dipetakan ke principal.hostname . |
create_time |
(Tidak Dipetakan) | Kolom ini tidak dipetakan ke objek IDM di UDM. |
cwd |
security_result.detection_fields.cwd |
Direktori kerja saat ini (cwd ) ditambahkan sebagai kolom deteksi di security_result . |
data |
(Diproses) | Kolom data berisi pesan log utama dan diproses oleh parser untuk mengekstrak berbagai kolom. Kolom ini tidak dipetakan langsung ke satu kolom UDM. |
exe |
principal.process.file.full_path , target.process.file.full_path |
Jalur yang dapat dieksekusi (exe ) dipetakan ke principal.process.file.full_path atau target.process.file.full_path , bergantung pada konteksnya. |
extensions.auth.type |
extensions.auth.type |
Jenis autentikasi ditetapkan oleh logika parser berdasarkan jenis peristiwa. Sering disetel ke MACHINE atau AUTHTYPE_UNSPECIFIED . |
fp |
network.tls.client.certificate.sha256 |
Sidik jari (fp ) diuraikan untuk mengekstrak hash SHA256 dan dipetakan ke network.tls.client.certificate.sha256 . |
insertId |
(Tidak Dipetakan) | Kolom ini tidak dipetakan ke objek IDM di UDM. |
jsonPayload.message |
(Diproses) | Kolom ini berisi pesan log utama dalam format JSON dan diproses oleh parser. |
key |
security_result.about.registry.registry_key |
Kolom kunci dipetakan ke security_result.about.registry.registry_key . |
labels |
(Diproses) | Label dari log mentah diproses dan dipetakan ke berbagai kolom UDM atau ditambahkan ke additional.fields . |
logName |
(Tidak Dipetakan) | Kolom ini tidak dipetakan ke objek IDM di UDM. |
msg |
security_result.summary |
Pesan (msg ) sering digunakan untuk mengisi kolom security_result.summary . |
network.application_protocol |
network.application_protocol |
Ditetapkan oleh logika parser berdasarkan jenis peristiwa (misalnya, SSH, HTTP). |
network.direction |
network.direction |
Ditetapkan oleh logika parser berdasarkan jenis peristiwa (misalnya, MASUK, KELUAR). |
network.ip_protocol |
network.ip_protocol |
Ditetapkan oleh logika parser, biasanya ke TCP untuk peristiwa SSH. |
network.session_id |
network.session_id |
Dipetakan dari kolom ses atau berasal dari kolom lain. |
network.tls.cipher |
network.tls.cipher |
Informasi sandi diekstrak dari log mentah dan dipetakan ke kolom ini. |
network.tls.curve |
network.tls.curve |
Kurva pertukaran kunci diekstrak dari log mentah dan dipetakan ke kolom ini. |
pid |
principal.process.pid , target.process.pid |
ID proses (pid ) dipetakan ke principal.process.pid atau target.process.pid , bergantung pada konteksnya. |
ppid |
principal.process.parent_process.pid , target.process.parent_process.pid |
ID proses induk (ppid ) dipetakan ke principal.process.parent_process.pid atau target.process.parent_process.pid , bergantung pada konteksnya. |
principal.asset.hostname |
principal.asset.hostname |
Disalin dari principal.hostname . |
principal.asset.ip |
principal.asset.ip |
Disalin dari principal.ip . |
principal.platform |
principal.platform |
Ditetapkan oleh logika parser berdasarkan sistem operasi (misalnya, LINUX). |
principal.port |
principal.port |
Nomor port yang terkait dengan prinsipal. |
principal.user.group_identifiers |
principal.user.group_identifiers |
ID grup yang terkait dengan pengguna utama. |
receiveTimestamp |
(Tidak Dipetakan) | Kolom ini adalah stempel waktu penerimaan log dan tidak dipetakan ke objek IDM di UDM. |
res |
security_result.action_details |
Hasil (res ) dipetakan ke security_result.action_details . |
resource.labels |
(Tidak Dipetakan) | Label ini ada di beberapa log mentah, tetapi tidak dipetakan ke objek IDM di UDM. |
resource.type |
(Tidak Dipetakan) | Kolom ini ada di beberapa log mentah, tetapi tidak dipetakan ke objek IDM di UDM. |
security_result.action |
security_result.action |
Ditetapkan oleh logika parser berdasarkan kolom res (misalnya, IZINKAN, BLOKIR). |
security_result.detection_fields |
security_result.detection_fields |
Berbagai kolom dari log mentah ditambahkan sebagai pasangan nilai kunci ke array ini untuk konteks. |
security_result.rule_id |
security_result.rule_id |
Ditetapkan oleh logika parser, sering kali ke type_name untuk peristiwa syscall. |
security_result.severity |
security_result.severity |
Ditetapkan oleh logika parser berdasarkan tingkat keparahan dalam log mentah. |
security_result.summary |
security_result.summary |
Ringkasan acara, sering kali berasal dari kolom msg atau kolom relevan lainnya. |
ses |
network.session_id |
ID sesi (ses ) dipetakan ke network.session_id . |
source |
(Tidak Dipetakan) | Kolom ini berisi metadata tentang sumber log dan tidak dipetakan ke objek IDM di UDM. |
subj |
(Diproses) | Kolom subjek (subj ) diproses untuk mengekstrak informasi konteks keamanan dan pengguna. |
syscall |
security_result.about.labels.Syscall |
Nomor syscall ditambahkan sebagai label dalam security_result.about . |
target.administrative_domain |
target.administrative_domain |
Domain pengguna target. |
target.group.group_display_name |
target.group.group_display_name |
Nama grup target. |
target.ip |
target.ip |
Alamat IP target. |
target.port |
target.port |
Nomor port yang terkait dengan target. |
target.process.command_line |
target.process.command_line |
Command line dari proses target. |
target.resource.type |
target.resource.type |
Jenis resource target, ditetapkan oleh logika parser (misalnya, KREDENSIAL, SETELAN). |
target.user.attribute.permissions |
target.user.attribute.permissions |
Izin yang terkait dengan pengguna target. |
target.user.group_identifiers |
target.user.group_identifiers |
ID grup yang terkait dengan pengguna target. |
target.user.userid |
target.user.userid |
ID pengguna target. |
textPayload |
(Diproses) | Payload teks log, yang diproses oleh parser untuk mengekstrak berbagai kolom. |
timestamp |
metadata.event_timestamp |
Stempel waktu acara. |
tty |
security_result.about.labels.tty |
tty ditambahkan sebagai label dalam security_result.about . |
type |
metadata.product_event_type |
Jenis peristiwa (type ) dipetakan ke metadata.product_event_type . |
uid |
principal.user.userid , target.user.userid |
ID pengguna (uid ) dipetakan ke principal.user.userid atau target.user.userid , bergantung pada konteksnya. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.