Bagikan melalui


Strategi Keamanan WPF - Rekayasa Keamanan

Trustworthy Computing adalah inisiatif Microsoft untuk memastikan produksi kode aman. Elemen kunci dari inisiatif Komputasi Tepercaya adalah Siklus Hidup Pengembangan Keamanan Microsoft (SDL). SDL adalah praktik teknik yang digunakan bersama dengan proses rekayasa standar untuk memfasilitasi pengiriman kode aman. SDL terdiri dari sepuluh fase yang menggabungkan praktik terbaik dengan formalisasi, ukurabilitas, dan struktur tambahan, termasuk:

  • Analisis desain keamanan

  • Pemeriksaan kualitas berbasis alat

  • Uji penetrasi

  • Tinjauan keamanan akhir

  • Manajemen keamanan produk pasca rilis

Spesifikasi WPF

Tim teknik WPF menerapkan dan memperluas SDL, kombinasi yang mencakup aspek-aspek utama berikut:

Pemodelan Ancaman

Analisis Keamanan dan Alat Pengeditan

Teknik Pengujian

Manajemen Kode Kritis

Pemodelan Ancaman

Pemodelan ancaman adalah komponen inti SDL, dan digunakan untuk membuat profil sistem untuk menentukan potensi kerentanan keamanan. Setelah kerentanan diidentifikasi, pemodelan ancaman juga memastikan bahwa mitigasi yang sesuai ada.

Pada tingkat tinggi, pemodelan ancaman melibatkan langkah-langkah utama berikut dengan menggunakan toko kelontong sebagai contoh:

  1. Mengidentifikasi Aset. Aset toko kelontong mungkin mencakup karyawan, brankas, mesin kasir, dan inventaris.

  2. Menghitung Titik Masuk. Titik masuk toko kelontong mungkin mencakup pintu depan dan belakang, jendela, dermaga pemuatan, dan unit AC.

  3. Menyelidiki Serangan terhadap Aset menggunakan Titik Masuk. Satu kemungkinan serangan dapat menargetkan aset brankas toko kelontong melalui titik masuk AC; unit AC dapat dibongkar untuk memungkinkan brankas ditarik ke atas melalui celah tersebut dan keluar dari toko.

Pemodelan ancaman diterapkan di seluruh WPF dan mencakup hal-hal berikut:

  • Bagaimana pengurai XAML membaca file, memetakan teks ke kelas model objek yang sesuai, dan membuat kode aktual.

  • Bagaimana pegangan jendela (hWnd) dibuat, mengirim pesan, dan digunakan untuk melakukan render isi jendela.

  • Cara pengikatan data mendapatkan sumber daya dan berinteraksi dengan sistem.

Model ancaman ini penting untuk mengidentifikasi persyaratan desain keamanan dan mitigasi ancaman selama proses pengembangan.

Analisis Sumber dan Alat Pengeditan

Selain elemen peninjauan kode keamanan manual SDL, tim WPF menggunakan beberapa alat untuk analisis sumber dan pengeditan terkait untuk mengurangi kerentanan keamanan. Berbagai alat sumber digunakan, dan mencakup yang berikut ini:

Peringatan

Keamanan Akses Kode (CAS) tidak didukung oleh .NET modern, ini adalah konsep .NET Framework-only. Semua fungsi terkait CAS diperlakukan dengan asumsi kepercayaan penuh. Untuk informasi selengkapnya, lihat Perbedaan dengan WPF .NET - Keamanan Akses Kode.

  • FXCop: Menemukan masalah keamanan umum dalam kode terkelola mulai dari aturan pewarisan hingga penggunaan keamanan akses kode hingga cara mengoperasikan dengan aman dengan kode yang tidak dikelola. Lihat FXCop.

  • Prefiks/Prefast: Menemukan kerentanan keamanan dan masalah keamanan umum dalam kode yang tidak dikelola seperti overrun buffer, masalah penataan string, dan pemeriksaan kesalahan.

  • API yang Dilarang: Mencari kode sumber untuk mengidentifikasi penggunaan fungsi yang tidak disengaja yang terkenal karena menyebabkan masalah keamanan, seperti strcpy. Setelah diidentifikasi, fungsi-fungsi ini diganti dengan alternatif yang lebih aman.

Teknik Pengujian

WPF menggunakan berbagai teknik pengujian keamanan yang meliputi:

  • Pengujian Kotak Putih: Penguji melihat kode sumber, lalu membuat pengujian eksploitasi.

  • Pengujian Blackbox: Penguji mencoba menemukan eksploitasi keamanan dengan memeriksa API dan fitur, lalu mencoba menyerang produk.

  • Pengujian Masalah Keamanan dari Produk Lain: Ketika relevan, masalah keamanan dari produk terkait akan diuji. Misalnya, varian yang sesuai dari sekitar enam puluh masalah keamanan untuk Internet Explorer telah diidentifikasi dan mencoba penerapannya ke WPF.

  • Tools-Based Pengujian Penetrasi melalui File Fuzzing: File fuzzing adalah eksploitasi dari rentang input pembaca berkas melalui berbagai masukan. Salah satu contoh di WPF tempat teknik ini digunakan adalah untuk memeriksa kegagalan pada proses decoding kode gambar.

Manajemen Kode Kritis

Untuk aplikasi browser XAML (XBAP), WPF membangun sandbox keamanan dengan menggunakan dukungan .NET Framework untuk menandai dan melacak kode penting keamanan yang meningkatkan hak istimewa (lihat metodologiSecurity-Critical dalam Strategi Keamanan WPF - Keamanan Platform). Mengingat persyaratan kualitas keamanan yang tinggi pada kode penting keamanan, kode tersebut menerima tingkat kontrol manajemen sumber tambahan dan audit keamanan. Sekitar 5% hingga 10% WPF terdiri dari kode kritis keamanan, yang ditinjau oleh tim peninjau khusus. Kode sumber dan proses check-in dikelola dengan melacak kode kritikal keamanan dan memetakan setiap entitas kritikal (yaitu metode yang berisi kode kritikal) ke status persetujuannya. Status sign off mencakup nama satu atau beberapa peninjau. Setiap build harian WPF membandingkan kode penting dengan yang ada di build sebelumnya untuk memeriksa perubahan yang tidak disetujui. Jika teknisi memodifikasi kode penting tanpa persetujuan dari tim peninjau, kode tersebut akan segera diidentifikasi dan diperbaiki. Proses ini memungkinkan penerapan dan pemeliharaan tingkat pengawasan yang sangat tinggi atas kode kotak pasir WPF.

Peringatan

XBAP memerlukan browser warisan untuk beroperasi, seperti Internet Explorer dan firefox versi lama. Browser lama ini biasanya tidak didukung pada Windows 10 dan Windows 11. Browser modern tidak lagi mendukung teknologi yang diperlukan untuk aplikasi XBAP karena risiko keamanan. Plugin yang mengaktifkan XBAP tidak lagi didukung. Untuk informasi selengkapnya, lihat Tanya jawab umum tentang aplikasi yang dihosting browser WPF (XBAP).

Lihat juga