SQL Injection adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi
ketika masukan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan
pengguna tidak bertipe kuat dan karenanya
dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari
sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali
sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa pemrograman
lain.
Penyebab Terjadinya SQL Injection
SQL Injection terjadi karena tidak adanya penangan
terhadap karakter-karakter tanda petik tunggal (`) dan juga karakter double
munis (-). Sehingga seorang hacker dengan mudahnya bisa menyisipkan perintah
SQL kedalam suatu parameter mautun suatu form. Karena sesungguhnya para hacker
hanya bermodalkan algoritma yang matang yang nantinya akan menjadi kode
berbahaya bagi situs yang menjadi sasaran.
Jenis - jenis Serangan SQL Injectoin
1. Identifying injectable parameters
Dengan cara ini penyerang hanya ingin menyelidiki
Aplikasi Web untuk menemukan dimana parameter dan bidang-input pengguna rentan
terhadap SQLIA.
2. Performing database finger-printing
Penyerang ingin menemukan jenis dan versi database
yang aplikasi Web menggunakan. Beberapa jenis database yang berbeda merespon
secara berbeda terhadap query dan serangan, dan informasi ini dapat digunakan
untuk “sidik jari” database. Mengetahui jenis dan versi database digunakan oleh
aplikasi Web memungkinkan penyerang untuk kerajinan serangan database specific.
3. Determining database schema
Untuk benar mengekstrak data dari database,
penyerang seringkali perlu mengetahui informasi skema database, seperti nama
tabel, nama kolom, dan tipe data kolom.
4. Extracting data
Jenis-jenis serangan menggunakan teknik yang akan
mengekstrak nilai data dari database. Tergantung pada jenis aplikasi Web,
informasi ini bisa menjadi sensitif dan sangat diinginkan untuk penyerang.
Serangan dengan maksud ini adalah Jenis yang paling umum dari SQLIA.
5.Adding or modifying data
Tujuan dari serangan ini adalah untuk menambah atau
mengubah informasi dalam database.
6.Performing denial of service
Serangan ini dilakukan untuk menutup database dari
aplikasi Web, sehingga menyangkal layanan kepada pengguna lain.
7. Evading detection
Kategori ini mengacu pada teknik serangan tertentu
yang digunakan untuk menghindari audit dan deteksi oleh mekanisme perlindungan
sistem.
8. Bypassing authentication
Tujuan dari serangan jenis ini adalah untuk memungkinkan
penyerang untuk memotong database dan mekanisme otentikasi aplikasi.
9. Executing remote commands
Jenis-jenis serangan mencoba untuk menjalankan
perintah sewenang-wenang pada database. Perintah ini Canbe disimpan prosedur
atau fungsi yang tersedia bagi pengguna database.
10. Performing privilege escalation
Serangan ini memanfaatkan kesalahan implementasi
atau kekurangan logis dalam database untuk meningkatkan hak-hak istimewa dari
penyerang. Berbeda dengan melewati serangan otentikasi, serangan ini fokus pada
pemanfaatan hak database pengguna.
Cara Pencegahan SQL Injection
1. Hal pertama yang bisa sobat lakukan adalah dengan
membatasi panjang input box (jika memungkinkan), jadi untuk membatasinya sobat
bisa menyisipkanya di kode program, agar nanti si pembobol pemula akan bingung
sejenak melihat input box nya tidakbisa diinject dengan perintah yang panjang.
2. Pada langkah kedua lakukan Filtering pada input
yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input
Validation).
3. Matikan atau sembunyikan pesan-pesan error yang
keluar dari SQL Server yang berjalan.
4. Matikan fasilitas-fasilitas standar seperti
Stored Procedures, Extended Stored Procedures jika memungkinkan.
5. Ubah “Startup and run SQL Server” menggunakan low
privilege user di SQL Server Security tab.
6. Pasang WAF ( Web Application Firewall ) Pada Web
Server sobat. WAF (Web Application Firewall) ini berperan sangat penting dalam
melindungi Web Server anda, Karena WAF bertugas sebagai penjaga web anda dari
berbagai serangan berbahaya (SQL Injection, XSS, Spam, CSRF, dll).
0 komentar:
Posting Komentar