Bingkai Keamanan: Data Sensitif | Mitigasi

Produk/Layanan Artikel
Batas Kepercayaan Mesin
Aplikasi Web
Database
API Web
Azure Document DB
Batas Kepercayaan Azure IaaS VM
Batas Kepercayaan Service Fabric
Dynamics CRM
Azure Storage
Aplikasi Seluler
WCF

Memastikan bahwa biner dikaburkan jika berisi informasi sensitif

Judul Detail-detail
Komponen Batas Kepercayaan Komputer
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi T/A
Langkah-langkah Pastikan biner dikaburkan jika berisi informasi sensitif seperti rahasia dagang, logika bisnis sensitif yang tidak boleh dibalik. Ini untuk menghentikan rekayasa balik rakitan. Alat seperti CryptoObfuscator dapat digunakan untuk tujuan ini.

Mempertimbangkan untuk menggunakan Sistem File Terenkripsi (EFS) digunakan untuk melindungi data rahasia khusus pengguna

Judul Detail
Komponen Batas Kepercayaan Komputer
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Tidak Ada
Referensi T/A
Langkah-langkah Pertimbangkan untuk menggunakan Sistem File Terenkripsi (EFS) digunakan untuk melindungi data rahasia khusus pengguna dari musuh dengan akses fisik ke komputer.

Memastikan bahwa data sensitif yang disimpan oleh aplikasi pada sistem file dienkripsi

Judul Detail
Komponen Batas Kepercayaan Komputer
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi Tidak Tersedia
Langkah-langkah Pastikan bahwa data sensitif yang disimpan oleh aplikasi pada sistem file dienkripsi (misalnya, menggunakan DPAPI), jika EFS tidak dapat diberlakukan

Memastikan bahwa konten sensitif tidak di-cache di browser

Judul Detail-detail
Komponen Aplikasi Web
Fase SDL Bangun
Teknologi yang Berlaku Generik, Formulir Web, MVC5, MVC6
Atribut Tidak Berlaku
Referensi Tidak Berlaku
Langkah-langkah Browser dapat menyimpan informasi untuk tujuan caching dan riwayat. File yang di-cache ini disimpan dalam folder, seperti folder Temporary Internet Files dalam kasus Internet Explorer. Saat halaman ini dirujuk lagi, browser menampilkannya dari cache. Jika informasi sensitif ditampilkan kepada pengguna (seperti alamat mereka, detail kartu kredit, Nomor Jaminan Sosial, atau nama pengguna), informasi ini dapat disimpan di cache browser, dan oleh karena itu dapat diambil melalui pemeriksaan cache browser atau hanya dengan menekan tombol "Kembali" browser. Atur nilai header respons kontrol cache ke "no-store" untuk semua halaman.

Contoh

<configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="no-store" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="-1" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

Contoh

Ini dapat diterapkan melalui filter. Contoh berikut dapat digunakan:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Response.IsRequestBeingRedirected))
            {
                //// Since this is MVC pipeline, this should never be null.
                return;
            }

            var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(System.Web.Mvc.OutputCacheAttribute), false);
            if (attributes == null || **Attributes**.Count() == 0)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
                filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
                if (!filterContext.IsChildAction)
                {
                    filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");
                }
            }

            base.OnActionExecuting(filterContext);
        }

Mengenkripsi bagian file konfigurasi Aplikasi Web yang berisi data sensitif

Judul Detail-detail
Komponen Aplikasi Web
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Tidak Tersedia
Referensi Panduan: Mengenkripsi Bagian Konfigurasi di ASP.NET 2.0 Menggunakan DPAPI, Menentukan Penyedia Konfigurasi Dilindungi, Menggunakan Azure Key Vault untuk melindungi rahasia aplikasi
Langkah-langkah File konfigurasi seperti Web.config, appsettings.json sering digunakan untuk menyimpan informasi sensitif, termasuk nama pengguna, kata sandi, string koneksi database, dan kunci enkripsi. Jika Anda tidak melindungi informasi ini, aplikasi Anda rentan terhadap penyerang atau pengguna berbahaya yang mendapatkan informasi sensitif seperti nama pengguna dan kata sandi akun, nama database, dan nama server. Berdasarkan jenis penyebaran (azure/lokal), enkripsi bagian sensitif file konfigurasi menggunakan DPAPI atau layanan seperti Azure Key Vault.

