NoSQL Injection

NoSQL Injection merupakan kerentanan yang memungkinkan penyerang mengganggu query yang dibuataplikasi ke database NoSQL

NoSQL ini dapat memungkinkan penyerang untuk:

  • Bypass authentication atau protection mechanism

  • Extract atau edit data

  • Menyebabkan Denial of Service

  • Eksekusi code pada server

NoSQL database menyimpan dan mengambil data dalam format selain tabel relasional SQL tradisional. Database ini menggunakan berbagai bahasa query, bukan standar universal seperti SQL, dan memiliki lebih sedikit kendala relasional.

Terdapat 2 jenis NoSQL injection yang berbeda:

  • Syntax injection Hal ini terjadi ketika penyerang dapat merusak syntax query NoSQL, yang memungkinkan penyerang menginjeksi payload sendiri. Metodologinya mirip dengan yang digunakan dalam SQL injection. Namun, sifat serangannya sangat bervariasi, karena daabase NoSQL menggunakan berbagai bahasa query, jenis syntaxt query dan struktur data yang berbeda.

  • Operator injection Hal ini terjadi ketika penyerang dapat menggunakan operator query NoSQL untuk memanipulasi query.

Cara mencegah NoSQL injection?

Cara yang tepat untuk mencegah serangan NoSQL injection bergantung pada teknologi NoSQL yang digunakan. Karena itu, disarankan untuk membaca dokumentasi keamanan untuk database NoSQL yang dipilih. Meskipun demikian, panduan umum berikut juga dapat membantu:

  • Sanitasi dan validasi inputan pengguna, menggunakan allowlist karakter yang diterima

  • Masukkan inputan pengguna menggunakan query yang diberi parameter, dan bukan menggabungkan inputan pengguna secara langsung kedalam query

  • Untuk mencegah operator injection, terapakan whitelist keys yang diterima

Last updated