Definisi SQL
Injection SQL Injection merupakan
salah satu jenis serangan dari banyak serangan lainnya yang dilakukan oleh
orang tidak bertanggung jawab pada aplikasi berbasis web. SQL injection
merupakan suatu perilaku memafaatkan dan menyalahgunakan sebuah celah keamanan
atau biasa kita kenal dengan hacking yang dilakukan oleh pihak yang tidak
bertanggung jawab yang dilakukan pada sebuah aplikasi web yang didalamnya
terdapat database dengan cara mengganti atau merubah script SQL yang ada pada
memori aplikasi berbasis web tersebut (Yudantoro, 2013). Sebuah
teknik peretasan yang sudah lebih dari 20 tahun lalu diungkapkan ke publik.
Namun, hingga sekarang masih banyak sekali dijumpai. Artinya hingga saat ini,
teknik SQL Injection masih menjadi teknik paling favorit para hacker untuk
melakukan peretasan pada sebuah website. Semakin pesatnya
perkembangan teknologi, pastinya juga semakin meningkatkan kasus serangan yang
mengarah ke website atau dunia internet lainnya. Bisa dibilang peretasan
website yang menjadi peringkat pertama adalah SQL Injection. Celah keamanan ini
dapat terjadi ketika masukan user yang tidak disaring dengan cara yang
benar?benra tepat dari carakter pelulus bentuk string yang ditambahi dalam
suatubperintah SQL atau bisa jadi karena masukan user tidak bertipe sangat kuat
dan oleh karena itu pada saat dijalankan tidak sesuai keinginan. Hal ini
sebenarnya merupakan salah satu sampel dari banyaknya jenis?jenis celah
keamanan yang lebih umum yang dapat terjadi pada setiap kali suatu bahasa
pemrograman atau script ditambahkan di dalam bahasa yang lainnya. SQL injection
merupakan penyalahgunaan yang target utamanya adalah informasi database yang
ada pada aplikasi berbasis web dengan cara memasukkan perintah SQL atau query
tanpa adanya validasi atau bisa diebut ilegal. SQL Injection memungkinkan
seseorang yang tidak bertanggung jawab dapat masuk kedalam sebuah aplikasi web
tanpa harus memiliki sebuah account. SQL injection juga bisa untuk merubah,
menghapus, ataupun menambahkan data ke dalam database. Dan yang lebih fatal
lagi adalah apabila hacker mematikan database itu, yang dapat berakibat
aplikasi web tersebut tidak bisa memberi layanan kepada web server. Aplikasi
web dapat dilindungi dari serangan injeksi SQL dengan mempertimbangkan dua hal
utama yaitu mekanisme untuk mendeteksi serangan injeksi SQL, dan kedua yaitu
pengetahuan tentang kerentanan injeksi SQL dalam aplikasi web. Di sini kita
akan melihat solusi paling menonjol dan cara kerjanya secara singkat dan tahu
tentang ide?ide inti dibaliknya. Salah satu cara melindungi dari serangan sql
injection yaitu dengan pendekatan pengujian keamanan database. Pendekatan ini
memiliki 3 cara yaitu deteksi titik input potensial injeksi SQL,pembuatan kasus
uji secara otomatis, menjalankan uji kasus untuk melakukan serangan pada
aplikasi untuk menemukan kerentanan basis data. Mekanisme di atas terbukti
efisien karena mampu mendeteksi titik input SQL Injection dengan tepat dan
tepat waktu sesuai harapan. Pendekatan SQL?IDS Pendekatan ini menggunakan
metode berbasis spesifikasi baru untuk mendeteksi eksploitasi kerentanan
injeksi SQL. Metode yang diusulkan di sini melakukan deteksi spesifik query
yang memungkinkan sistem untuk melakukan analisis terstruktur di hampir tidak
ada overhead komputasi. Ini adalah pendekatan yang sangat baru dan dalam penerapannya
sangat efisien. Namun, diperlukan untuk melakukan lebih banyak eksperimen dan
melakukan perbandingan dengan metode deteksi lain dibawah lingkungan yang
fleksibel dan berbagi (Baranwal,2012).
Cara
Kerja SQL Injection Adapun cara kerja SQL
Injection adalah sederhana namun efektif dalam meretas sebuah situs. Seperti
yang sudah disinggung di atas kalau para hacker bisa memasukan berbagai jenis
karakter kontrol SQL serta kata kunci perintah.
Contohnya tanda kutip
(‘), komentar (- -), sama (=), tanda kutip ganda (“) dan lain sebagainya. Untuk
bisa merubah struktur query, memakai karakter kontrol itu dengan perintah SQL
umum seperti Delete, From, Select dan lain sebagainya. Sehingga memungkinkan
hacker mengakses atau mengambil elemen data dari sebuah server database
backend.
Serangan yang berhasil,
biasanya memerlukan aplikasi web untuk menyematkan kode berbahaya dari
penyerangan dalam pernyataan SQL.
Biasanya kode berbahaya
ini berasal dari sumber yang tidak terpercaya. Untuk beberapa kasus, database
sistem internal juga bisa menjadi sumber daya yang berbahaya.
Penyerang bisa
mengakses atau merubah database. Namun hal ini tergantung dari bagaimana hacker
membuat data yang berbahaya.
Cara
Mencegah SQL Injection Untuk mengurangi atau
mencegah SQL Injection ada beberapa tindakan yang bisa Anda gunakan. Penasaran
apa saja tindakannya? Berikut pembahasan selengkapnya: 1.
Sesuaikan input box Apabila form input box tujuannya untuk
mengetikan nama, silahkan Anda berikan karakter khusus. Kalau untuk menempatkan
nomor telepon maka sebaiknya diisi dengan menggunakan numbering saja. Sehingga
tindakan penyerangan SQL Injection dapat dihindarkan.
2.
Batasi Input Box Kalau mau lebih amannya dalam setiap box haru
dibatasi jumlah karakternya. Misalnya untuk nama minimal diberikan 30 karakter
atau dapat di sesuaikan dengan keperluan Sehingga kalau ada percobaan SQL Injection yang
masuk akan terkendala oleh jumlah karakter yang telah tersediakan oleh Anda.
3.
Filter User Cara mencegah terjadi serangan SQL Injection
adalah dengan melakukan filter terhadap setiap inputan user. Terutama yang
memakai karakter kutip tunggal atau Validation Input. Pasalnya ini akan menjadi salah satu trik yang
digunakan para hacker supaya bisa melakukan serangan SQL Injection.
4.
Mematikan Error Handling Apabila terjadi error maka Anda perlu
menonaktifkan fitur notifikasi pesan error yang keluar dari SQL server. Pasalnya kalau sampai ada, ini akan dapat
menjadi celah para hacker untuk melakukan eksploitasi lebih dalam untuk
percobaan SQL Injection.
5.
Enkripsi Database Anda bisa menyimpan data yang sifatnya
credential secara terpisah. Sehingga mampu memberikan kesulitan penyerangan
dalam melakukan SQL Injection. Bahkan Anda bisa melakukan enkripsi supaya data
tersebut jauh lebih aman.
6.
Mengunci Database SQL Injection adalah teknik peretasan untuk
media website. Nah untuk mencegahnya hal ini adalah bisa melakukan kunci
database. Ada baiknya SQL query tidak bisa di akses lewat
website atau halaman pengguna. Anda bisa memberikan batasan kalau tidak semua
orang bisa melakukan akses ke sebuah tabel tertentu yakni dengan mengunci tabel
yang sangat penting atau vital.
7.
Sembunyikan Pesan Error Biasanya ada sebuah pesan error yang tampil
dari database pada saat pengguna melakukan inputan yang salah. Untuk
menghindarkan terjadinya SQL Injection adalah Anda akan diminta untuk
menyembunyikan atau menonaktifkan pesan error supaya pengguna tidak terus
mengeksploitasi arsitektur database yang dipakai. Karena bisa saja pengguna tersebut adalah
penyerang sistem Anda. Apabila mau menampilkan pesan, sebaiknya tampilkan pesan
yang menyatakan kalau sebaliknya pengguna menghubungi dukungan teknis untuk
mengatasi masalah tersebut.
8.
Setting Privilege
Anda bisa merubah pada bagian Startup and run
SQL Server dengan mengatur low privilege user di menu SQL Server Security tab. |