Secara eksplisit menonaktifkan atribut HTML lengkapiotomatis dalam formulir dan input sensitif

Judul Detail-detail
Komponen Aplikasi Web
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi MSDN: atribut lengkapiotomatis, Menggunakan LengkapiOtomatis dalam HTML, Kerentanan Sanitasi HTML, lengkapiOtomatis.,lagi?!
Langkah-langkah Atribut lengkapiotomatis menentukan apakah formulir harus dalam kondisi aktif atau tidak. Saat fitur lengkapi otomatis diaktifkan, browser akan secara otomatis melengkapi nilai berdasarkan nilai yang telah dimasukkan oleh pengguna sebelumnya. Misalnya, ketika nama dan kata sandi baru dimasukkan dalam formulir dan formulir dikirimkan, browser bertanya apakah kata sandi harus disimpan. Setelah formulir ditampilkan, nama dan kata sandi diisi secara otomatis atau diselesaikan saat nama dimasukkan. Penyerang dengan akses lokal bisa mendapatkan kata sandi teks yang jelas dari cache browser. Secara bawaan, lengkapi otomatis diaktifkan, dan harus dinonaktifkan secara eksplisit.

Contoh

<form action="Login.aspx" method="post " autocomplete="off" >
      Social Security Number: <input type="text" name="ssn" />
      <input type="submit" value="Submit" />    
</form>

Memastikan bahwa data sensitif yang ditampilkan pada layar pengguna tertutupi

Judul Detail-detail
Komponen Aplikasi Web
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi Tidak Berlaku
Langkah-langkah Data sensitif seperti kata sandi, nomor kartu kredit, SSN dll. harus ditutupi saat ditampilkan di layar. Hal ini untuk mencegah personel yang tidak berwenang mengakses data (misalnya, kata sandi selancar bahu, personel dukungan yang melihat jumlah pengguna SSN). Pastikan bahwa elemen data ini tidak terlihat dalam teks biasa dan ditutupi dengan tepat. Perlu diperhatikan saat menerima mereka sebagai masukan (misalnya, input type="password") serta saat menampilkannya kembali di layar (misalnya, hanya menampilkan 4 digit terakhir dari nomor kartu kredit).

Menerapkan penutupan data dinamis untuk membatasi paparan data sensitif pengguna non-istimewa

Judul Detail
Komponen Database
Fase SDL Membangun
Teknologi yang Berlaku Sql Azure, OnPrem
Atribut Versi SQL - V12, Versi SQL - MsSQL2016
Referensi Masking Data Dinamis
Langkah-langkah Tujuan masking data dinamis adalah untuk membatasi paparan data sensitif, mencegah pengguna yang seharusnya tidak memiliki akses ke data untuk melihatnya. Masking data dinamis tidak bertujuan untuk mencegah pengguna database terhubung langsung ke database dan menjalankan kueri lengkap yang mengekspos potongan data sensitif. Masking data dinamis melengkapi fitur keamanan SQL Server lainnya (audit, enkripsi, keamanan tingkat baris...) dan sangat disarankan untuk menggunakan fitur ini bersama dengan mereka selain untuk melindungi data sensitif dalam database dengan lebih baik. Harap dicatat bahwa fitur ini hanya didukung oleh SQL Server mulai dari 2016 dan Azure SQL Database.

Pastikan kata sandi disimpan dalam format hash yang disertai salt

Judul Detail-detail
Komponen Database
Fase SDL Bangun
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Hashing Kata Sandi menggunakan API Kripto .NET
Langkah-langkah Kata sandi tidak boleh disimpan dalam database penyimpanan pengguna kustom. Hash kata sandi harus disimpan dengan nilai salt sebagai gantinya. Pastikan salt untuk pengguna selalu unik dan Anda menerapkan bcrypt, scrypt, atau PBKDF2 sebelum menyimpan kata sandi, dengan jumlah iterasi faktor kerja minimum 150.000 perulangan untuk mencegah kemungkinan serangan brute force.

Memastikan bahwa data sensitif dalam kolom database dienkripsi

