Mengumpulkan log Nix Systems Ubuntu Server (Sistem Unix)
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
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
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
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
- 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
atauvi
).
- Cari file
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]
Ganti
<customer_id>
dengan ID pelanggan yang sebenarnya.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
Mulai agen Bindplane:
sudo systemctl start bindplane-agent
Aktifkan Layanan pengumpul otel observIQ:
systemctl enable --now bindplane-agent
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.