Pencegahan OWASP Top 10
Gambar 1. Keamanan Internet (sumber: https://www.pexels.com/)
Keamanan perangkat lunak bukan lagi sekadar tanggung jawab tim Security atau DevSecOps di akhir siklus pengembangan. Dengan pendekatan shift-left, tim engineering (developer, QA, dan arsitek) harus mengintegrasikan praktik keamanan sejak fase desain dan penulisan kode. Open Worldwide Application Security Project (OWASP) Top 10 adalah standar industri yang merangkum kerentanan paling kritis pada aplikasi web.
SQL Injection (SQLi)
SQLi terjadi ketika data yang tidak terpercaya dikirim ke interpreter sebagai bagian dari perintah atau kueri (kueri). Penyerang dapat memanipulasi input untuk mengeksekusi perintah SQL berbahaya, yang bisa berujung pada pencurian, modifikasi, atau penghapusan data.
Cara Mitigasi
- Gunakan Prepared Statements (Parameterized Queries): Ini adalah pertahanan utama. Daripada menggabungkan string untuk membentuk kueri, gunakan parameter terikat yang memisahkan kode SQL dari data pengguna.
- Gunakan ORM (Object-Relational Mapping): Library seperti Entity Framework, Hibernate, atau Prisma secara default menggunakan parameterized queries, sehingga sangat mengurangi risiko SQLi.
- Validasi Input (Allow-listing): Lakukan validasi ketat di sisi server. Jika sebuah field mengharapkan angka (misalnya ID pengguna), pastikan input tersebut benar-benar integer sebelum diproses.
Cross-Site Scripting (XSS)
XSS memungkinkan penyerang menyisipkan script berbahaya (biasanya JavaScript) ke dalam halaman web yang dilihat oleh pengguna lain. Hal ini dapat digunakan untuk mencuri cookie sesi, membajak akun, atau merusak tampilan situs.
Cara Mitigasi
- Context-Aware Output Encoding: Jangan pernah mempercayai input pengguna. Sebelum menampilkan data kembali ke peramban (browser), konversikan karakter khusus menjadi entitas HTML (misalnya, < menjadi <). Pastikan encoding disesuaikan dengan konteksnya (HTML body, atribut HTML, JavaScript, atau CSS).
- Gunakan Framework Modern: Framework seperti React, Angular, dan Vue secara otomatis melakukan escaping pada variabel yang di-render, yang secara drastis menurunkan risiko XSS.
- Implementasi Content Security Policy (CSP): CSP adalah header HTTP yang membatasi dari mana resource (seperti script dan gambar) dapat dimuat. Gunakan CSP untuk memblokir eksekusi inline script (script-src ‘self’).
Cross-Site Request Forgery (CSRF)
CSRF memaksa peramban korban yang sedang login untuk mengirimkan permintaan HTTP palsu ke aplikasi web yang rentan. Karena peramban otomatis menyertakan cookie sesi, aplikasi mengira permintaan tersebut sah dari pengguna.
Cara Mitigasi
- Anti-CSRF Tokens (Synchronizer Token Pattern): Hasilkan token unik, acak, dan tidak dapat diprediksi untuk setiap sesi pengguna. Wajibkan token ini disematkan dalam setiap permintaan yang mengubah state aplikasi (POST, PUT, DELETE) dan validasi di sisi server.
- Atribut SameSite pada Cookie: Tambahkan flag SameSite=Lax atau SameSite=Strict pada cookie sesi Anda. Hal ini menginstruksikan peramban untuk tidak mengirimkan cookie pada permintaan lintas situs (cross-site requests).
- Verifikasi Origin dan Referer: Pastikan permintaan berasal dari domain yang sah dengan memeriksa header Origin atau Referer.
Insecure Deserialization
Kerentanan ini terjadi ketika data yang tidak terpercaya digunakan untuk memulihkan (deserialize) sebuah objek. Penyerang dapat memodifikasi objek yang diserialisasi untuk mengeksekusi kode berbahaya (RCE), melewati otentikasi, atau melakukan serangan Denial of Service (DoS).
Cara Mitigasi
- Gunakan Format Data Murni: Sebisa mungkin, hindari melakukan serialisasi pada objek asli (native object serialization seperti pickle di Python atau Serializable di Java). Gunakan format pertukaran data yang aman seperti JSON atau XML.
- Validasi Integritas: Jika Anda harus menggunakan objek yang diserialisasi, terapkan tanda tangan digital (HMAC) untuk memverifikasi integritas data dan memastikan data belum dimodifikasi.
- Isolasi Proses: Jalankan proses deserialisasi di dalam environment dengan hak akses yang sangat dibatasi (low-privilege environment).
Referensi:
- https://owasp.org/Top10/2025/
- https://cheatsheetseries.owasp.org/
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
- https://node-postgres.com/features/queries
Comments :