Judul Detail-detail
Komponen Database
Fase SDL Bangun
Teknologi yang Berlaku Generik
Atribut Versi SQL - Semua
Referensi Mengenkripsi data sensitif di server SQL, Panduan: Mengenkripsi Kolom Data di SQL Server, Enkripsi berdasarkan Sertifikat
Langkah-langkah Data sensitif seperti nomor kartu kredit harus dienkripsi dalam database. Data dapat dienkripsi menggunakan enkripsi tingkat kolom atau oleh fungsi aplikasi menggunakan fungsi enkripsi.

Memastikan enkripsi tingkat database (TDE) diaktifkan

Judul Detail
Komponen Database
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi Memahami Transparent Data Encryption (TDE) pada SQL Server
Langkah-langkah Fitur Enkripsi Data Transparan (TDE) di server SQL membantu dalam mengenkripsi data sensitif dalam database dan melindungi kunci yang digunakan untuk mengenkripsi data dengan sertifikat. Ini mencegah siapa pun tanpa kunci menggunakan data. TDE melindungi data "yang diam", yang berarti meliputi data dan file log. Ini memberikan kemampuan untuk mematuhi banyak undang-undang, peraturan, dan pedoman yang ditetapkan di berbagai industri.

Memastikan cadangan database dienkripsi

Judul Detail
Komponen Database
Fase SDL Bangun
Teknologi yang Berlaku SQL Azure, OnPrem
Atribut Versi SQL - V12, Versi SQL - MsSQL2014
Referensi Enkripsi pencadangan database SQL
Langkah-langkah SQL Server memiliki kemampuan untuk mengenkripsi data saat membuat cadangan. Dengan menentukan algoritme enkripsi dan pengenkripsi (Sertifikat atau Kunci Asimetris) saat membuat cadangan, seseorang dapat membuat file cadangan terenkripsi.

Memastikan bahwa data sensitif yang relevan dengan Web API tidak disimpan di penyimpanan browser

Judul Detail-detail
Komponen API Web
Fase SDL Membangun
Teknologi yang Berlaku MVC 5, MVC 6
Atribut Penyedia Identitas - ADFS, Penyedia Identitas - ID Microsoft Entra
Referensi Tidak Berlaku
Langkah-langkah

Dalam penerapan tertentu, artefak sensitif yang relevan dengan autentikasi Web API disimpan di penyimpanan lokal browser. Misalnya, artefak autentikasi Microsoft Entra seperti adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key dll.

Semua artefak ini tetap tersedia meskipun Anda sudah logout atau setelah browser ditutup. Jika musuh mendapatkan akses ke artefak ini, musuh dapat menggunakannya kembali untuk mengakses sumber daya yang dilindungi (API). Pastikan bahwa semua artefak sensitif yang terkait dengan API Web tidak disimpan di penyimpanan browser. Dalam kasus di mana penyimpanan sisi klien tidak dapat dihilangkan (misalnya, Aplikasi Halaman Tunggal (SPA) yang memanfaatkan alur OpenIdConnect/OAuth Implisit perlu menyimpan token akses secara lokal), gunakan pilihan penyimpanan dengan tidak memiliki persistensi. misalnya, lebih suka SessionStorage daripada LocalStorage.

Contoh

Cuplikan JavaScript di bawah berasal dari pustaka autentikasi kustom yang menyimpan artefak autentikasi di penyimpanan lokal. Implementasi tersebut harus dihindari.

ns.AuthHelper.Authenticate = function () {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: ns.Configurations.Tenant,
clientId: ns.Configurations.AADApplicationClientID,
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage', // enable this for Internet Explorer, as sessionStorage does not work for localhost.
};

Mengenkripsi data sensitif yang disimpan di Azure Cosmos DB

Judul Detil-detil
Komponen Azure Document DB
Fase SDL Bangun
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi T/A
Langkah-langkah Mengenkripsi data sensitif pada tingkat aplikasi sebelum menyimpan dalam dokumen DB atau menyimpan data sensitif apa pun di solusi penyimpanan lain seperti Azure Storage atau Azure SQL

Menggunakan Azure Disk Encryption untuk mengenkripsi disk yang digunakan oleh Virtual Machines

Judul Detail-detail
Komponen Batas Kepercayaan Azure IaaS VM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi Menggunakan Azure Disk Encryption untuk mengenkripsi disk yang digunakan oleh komputer virtual
Langkah-langkah

