Panduan Utama untuk Keamanan Aplikasi Web

Diterbitkan: 2022-10-18

Aplikasi web memiliki fungsi yang beragam saat ini. Jadi, adalah ancaman terhadap mereka. Oleh karena itu, Anda harus siap mendeteksi dan mencegahnya sejak awal pengembangan melalui pengujian dan dukungan.

Artikel ini memberikan gambaran umum tentang alat dan teknik keamanan yang akan membantu Anda mengembangkan dan memelihara aplikasi web yang aman.

Apa itu keamanan aplikasi web?

Keamanan aplikasi web berarti menjaga pekerjaan yang aman dengan menerapkan metode dan teknik yang relevan. Aplikasi web yang aman berfungsi seperti yang diharapkan meskipun ada serangan terhadapnya dan menjaga keamanan data.

Mengapa keamanan penting dalam aplikasi web?

Saat ini, aplikasi web melakukan operasi kompleks yang melibatkan transmisi data sensitif. Data pribadi, detail kartu kredit, dan data medis pasien adalah beberapa contoh dari data tersebut. Jika penyerang mencoba mencurinya, itu dapat menyebabkan kerusakan reputasi.

Di sisi teknis, aplikasi yang rusak akan menyebabkan shutdown dan hilangnya waktu dan uang. Pengguna akan khawatir dengan aplikasi yang rusak dan cenderung beralih ke aplikasi yang lebih andal.

Risiko keamanan aplikasi web yang paling umum

Di Codica, Open Web Application Security Project (OWASP) adalah sumber yang kami gunakan dalam masalah keamanan. Di antara masalah lainnya, ini menunjukkan risiko paling umum yang dihadapi aplikasi web. Di bawah ini adalah diagram relevan yang dibuat di OWASP yang menunjukkan bagaimana risiko keamanan telah berubah dari waktu ke waktu:

Sumber: OWASP.org

Alat keberlanjutan AWS

Tim kami bekerja terutama dengan Amazon Web Services (AWS). Jadi, di bawah ini adalah daftar layanan yang dibuat untuk mengamankan aplikasi web Anda. Ini termasuk yang berikut:

  • VPC AWS;
  • Pusat Keamanan AWS;
  • AWS IAM;
  • AWS Rute 53;
  • Firewall Aplikasi Web AWS;
  • Perisai AWS;
  • AWS Cloudfront.

Persyaratan keamanan aplikasi web

Persyaratan keamanan untuk aplikasi web berasal dari standar industri, undang-undang, atau pengalaman sebelumnya. Misalnya, Standar Verifikasi Keamanan Aplikasi (ASVS) OWASP mendefinisikan tiga tingkat keamanan tergantung pada industri aplikasi. Misalnya, aplikasi web militer harus mematuhi persyaratan keamanan untuk tingkat ketiga.

Praktik terbaik keamanan aplikasi web pada tahun 2022

Di bawah ini kami membahas praktik keamanan terbaik yang dapat Anda terapkan untuk pengembangan aplikasi web.

Langkah 1. Manfaatkan kerangka kerja dan pustaka keamanan sebaik-baiknya

Saat ini, banyak bahasa pemrograman juga memiliki kerangka kerja dan pustaka. Kami merekomendasikan untuk memilih yang aman dan dapat diandalkan. Juga, simpan daftar mereka. Selain itu, jika Anda terus memperbaruinya, itu akan mengurangi permukaan serangan.

Langkah 2. Akses aman ke database

Koneksi antara aplikasi dan database harus dienkripsi. Akses ke database harus mencakup otentikasi dua faktor. Juga, kata sandi yang kuat memastikan transmisi data yang aman dari database ke aplikasi.

Langkah 3. Enkode dan keluarkan data

Pendekatan ini membantu menghindari serangan cross-site scripting (XSS). Serangan ini terjadi jika aplikasi mengirimkan data yang tidak tepercaya ke database tanpa proses pemeriksaan. Selain itu, kode perusak XSS dapat menggunakan cookie sesi.

Untuk melindungi kode dari serangan XSS, Anda dapat menggunakan token penyandian, seperti token Pemalsuan Permintaan Lintas Situs. Itu membuat kode aman dan tidak berbahaya bagi penerjemah target.

Langkah 4. Validasi semua input

Memvalidasi input memastikan bahwa hanya data yang terbentuk dengan benar yang memasuki alur kerja sistem informasi. Mencegah input yang salah ke database memastikan integritasnya. Oleh karena itu, data dari sumber yang tidak dipercaya harus menjalani pemeriksaan validasi.

Langkah 5. Terapkan identitas digital

