Bagikan melalui


Mengaudit Peristiwa Keamanan

Aplikasi yang dibuat dengan Windows Communication Foundation (WCF) dapat mencatat peristiwa keamanan (baik keberhasilan, kegagalan, atau keduanya) dengan fitur audit. Peristiwa ditulis ke log peristiwa sistem Windows dan dapat diperiksa menggunakan Pemantau Peristiwa.

Pengauditan menyediakan cara bagi administrator untuk mendeteksi serangan yang telah terjadi atau sedang berlangsung. Selain itu, pengauditan dapat membantu pengembang untuk mendebug masalah terkait keamanan. Misalnya, jika kesalahan dalam konfigurasi otorisasi atau kebijakan pemeriksaan secara tidak sengaja menolak akses ke pengguna yang berwenang, pengembang dapat dengan cepat menemukan dan mengisolasi penyebab kesalahan ini dengan memeriksa log peristiwa.

Untuk informasi selengkapnya tentang keamanan WCF, lihat Ringkasan Keamanan. Untuk informasi selengkapnya tentang pemrograman dasar, lihat Pemrograman WCF Dasar.

Tingkat Audit dan Perilaku

Ada dua tingkat audit keamanan:

  • Tingkat otorisasi layanan, yang pemanggilnya diberi otorisasi.

  • Tingkat pesan, ketika WCF memeriksa validitas pesan dan mengautentikasi penelepon.

Anda dapat memeriksa kedua tingkat audit untuk keberhasilan atau kegagalan, yang dikenal sebagai perilaku audit.

Lokasi Log Audit

Setelah menentukan tingkat dan perilaku audit, Anda (atau administrator) dapat menentukan lokasi untuk log audit. Tiga pilihan tersebut meliputi: Default, Aplikasi, dan Keamanan. Saat Anda menentukan Default, log sebenarnya akan bergantung pada sistem mana yang Anda gunakan dan apakah sistem mendukung penulisan ke log keamanan. Untuk informasi selengkapnya, lihat bagian "Sistem Operasi" nanti dalam topik ini.

Untuk menulis ke Keamanan, log memerlukan SeAuditPrivilege. Secara default, hanya akun Sistem Lokal dan Layanan Jaringan yang memiliki hak istimewa ini. Untuk mengelola fungsi log Keamanan, read dan delete memerlukan SeSecurityPrivilege. Secara default, hanya administrator yang memiliki hak istimewa ini.

Sebaliknya, pengguna yang diautentikasi dapat membaca dan menulis ke log Aplikasi. Windows XP menulis peristiwa audit ke log Aplikasi secara default. Log tersebut juga dapat berisi informasi pribadi yang terlihat oleh semua pengguna yang diautentikasi.

Menyembunyikan Kegagalan Audit

Opsi lain selama audit adalah pilihan menyembunyikan kegagalan audit. Secara default, kegagalan audit tidak memengaruhi aplikasi. Namun, jika diperlukan, Anda dapat mengatur opsi ke false, yang menyebabkan pengecualian dilemparkan.

Memprogram Audit

Anda dapat menentukan perilaku audit baik secara terprogram atau melalui konfigurasi.

Kelas Audit

Tabel berikut menjelaskan kelas dan properti yang digunakan untuk memprogram perilaku audit.

Kelas Deskripsi
ServiceSecurityAuditBehavior Mengaktifkan opsi pengaturan untuk audit sebagai perilaku layanan.
AuditLogLocation Enumerasi untuk menentukan log yang akan ditulis. Nilai yang mungkin adalah Default, Aplikasi, dan Keamanan. Saat Anda memilih Default, sistem operasi menentukan lokasi log yang sebenarnya. Lihat bagian "Pilihan Log Peristiwa Aplikasi atau Keamanan" nanti dalam topik ini.
MessageAuthenticationAuditLevel Menentukan jenis peristiwa autentikasi pesan yang diaudit di tingkat pesan. Pilihan Anda adalah None, Failure, Success, dan SuccessOrFailure.
ServiceAuthorizationAuditLevel Menentukan jenis peristiwa otorisasi layanan yang diaudit di tingkat layanan. Pilihan Anda adalah None, Failure, Success, dan SuccessOrFailure.
SuppressAuditFailure Menentukan apa yang terjadi pada permintaan klien saat pengauditan gagal. Misalnya, saat layanan mencoba menulis ke log keamanan, tetapi tidak memiliki SeAuditPrivilege. Nilai default true menunjukkan bahwa kegagalan diabaikan, dan permintaan klien diproses secara normal.

Untuk contoh menyiapkan aplikasi untuk mencatat peristiwa audit, lihat Cara: Mengaudit Peristiwa Keamanan.

Konfigurasi

Anda juga dapat menggunakan konfigurasi untuk menentukan perilaku audit dengan menambahkan <serviceSecurityAudit> di bagian <perilaku>. Anda harus menambahkan elemen di bagian <perilaku> seperti yang ditunjukkan dalam kode berikut.

<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <behavior>  
        <!-- auditLogLocation="Application" or "Security" -->  
        <serviceSecurityAudit  
                  auditLogLocation="Application"  
                  suppressAuditFailure="true"  
                  serviceAuthorizationAuditLevel="Failure"  
                  messageAuthenticationAuditLevel="SuccessOrFailure" />
      </behavior>  
    </behaviors>  
  </system.serviceModel>  
</configuration>  

Jika audit diaktifkan dan auditLogLocation tidak ditentukan, nama log default adalah log "Keamanan" untuk platform yang mendukung penulisan ke log Keamanan; jika tidak, namanya adalah log "Aplikasi". Hanya Windows Server 2003 dan sistem operasi Windows Vista yang mendukung penulisan ke log Keamanan. Untuk informasi selengkapnya, lihat bagian "Sistem Operasi" nanti dalam topik ini.

Pertimbangan Keamanan

Jika pengguna yang berbahaya mengetahui bahwa audit diaktifkan, penyerang itu dapat mengirim pesan tidak valid yang menyebabkan entri audit ditulis. Jika log audit diisi dengan cara ini, sistem audit akan gagal. Untuk mengatasi hal ini, atur properti SuppressAuditFailure ke true dan gunakan properti Pemantau Peristiwa untuk mengontrol perilaku audit.

Peristiwa audit yang ditulis ke Log Aplikasi Windows XP dapat dilihat oleh pengguna yang diautentikasi.

Memilih Antara Log Peristiwa Aplikasi dan Keamanan

Tabel berikut memberikan informasi untuk membantu Anda memilih apakah akan masuk ke log peristiwa Aplikasi atau Keamanan.

Sistem Operasi

Sistem Log aplikasi Log keamanan
Windows XP SP2 atau versi yang lebih baru Didukung Tidak didukung
Windows Server 2003 SP1 dan Windows Vista Didukung Konteks utas harus memiliki SeAuditPrivilege

Faktor-Faktor Lain

Selain sistem operasi, tabel berikut menjelaskan pengaturan lain yang mengontrol pengaktifan pengelogan.

Kecil Log aplikasi Log keamanan
Pengelolaan kebijakan audit Tidak berlaku. Seiring dengan konfigurasi, log Keamanan juga dikendalikan oleh kebijakan otoritas keamanan lokal (LSA). Kategori "Akses objek audit" juga harus diaktifkan.
Pengalaman pengguna default Semua pengguna yang diautentikasi dapat menulis ke log Aplikasi, maka tidak diperlukan langkah izin tambahan untuk proses aplikasi. Proses aplikasi (konteks) harus memiliki SeAuditPrivilege.

Lihat juga