Enkripsi Disk Azure adalah fitur baru yang sedang dalam tahap pratinjau. Fitur ini memungkinkan Anda mengenkripsi disk OS dan disk Data yang digunakan oleh Komputer Virtual IaaS. Untuk Windows, driver dienkripsi menggunakan teknologi enkripsi BitLocker standar industri. Untuk Linux, disk dienkripsi menggunakan teknologi DM-Crypt. Ini terintegrasi dengan Azure Key Vault untuk memungkinkan Anda mengontrol dan mengelola kunci enkripsi disk. Solusi Azure Disk Encryption mendukung tiga skenario enkripsi pelanggan berikut:

  • Aktifkan enkripsi pada IaaS VM baru yang dibuat dari file VHD terenkripsi pelanggan dan kunci enkripsi yang disediakan pelanggan, yang disimpan di Azure Key Vault.
  • Aktifkan enkripsi pada VM IaaS baru yang dibuat dari Marketplace Azure.
  • Aktifkan enkripsi pada VM IaaS yang sudah ada yang sudah berjalan di Azure.

Mengenkripsi rahasia dalam aplikasi Service Fabric

Judul Detail
Komponen Batas Kepercayaan Service Fabric
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut Lingkungan - Azure
Referensi Mengelola rahasia di aplikasi Service Fabric
Langkah-langkah Rahasia dapat berupa informasi sensitif apa pun, seperti string koneksi penyimpanan, kata sandi, atau nilai lain yang tidak boleh ditangani dalam teks biasa. Gunakan Azure Key Vault untuk mengelola kunci dan rahasia dalam aplikasi service fabric.

Melakukan pemodelan keamanan dan menggunakan Unit Bisnis/Tim jika diperlukan

Judul Detail
Komponen Dynamics CRM
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut T/A
Referensi tidak berlaku
Langkah-langkah Melakukan pemodelan keamanan dan menggunakan Unit Bisnis/Tim jika diperlukan

Meminimalkan akses ke fitur berbagi pada entitas penting

Judul Detail
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi Tidak Tersedia
Langkah-langkah Meminimalkan akses ke fitur berbagi pada entitas penting

Melatih pengguna tentang risiko yang terkait dengan fitur Dynamics CRM Share dan praktik keamanan yang baik

Judul Detail-detail
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut Tidak Berlaku
Referensi T/A
Langkah-langkah Melatih pengguna tentang risiko yang terkait dengan fitur Dynamics CRM Share dan praktik keamanan yang baik

Menyertakan aturan standar pengembangan yang melarang untuk menampilkan detail konfigurasi dalam manajemen pengecualian

Judul Detil-detil
Komponen Dynamics CRM
Fase SDL Penyebaran
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Tidak Berlaku
Langkah-langkah Sertakan aturan standar pengembangan yang melarang untuk menampilkan detail konfigurasi dalam manajemen pengecualian di luar pengembangan. Uji ini sebagai bagian dari tinjauan kode atau pemeriksaan berkala.

Menggunakan Enkripsi Layanan Penyimpanan Azure (SSE) untuk Data Tersimpan (Pratinjau)

Judul Detail-detail
Komponen Azure Storage
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut TipePenyimpanan - Gumpalan
Referensi Enkripsi Layanan Penyimpanan Azure untuk Data Tidak Aktif (Pratinjau)
Langkah-langkah

Enkripsi Layanan Penyimpanan (SSE) Azure untuk Data Tidak Aktif akan membantu Anda melindungi data untuk memenuhi komitmen keamanan dan kepatuhan organisasi Anda. Dengan fitur ini, Azure Storage secara otomatis mengenkripsi data Anda sebelum menyimpannya ke dalam penyimpanan dan mendekripsinya sebelum diambil. Enkripsi, dekripsi, dan manajemen kunci benar-benar transparan bagi pengguna. SSE hanya berlaku untuk memblokir blob, membagi blob, dan menambah blob. Jenis data lainnya, termasuk tabel, antrean, dan file, tidak akan dienkripsi.

Alur Kerja Enkripsi dan Dekripsi:

  • Pelanggan memungkinkan enkripsi pada akun penyimpanan
  • Saat pelanggan menulis data baru (PUT Blob, PUT Block, PUT Page, dll.) ke penyimpanan Blob; setiap tulisan dienkripsi menggunakan enkripsi AES 256-bit, salah satu cipher blok terkuat yang tersedia
  • Saat pelanggan perlu mengakses data (GET Blob, dll.), data otomatis didekripsi sebelum kembali ke pengguna
  • Jika enkripsi dinonaktifkan, penulisan baru tidak lagi dienkripsi dan data terenkripsi yang ada tetap dienkripsi hingga ditulis ulang oleh pengguna. Sementara enkripsi diaktifkan, menulis ke penyimpanan Blob akan dienkripsi. Status data tidak berubah dengan pengguna beralih antara mengaktifkan/menonaktifkan enkripsi untuk akun penyimpanan
  • Semua kunci enkripsi disimpan, dienkripsi, dan dikelola oleh Microsoft

