Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam artikel ini, kami menyajikan aktivitas dan kontrol keamanan untuk dipertimbangkan saat Anda mengembangkan aplikasi untuk cloud. Pertanyaan dan konsep keamanan yang perlu dipertimbangkan selama fase implementasi dan verifikasi Siklus Hidup Pengembangan Keamanan Microsoft (SDL) tercakup. Tujuannya adalah untuk membantu Anda menentukan aktivitas dan layanan Azure yang dapat Anda gunakan untuk mengembangkan aplikasi yang lebih aman.
Tahap SDL berikut tercakup dalam artikel ini:
- Implementation
- Verification
Implementation
Fokus fase implementasi adalah menetapkan praktik terbaik untuk pencegahan dini dan mendeteksi dan menghapus masalah keamanan dari kode. Asumsikan bahwa aplikasi Anda digunakan dengan cara yang tidak ingin Anda gunakan. Ini membantu Anda melindungi aplikasi Anda dari penyalahgunaan yang tidak disengaja maupun disengaja.
Melakukan tinjauan kode
Sebelum Anda memeriksa kode, lakukan tinjauan kode untuk meningkatkan kualitas kode secara keseluruhan dan mengurangi risiko pembuatan bug. You can use Visual Studio to manage the code review process.
Melakukan analisis kode statis
Analisis kode statis (juga dikenal sebagai analisis kode sumber) dilakukan sebagai bagian dari tinjauan kode. Analisis kode statis umumnya mengacu pada menjalankan alat analisis kode statis untuk menemukan potensi kerentanan dalam kode nonrunning. Static code analysis uses techniques like taint checking and data flow analysis.
Azure Marketplace offers developer tools that perform static code analysis and assist with code reviews.
Memvalidasi dan membersihkan setiap input untuk aplikasi Anda
Perlakukan semua input sebagai tidak tepercaya untuk melindungi aplikasi Anda dari kerentanan aplikasi web yang paling umum. Data yang tidak tepercaya adalah sarana untuk serangan injeksi. Input untuk aplikasi Anda mencakup parameter di dalam URL, input dari pengguna, data dari database atau dari API, dan apa pun yang diteruskan yang dapat dimanipulasi oleh pengguna. An application should validate that data is syntactically and semantically valid before the application uses the data in any way (including displaying it back to the user).
Validasi input awal dalam aliran data untuk memastikan bahwa hanya data yang terbentuk dengan benar yang memasuki alur kerja. Anda tidak ingin data cacat bertahan di database Anda atau memicu kerusakan dalam komponen hilir.
Daftar blokir dan daftar izin adalah dua pendekatan umum untuk melakukan validasi sintaks input:
Pemblokiran mencoba memeriksa bahwa input pengguna tertentu tidak berisi konten yang sudah diketahui berbahaya.
Allowlisting berusaha memverifikasi apakah input pengguna tertentu cocok dengan sekumpulan input yang sudah dikenal baik. Daftar izin berbasis karakter adalah bentuk daftar izin di mana aplikasi memeriksa bahwa input pengguna hanya berisi karakter "baik yang diketahui" atau input yang cocok dengan format yang diketahui.
Misalnya, ini mungkin melibatkan pemeriksaan bahwa nama pengguna hanya berisi karakter alfanumerik atau berisi tepat dua angka.
Allowlisting adalah pendekatan yang lebih disukai untuk membangun perangkat lunak yang aman. Daftar blokir rentan terhadap kesalahan karena tidak mungkin untuk memikirkan daftar lengkap input yang berpotensi buruk.
Lakukan pekerjaan ini di server, bukan di sisi klien (atau di server dan di sisi klien).
Memverifikasi output aplikasi Anda
Output apa pun yang Anda sajikan baik secara visual maupun dalam dokumen harus selalu dikodekan dan diloloskan. Escaping, also known as output encoding, is used to help ensure that untrusted data isn't a vehicle for an injection attack. Melarikan diri, dikombinasikan dengan validasi data, memberikan pertahanan berlapis untuk meningkatkan keamanan sistem secara keseluruhan.
Escaping makes sure that everything is displayed as output. Escaping also lets the interpreter know that the data isn't intended to be executed, and this prevents attacks from working. This is another common attack technique called cross-site scripting (XSS).
Jika Anda menggunakan kerangka kerja web dari pihak ketiga, Anda dapat memverifikasi opsi Anda untuk pengkodean keluaran di situs web dengan menggunakan panduan pencegahan OWASP XSS.
Menggunakan kueri berparameter saat Anda menghubungi database
Jangan pernah membuat kueri database secara langsung dalam kode Anda dan mengirimkannya langsung ke database. Kode berbahaya yang dimasukkan ke dalam aplikasi Anda berpotensi menyebabkan database Anda dicuri, dihapus, atau dimodifikasi. Aplikasi Anda juga dapat digunakan untuk menjalankan perintah sistem operasi berbahaya pada sistem operasi yang menghosting database Anda.
Sebagai gantinya, gunakan kueri berparameter atau prosedur tersimpan. Saat Anda menggunakan kueri berparameter, Anda dapat memanggil prosedur dari kode Anda dengan aman dan meneruskannya string tanpa khawatir bahwa itu akan diperlakukan sebagai bagian dari pernyataan kueri.
Menghapus header server standar
Header seperti Server, X-Powered-By, dan X-AspNet-Version mengungkapkan informasi tentang server dan teknologi yang mendasar. Sebaiknya Anda menyembunyikan header ini untuk menghindari pelacakan aplikasi. Lihat menghapus header server standar di situs web Azure.
Memisahkan data produksi Anda
Data produksi Anda, atau data "nyata", tidak boleh digunakan untuk pengembangan, pengujian, atau tujuan lain selain apa yang dimaksudkan bisnis. A masked (anonymized) dataset should be used for all development and testing.
Ini berarti lebih sedikit orang yang memiliki akses ke data nyata Anda, yang mengurangi permukaan serangan Anda. Ini juga berarti lebih sedikit karyawan melihat data pribadi, yang menghilangkan potensi pelanggaran dalam kerahasiaan.
Menerapkan kebijakan kata sandi yang kuat
Untuk bertahan dari tebakan berbasis brute-force dan kamus, Anda harus menerapkan kebijakan kata sandi yang kuat untuk memastikan bahwa pengguna membuat kata sandi yang kompleks (misalnya, panjang minimum 12 karakter dan membutuhkan karakter alfanumerik dan khusus).
MICROSOFT Entra External ID di penyewa eksternal membantu Anda dengan manajemen kata sandi, dengan menyediakan pengaturan ulang kata sandi mandiri dan banyak lagi.
Untuk melindungi dari serangan pada akun default, verifikasi bahwa semua kunci dan kata sandi dapat diganti dan dibuat atau diganti setelah Anda menginstal sumber daya.
Jika aplikasi harus membuat kata sandi secara otomatis, pastikan bahwa kata sandi yang dihasilkan acak dan memiliki entropi tinggi.
Memvalidasi unggahan file
If your application allows file uploads, consider precautions that you can take for this risky activity. Langkah pertama dalam banyak serangan adalah mendapatkan beberapa kode berbahaya ke dalam sistem yang sedang diserang. Menggunakan unggahan file membantu penyerang menyelesaikan ini. OWASP menawarkan solusi untuk memvalidasi file untuk memastikan bahwa file yang Anda unggah aman.
Perlindungan antimalware membantu mengidentifikasi dan menghapus virus, spyware, dan perangkat lunak berbahaya lainnya. You can install Microsoft Antimalware or a Microsoft partner's endpoint protection solution (Trend Micro, Broadcom, McAfee, Microsoft Defender Antivirus in Windows, and Endpoint Protection).
Microsoft Antimalware includes features like real-time protection, scheduled scanning, malware remediation, signature updates, engine updates, samples reporting, and exclusion event collection. Anda dapat mengintegrasikan Microsoft Antimalware dan solusi mitra dengan Pertahanan Microsoft untuk Cloud untuk kemudahan dalam penyebaran dan deteksi bawaan (pemberitahuan dan insiden).
Jangan cache konten sensitif
Jangan cache konten sensitif di browser. Peramban dapat menyimpan informasi dalam cache dan riwayat. File yang di-cache disimpan dalam folder seperti folder File Internet Sementara, dalam kasus Internet Explorer. Ketika halaman-halaman ini dirujuk lagi, browser menampilkan halaman dari cache-nya. If sensitive information (address, credit card details, Social security number, username) is displayed to the user, the information might be stored in the browser's cache and be retrievable by examining the browser's cache or by pressing the browser's Back button.
Verification
Fase verifikasi melibatkan upaya komprehensif untuk memastikan bahwa kode memenuhi tenet keamanan dan privasi yang ditetapkan pada fase sebelumnya.
Menemukan dan memperbaiki kerentanan dalam dependensi aplikasi Anda
Anda memindai aplikasi dan pustaka dependennya untuk mengidentifikasi komponen rentan yang diketahui. Produk yang tersedia untuk melakukan pemindaian ini termasuk OWASP Dependency Check, Snyk, dan Black Duck.
Menguji aplikasi Anda dalam status operasi
Pengujian keamanan aplikasi dinamis (DAST) adalah proses pengujian aplikasi dalam status operasi untuk menemukan kerentanan keamanan. Alat DAST menganalisis program saat dijalankan untuk menemukan kerentanan keamanan seperti kerusakan memori, konfigurasi server yang tidak aman, pembuatan skrip lintas situs, masalah hak istimewa pengguna, injeksi SQL, dan masalah keamanan penting lainnya.
DAST berbeda dengan pengujian keamanan aplikasi statis (SAST). Alat SAST menganalisis kode sumber atau versi kode yang dikompilasi saat kode tidak dijalankan untuk menemukan kelemahan keamanan.
Perform DAST, preferably with the assistance of a security professional (a penetration tester or vulnerability assessor). Jika profesional keamanan tidak tersedia, Anda dapat melakukan DAST sendiri dengan pemindai proksi web dan beberapa pelatihan. Colokkan pemindai DAST lebih awal untuk memastikan bahwa Anda tidak memperkenalkan masalah keamanan yang jelas ke dalam kode Anda. See the OWASP site for a list of web application vulnerability scanners.
Melakukan pengujian fuzz
In fuzz testing, you induce program failure by deliberately introducing malformed or random data to an application. Mendorong kegagalan program membantu mengungkapkan potensi masalah keamanan sebelum aplikasi dirilis.
Deteksi Risiko Keamanan adalah layanan pengujian fuzz unik Microsoft untuk menemukan bug penting keamanan dalam perangkat lunak.
Melakukan tinjauan permukaan serangan
Meninjau permukaan serangan setelah penyelesaian kode membantu memastikan bahwa setiap perubahan desain atau implementasi pada aplikasi atau sistem telah dipertimbangkan. Ini membantu memastikan bahwa vektor serangan baru yang dibuat sebagai akibat dari perubahan, termasuk model ancaman, telah ditinjau dan dimitigasi.
Anda dapat membangun gambar permukaan serangan dengan memindai aplikasi. Microsoft menawarkan alat analisis permukaan serangan yang disebut Attack Surface Analyzer. Anda dapat memilih dari banyak alat atau layanan pengujian dan pemindaian kerentanan dinamis komersial, termasuk Detektor Permukaan Serangan OWASP, Arachni, dan w3af. Alat pemindaian ini menelusuri aplikasi Anda dan memetakan serta mengidentifikasi bagian-bagian aplikasi yang dapat diakses melalui web. You can also search the Azure Marketplace for similar developer tools.
Melakukan pengujian penetrasi keamanan
Memastikan bahwa aplikasi Anda aman sama pentingnya dengan menguji fungsionalitas lainnya. Make penetration testing a standard part of the build and deployment process. Jadwalkan pengujian keamanan reguler dan pemindaian kerentanan pada aplikasi yang disebarkan, dan pantau port, titik akhir, dan serangan terbuka.
Menjalankan pengujian verifikasi keamanan
Azure Tenant Security Solution (AzTS) dari Secure DevOps Kit for Azure (AzSK) berisi SVT untuk beberapa layanan platform Azure. Anda menjalankan SVT ini secara berkala untuk memastikan bahwa langganan Azure Anda dan berbagai sumber daya yang terdiri dari aplikasi Anda dalam keadaan aman. Anda juga dapat mengotomatiskan pengujian ini dengan menggunakan fitur ekstensi integrasi berkelanjutan/penyebaran berkelanjutan (CI/CD) AzSK, yang membuat SVT tersedia sebagai ekstensi Visual Studio.
Next steps
Dalam artikel berikut, kami merekomendasikan kontrol dan aktivitas keamanan yang dapat membantu Anda merancang dan menyebarkan aplikasi yang aman.