Mengumpulkan log Microsoft IIS
Dokumen ini menjelaskan cara menyerap log Microsoft Internet Information Services (IIS) ke Google Security Operations menggunakan Bindplane.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Windows Server 2016 atau yang lebih baru dengan IIS terinstal
- Akses administratif ke server IIS
- Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal (misalnya,
C:\SecOps\ingestion-auth.json).
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Mengonfigurasi Logging Diperluas W3C IIS
Anda harus mengaktifkan kolom W3C yang benar di IIS Manager agar Google SecOps dapat mem-parsing log Anda dengan benar dan deteksi berfungsi dengan andal.
Buka IIS Manager
- Klik Mulai.
- Ketik
inetmgrdan tekan Enter. - Jendela Internet Information Services (IIS) Manager akan terbuka.
Metode alternatif:
- Tekan Tombol Windows + R.
- Ketik
inetmgrdan tekan Enter.
Buka Konfigurasi Logging
- Di panel Connections (sisi kiri), luaskan nama server Anda.
- Untuk mengonfigurasi logging di seluruh server (direkomendasikan):
- Klik nama server di tingkat root.
- Untuk mengonfigurasi logging khusus situs:
- Luaskan Situs, lalu klik situs tertentu (misalnya, Default Web Site).
- Di Features View (panel tengah), klik dua kali Logging.
Pilih W3C Extended Log Format
- Di halaman Logging, di bagian Log File:
- Di drop-down Format, pilih W3C.
- Klik tombol Pilih Kolom.
Mengonfigurasi Kolom Logging W3C
PENTING: Parser IIS Google SecOps mendukung 8 konfigurasi kolom. Anda harus mengaktifkan SEMUA kolom dari SALAH SATU pola berikut. Mengaktifkan kolom yang berbeda atau menggabungkan pola akan menyebabkan kegagalan penguraian.
Dalam dialog W3C Logging Fields, pilih kolom sesuai dengan SALAH SATU pola berikut:
Pola 1: Konteks Situs Lengkap dengan String Kueri dan Byte
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Nama Layanan (s-sitename)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Server Port (s-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Byte Terkirim (sc-bytes)
- Byte yang Diterima (cs-bytes)
Gunakan pola ini jika: Format downstream Anda menyertakan konteks situs + string kueri dan Anda memerlukan byte yang dikirim/diterima, dan pipeline Anda mengharapkan kolom "username" dan "referer" (meskipun nilainya adalah -).
Pola 2: Dasar dengan Substatus, Status Win32, dan Performa (Tanpa Perujuk)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Server Port (s-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Waktu yang Diperlukan (time-taken)
Gunakan pola ini jika: Pipeline Anda tidak menyertakan Perujuk, tetapi Anda memerlukan kode error dan latensi yang mendetail (time-taken).
Pola 3: Dasar dengan Substatus, Status Win32, dan Performa (Dengan Perujuk)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Server Port (s-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Waktu yang Diperlukan (time-taken)
Gunakan pola ini jika: Sama seperti Pola 2, tetapi pipeline Anda menyertakan Perujuk sebagai kolom khusus.
Pola 4: TLS/Protocol-Version Aware dengan Perujuk dan Performa
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Port Klien (c-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Versi Protokol (cs-version)
- Agen Pengguna (cs(User-Agent))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Waktu yang Diperlukan (time-taken)
Gunakan pola ini jika: Format hilir Anda secara eksplisit mencatat cs-version (misalnya, HTTP/1.1) dan mencakup pengaturan waktu, serta Anda juga memiliki port klien sebagai kolom khusus.
Pola 5: TLS/Protocol-Version Aware dengan Perujuk (Tanpa Performa)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Port Klien (c-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Versi Protokol (cs-version)
- Agen Pengguna (cs(User-Agent))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
Gunakan pola ini jika: Sama seperti Pola 4, tetapi pipeline Anda tidak menyertakan time-taken.
Pola 6: Dengan Cookie dan Perujuk (Tanpa Performa, Tanpa Byte)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Port Klien (c-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Cookie (cs(Cookie))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
Gunakan pola ini jika: Format hilir Anda mengharapkan Cookie dan Perujuk sebagai kolom khusus.
Pola 7: Minimal dengan Perujuk (Tanpa Cookie, Tanpa Performa, Tanpa Byte)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Port Klien (c-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Perujuk (cs(Referer))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
Gunakan pola ini jika: Format downstream Anda menyertakan Perujuk, tetapi tidak menyertakan Cookie/waktu/byte.
Pola 8: Minimal tanpa Perujuk (Tanpa Cookie, Tanpa Performa, Tanpa Byte)
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- Kueri URI (cs-uri-query)
- Port Klien (c-port)
- Nama Pengguna (cs-username)
- Alamat IP Klien (c-ip)
- Agen Pengguna (cs(User-Agent))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
Gunakan pola ini jika: Format hilir Anda tidak menyertakan Perujuk dan Anda hanya memerlukan konteks permintaan inti serta kode status.
JANGAN aktifkan kolom dari beberapa pola. Parser mengharapkan salah satu konfigurasi yang tepat ini.
Terapkan Konfigurasi
- Klik OK untuk menutup dialog W3C Logging Fields.
- Verifikasi jalur Directory tempat log akan ditulis.
- Default:
%SystemDrive%\inetpub\logs\LogFiles
- Default:
- Di bagian Penggantian File Log, pilih Harian (direkomendasikan untuk penyerapan Google SecOps).
- Klik Terapkan di panel Tindakan (sisi kanan).
Memverifikasi Logging IIS
Setelah mengonfigurasi kolom W3C, pastikan IIS menulis log dengan benar:
- Buat traffic pengujian ke situs IIS Anda dengan membuka halaman web di browser.
- Buka direktori log:
C:\inetpub\logs\LogFiles\W3SVC1\- Catatan:
W3SVC1sesuai dengan situs pertama (Default Web Site). Untuk situs lain, nama foldernya adalahW3SVC2,W3SVC3, dll.
- Catatan:
- Buka file log terbaru (misalnya,
u_ex251217.log) di Notepad. - Pastikan baris
#Fields:berisi semua kolom yang Anda aktifkan dalam urutan yang sama persis dari pola yang Anda pilih.
Contoh untuk Pola 3
Jika Anda mengonfigurasi Pola 3 (Dasar dengan Substatus, Status Win32, dan Performa dengan Perujuk), baris #Fields: akan menjadi:
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
Contoh entri log:
2025-12-17 14:23:15 192.168.1.10 GET /index.html - 80 - 203.0.113.45 Mozilla/5.0+(Windows+NT+10.0) https://example.com/previous.html 200 0 0 125
Catatan penting:
- Kolom kosong direpresentasikan dengan tanda hubung (
-) - Urutan kolom harus sama persis dengan header
#Fields: - Parser akan gagal jika kolom tidak ada, diurutkan ulang, atau berasal dari beberapa pola
Menginstal agen Bindplane
Instal agen Bindplane di server Windows Anda sesuai dengan petunjuk berikut.
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Referensi Penginstalan Tambahan
- Untuk opsi penginstalan tambahan, lihat panduan penginstalan ini.
Mengonfigurasi agen BindPlane untuk menyerap log IIS dan mengirimkannya ke Google SecOps
Mengedit File Konfigurasi
- Cari file
config.yaml.- Jalur default:
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
- Jalur default:
- Buka file menggunakan editor teks (misalnya, Notepad, VS Code, atau Notepad++) sebagai Administrator.
Ganti seluruh konten dengan konfigurasi berikut:
receivers: iis: collection_interval: 60s processors: resourcedetection: detectors: ["system"] system: hostname_sources: ["os"] normalizesums: batch: exporters: chronicle/iis: endpoint: malachiteingestion-pa.googleapis.com creds: 'C:\SecOps\ingestion-auth.json' log_type: 'IIS' override_log_type: false raw_log_field: body customer_id: '<CUSTOMER_ID>' compression: gzip service: pipelines: logs/iis: receivers: - iis processors: - resourcedetection - normalizesums - batch exporters: - chronicle/iis
Memperbarui Nilai Konfigurasi
Ganti placeholder berikut:
creds:- Jalur ke file autentikasi penyerapan Anda (misalnya,C:\SecOps\ingestion-auth.json).endpoint:- endpoint regional Anda.customer_id:- ID pelanggan Google SecOps Anda yang sebenarnya dari bagian Dapatkan ID pelanggan Google SecOps.
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop observiq-otel-collector && net start observiq-otel-collector
Tabel Pemetaan UDM
| Kolom log | Pemetaan UDM | Logika |
|---|---|---|
| @timestamp | metadata.event_timestamp | Stempel waktu peristiwa seperti yang dicatat dalam log mentah. |
| @version | metadata.product_version | Versi server IIS. |
| AgentDevice | additional.fields.AgentDevice.value.string_value | Perangkat yang menghasilkan log. |
| AgentLogFile | additional.fields.AgentLogFile.value.string_value | Nama file log. |
| ASP.NET_SessionId | network.session_id | ID sesi pengguna. |
| c-ip | principal.ip | Alamat IP klien. |
| Saluran | security_result.about.resource.attribute.labels.Channel.value | Saluran tempat peristiwa dicatat dalam log. |
| ChannelID | security_result.about.resource.attribute.labels.ChannelID.value | ID channel tempat peristiwa dicatat dalam log. |
| Komputer | target.hostname | Nama host mesin target. |
| cs-bytes | network.received_bytes | Jumlah byte yang diterima dari klien. |
| cs-host | principal.hostname, principal.asset.hostname | Nama host klien. |
| cs-method | network.http.method | Metode HTTP yang digunakan oleh klien. |
| cs-uri-query | target.url | String kueri URL yang diminta oleh klien. |
| cs-uri-stem | target.url | Jalur URL yang diminta oleh klien. |
| cs-username | principal.user.user_display_name | Nama pengguna klien. |
| cs-version | network.tls.version_protocol | Versi HTTP yang digunakan oleh klien. |
| cs(Cookie) | Digunakan untuk mengekstrak informasi cookie. | |
| cs(Referer) | network.http.referral_url | URL yang mengarahkan klien ke halaman saat ini. |
| cs(User-Agent) | network.http.user_agent | Agen pengguna klien. |
| csbyte | network.received_bytes | Jumlah byte yang diterima dari klien. |
| cshost | principal.hostname, principal.asset.hostname | Nama host klien. |
| csip | principal.ip, principal.asset.ip | Alamat IP klien. |
| csmethod | network.http.method | Metode HTTP yang digunakan oleh klien. |
| csreferer | network.http.referral_url | URL yang mengarahkan klien ke halaman saat ini. |
| csuseragent | network.http.user_agent | Agen pengguna klien. |
| csusername | principal.user.user_display_name | Nama pengguna klien. |
| csversion | network.tls.version_protocol | Versi HTTP yang digunakan oleh klien. |
| tanggal | Digunakan untuk membuat stempel waktu peristiwa jika stempel waktu log mentah tidak valid. | |
| deskripsi | security_result.description | Deskripsi acara. |
| devicename | target.hostname | Nama host mesin target. |
| dst_ip | target.ip, target.asset.ip | Alamat IP mesin target. |
| dst_port | target.port | Nomor port mesin target. |
| durasi | Durasi permintaan dalam milidetik. | |
| EventEnqueuedUtcTime | additional.fields.EventEnqueuedUtcTime.value.string_value | Waktu saat peristiwa dimasukkan dalam antrean di UTC. |
| EventID | metadata.product_log_id | ID acara. |
| EventProcessedUtcTime | additional.fields.EventProcessedUtcTime.value.string_value | Waktu saat peristiwa diproses dalam UTC. |
| EventTime | metadata.event_timestamp | Stempel waktu acara. |
| EventType | metadata.product_event_type | Jenis peristiwa. |
| file_path | target.file.full_path | Jalur lengkap file yang terlibat dalam acara. |
| FilterId | security_result.about.resource.attribute.labels.FilterId.value | ID filter. |
| FilterKey | security_result.about.resource.attribute.labels.FilterKey.value | Kunci filter. |
| FilterName | security_result.about.resource.attribute.labels.FilterName.value | Nama filter. |
| FilterType | security_result.about.resource.attribute.labels.FilterType.value | Jenis filter. |
| host | target.hostname | Nama host mesin target. |
| host.architecture | principal.asset.hardware.cpu_platform | Arsitektur mesin host. |
| host.geo.name | additional.fields.geo_name.value.string_value | Lokasi geografis mesin host. |
| host.hostname | target.hostname, target.asset.hostname | Nama host mesin host. |
| host.id | observer.asset_id | ID mesin host. |
| host.ip | principal.ip, principal.asset.ip | Alamat IP mesin host. |
| host.mac | principal.mac | Alamat MAC mesin host. |
| host.os.build | additional.fields.os_build.value.string_value | Nomor build sistem operasi di mesin host. |
| host.os.kernel | principal.platform_patch_level | Versi kernel sistem operasi di mesin host. |
| host.os.name | additional.fields.os_name.value.string_value | Nama sistem operasi di mesin host. |
| host.os.platform | principal.platform | Platform sistem operasi di komputer host. |
| host.os.version | principal.platform_version | Versi sistem operasi di mesin host. |
| http_method | network.http.method | Metode HTTP yang digunakan oleh klien. |
| http_response | network.http.response_code | Kode respons HTTP. |
| http_status_code | network.http.response_code | Kode status HTTP respons. |
| http_substatus | additional.fields.sc_substatus.value.string_value | Kode substatus HTTP respons. |
| instance | additional.fields.instance.value.string_value | ID instance tugas. |
| intermediary_devicename | intermediary.hostname, intermediary.asset.hostname | Nama host perangkat perantara. |
| json_message | Pesan log mentah dalam format JSON. | |
| kv_fields | Digunakan untuk mengekstrak key-value pair dari pesan log mentah. | |
| LayerKey | security_result.about.resource.attribute.labels.LayerKey.value | Kunci lapisan. |
| LayerName | security_result.about.resource.attribute.labels.LayerName.value | Nama lapisan. |
| LayerId | security_result.about.resource.attribute.labels.LayerId.value | ID lapisan. |
| log.file.path | target.file.full_path | Jalur lengkap file log. |
| log.offset | metadata.product_log_id | Offset peristiwa dalam file log. |
| logstash.collect.host | observer.hostname | Nama host mesin yang mengumpulkan log. |
| logstash.process.host | intermediary.hostname | Nama host perangkat yang memproses log. |
| logstash_json_message | Pesan log mentah dalam format JSON. | |
| pesan | security_result.description | Pesan log mentah. |
| pelayanan | additional.fields.ministry.value.string_value | Kementerian yang terkait dengan acara. |
| nama | Nama entity. | |
| NewValue | additional.fields.NewValue.value.string_value | Nilai baru setelan konfigurasi. |
| OldValue | additional.fields.OldValue.value.string_value | Nilai lama setelan konfigurasi. |
| port | principal.port | Nomor port klien. |
| priority_code | Kode prioritas pesan syslog. | |
| ProcessID | principal.process.pid | ID proses dari proses yang menghasilkan peristiwa. |
| ProviderGuid | security_result.about.resource.attribute.labels.ProviderGuid.value | GUID penyedia. |
| ProviderKey | security_result.about.resource.attribute.labels.ProviderKey.value | Kunci penyedia. |
| ProviderName | security_result.about.resource.attribute.labels.ProviderName.value | Nama penyedia. |
| referrer_url | network.http.referral_url | URL yang mengarahkan klien ke halaman saat ini. |
| request_url | target.url | URL yang diminta oleh klien. |
| s-computername | target.hostname | Nama host mesin target. |
| s-ip | target.ip, target.asset.ip | Alamat IP mesin target. |
| s-port | target.port | Nomor port mesin target. |
| s-sitename | additional.fields.sitename.value.string_value | Nama situs. |
| sc-bytes | network.sent_bytes | Jumlah byte yang dikirim ke klien. |
| sc-status | network.http.response_code | Kode status HTTP respons. |
| sc-substatus | additional.fields.sc_substatus.value.string_value | Kode substatus HTTP respons. |
| sc-win32-status | Kode status Windows respons. | |
| scbyte | network.sent_bytes | Jumlah byte yang dikirim ke klien. |
| scstatus | network.http.response_code | Kode status HTTP respons. |
| tingkat keseriusan, | security_result.severity | Tingkat keparahan peristiwa. |
| service.type | additional.fields.service_type.value.string_value | Jenis layanan. |
| sIP | principal.ip, principal.asset.ip | Alamat IP klien. |
| sPort | principal.port | Nomor port klien. |
| sSiteName | additional.fields.sitename.value.string_value | Nama situs. |
| src_ip | principal.ip, principal.asset.ip, observer.ip | Alamat IP klien. |
| src_port | principal.port | Nomor port klien. |
| sysdate | Tanggal dan waktu pesan syslog. | |
| syslog_facility | security_result.severity_details | Fasilitas pesan syslog. |
| syslog_pri | Prioritas pesan syslog. | |
| syslog_severity | security_result.severity_details | Tingkat keparahan pesan syslog. |
| syslog_severity_code | Kode tingkat keparahan pesan syslog. | |
| tags | security_result.rule_name | Tag yang terkait dengan acara. |
| task | additional.fields.task.value.string_value | Nama tugas. |
| waktu | Digunakan untuk membuat stempel waktu peristiwa jika stempel waktu log mentah tidak valid. | |
| waktu yang diperlukan | Durasi permintaan dalam milidetik. | |
| uri_query | target.url | String kueri URL yang diminta oleh klien. |
| user_agent | network.http.user_agent | Agen pengguna klien. |
| NamaPengguna | target.user.userid | Nama pengguna pengguna. |
| UserSid | target.user.windows_sid | SID Windows pengguna. |
| Bobot | security_result.about.resource.attribute.labels.Weight.value | Bobot filter. |
| win32_status | Kode status Windows respons. | |
| xforwardedfor | Header X-Forwarded-For, yang berisi daftar alamat IP yang dipisahkan koma. | |
| metadata.log_type | "IIS" | |
| network.direction | "INBOUND" | |
| metadata.vendor_name | "Microsoft" | |
| metadata.product_name | "Internet Information Server" | |
| metadata.event_type | "NETWORK_HTTP", "USER_UNCATEGORIZED", "GENERIC_EVENT", "STATUS_UPDATE", "USER_LOGOUT", "USER_LOGIN" | |
| extensions.auth.type | "MESIN" |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.