Harap dicatat bahwa saat ini, kunci yang digunakan untuk enkripsi dikelola oleh Microsoft. Microsoft menghasilkan kunci awalnya, dan mengelola penyimpanan kunci yang aman serta rotasi reguler seperti yang didefinisikan oleh kebijakan Internal Microsoft. Di masa mendatang, pelanggan akan mendapatkan kemampuan mengelola kunci enkripsi mereka sendiri, dan menyediakan jalur migrasi dari kunci yang dikelola Microsoft ke kunci yang dikelola pelanggan.

Menggunakan Enkripsi Sisi Klien untuk menyimpan data sensitif di Azure Storage

Judul Detail
Komponen Azure Storage
Fase SDL Bangun
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Enkripsi Sisi Klien dan Azure Key Vault untuk Microsoft Azure Storage, Tutorial: Mengenkripsi dan mendekripsi blob di Microsoft Azure Storage menggunakan Azure Key Vault, Menyimpan Data dengan Aman di Azure Blob Storage dengan Azure Encryption Extensions
Langkah-langkah

Paket Pustaka Klien Azure Storage untuk .NET NuGet mendukung enkripsi data dalam aplikasi klien sebelum mengunggah ke Azure Storage, dan mendekripsi data saat mengunduh ke klien. Pustaka ini juga mendukung integrasi dengan Azure Key Vault untuk manajemen kunci akun penyimpanan. Berikut adalah deskripsi singkat tentang cara kerja enkripsi sisi klien:

  • SDK klien Azure Storage menghasilkan kunci enkripsi konten (CEK), yang merupakan kunci simetris sekali pakai
  • Data pelanggan dienkripsi menggunakan CEK ini
  • CEK kemudian dibungkus (dienkripsi) menggunakan kunci enkripsi kunci (KEK). KEK diidentifikasi oleh pengidentifikasi kunci dan dapat menjadi pasangan kunci asimetris atau kunci simetris serta dikelola secara lokal atau disimpan di Azure Key Vault. Klien Storage sendiri tidak pernah memiliki akses ke KEK. Ini hanya memanggil algoritme pembungkus kunci yang disediakan oleh Key Vault. Pelanggan dapat memilih untuk menggunakan penyedia kustom untuk pembungkusan/pembongkaran kunci jika ingin
  • Kemudian data yang dienkripsi diunggah ke layanan Azure Storage. Periksa tautan di bagian referensi untuk detail penerapan tingkat rendah.

Mengenkripsi data sensitif atau PII yang ditulis ke penyimpanan lokal ponsel

Judul Detil
Komponen Aplikasi Seluler
Fase SDL Bangun
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Mengelola pengaturan dan fitur di perangkat Anda dengan kebijakan Microsoft Intune
Langkah-langkah

Jika aplikasi menulis informasi sensitif seperti PII pengguna (email, nomor telepon, nama depan, nama belakang, preferensi, dll.) - pada sistem file ponsel, aplikasi harus dienkripsi sebelum menulis ke sistem file lokal. Jika aplikasi adalah aplikasi perusahaan, jelajahi kemungkinan penerbitan aplikasi menggunakan Windows Intune.

Contoh

Intune dapat dikonfigurasi dengan kebijakan keamanan berikut untuk melindungi data sensitif:

Require encryption on mobile device    
Require encryption on storage cards
Allow screen capture

Contoh

