Apa Itu OWASP?
OWASP adalah singkatan dari Open Web Application Security Project. Ini adalah lembaga nirlaba yang tujuan utamanya adalah untuk meningkatkan keamanan perangkat lunak dengan menyediakan alat dan pengetahuan kepada komunitas.
Mengapa OWASP Penting?
OWASP memberikan pengetahuan tentang taktik yang digunakan peretas dan cara melawannya. Selama bertahun-tahun, proyek ini telah membantu masyarakat untuk:
- Melindungi kode mereka dari kerentanan keamanan siber.
- Memperkuat enkripsi perangkat lunak.
- Mengurangi jumlah kesalahan keamanan, bug, dan cacat dalam kode mereka.
Apa Itu Top 10 OWASP?
OWASP Top 10 adalah salah satu sumber paling populer dan dihargai yang dirilis oleh OWASP Foundation. Makalah ini memberikan informasi tentang 10 risiko keamanan paling kritis untuk aplikasi pada saat penelitian. Risiko-risiko ini adalah eksploitasi yang paling sering digunakan oleh peretas dan menyebabkan kerusakan paling besar.
1. Injection
Injeksi terjadi ketika penyerang mencemari kueri yang dikirim ke aplikasi back-end dengan kode valid yang dieksekusi oleh target akhir. Penyerang menggunakan ini untuk mengelabui sistem agar menjalankan perintah yang tidak disengaja yang telah mereka berikan melalui API.
Dengan jenis serangan ini, peretas dapat memperoleh akses ke data yang dilindungi atau bahkan menjalankan perintah OS. Yang terakhir membuat jenis serangan ini jauh lebih berbahaya.
2. Broken Authentication
Broken Authentication adalah ketika otentikasi telah diterapkan secara tidak benar, memungkinkan penyerang untuk mendapatkan akses dan mengambil identitas pengguna lain. Mencegah pengguna menggunakan kata sandi yang lemah dan membatasi upaya login yang gagal secara efektif mengamankan sebagian besar akun pengguna dari kerentanan ini. Anda juga perlu menyetel batas waktu sesi dan menerapkan sistem pemulihan kredensial untuk membantu pengguna melindungi akun mereka dari kesalahan yang tidak disengaja dan memulihkannya tanpa kesulitan.
3. Sensitive Data Exposure
Alih-alih menyerang sistem secara langsung, peretas sering kali mencoba mencuri data saat sedang transit dari browser pengguna. Untuk mencegah serangan seperti itu, Anda perlu membuat saluran komunikasi yang aman. Untuk aplikasi web, solusi cepat untuk mengatasi masalah ini adalah dengan menerapkan TLS di semua halaman.
4. XML External Entities (XXE)
Aplikasi mungkin rentan terhadap XML External Entities (XXE) jika mendukung unggahan XML atau XML langsung, terutama dari sumber yang tidak dapat diandalkan, karena prosesor XML kemudian dapat menguraikannya. Peretas dapat menggunakan entitas eksternal ini untuk mendapatkan akses ke informasi sensitif atau membuat serangan penolakan layanan (DOS) dengan memasukkan file yang berpotensi tidak ada habisnya.
5. Broken Access Control
Setiap bagian informasi harus tersedia hanya untuk sekelompok pengguna tertentu berdasarkan akses yang telah diberikan kepada mereka. Kontrol akses yang rusak dapat menyebabkan skenario di mana pengguna dapat mengakses informasi yang mereka tidak memiliki wewenang untuk mengaksesnya. Risiko keamanan ini dapat dimitigasi dengan menerapkan model kontrol akses berdasarkan kepemilikan record.
6. Security Misconfiguration
Peretas sangat menyadari sebagian besar masalah keamanan dan bagaimana mereka dapat dieksploitasi menggunakan alat yang berbeda. Ini bisa dalam bentuk port terbuka yang tidak perlu, akun dan kata sandi default, kesalahan penanganan yang mengungkapkan terlalu banyak informasi tentang aplikasi, file sampel dan aplikasi yang datang secara default dan dihapus dari server produksi, dan sebagainya. Pemindai otomatis dapat digunakan untuk memastikan konfigurasi keamanan yang tepat.
7. Cross-Site Scripting (XSS)
Cross-site scripting (XSS) terjadi ketika penyerang berhasil memperkenalkan kode HTML atau JavaScript yang valid di dalam status aplikasi web yang ada. Hal ini biasanya dimungkinkan karena kurangnya validasi data input yang tepat. Sebagian besar framework saat ini memiliki sistem bawaan yang secara otomatis keluar dari XSS berdasarkan desain.
8. Insecure Deserialization
Aplikasi apa pun yang tidak melakukan deserialize objek eksternal atau temper sangat rentan. Itu karena peretas kemudian memiliki kekuatan untuk memanipulasi data yang diterima oleh kode back-end.
Cara tercepat dan mungkin teraman untuk melindungi diri Anda dari deserialisasi yang tidak aman adalah dengan tidak menerima objek berseri dari sumber yang tidak tepercaya dan membatasi penggunaan objek bersambung dalam aplikasi Anda.
9. Using Components with Known Vulnerabilities
Kode eksternal: library, modul, komponen, dan sebagainya akan berjalan dengan hak istimewa yang sama dengan aplikasi Anda. Oleh karena itu, Anda harus memastikan bahwa setiap kode eksternal yang Anda sertakan dalam aplikasi Anda diperbarui dan aman.
10. Insufficient Logging and Monitoring
Anda tidak dapat memperbaiki apa yang Anda sendiri tidak tahu bagian mana yang telah dieksploitasi. Jika Anda tidak cukup memantau aplikasi Anda, penyerang dapat mengakses sistem Anda atau meretas data sensitif tanpa Anda sadari.
Selengkapnya: Perforce