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. Salah satu kemungkinan serangan dapat menargetkan aset aman toko kelontong melalui titik masuk AC; unit AC dapat dilepas untuk memungkinkan aman untuk ditarik melaluinya 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 handel jendela (hWnd) dibuat, mengirim pesan, dan digunakan untuk merender konten 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:

  • 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 overruns buffer, masalah string format, 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.

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

  • Pengujian Penetrasi Berbasis Alat melalui File Fuzzing: Fuzzing file adalah eksploitasi rentang input pembaca file melalui berbagai input. Salah satu contoh dalam WPF di mana teknik ini digunakan adalah memeriksa kegagalan dalam kode decoding gambar.

Manajemen Kode Kritis

Untuk aplikasi browser XAML (XBAP), WPF membangun kotak pasir keamanan dengan menggunakan dukungan .NET Framework untuk menandai dan melacak kode penting keamanan yang meningkatkan hak istimewa (lihat Metodologi Penting Keamanan 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 penting keamanan dan memetakan setiap entitas penting (yaitu metode yang berisi kode penting) ke status keluarnya. 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 aplikasi dan pemeliharaan tingkat pengamatan yang sangat tinggi melalui kode kotak pasir WPF.

Peringatan

XBAP memerlukan browser warisan untuk beroperasi, seperti Internet Explorer dan Firefox. Versi 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.

Lihat juga