Mengumpulkan log OpenCanary
Ringkasan
Parser ini mengekstrak kolom dari log SYSLOG dan JSON OpenCanary, menormalisasinya ke dalam format UDM, dan memperkaya data dengan kolom turunan seperti metadata.event_type
dan security_result.severity
. Log ini menangani berbagai format log, melakukan validasi alamat IP, dan memetakan kolom ke objek UDM yang sesuai seperti principal
, target
, dan network
.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke OpenCanary.
Menyiapkan feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, OpenCanary Logs.
- Pilih Webhook sebagai Jenis sumber.
- Pilih OpenCanary sebagai Jenis log.
- Klik Berikutnya.
- Opsional: Tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
\n
.
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku.
- Dari tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
- Klik Selesai.
Membuat kunci API untuk feed webhook
Buka konsolGoogle Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Google Security Operations API.
Tentukan URL endpoint
- Di aplikasi klien Anda, tentukan URL endpoint HTTPS yang disediakan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci rahasia sebagai bagian dari header kustom dalam format berikut:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL.
Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ganti kode berikut:
ENDPOINT_URL
: URL endpoint feed.API_KEY
: kunci API untuk mengautentikasi ke Google Security Operations.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Menyiapkan Webhook OpenCanary untuk Google SecOps
Temukan file konfigurasi OpenCanary,
config.json
.Buka file
config.json
dengan editor teks.Temukan bagian berlabel alerters dalam file konfigurasi.
Jika alerter
webhook
sudah ada, ubah alerter tersebut. Jika tidak, tambahkan entri baru untuk pemberi peringatanwebhook
.Gunakan konfigurasi berikut (ganti ENDPOINT_URL, SECRET, dan API_KEY dengan nilai Anda):
"handlers": {
"Webhook": {
"class": "opencanary.logger.WebhookHandler",
"url": "<ENDPOINT_URL>",
"method": "POST",
"data": {"message": "%(message)s"},
"status_code": 200,
"headers": {
"X-Webhook-Access-Key": "<SECRET>",
"X-goog-api-key": "<API_KEY>"
}
}
}
- Simpan file
config.json
tersebut. - Mulai ulang layanan OpenCanary untuk menerapkan perubahan. (misalnya,
sudo systemctl restart opencanary
).
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
dst_host |
target.asset.ip |
Kolom dst_host log mentah dipetakan ke UDM. Juga dipetakan ke target.ip . |
dst_host |
target.ip |
Kolom dst_host log mentah dipetakan ke UDM. Juga dipetakan ke target.asset.ip . |
dst_port |
target.port |
Kolom dst_port log mentah dikonversi menjadi string, lalu menjadi bilangan bulat dan dipetakan ke UDM. |
local_time |
metadata.event_timestamp |
Kolom local_time log mentah digunakan untuk mengisi metadata.event_timestamp di UDM. Parser menggunakan create_time dari objek batch jika kolom local_time tidak ada. |
local_time_adjusted |
security_result.detection_fields |
Kolom local_time_adjusted log mentah ditambahkan sebagai pasangan nilai kunci ke array security_result.detection_fields di UDM. |
logdata.COMMUNITY_STRING |
security_result.detection_fields |
Kolom logdata.COMMUNITY_STRING log mentah ditambahkan sebagai pasangan nilai kunci ke array security_result.detection_fields di UDM. |
logdata.DOMAIN |
principal.administrative_domain |
Kolom logdata.DOMAIN log mentah dipetakan ke UDM. |
logdata.FILENAME |
target.file.full_path |
Kolom logdata.FILENAME log mentah dipetakan ke UDM. |
logdata.HOSTNAME |
principal.asset.hostname |
Jika kolom logdata.HOSTNAME bukan alamat IP, kolom tersebut dipetakan ke UDM. Juga dipetakan ke principal.hostname . |
logdata.HOSTNAME |
principal.asset.ip |
Jika kolom logdata.HOSTNAME adalah alamat IP, kolom tersebut dipetakan ke UDM. Juga dipetakan ke principal.ip . |
logdata.HOSTNAME |
principal.hostname |
Jika kolom logdata.HOSTNAME bukan alamat IP, kolom tersebut dipetakan ke UDM. Juga dipetakan ke principal.asset.hostname . |
logdata.HOSTNAME |
principal.ip |
Jika kolom logdata.HOSTNAME adalah alamat IP, kolom tersebut dipetakan ke UDM. Juga dipetakan ke principal.asset.ip . |
logdata.LOCALNAME |
principal.asset.hostname |
Kolom logdata.LOCALNAME log mentah dipetakan ke UDM. Juga dipetakan ke principal.hostname . |
logdata.LOCALNAME |
principal.hostname |
Kolom logdata.LOCALNAME log mentah dipetakan ke UDM. Juga dipetakan ke principal.asset.hostname . |
logdata.LOCALVERSION |
principal.platform_version |
Kolom logdata.LOCALVERSION log mentah dipetakan ke UDM. |
logdata.PASSWORD |
extensions.auth.mechanism |
Keberadaan kolom logdata.PASSWORD memicu parser untuk menetapkan extensions.auth.mechanism ke USERNAME_PASSWORD di UDM. |
logdata.PATH |
network.http.referral_url |
Kolom logdata.PATH log mentah dipetakan ke UDM. |
logdata.REMOTENAME |
target.asset.hostname |
Kolom logdata.REMOTENAME log mentah dipetakan ke UDM. Juga dipetakan ke target.hostname . |
logdata.REMOTENAME |
target.hostname |
Kolom logdata.REMOTENAME log mentah dipetakan ke UDM. Juga dipetakan ke target.asset.hostname . |
logdata.REMOTEVERSION |
target.platform_version |
Kolom logdata.REMOTEVERSION log mentah dipetakan ke UDM. |
logdata.SMBVER |
network.application_protocol |
Keberadaan kolom logdata.SMBVER memicu parser untuk menetapkan network.application_protocol ke SMB di UDM. |
logdata.USERAGENT |
network.http.parsed_user_agent |
Kolom logdata.USERAGENT log mentah dikonversi menjadi agen pengguna yang diuraikan dan dipetakan ke UDM. |
logdata.USERAGENT |
network.http.user_agent |
Kolom logdata.USERAGENT log mentah dipetakan ke UDM. |
logdata.USERNAME |
target.user.userid |
Kolom logdata.USERNAME log mentah dipetakan ke UDM. |
loglevel |
security_result.severity |
Kolom loglevel log mentah menentukan security_result.severity di UDM. WARNING dipetakan ke HIGH , INFO /INFORMATION dipetakan ke LOW . |
logtype |
security_result.detection_fields |
Kolom logtype log mentah ditambahkan sebagai pasangan nilai kunci ke array security_result.detection_fields di UDM. |
node_id |
principal.asset.asset_id |
Kolom node_id log mentah diawali dengan "id:" dan dipetakan ke UDM. |
src_host |
principal.asset.ip |
Kolom src_host log mentah dipetakan ke UDM. Juga dipetakan ke principal.ip . |
src_host |
principal.ip |
Kolom src_host log mentah dipetakan ke UDM. Juga dipetakan ke principal.asset.ip . |
src_port |
principal.port |
Kolom src_port log mentah dikonversi menjadi bilangan bulat dan dipetakan ke UDM. |
utc_time |
security_result.detection_fields |
Kolom utc_time log mentah ditambahkan sebagai pasangan nilai kunci ke array security_result.detection_fields di UDM. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.