OWASP TOP 10 : A07:2021 – Kegagalan Identifikasi dan Otentikasi

By SumedangKab-CSIRT in Literasi Keamanan Informasi

Literasi Keamanan Informasi
 Sebelumnya dikenal sebagai Broken Authentication, kategori ini turun dari posisi kedua dan sekarang mencakup CWE yang terkait dengan kegagalan identifikasi. CWE terkenal yang disertakan adalah CWE-297: Improper Validation of Certificate with Host Mismatch, CWE-287: Improper Authentication, dan CWE-384: Session Fixation.

Deskripsi
Konfirmasi identitas pengguna, otentikasi, dan sesi manajemen sangat penting untuk melindungi dari serangan terkait otentikasi. Mungkin ada kelemahan otentikasi jika aplikasi:
  • Mengizinkan serangan otomatis seperti isian kredensial, di mana penyerang memiliki daftar nama pengguna dan kata sandi yang valid.
  • Mengizinkan brute force atau serangan otomatis lainnya.
  • Mengizinkan kata sandi bawaan, lemah, atau kata sandi yang terkenal, seperti "Password1" atau "admin/admin."
  • Menggunakan pemulihan kredensial yang lemah atau tidak efektif dan proses lupa kata sandi, seperti "jawaban berbasis pengetahuan", yang tidak dapat dibuat aman.
  • Menggunakan kata sandi teks biasa, terenkripsi, atau dengan hash yang lemah (lihat A3:2017-Sensitive Data Exposure).
  • Memiliki otentikasi multi-faktor yang hilang atau tidak efektif.
  • Mengekspos ID Sesi di URL (misalnya, penulisan ulang URL).
  • Jangan memutar ID Sesi setelah login berhasil.
  • Tidak membatalkan ID Sesi dengan benar. Sesi pengguna atau token autentikasi (terutama token single sign-on (SSO)) tidak divalidasi dengan benar selama logout atau periode tidak aktif.

Cara Mencegah
  • Jika memungkinkan, terapkan otentikasi multi-faktor untuk mencegah pengisian kredensial otomatis, brute force, dan dan serangan penggunaan kembali kredensial yang dicuri.
  • Jangan mengirim atau menyebarkan dengan kredensial bawaan apa pun, terutama untuk pengguna admin.
  • Menerapkan pemeriksaan kata sandi yang lemah, seperti menguji kata sandi baru atau yang diubah terhadap 10.000 daftar kata sandi terburuk
  • Sejajarkan panjang sandi, kompleksitas, dan kebijakan rotasi dengan pedoman NIST 800-63b di bagian 5.1.1 untuk Rahasia yang Dihafal atau kebijakan kata sandi modern berbasis bukti lainnya.
  • Pastikan pendaftaran, pemulihan kredensial, dan jalur API diperkuat terhadap serangan enumerasi akun dengan menggunakan pesan yang sama untuk semua hasil.
  • Batasi atau semakin tunda upaya login yang gagal. Catat semua kegagalan dan peringatkan administrator ketika pengisian kredensial, brute force, atau serangan lainnya terdeteksi.
  • Gunakan pengelola sesi built-in sisi server, aman, yang menghasilkan ID sesi acak baru dengan entropi tinggi setelah login. ID sesi tidak boleh ada di URL, disimpan dengan aman, dan tidak valid setelah keluar, idle, dan waktu tunggu absolut.

Contoh Skenario Serangan
Skenario #1:
Pengisian Kredensial, penggunaan daftar kata sandi yang diketahui adalah serangan yang umum. Misalkan aplikasi tidak menerapkan perlindungan terhadap ancaman atau pengisian kredensial otomatis. Dalam hal ini, aplikasi dapat digunakan sebagai kata sandi oracle untuk menentukan apakah kredensial itu valid.
.
Skenario #2: Sebagian besar serangan autentikasi terjadi karena terus menggunakan sandi sebagai satu-satunya faktor. Setelah dipertimbangkan, praktik terbaik, rotasi kata sandi, dan persyaratan kompleksitas mendorong pengguna untuk menggunakan kembali kata sandi yang lemah. Organisasi disarankan untuk menghentikan praktik ini per NIST 800-63 dan menggunakan otentikasi multi-faktor.
.
Skenario #3: Waktu tunggu sesi aplikasi tidak disetel dengan benar. Seorang pengguna menggunakan komputer publik untuk mengakses aplikasi. Alih-alih memilih "logout", pengguna cukup menutup tab browser dan pergi. Penyerang menggunakan browser yang sama satu jam kemudian, dan pengguna masih diautentikasi.

Cara Mitigasi
untuk mengurangi risiko dari kerentanan A07:2021 – Kegagalan Identifikasi dan Otentikasi, langkah-langkah berikut dapat diambil:
1. Implementasikan mekanisme otentikasi yang kuat
Gunakan metode otentikasi yang aman, seperti password yang kompleks, autentikasi dua faktor (2FA), atau solusi identifikasi yang lebih kuat seperti biometrik (sidik jari atau pemindaian wajah).
2. Lindungi data otentikasi
Pastikan bahwa data otentikasi pengguna, seperti kata sandi, disimpan secara aman. Hindari penyimpanan kata sandi dalam format yang dapat dibaca, dan pertimbangkan penggunaan teknik penyimpanan yang aman, seperti hashing dan penggaraman (salting)
3. Perbarui dan lindungi perangkat lunak
Pastikan perangkat lunak dan sistem operasi yang digunakan dalam aplikasi Anda diperbarui secara teratur dengan pembaruan keamanan terbaru. Juga, pastikan untuk mengamankan konfigurasi dan pengaturan default perangkat lunak yang digunakan
4. Monitor dan tanggapi aktivitas mencurigakan
Implementasikan mekanisme pemantauan dan deteksi intrusi yang dapat mendeteksi aktivitas mencurigakan atau akses yang tidak sah. Tanggapi dengan cepat jika terdeteksi tindakan yang mencurigakan
5. Lakukan pengujian keamanan
Lakukan pengujian keamanan secara teratur untuk mengidentifikasi dan mengatasi kerentanan yang ada. Pengujian seperti pengujian penetrasi dapat membantu mengevaluasi keamanan aplikasi dan melihat apakah ada kerentanan dalam mekanisme otentikasi yang digunakan.

Kesimpulan:
Kegagalan identifikasi dan otentikasi merupakan kerentanan yang serius dalam aplikasi dan sistem. Dengan menerapkan langkah-langkah mitigasi yang tepat, seperti penggunaan mekanisme otentikasi yang kuat dan perlindungan data otentikasi, kita dapat mengurangi risiko kerentanan ini. Penting untuk selalu memprioritaskan keamanan dan melindungi informasi pribadi pengguna dari akses yang tidak sah.





gambar
Back to Posts