Mengonfigurasi pengaturan firewall pada sumber daya PaaS
Mengembangkan aplikasi aman di Azure adalah panduan umum untuk pertanyaan dan kontrol keamanan yang harus Anda pertimbangkan di setiap fase siklus hidup pengembangan perangkat lunak saat mengembangkan aplikasi untuk cloud.
Kelebihan keamanan cloud
Penting untuk memahami pembagian tanggung jawab antara Anda dan Microsoft. Di tempat, Anda memiliki seluruh tumpukan tetapi saat Anda pindah ke awan beberapa tanggung jawab transfer ke Microsoft.
Ada keuntungan keamanan untuk berada di cloud. Di lingkungan lokal, organisasi kemungkinan memiliki tanggung jawab yang tidak terpenuhi dan sumber daya terbatas yang tersedia untuk menanamkan keamanan, yang menciptakan lingkungan tempat penyerang dapat memanfaatkan kerentanan di semua lapisan.
Organisasi dapat meningkatkan waktu deteksi dan respons ancaman mereka dengan menggunakan kemampuan keamanan berbasis cloud penyedia dan kecerdasan cloud. Dengan mengalihkan tanggung jawab ke penyedia cloud, organisasi bisa mendapatkan lebih banyak cakupan keamanan, yang memungkinkan mereka untuk mengalokasikan ulang sumber daya keamanan dan anggaran ke prioritas bisnis lainnya.
Keuntungan keamanan dari model layanan cloud PaaS
Mari kita lihat keuntungan keamanan dari penyebaran Azure PaaS versus lokal.
Mulai dari bagian bawah tumpukan, infrastruktur fisik, Microsoft mengurangi risiko dan tanggung jawab umum. Karena cloud Microsoft terus dipantau oleh Microsoft, cloud Microsoft sulit untuk diserang. Tidak masuk akal bagi penyerang untuk membuat cloud Microsoft sebagai target. Kecuali penyerang memiliki banyak uang dan sumber daya, penyerang kemungkinan akan pindah ke target lain.
Di tengah tumpukan, tidak ada perbedaan antara penyebaran PaaS dan lokal. Pada lapisan aplikasi dan lapisan manajemen akun dan akses, Anda memiliki risiko yang sama. Di bagian langkah berikutnya dari artikel ini, kami akan memandu Anda ke praktik terbaik untuk menghilangkan atau meminimalkan risiko ini.
Di bagian atas tumpukan, tata kelola data, dan manajemen hak, Anda mengambil satu risiko yang dapat dimitigasi oleh manajemen kunci. (Manajemen kunci tercakup dalam praktik terbaik.) Meskipun manajemen kunci adalah tanggung jawab tambahan, Anda memiliki area dalam penyebaran PaaS yang tidak lagi harus Anda kelola sehingga Anda dapat mengalihkan sumber daya ke manajemen kunci.
Platform Azure juga memberi Anda perlindungan DDoS yang kuat dengan menggunakan berbagai teknologi berbasis jaringan. Namun, semua jenis metode perlindungan DDoS berbasis jaringan memiliki batasannya berdasarkan per tautan dan per pusat data. Untuk membantu menghindari dampak serangan DDoS yang besar, Anda dapat memanfaatkan kemampuan cloud inti Azure yang memungkinkan Anda untuk secara cepat dan otomatis meluaskan skala untuk bertahan dari serangan DDoS. Kami akan menjelaskan lebih detail tentang bagaimana Anda dapat melakukan ini dalam artikel praktik yang direkomendasikan.
Memodernisasi pola pikir Defender untuk Cloud
Dengan penyebaran PaaS datang pergeseran pendekatan keseluruhan Anda untuk keamanan. Anda beralih dari kebutuhan untuk mengontrol semuanya sendiri ke berbagi tanggung jawab dengan Microsoft.
Perbedaan signifikan lainnya antara PaaS dan penyebaran lokal tradisional adalah pandangan baru tentang apa yang mendefinisikan perimeter keamanan utama. Secara historis, perimeter keamanan lokal utama adalah jaringan Anda dan sebagian besar desain keamanan lokal menggunakan jaringan sebagai pivot keamanan utamanya. Untuk penyebaran PaaS, Anda lebih baik dilayani dengan mempertimbangkan identitas sebagai perimeter keamanan utama.
Mengadopsi kebijakan identitas sebagai perimeter keamanan utama
Salah satu dari lima karakteristik penting komputasi awan adalah akses jaringan yang luas, yang membuat pemikiran yang berpusat pada jaringan kurang relevan. Tujuan dari banyak komputasi cloud adalah untuk memungkinkan pengguna mengakses sumber daya terlepas dari lokasi. Bagi sebagian besar pengguna, lokasi mereka akan berada di suatu tempat di Internet.
Gambar berikut menunjukkan bagaimana perimeter keamanan telah berevolusi dari perimeter jaringan ke perimeter identitas. Keamanan menjadi kurang tentang mempertahankan jaringan Anda dan lebih banyak tentang mempertahankan data Anda, serta mengelola keamanan aplikasi dan pengguna Anda. Perbedaan utamanya adalah Anda ingin mendorong keamanan lebih dekat dengan apa yang penting untuk perusahaan Anda.
Awalnya, layanan Azure PaaS (misalnya, peran web dan Azure SQL) menyediakan sedikit atau tidak ada pertahanan perimeter jaringan tradisional. Dipahami bahwa tujuan elemen adalah untuk diekspos ke Internet (peran web) dan autentikasi tersebut menyediakan perimeter baru (misalnya, BLOB atau Azure SQL).
Praktik keamanan modern berasumsi bahwa musuh telah melanggar perimeter jaringan. Oleh karena itu, praktik pertahanan modern telah beralih ke identitas. Organisasi harus menetapkan perimeter keamanan berbasis identitas dengan autentikasi dan kebersihan otorisasi yang kuat (praktik terbaik).
Prinsip dan pola untuk perimeter jaringan telah tersedia selama beberapa dekade. Sebaliknya, industri memiliki pengalaman yang relatif lebih sedikit dengan menggunakan identitas sebagai perimeter keamanan utama. Dengan itu, kami telah mengumpulkan cukup pengalaman untuk memberikan beberapa rekomendasi umum yang terbukti di lapangan dan berlaku untuk hampir semua layanan PaaS.
Berikut ini adalah praktik terbaik untuk mengelola perimeter identitas.
Praktik terbaik: Amankan kunci dan kredensial Anda untuk mengamankan penyebaran PaaS Anda. Detail: Kehilangan kunci dan kredensial adalah masalah umum. Anda dapat menggunakan solusi terpusat di mana kunci dan rahasia dapat disimpan dalam modul keamanan perangkat keras (HSM). Azure Key Vault melindungi kunci dan rahasia Anda dengan mengenkripsi kunci autentikasi, kunci akun penyimpanan, kunci enkripsi data, file .pfx, dan kata sandi menggunakan kunci yang dilindungi oleh HSM.
Praktik terbaik: Jangan letakkan kredensial dan rahasia lain dalam kode sumber atau GitHub. Detail: Satu-satunya hal yang lebih buruk daripada kehilangan kunci dan kredensial Anda adalah memiliki pihak yang tidak berwenang mendapatkan akses ke mereka. Penyerang dapat memanfaatkan teknologi bot untuk menemukan kunci dan rahasia yang disimpan dalam repositori kode seperti GitHub. Jangan letakkan kunci dan rahasia di repositori kode publik ini.
Praktik terbaik: Lindungi antarmuka manajemen VM Anda pada layanan PaaS dan IaaS hybrid dengan menggunakan antarmuka manajemen yang memungkinkan Anda mengelola VM ini dari jarak jauh secara langsung. Detail: Protokol manajemen jarak jauh seperti SSH, RDP, dan remoting PowerShell dapat digunakan. Secara umum, kami sarankan Anda tidak mengaktifkan akses jarak jauh langsung ke VM dari internet.
Jika memungkinkan, gunakan pendekatan alternatif seperti menggunakan jaringan pribadi virtual di jaringan virtual Azure. Jika pendekatan alternatif tidak tersedia, pastikan Anda menggunakan frasa sandi kompleks dan autentikasi dua faktor (seperti autentikasi multifaktor Microsoft Entra).
Praktik terbaik: Gunakan platform autentikasi dan otorisasi yang kuat. Detail: Gunakan identitas gabungan di ID Microsoft Entra alih-alih penyimpanan pengguna kustom. Ketika Anda menggunakan identitas federasi, Anda memanfaatkan pendekatan berbasis platform dan Anda mendelegasikan pengelolaan identitas resmi kepada mitra Anda. Pendekatan identitas federasi sangat penting ketika karyawan dihentikan dan informasi itu perlu dicerminkan melalui beberapa identitas dan sistem otorisasi.
Gunakan mekanisme autentikasi dan otorisasi yang disediakan, bukan kode kustom. Alasannya adalah bahwa mengembangkan kode autentikasi kustom dapat rawan kesalahan. Sebagian besar pengembang Anda bukan pakar keamanan dan tidak mungkin menyadari seluk beluk dan perkembangan terbaru dalam autentikasi dan otorisasi. Kode komersial (misalnya, dari Microsoft) seringkali ditinjau secara luas oleh keamanan.
Gunakan otentikasi dua faktor. Autentikasi dua faktor adalah standar saat ini untuk otentikasi dan otorisasi karena menghindari kelemahan keamanan yang melekat pada nama pengguna dan jenis autentikasi kata sandi. Akses ke antarmuka manajemen Azure (portal/PowerShell jarak jauh) dan layanan yang menghadap pelanggan harus dirancang dan dikonfigurasi untuk menggunakan autentikasi multifaktor Microsoft Entra.
Gunakan protokol autentikasi standar, seperti OAuth2 dan Kerberos. Protokol ini telah ditinjau secara ekstensif dan kemungkinan diterapkan sebagai bagian dari perpustakaan platform Anda untuk autentikasi dan otorisasi.
Menggunakan pemodelan ancaman selama perancangan aplikasi
Siklus Hidup Pengembangan Keamanan Microsoft menentukan bahwa tim harus terlibat dalam proses yang disebut pemodelan ancaman selama fase desain. Untuk membantu memfasilitasi proses ini, Microsoft telah membuat SDL Threat Modeling Tool. Pemodelan desain aplikasi dan menghitung STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service DoS, dan Elevation) dari ancaman hak istimewa di semua batas kepercayaan dapat menangkap kesalahan desain sejak dini.
Tabel berikut mencantumkan ancaman STRIDE dan memberikan beberapa contoh mitigasi yang menggunakan fitur Azure. Mitigasi ini tidak selalu berhasil dalam setiap situasi.
Ancaman | Properti keamanan | Mitigasi platform Azure potensial |
---|---|---|
Spoofing | Autentikasi | Memerlukan sambungan HTTPS. |
Gangguan | Integritas | Mengonfigurasi sertifikat TLS/SSL. |
Penyangkalan | Non-penyangkalan | Mengaktifkan pemantauan dan diagnostik Azure. |
Pengungkapan informasi | Kerahasiaan | Enkripsi sensitif data tidak aktif menggunakan sertifikat layanan. |
Penolakan layanan | Ketersediaan | Pantau metrik kinerja untuk kondisi penolakan layanan yang potensial. Menerapkan filter koneksi. |
Peningkatan hak istimewa | Authorization | Menggunakan Privileged Identity Management. |
Mengembangkan di Azure App Service
Azure App Service adalah penawaran PaaS yang memungkinkan Anda membuat aplikasi web dan seluler untuk platform atau perangkat apa pun dan terhubung ke data di mana saja, di cloud atau lokal. App Service mencakup kemampuan web dan seluler yang sebelumnya dikirimkan secara terpisah sebagai Situs Web Azure dan Layanan Seluler Azure. Ini juga termasuk kemampuan baru untuk mengotomatiskan proses bisnis dan menghosting API cloud. Sebagai satu layanan terintegrasi, App Service menghadirkan serangkaian kemampuan yang kaya untuk skenario web, seluler, dan integrasi.
Berikut ini adalah praktik terbaik untuk menggunakan App Service.
Praktik terbaik: Mengautentikasi melalui ID Microsoft Entra. Detail: App Service menyediakan layanan OAuth 2.0 untuk penyedia identitas Anda. OAuth 2.0 berfokus pada kesederhanaan pengembang klien sambil menyediakan alur otorisasi khusus untuk aplikasi web, aplikasi desktop, dan ponsel. MICROSOFT Entra ID menggunakan OAuth 2.0 untuk memungkinkan Anda mengotorisasi akses ke aplikasi seluler dan web.
Praktik terbaik: Membatasi akses berdasarkan kebutuhan untuk mengetahui dan paling tidak hak istimewa prinsip keamanan. Detail: Membatasi akses sangat penting bagi organisasi yang ingin memberlakukan kebijakan keamanan untuk akses data. Anda dapat menggunakan Azure RBAC untuk menetapkan izin kepada pengguna, grup, dan aplikasi pada lingkup tertentu. Untuk mempelajari selengkapnya tentang memberi pengguna akses ke aplikasi, lihat Mulai menggunakan manajemen akses.
Praktik terbaik: Lindungi kunci Anda. Detail: Azure Key Vault membantu melindungi kunci dan rahasia kriptografis yang digunakan aplikasi dan layanan cloud. Dengan Key Vault, Anda dapat mengenkripsi kunci dan rahasia (seperti kunci autentikasi, kunci akun penyimpanan, kunci enkripsi data, . File PFX, dan kata sandi) dengan menggunakan kunci yang dilindungi oleh modul keamanan perangkat keras (HSM). Untuk jaminan tambahan, Anda dapat mengimpor atau menghasilkan kunci dalam HSM. Lihat Azure Key Vault untuk mempelajari selengkapnya. Anda juga dapat menggunakan Vault Kunci untuk mengelola sertifikat TLS dengan perpanjangan otomatis.
Praktik terbaik: Membatasi alamat IP sumber masuk. Detail: Lingkungan App Service memiliki fitur integrasi jaringan virtual yang membantu Anda membatasi alamat IP sumber masuk melalui grup keamanan jaringan. Jaringan virtual memungkinkan Anda menempatkan sumber daya Azure di jaringan non-internet dan mudah routable yang Anda kontrol aksesnya. Untuk mempelajari selengkapnya, lihat Mengintegrasikan aplikasi Anda dengan jaringan virtual Azure.
Praktik terbaik: Pantau status keamanan lingkungan App Service Anda. Detail: Gunakan Microsoft Defender untuk Cloud untuk memantau lingkungan App Service Anda. Ketika Pertahanan Microsoft untuk Cloud mengidentifikasi potensi kerentanan keamanan, pusat keamanan akan membuat rekomendasi yang memandu Anda melalui proses konfigurasi kontrol yang diperlukan.
Layanan Cloud Azure
Azure Cloud Services adalah contoh PaaS. Seperti Azure App Service, teknologi ini dirancang untuk mendukung aplikasi yang dapat diskalakan, andal, dan murah untuk dioperasikan. Dengan cara yang sama seperti App Service dihosting di komputer virtual (VM), begitu juga dengan Azure Cloud Services. Namun, Anda memiliki lebih banyak kontrol atas VM. Anda dapat memasang perangkat lunak Anda sendiri di VM yang menggunakan Azure Cloud Services, dan Anda dapat mengaksesnya dari jarak jauh.
Menginstal firewall aplikasi web
Aplikasi web semakin menjadi target serangan berbahaya yang mengeksploitasi kerentanan umum yang diketahui. Yang umum di antara eksploitasi ini adalah serangan injeksi SQL, serangan pembuatan skrip lintas situs untuk beberapa nama. Mencegah serangan semacam itu dalam kode aplikasi bisa menjadi tantangan dan mungkin memerlukan pemeliharaan, penambalan, dan pemantauan yang ketat di banyak lapisan topologi aplikasi. Firewall aplikasi web terpusat membantu membuat manajemen keamanan jauh lebih sederhana dan memberikan jaminan yang lebih baik kepada admin aplikasi terhadap ancaman atau gangguan. Solusi WAF juga dapat bereaksi lebih cepat terhadap ancaman keamanan dengan menambal kerentanan yang sudah diketahui di lokasi pusat versus mengamankan masing-masing aplikasi web individu.
Web Application Firewall (WAF) memberikan perlindungan terpusat terhadap aplikasi web Anda dari eksploitasi dan kerentanan umum.
Perlindungan penolakan layanan terdistribusi (DDoS)
Azure DDoS Protection, dikombinasikan dengan praktik terbaik desain aplikasi, menyediakan fitur mitigasi DDoS yang ditingkatkan untuk memberikan lebih banyak pertahanan terhadap serangan DDoS. Anda harus mengaktifkan Azure DDOS Protection di jaringan virtual perimeter apa pun.
Memantau kinerja aplikasi Anda
Pemantauan adalah tindakan mengumpulkan dan menganalisis data untuk menentukan kinerja, kesehatan, dan ketersediaan aplikasi Anda. Strategi pemantauan yang efektif membantu Anda memahami operasi terperinci dari komponen aplikasi Anda. Ini membantu Anda meningkatkan waktu kerja Anda dengan memberi tahu Anda tentang masalah penting sehingga Anda dapat menyelesaikannya sebelum menjadi masalah. Ini juga membantu Anda mendeteksi anomali yang mungkin terkait dengan keamanan.
Gunakan Azure Application Insights untuk memantau ketersediaan, kinerja, dan penggunaan aplikasi Anda, baik yang dihosting di cloud atau lokal. Dengan menggunakan Application Insights, Anda dapat dengan cepat mengidentifikasi dan mendiagnosis kesalahan dalam aplikasi Anda tanpa menunggu pengguna melaporkannya. Dengan informasi yang Anda kumpulkan, Anda dapat membuat pilihan berdasarkan informasi tentang pemeliharaan dan peningkatan aplikasi Anda.
Application Insights memiliki alat yang luas untuk berinteraksi dengan data yang dikumpulkannya. Application Insights menyimpan datanya di repositori umum. Ini dapat memanfaatkan fungsionalitas bersama seperti peringatan, dasbor, dan analisis mendalam dengan bahasa kueri Kusto.
Melakukan pengujian penetrasi keamanan
Memvalidasi pertahanan keamanan sama pentingnya dengan menguji fungsionalitas lainnya. Jadikan pengujian penetrasi sebagai bagian standar dari proses build dan penyebaran Anda. Jadwalkan pengujian keamanan reguler dan pemindaian kerentanan pada aplikasi yang disebarkan, dan pantau port terbuka, titik akhir, dan serangan.
Pengujian fuzz adalah metode untuk menemukan kegagalan program (kesalahan kode) dengan memasok data input yang salah bentuk ke antarmuka program (titik masuk) yang mengurai dan mengkonsumsi data ini.