Skip to content

SQL Injection Detection and Prevention Analysis

Cover

Analisis mengenai teknik deteksi dan pencegahan terhadap serangan injeksi SQL menggunakan input categorization dan input verifier.

Kebocoran data mempengaruhi kerahasiaan dan integritas yang dapat merugikan berbagai pihak. Data yang tersebar dapat dimanfaatkan untuk tindak kejahatan oleh orang pihak yang tidak berwenang. Berdasarkan riset OWASP (Open Web Application Security Project) pada tahun 2017, serangan injeksi SQL menduduki posisi pertama dalam kerawanan aplikasi web teratas. Serangan injeksi SQL dapat mengambil data sensitif pada basis data. Serangan injeksi SQL umumnya terjadi pada basis data MySQL dikarenakan penggunaan basis data MySQL yang lebih populer dibanding sistem basis data lainnya. Deteksi dan pencegahan serangan injeksi SQL dapat menggunakan teknik input categorization dan input verifier. Kedua teknik tersebut berfungsi sebagai dasar yang kuat untuk mengembangkan pemeriksa masukkan agar secara otomatis mendeteksi dan mencegah serangan injeksi SQL. Penelitian ini bertujuan untuk menguji penelitian Jana et al dengan melakukan analisis teknik deteksi dan pencegahan serangan injeksi SQL berdasarkan tipe-tipe serangan pada basis data MySQL menggunakan input categorization dan input verifier. Pada penelitian ini dibangun aplikasi web dengan serta tanpa deteksi dan pencegahan serangan injeksi SQL menggunakan teknik input categorization dan input verifier. Penelitian ini menggunakan Design Research Methodology (DRM). Analisis teknik deteksi dan pencegahan serangan didapatkan dari hasil pengujian serangan injeksi SQL berdasarkan tipe-tipenya menggunakan automated tool berupa sqlmap dan secara manual. Hasil pengujian menunjukkan bahwa dengan adanya teknik deteksi dan pencegahan serangan injeksi SQL berupa input categorization dan input verifier dapat mendeteksi dan mencegah serangan injeksi SQL berdasarkan tipe-tipenya.

Judul penelitian

Analisis Deteksi dan Pencegahan Serangan Injeksi SQL pada Basis Data MySQL dengan Teknik Input Categorization dan Input Verifier.

Implementasi

Pada penelitian ini digunakan lima aplikasi berbasis web dengan dua tipe berbeda, tipe pertama adalah aplikasi yang dibekali teknik input categorization dan input verifier sedangkan tipe kedua tidak dibekali fitur tersebut. Aplikasi web terdiri dari halaman login dan CRUD (create, read, update, delete). Basis data pengguna akan dilakukan hash dengan SHA-256, sedangkan basis data aplikasi dienkripsi dengan AES-128. AES- 128 lebih cepat dan lebih efisien serta kecil kemungkinannya untuk terjadinya serangan injeksi SQL, sedangkan SHA-256 berfungsi dengan baik untuk melakukan hash pada penyimpanan password. Setelah dibangun, maka akan dilakukan serangan injeksi SQL berdasarkan tipe-tipe serangannya. Serangan injeksi SQL dibagi menjadi tiga tipe meliputi union-based SQL injection, error-based SQL injection dan blind SQL injection.

Proses bisnis aplikasi web dengan teknik input categorization dan input verifier dapat dilihat pada gambar di bawah ini.

Probis

Flowchart teknik Input Categorization ditunjukkan pada gambar di bawah ini.

Flowchart input categorization

Flowchart teknik Input Verifier ditunjukkan pada gambar di bawah ini.

Flowchart input verifier

Pada penelitian ini dilakukan pengujian serangan injeksi SQL sebanyak dua kali menggunakan automated tool berupa sqlmap dan secara manual. Pengujian secara manual akan dilakukan berdasarkan tipe-tipenya meliputi union-based SQL injection, error-based SQL injection dan blind SQL injection.

SQLMap

Teknik input categorization dan input verifier dapat mendeteksi dan mencegah serangan injeksi SQL berdasarkan tipe-tipenya meliputi union-based SQL injection, error-based SQL injection, dan blind SQL injection. Berdasarkan pengujian serangan menggunakan automated tool berupa sqlmap didapatkan hasil bahwa lima dari lima aplikasi tanpa deteksi dan pencegahan serangan injeksi SQL dapat terinjeksi serta lima dari lima aplikasi dengan deteksi dan pencegahan serangan injeksi tidak dapat terinjeksi. Pengujian serangan secara manual pada aplikasi tanpa deteksi dan pencegahan serangan injeksi SQL didapatkan lima dari lima aplikasi dapat terinjeksi menggunan blind SQL injection dan error-based SQL injection dan lima dari lima aplikasi tidak dapat terinjeksi menggunakan union-based SQL injection. Sedangkan pada aplikasi dengan deteksi dan pencegahan serangan injeksi SQL didapatkan lima dari lima tidak dapat terinjeksi menggunakan union-based SQL injection, error-based SQL injection, dan blind SQL injection. Dengan adanya kedua teknik tersebut, serangan injeksi SQL dilakukan input categorization untuk mengategorisasikan masukan pengguna. Jika terdapat masukan yang mungkin berbahaya, aplikasi akan melakukan input verifier untuk memeriksa apakah masukan tersebut berbahaya. Adanya masukan berbahaya akan membuat proses kerja aplikasi web berhenti.

Berdasarkan kedua pengujian yang telah dilakukan, lima aplikasi diuji serangan injeksi SQL berdasarkan tipe-tipenya. Lima aplikasi tanpa deteksi dan pencegahan injeksi SQL sebagian besar dapat dilakukan serangan injeksi SQL pada setiap tipe-tipenya sehingga mendapatkan informasi mengenai basis data yang digunakan aplikasi. Sedangkan lima aplikasi dengan deteksi dan pencegahan injeksi SQL seluruhnya tidak dapat dilakukan serangan injeksi SQL pada setiap tipe-tipenya sehingga tidak mendapatkan informasi basis data yang digunakan aplikasi. Aplikasi dengan deteksi dan pencegahan lebih banyak tidak terinjeksi dibandingkan dengan aplikasi tanpa deteksi dan pencegahan.

Tangkapan Layar

  1. Tampilan halaman yang diserang
    Halaman update

  2. Hasil serangan SQLMap
    Serangan SQLMap

Peneliti

  • Alya Aiman Salsabila Arif

Supervisor

  • Nurul Qomariasih
  • Hermawan Setiawan
  • I Komang Setia Buana

Publikasi

A. A. S. Arif, R. Purwoko, N. Qomariasih and H. Setiawan, "Analysis of SQL Injection Attack Detection and Prevention on MySQL Database Using Input Categorization and Input Verifier," 2022 IEEE 8th Information Technology International Seminar (ITIS), Surabaya, Indonesia, 2022, pp. 190-194, doi: 10.1109/ITIS57155.2022.10010201.