Jika aplikasi bukan aplikasi perusahaan, gunakan keystore yang disediakan platform, rantai kunci untuk menyimpan kunci enkripsi, menggunakan operasi kriptografi mana yang dapat dilakukan pada sistem file. Cuplikan kode berikut menunjukkan cara mengakses kunci dari rantai kunci menggunakan .NET untuk iOS:

        protected static string EncryptionKey
        {
            get
            {
                if (String.IsNullOrEmpty(_Key))
                {
                    var query = new SecRecord(SecKind.GenericPassword);
                    query.Service = NSBundle.MainBundle.BundleIdentifier;
                    query.Account = "UniqueID";

                    NSData uniqueId = SecKeyChain.QueryAsData(query);
                    if (uniqueId == null)
                    {
                        query.ValueData = NSData.FromString(System.Guid.NewGuid().ToString());
                        var err = SecKeyChain.Add(query);
                        _Key = query.ValueData.ToString();
                    }
                    else
                    {
                        _Key = uniqueId.ToString();
                    }
                }

                return _Key;
            }
        }

Mengaburkan biner yang dibuat sebelum mendistribusikan ke pengguna akhir

Judul Detail-detail
Komponen Klien Seluler
Fase SDL Membangun
Teknologi yang Berlaku Generik
Atribut T/A
Referensi Kripto Obfuscation Untuk .NET
Langkah-langkah Biner yang dihasilkan (rakitan dalam apk) harus dikaburkan untuk menghentikan rekayasa terbalik rakitan. Alat seperti CryptoObfuscator dapat digunakan untuk tujuan ini.

Mengatur clientCredentialType ke Sertifikat atau Windows

Judul Detail
Komponen WCF
Fase SDL Bangun
Teknologi yang Berlaku .NET Framework 3
Atribut Tidak Berlaku
Referensi Fortify
Langkah-langkah Menggunakan UsernameToken dengan kata sandi teks biasa melalui saluran yang tidak terenkripsi mengekspos kata sandi kepada penyerang yang dapat mengendus pesan SOAP. Penyedia Layanan yang menggunakan UsernameToken mungkin menerima kata sandi yang dikirim dalam teks biasa. Mengirim kata sandi teks biasa melalui saluran yang tidak terenkripsi dapat mengekspos info masuk kepada penyerang yang dapat mengendus pesan SOAP.

Contoh

Konfigurasi penyedia layanan WCF berikut menggunakan UsernameToken:

<security mode="Message">
<message clientCredentialType="UserName" />

Atur clientCredentialType ke Sertifikat atau Windows.

Mode Keamanan WCF tidak diaktifkan

Judul Detail
Komponen WCF
Fase SDL Bangun
Teknologi yang Berlaku Umum, .NET Framework 3
Atribut Mode Keamanan - Transportasi, Mode Keamanan - Pesan
Referensi MSDN, Fortify Kingdom, Dasar-dasar Majalah Kode Keamanan WCF
Langkah-langkah Tak ada keamanan transportasi atau pesan yang ditentukan. Aplikasi yang mengirimkan pesan tanpa keamanan transportasi atau pesan tidak dapat menjamin integritas atau kerahasiaan pesan. Saat pengikatan keamanan WCF diatur ke Tidak Ada, keamanan transportasi dan pesan dinonaktifkan.

Contoh

Konfigurasi berikut mengatur mode keamanan menjadi Tidak Ada.

<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name=""MyBinding"">
        <security mode=""None""/>
      </binding>
  </bindings>
</system.serviceModel>

Contoh

Mode Keamanan Di semua pengikatan layanan ada lima kemungkinan mode keamanan:

  • Tidak ada. Menonaktifkan keamanan.
  • Transportasi. Menggunakan keamanan transportasi untuk autentikasi timbal balik dan perlindungan pesan.
  • Pesan. Menggunakan keamanan pesan untuk autentikasi timbal balik dan perlindungan pesan.
  • Keduanya. Memungkinkan Anda menyediakan pengaturan untuk keamanan pada tingkat transportasi dan pesan (hanya MSMQ yang mendukung pengaturan ini).
  • TransportWithMessageCredential. Kredensial diteruskan bersama pesan, dan perlindungan pesan serta otentikasi server disediakan oleh lapisan transportasi.
  • TransportCredentialOnly. Kredensial klien diteruskan dengan lapisan transport dan tidak ada perlindungan pesan yang diterapkan. Gunakan keamanan transportasi dan pesan untuk melindungi integritas dan kerahasiaan pesan. Konfigurasi di bawah memberi tahu layanan untuk menggunakan keamanan transport dengan kredensial pesan.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding"">
      <security mode=""TransportWithMessageCredential""/>
      <message clientCredentialType=""Windows""/>
      </binding>
    </bindings>
    </system.serviceModel>