Mengumpulkan log Microsoft IIS

Didukung di:

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

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Mengonfigurasi logging yang diperluas W3C IIS

Buka IIS Manager

  1. Klik Mulai.
  2. Ketik inetmgr dan tekan Enter.
  3. Jendela Internet Information Services (IIS) Manager akan terbuka.

Metode alternatif:

  1. Tekan Tombol Windows + R.
  2. Ketik inetmgr dan tekan Enter.
  1. Di panel Connections, perluas nama server Anda.
  2. Untuk mengonfigurasi logging di seluruh server (direkomendasikan):
    • Klik nama server di tingkat root.
  3. Untuk mengonfigurasi logging khusus situs:
    • Luaskan Situs, lalu klik situs tertentu (misalnya, Default Web Site).
  4. Di Tampilan Fitur, klik dua kali Logging.

Pilih format log yang diperluas W3C

  1. Di halaman Logging, di bagian Log File:
    • Di dropdown Format, pilih W3C.
  2. Klik tombol Pilih Kolom.

Mengonfigurasi kolom logging W3C

Dalam dialog W3C Logging Fields, pilih kolom sesuai dengan salah satu pola berikut:

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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Nama Layanan (s-sitename)
  4. Alamat IP Server (s-ip)
  5. Metode (cs-method)
  6. Stem URI (cs-uri-stem)
  7. Kueri URI (cs-uri-query)
  8. Server Port (s-port)
  9. Nama Pengguna (cs-username)
  10. Alamat IP Klien (c-ip)
  11. Agen Pengguna (cs(User-Agent))
  12. Perujuk (cs(Referer))
  13. Status Protokol (sc-status)
  14. Byte Terkirim (sc-bytes)
  15. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Alamat IP Server (s-ip)
  4. Metode (cs-method)
  5. Stem URI (cs-uri-stem)
  6. Server Port (s-port)
  7. Nama Pengguna (cs-username)
  8. Alamat IP Klien (c-ip)
  9. Agen Pengguna (cs(User-Agent))
  10. Perujuk (cs(Referer))
  11. Status Protokol (sc-status)
  12. Substatus Protokol (sc-substatus)
  13. Status Win32 (sc-win32-status)
  14. Waktu yang Diperlukan (time-taken)

Gunakan pola ini saat Anda memerlukan logging komprehensif dengan identifikasi situs, error mendetail, metrik bandwidth, dan data performa.

Aktifkan kolom ini dalam urutan berikut:

  1. Tanggal (date)
  2. Waktu (time)
  3. Nama Layanan (s-sitename)
  4. Alamat IP Server (s-ip)
  5. Metode (cs-method)
  6. Stem URI (cs-uri-stem)
  7. Kueri URI (cs-uri-query)
  8. Server Port (s-port)
  9. Nama Pengguna (cs-username)
  10. Alamat IP Klien (c-ip)
  11. Agen Pengguna (cs(User-Agent))
  12. Status Protokol (sc-status)
  13. Substatus Protokol (sc-substatus)
  14. Status Win32 (sc-win32-status)
  15. Byte Terkirim (sc-bytes)
  16. Byte yang Diterima (cs-bytes)
  17. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Nama Layanan (s-sitename)
  4. Alamat IP Server (s-ip)
  5. Metode (cs-method)
  6. Stem URI (cs-uri-stem)
  7. Kueri URI (cs-uri-query)
  8. Server Port (s-port)
  9. Nama Pengguna (cs-username)
  10. Alamat IP Klien (c-ip)
  11. Agen Pengguna (cs(User-Agent))
  12. Status Protokol (sc-status)
  13. Substatus Protokol (sc-substatus)
  14. Status Win32 (sc-win32-status)
  15. Byte Terkirim (sc-bytes)
  16. Byte yang Diterima (cs-bytes)
  17. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Nama Layanan (s-sitename)
  4. Alamat IP Server (s-ip)
  5. Metode (cs-method)
  6. Stem URI (cs-uri-stem)
  7. Kueri URI (cs-uri-query)
  8. Server Port (s-port)
  9. Nama Pengguna (cs-username)
  10. Alamat IP Klien (c-ip)
  11. Agen Pengguna (cs(User-Agent))
  12. Status Protokol (sc-status)
  13. Substatus Protokol (sc-substatus)
  14. Status Win32 (sc-win32-status)
  15. Byte Terkirim (sc-bytes)
  16. Byte yang Diterima (cs-bytes)
  17. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Alamat IP Server (s-ip)
  4. Metode (cs-method)
  5. Stem URI (cs-uri-stem)
  6. Kueri URI (cs-uri-query)
  7. Server Port (s-port)
  8. Nama Pengguna (cs-username)
  9. Alamat IP Klien (c-ip)
  10. Versi Protokol (cs-version)
  11. Agen Pengguna (cs(User-Agent))
  12. Perujuk (cs(Referer))
  13. Status Protokol (sc-status)
  14. Substatus Protokol (sc-substatus)
  15. Status Win32 (sc-win32-status)
  16. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Alamat IP Server (s-ip)
  4. Metode (cs-method)
  5. Stem URI (cs-uri-stem)
  6. Kueri URI (cs-uri-query)
  7. Server Port (s-port)
  8. Nama Pengguna (cs-username)
  9. Alamat IP Klien (c-ip)
  10. Versi Protokol (cs-version)
  11. Agen Pengguna (cs(User-Agent))
  12. Perujuk (cs(Referer))
  13. Status Protokol (sc-status)
  14. Substatus Protokol (sc-substatus)
  15. 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:

  1. Tanggal (date)
  2. Waktu (time)
  3. Alamat IP Server (s-ip)
  4. Metode (cs-method)
  5. Stem URI (cs-uri-stem)
  6. Server Port (s-port)
  7. Nama Pengguna (cs-username)
  8. Alamat IP Klien (c-ip)
  9. Agen Pengguna (cs(User-Agent))
  10. Status Protokol (sc-status)
  11. Substatus Protokol (sc-substatus)
  12. Status Win32 (sc-win32-status)
  13. 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

  1. Klik OK untuk menutup dialog W3C Logging Fields.
  2. Verifikasi jalur Directory tempat log akan ditulis.
    • Default: %SystemDrive%\inetpub\logs\LogFiles
  3. Di bagian Log File Rollover, pilih Daily (direkomendasikan untuk penyerapan Google SecOps).
  4. Klik Terapkan di panel Tindakan.

Memverifikasi logging IIS

  1. Buat traffic pengujian ke situs IIS Anda dengan membuka halaman web di browser.
  2. Buka direktori log: C:\inetpub\logs\LogFiles\W3SVC1\
  3. Buka file log terbaru (misalnya, u_ex251020.log) di Notepad.
  4. 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-taken
      
    • Contoh 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

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Referensi penginstalan tambahan

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

  1. Cari file config.yaml.
    • Jalur default: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. Buka file menggunakan editor teks (misalnya, Notepad, VS Code, atau Notepad++) sebagai Administrator.
  3. 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.

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.