Identitas digital berarti memverifikasi pengguna sebelum otorisasi. Otentikasi multi-faktor (MFA) dan otentikasi berbasis kriptografi (CBA) adalah dua teknik andal yang memastikan identifikasi pengguna yang aman. Mereka membantu mengurangi risiko peretasan, menurut Microsoft.

Langkah 6. Terapkan kontrol akses

Saran di sini adalah untuk mengonfigurasi kontrol akses terlebih dahulu. Permintaan Anda harus menjalani kontrol akses. Dalam hal ini, disarankan untuk menggunakan status "tolak" bersama dengan yang paling tidak diistimewakan. Juga, jangan hardcode kredensial.

Logging setiap kasus otentikasi dan otorisasi untuk mengontrol upaya akses yang tidak sah dianjurkan. Manajer rahasia, seperti AWS Secrets Manager dan Hashicorp Vault, dapat membantu Anda mengamankan akses ke aplikasi web.

Langkah 7. Lindungi data

Data sensitif aplikasi web Anda membutuhkan perlindungan. Tentukan mereka dan buat mekanisme aman yang membantu menjaga mereka tetap aman. Untuk ini, data tersebut harus dienkripsi dalam perjalanan dan saat istirahat.

Kami menyarankan untuk memilih data yang paling penting di aplikasi web Anda. Jika tidak, enkripsi akan membebani aplikasi dan memperlambat transmisi data.

Langkah 8. Terapkan logging yang aman

Menyimpan log adalah tugas yang relatif sederhana, berkat solusi cloud. Misalnya, CloudTrail AWS membantu melacak aktivitas API. Data sensitif dan kredensial harus disimpan dengan aman saat Anda mengonfigurasi logging.

Log harus disimpan secara integral. Untuk ini, Anda harus menyimpannya di satu tempat (misalnya, di CloudWatch atau S3) dan menjadikannya hanya-baca. Dengan demikian, Anda memusatkan pemfilteran log.

Langkah 9. Menangani kesalahan dan pengecualian

Aplikasi web modern dapat menampilkan berbagai pesan kesalahan, misalnya, merespons koneksi yang terputus. Menampilkan pesan kesalahan yang relevan harus ringkas dan jelas bagi pengguna. Juga, ingat bahwa kebocoran penanganan kesalahan dasar dapat menyebabkan sistem dimatikan.

Rekomendasi oleh Codica

Di Codica, kami mengawasi praktik terbaik keamanan dan menerapkannya dalam solusi digital. Jadi, kami ingin berbagi dengan Anda alat dan teknik apa yang dapat Anda gunakan untuk mengamankan aplikasi web Anda.

Alat yang berguna untuk keamanan aplikasi web

Karena kami lebih suka AWS, kami menggunakan WAF dan Shield-nya. Selain itu, kami merekomendasikan untuk menggunakan Pusat Keamanan AWS. Ini akan membantu Anda mengumpulkan data dan metrik dari banyak layanan keamanan AWS.

Kami menyarankan klien kami untuk memasukkan rahasia kaya fitur. Mereka beragam. Tapi pastikan bahwa mereka dipelihara.

Tim kami juga merekomendasikan penggunaan pemindai keamanan gambar kontainer. Container terdiri dari elemen penting yang membantu aplikasi Anda berjalan di lingkungan apa pun. Mereka memungkinkan Anda untuk mengidentifikasi kerentanan aplikasi web. Wadah menunjukkan serangan, kesalahan, atau bug baru.

Ada juga instrumen yang berguna untuk pengujian aplikasi web. Secara umum, kami menggunakan tiga pendekatan utama untuk pengujian, statis (SAST), dinamis (DAST), dan SCA (Analisis Komposisi Perangkat Lunak). Mereka membantu mengamankan dan memindai aplikasi web dari kesalahan dan kerentanan.

Pendekatan dan filosofi DevSecOps

Pendekatan DevSecOps (pengembangan, keamanan, dan operasi) mendefinisikan teknik yang diperlukan untuk pengembangan perangkat lunak yang aman. Salah satu pendekatan kritis adalah "menggeser ke kiri" operasi keamanan. Ini berarti bahwa seorang insinyur DevOps memastikan pengembangan aplikasi web yang aman dari depan.

Kesimpulan

Aplikasi web membutuhkan keamanan dari awal pengembangan hingga pengujian dan dukungan. Oleh karena itu, kami sarankan untuk menggunakan alat dan teknik yang telah kami bahas di artikel ini. Misalnya, kami merekomendasikan penggunaan layanan pemantauan dan keamanan AWS. Selain itu, Anda perlu menyeimbangkan bagian perangkat lunak dan infrastruktur dengan memprioritaskan kebutuhan keamanan aplikasi web Anda.


Artikel ini awalnya diterbitkan di blog Codica.