Implementasi SQL Injection - Pembahasan mengenai SQL Injection

 Pembahasan tentang SQL Injection 






    SQL Injection atau kepanjangan dari Structured Query Language digunakan untuk melakukan query, mengoprasikan dan mengelola database SQL Server, Oracle, atau MySQL. SQL Injection merupakan sebuah teknik yang digunakan untuk eksploitasi dengan cara memodifikasi perintal SQL pada form input aplikasi yang memungkinkan untuk penyerang dapat mengirimkan sintaks ke database aplikasi. Sebuah serangan yang dilakukan SQL Injection mampu membuat para peretas mengambil alih akses tidak sah kedalam data sensitif milik kita, menyebabkan mereka bisa mengakses data pelanggan, data pribadi, rahasia perusahaan, kekayaan intelektual, dan masih banyak lagi kerugian yang ditimbulkan. Para pelaku peretas atau hacker yang melakukan serangan SQL Injection mampu menemukan kerentanan pengguna lain dari dalam database. Sangat berbahaya bukan? 

    Serangan ini terjadi karena input dari user tidak difilter secara benar, dan dalam pembuatannya menggunakan form yang salah. Sebagai contoh penyerangannya, biasanya tertuju melalui form username, yang harusnya username diisi dengan karakter saja, tetapi form tersebut bisa diisi dengan karakter lain, jadi para hacker bisa menyisipkan metakarakter seperti (&, ;, `, ‘, \, “, |, *, ?, ~, <, >, ^, (, ), [, ], {, }, $, \n, dan \r), 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.

    Berdasarkan hasil kegiatan dari ITSA (Informastion Technology Security Assessment) pada instansi pemerintah pusat maupun daerah, pada tahun 2018-2019 terdapat kasus serangan dengan jumlah 87 hasil temuan kerentanan SQL Injection. Temuan tersebut termasuk kedalam paling banyak (top 3 vulnerabilities). Serangan ini tentu memiliki tujuan, dan yang paling banyak ditemui sebagai berikut :
  1. Bypass Otentikasi : Jika ini berhasil, maka para peretas bisa melakukan bypass tanpa harus memasukan username dan password yang benar, hanya dengan memasukan script SQL Injection pada form yang masih terbuka.
  2. Pencurian Informasi : Dimana seorang hacker mampu mengambil semua informasi yang berada pada situs serangan atau yang berhasil di jebol, seperti data username dan password.
  3. Delete Data : Jika sudah berhasil masuk, hacker terkadang tidak segan untuk merubah isi data bahkan sampai menghapus semua data informasi yang ada di situs tersebut. Maka dari itu kita yang memiliki sebuah website selalu dianjurkan untuk melakukan backup data secara rutin untuk keamanan.
  4. Modify Data : Selain menghapus data, para peretas juga dengan mudah mengubah isi data yang tersimpan di database menyebabkan data tidak valid.
  5. Compromised Integritas Data : Serangan yang melibatkan perubahan isi database, seorang  penyerang bisa menggunakan serangan ini untuk deface halaman web atau memasukkan konten berbahaya ke dalam halaman web.

Contoh Otentikasi SQL Injection :

Otentikasi biasa    : SELECT count (*) FROM User WHERE Username='Ronaldo' AND Password='Cristian7'

Otentikasi yang dilakukan oleh attacker : SELECT count (*) FROM User WHERE Username='qwert' or 1=1  —' AND Password='zxcvb'

    Nah itu dia contoh dan efek yang dihasilkan dari serangan SQL Injection tersebut. Lantas apakah bisa kita menghindari serangan SQL Injection tersebut? Ya, jawabannya tentu bisa. Disini saya sudah menyimpulan beberapa diantaranya untuk terhindar dari serangan 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. Mengimplementasi algoritma kriptografi untuk melindungi username dan password pengguna, sehingga nantinya 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.

    Pada dasarnya SQL Injection merupakan jenis serangan yang terbilang klasik, namun sampai saat ini masih banyak ditemukan beberapa aplikasi yang telah dikembangkan baik oleh instansi pemerintahan daerah maupun pusat, atapun perusahaan swasta. Karena itu sebuah aplikasi tidak akan terlepas dari yang namanya database, pengembangan aplikasi seharusnya selalu mempertimbangkan teknik secure programming agar tidak memudahkan penyerang untuk melakukan penetrasi kedalam database aplikasi. lakukan penerapan secure programming dan implementasi firewall dalam melakukan rancang bangun dari sebuah aplikasi.


Oke temen-temen sekian yang bisa saya sampaikan mengenai SQL Injection ya, semoga bermanfaat :) Semangat belajar ya, jangan lupa selalu melakukan backup rutin untuk kegiatan aktifitasmu saat berkaitan dengan dunia IT. 













sumber    :
https://i-3.co.id/cara-mudah-untuk-mengerti-sql-injection/
https://govcsirt.bssn.go.id/sql-injection/#:~:text=SQL%20Injection%20merupakan%20teknik%20eksploitasi,mengirimkan%20sintaks%20ke%20database%20aplikasi.

Posting Komentar

0 Komentar