SQL Injection

Definisi SQL Injection

SQL Injection merupakan teknik eksploitasi dengan cara memodifikasi perintah sql pada form input aplikasi yang memungkinkan penyerang untuk dapat mengirimkan sintaks ke database aplikasi. SQL Injection juga dapat didefinisikan sebagai teknik eksploitasi celah keamanan pada layer database untuk mendapatkan query data pada sebuah aplikasi.

SQL Injection dapat diterapkan pada banyak aplikasi database yang umum digunakan, berdasarkan pada https://www.statista.com Oracle, MySQL, Microsoft SQL Server dan Postgre sql merupakan 4 (empat) aplikasi database yang paling banyak digunakan oleh khalayak umum, termasuk di Indonesia. Gambar 1. dibawah menunjukkan tabel sebaran penggunaan aplikasi database.

Apa Penyebab SQL Injection

SQL Injection umumnya terjadi karena programmer (pengembang aplikasi) tidak mengimplementasikan filter terhadap metakarakter (&, ;, `, ‘, \, “, |, *, ?, ~, <, >, ^, (, ), [, ], {, }, $, \n, dan \r) yang digunakan dalam sintaks sql pada form input aplikasi, sehingga penyerang dapat menginputkan metakarakter tersebut menjadi instruksi pada aplikasi untuk mengakses database. Selain itu serangan SQL Injection juga dapat terjadi, jika personil back end tidak mengimplementasikan atau tidak mensetting Web Application Firewall (WAF) atau Intrusion Prevention System (IPS) pada arsitektur jaringan dengan baik, sehingga database aplikasi dapat diakses langsung dari celah kerawanan yang ditemukan.

Perbaikan Terhadap Kerentanan SQL Injection

Terdapat beberapa cara untuk mengatasi serangan SQL Injection, antara lain :

  1. Mengimplementasikan filter terhadap metakarakter (&, ;, `, ‘, \, “, |, *, ?, ~, <, >, ^, (, ), [, ], {, }, $, \n, dan \r), sehingga dapat mencegah input pada form isian pengguna yang dapat dimanfaatkan untuk melakukan serangan SQL Injection;
  2. Memisahkan database username dan password, sehingga dibutuhkan usaha dan percobaan lebih bagi penyerang untuk memahami struktur database aplikasi, hal ini juga dapat mengantisipasi apabila 1 (satu) database telah terekspose, maka belum tentu dengan database lainnya;
  3. Mengimplementasikan algoritma kriptografi untuk melindungi username dan password pengguna, sehingga dapat mempersulit penyerang untuk mengetahui value username dan password pengguna pada database yang telah ditemukan;
  4. Mengimplementasikan WAF atau IPS pada arsitektur jaringan, sehingga dapat mencegah penetrasi penyerang kedalam database aplikasi.

Penutup

Hasil pada serangan SQL Injection memiliki dampak yang sangat signifikan terhadap keberlangsungan dan keamanan sebuah aplikasi, dimana yang paling berbahaya adalah jika penyerang berhasil mendapatkan username dan password administrator dari database, sehingga memungkinkan penyerang untuk mengambilalih aplikasi (mulai dari menambahkan, mengedit, menghapus data, sampai dengan mengacak isi konten pada aplikasi).

Pada dasarnya SQL Injection merupakan jenis serangan klasik namun sampai saat ini masih sering dijumpai pada beberapa aplikasi yang telah dikembangkan baik oleh instansi pemerintahan daerah maupun oleh instansi pemerintahan pusat, hal tersebut dikarenakan sebuah aplikasi tidak akan pernah terlepas dari penggunaan database, pengembangan aplikasi yang dilakukan dengan tidak mempertimbangkan teknik secure programming akan memudahkan penyerang untuk melakukan penetrasi kedalam database aplikasi. Oleh karena itu perlu dilakukannya pengamanan pada data yang disimpan didalam database, penerapan secure programming dan implementasi firewall dalam melakukan rancang bangun sebuah aplikasi.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.