Mengumpulkan log Microsoft IIS
Panduan 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 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.
Mengonfigurasi logging yang diperluas W3C IIS
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, perluas 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 Tampilan Fitur, klik dua kali Logging.
Pilih format log yang diperluas W3C
- Di halaman Logging, di bagian Log File:
- Di dropdown Format, pilih W3C.
- Klik tombol Pilih Kolom.
Mengonfigurasi kolom logging W3C
Dalam dialog W3C Logging Fields, pilih kolom sesuai dengan salah satu pola berikut:
Pola 1: Konteks situs lengkap dengan string kueri (direkomendasikan untuk sebagian besar deployment)
Gunakan pola ini saat Anda memerlukan konteks permintaan lengkap termasuk perujuk dan string kueri untuk analisis keamanan dan Anda menghosting beberapa situs di satu server.
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)
Pola 2: Dasar dengan substatus dan performa
Gunakan pola ini saat Anda memerlukan kode error mendetail (substatus, status Win32) dan waktu permintaan untuk pemecahan masalah.
Aktifkan kolom ini dalam urutan yang tepat ini:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- 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)
Pola 3: Konteks situs dengan metrik lengkap (direkomendasikan untuk produksi)
Gunakan pola ini saat Anda memerlukan logging komprehensif dengan identifikasi situs, error mendetail, metrik bandwidth, dan data performa.
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))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Byte Terkirim (sc-bytes)
- Byte yang Diterima (cs-bytes)
- Waktu yang Diperlukan (time-taken)
Pola 4: Multi-situs dengan konteks lengkap
Pola ini secara fungsional identik dengan Pola 3.
Gunakan pola ini jika Anda memiliki beberapa situs dan memerlukan kemampuan pengamatan penuh.
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))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Byte Terkirim (sc-bytes)
- Byte yang Diterima (cs-bytes)
- Waktu yang Diperlukan (time-taken)
Pola 5: Konteks situs dengan metrik lengkap (alternatif)
Pola ini secara fungsional identik dengan Pola 3 dan 4.
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))
- Status Protokol (sc-status)
- Substatus Protokol (sc-substatus)
- Status Win32 (sc-win32-status)
- Byte Terkirim (sc-bytes)
- Byte yang Diterima (cs-bytes)
- Waktu yang Diperlukan (time-taken)
Pola 6: TLS-aware dengan substatus dan performa
Gunakan pola ini saat Anda perlu melacak versi protokol HTTP/HTTPS (HTTP/1.1, HTTP/2, HTTP/3) untuk analisis keamanan atau pemecahan masalah TLS.
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)
- 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)
Pola 7: Mendukung TLS tanpa metrik performa
Gunakan pola ini saat: Sama seperti Pola 6, tetapi Anda tidak memerlukan metrik waktu yang diperlukan.
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)
- 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)
Pola 8: Minimal dengan performa
Gunakan pola ini saat Anda memerlukan logging minimal dengan metrik performa, tetapi tidak peduli dengan string kueri, perujuk, atau versi protokol.
Aktifkan kolom ini dalam urutan berikut:
- Tanggal (date)
- Waktu (time)
- Alamat IP Server (s-ip)
- Metode (cs-method)
- Stem URI (cs-uri-stem)
- 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)
Panduan pemilihan pola
Untuk sebagian besar deployment, gunakan Pola 1 atau Pola 3.
- Pola 1: Terbaik untuk deployment yang berfokus pada keamanan dengan beberapa situs (mencakup perujuk, string kueri, nama situs).
- Pola 3: Terbaik untuk lingkungan produksi yang memerlukan metrik komprehensif (mencakup substatus, error Win32, bandwidth, waktu, nama situs).
- Pola 6/7: Gunakan jika Anda perlu melacak versi protokol HTTP (adopsi HTTP/2, pemecahan masalah TLS).
- Pola 2/8: Gunakan untuk logging minimal dengan detail error.
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 Log File Rollover, pilih Daily (direkomendasikan untuk penyerapan Google SecOps).
- Klik Terapkan di panel Tindakan.
Memverifikasi logging IIS
- Buat traffic pengujian ke situs IIS Anda dengan membuka halaman web di browser.
- Buka direktori log:
C:\inetpub\logs\LogFiles\W3SVC1\ - Buka file log terbaru (misalnya,
u_ex251020.log) di Notepad. Pastikan baris
#Fields:berisi semua kolom yang Anda aktifkan.Contoh baris
#Fields::#Fields: date time s-sitename s-computername 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 sc-bytes cs-bytes time-takenContoh entri log:
2025-10-20 14:23:15 Default_Web_Site SERVER01 192.168.1.10 GET /index.html - 80 - 203.0.113.45 Mozilla/5.0+(Windows+NT+10.0) - 200 0 0 1234 567 125
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
Menghentikan layanan Bindplane
Sebelum mengedit file konfigurasi, hentikan layanan:
Stop-Service "observIQ OpenTelemetry Collector"
Edit 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- Ganti placeholder berikut:
creds:- Jalur ke file autentikasi penyerapan Anda (misalnya,C:\SecOps\ingestion-auth.json).customer_id:- ID pelanggan Google SecOps Anda yang sebenarnya dari bagian Dapatkan ID pelanggan Google SecOps.
- Ganti placeholder berikut:
Mulai ulang agen Bindplane untuk menerapkan perubahan
Setelah menyimpan file
config.yaml, mulai ulang layanan Bindplane:Start-Service "observIQ OpenTelemetry Collector"Pastikan layanan sedang berjalan:
Get-Service "observIQ OpenTelemetry Collector"Output yang diharapkan:
Status Name DisplayName ------ ---- ----------- Running observiq-otel-collector observIQ OpenTelemetry 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 komputer 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 perangkat 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 dari 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 dari 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.