Pengembangan Intrusion Detection System Terhadap SQL Injection Menggunakan Metode Learning Vector Quantization
Vol. 2, No. 6, Juni 2018, hlm. 2295-2301 http://j-ptiik.ub.ac.id
Pengembangan Intrusion Detection System Terhadap SQL Injection
Learning Vector QuantizationMenggunakan Metode 1 2 3 Alex Sandro Irawan , Eko Sakti Pramukantoro , Ari Kusyanti
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: axalaxalan@gmail.com, ekosakti@ub.ac.id, ari.kusyanti@ub.ac.id
Abstrak
Database merupakan kumpulan data sistematis yang disimpan dalam suatu komputer. Database
menjadi populer dalam implementasi nya pada jaringan karena user dapat mengakses data pada database tersebut tanpa perlu menyimpan data pada komputer masing-masing user. Namun dampak dari kemudahan akses tersebut, database juga berpeluang terkena ancaman dari luar oleh orang yang tidak bertanggung jawab. Salah satu ancaman tersebut adalah injection. SQL injection merupakan salah satu tindakan yang mencurigakan yang memanfaatkan celah keamanan pada database SQL. Metode pendeteksi yang sering digunakan saat ini adalah menerapkan rule-rule yang bertujuan untuk mencegah tindakan yang membahayakan database SQL. Namun rule-rule tersebut tidak selamanya efektif, khususnya untuk metode SQL injection yang baru. Untuk itu diperlukan suatu sistem yang dapat beradaptasi dengan jenis serangan baru berdasarkan data serangan yang telah ada yaitu intrusion
detection system yang dapat beradaptasi dengan jenis serangan SQL injection yang baru. Penulis
mengimplementasikan intrusion detection system dengan menggunakan learning vector quantization dan mengujinya pada jaringan lokal. Hasil pengujian menunjukan akurasi mencapai 80 %.
Kata kunci: Intrusion Detection System, SQL Injection, Learning Vector Quantization
Abstract
Database is a collection of systematic data stored in a computer. Database becomes popular in its
implementation on the network because the user can access data on the database without need to store
data on each user's computer. But the impact of ease of access, the database is also likely to be exposed
to external threats by irresponsible people. One such threat is injection. SQL injection is one of the
suspicious actions that exploit vulnerabilities in the SQL database. The most commonly used detection
method today is to apply rules that aimed at preventing actions that harm a SQL database. However,
these rules are not always effective, especially for new SQL injection methods. For that we need a system
that can adapt to the new types of attacks based on existing attack data. Intrusion detection system that
can adapt to new types of SQL injection attacks. The author implements an intrusion detection system
using learning vector quantization method and tests it on a local network. The test results show an
accuracy of 80%.Keywords: Intrusion Detection System, SQL Injection, Learning Vector Quantization
Salah satu cara untuk mengakses internet 1. adalah menggunakan aplikasi web. Tampilan
PENDAHULUAN web yang interaktif menyebabkan pengguna
Internet saat ini merupakan kebutuhan dapat memakai web dengan mudah. Namun primer bagi masyarakat modern dalam dibalik kemudahan penggunaan web, ada faktor menunjang aktifitas sehari-hari. Dengan lain yang kurang diperhatikan yaitu keamanan perkembangan teknologi internet saat ini yang merupakan aspek penting dalam aplikasi memungkinkan pertukaran informasi seperti
web . Ancaman yang menempati urutan teratas
ilmu pengetahuan, hiburan, berita dan jenis yang dapat dilakukan pada aplikasi web adalah informasi lain secara real-time . Faktor
injection . Salah satu injection yang paling umum
kemudahan dan kenyamanan ini menyebabkan dilakukan adalah pada database SQL. SQL internet menjadi media informasi yang paling
injection merupakan salah satu tindakan yang banyak digunakan saat ini.
mencurigakan yang memanfaatkan celah keamanan pada database SQL dengan
Fakultas Ilmu Komputer Universitas Brawijaya
bypass login, memanipulasi data dan merusak database (Konda,2017).
Berdasarkan permasalahan dan penelitian sebelumnya maka penulis ingin melakukan penelitian mengenai
Host-based intrusion detection system Host based Intrusion detection system biasa
Gambar 1. Host based intrusion detection system 2.2.
Signature-based detection
Jenis intrusion detection system ini mendeteksi serangan berdasarkan pada jejak intrusi yang telah ada sehingga mengenali pola yang hampir serupa dalam mengambil keputusan. Oleh karena itu, signature dari aktifitas berbahaya akan didefinisikan sebagai
Untuk mengurangi ancaman ini, dibutuhkan mekanisme pertahanan yang dapat melindungi sistem dari injection. Metode Pencegahan yang sering digunakan saat ini adalah menerapkan
metode Learning Vector Quantization ”,dimana metode learning vector quantization ini akan digunakan untuk mengklasifikasikan query dalam kelas berbahaya maupun aman.
System terhadap SQL injection menggunakan
“Intrusion Detection
metode learning vector quantization sebesar 75%. Berdasarkan dari hasil tersebut maka metode yang akan digunakan penulis untuk mengenali SQL injection pada penelitian ini adalah metode Learning Vector Quantization (LVQ).
intrusion detection system .
propagation sebesar 60,71% dan akurasi dengan
Untuk Memeriksa Keaslian Mata Uang Kertas diperoleh akurasi dengan metode back
Quantization (LVQ) Dan Backpropagation
Menurut hasil penelitian yang dilakukan Hidayah (2014) yang berjudul Implementasi Dan Perbandingan Metode Learning Vector
90,07% dengan menggunakan metode back propagation .
Intrusion Detector Agent for Detecting SQL Injection Attacks diperoleh akurasi sebesar
Menurut hasil penelitian yang dilakukan oleh Pinzon (2010) tentang SQL injection yang berjudul AIIDA-SQL: An Adaptive Intelligent
Namun rule-rule tersebut tidak selamanya efektif, khususnya untuk metode SQL Injection yang baru. Untuk itu diperlukan suatu sistem yang dapat beradaptasi dengan jenis serangan baru berdasarkan data serangan yang telah ada.
rule-rule yang bertujuan untuk mencegah tindakan yang membahayakan database SQL.
disebut juga HIDS bekerja pada host yang akan dilindungi. Intrusion detection system jenis ini dapat melakukan berbagai macam tugas untuk mendeteksiserangan yang dilakukan pada host tersebut. HIDS dapat melihat ke dalam sistem atau file log untuk mendeteksi aktifitas intrusi. HIDS ini bersifat reaktif, yang artinya sistem akan meberikan alert pada saat intrusi telah terjadi. Adapula HIDS yang bersifat proaktif yaitu sistem dapat mengidentifikasi lalu-lintas data pada jaringan yang langsung berhubungan dengan host dan mengirimkan alert kepada para pengguna. Penempatan HIDS pada topologi jaringan dapat dilihat di Gambar 1. Host-based
2. INTRUSION DETECTION SYSTEM
lintas jaringan yang tidak layak terjadi (Ariyus, 2007).
system hanya mendeteksi aktifitas pada lalu-
didefinisikan sebagai tool, metode, sumber daya yang memberikan bantuan untuk melakukan identifikasi dan memberikan laporan terhadap aktifitas jaringan komputer. Intrusion detection
rule atau expert knowledge dalam
membandingkan dengan peristiwa yang diamati sehingga sistem dapat menilai apakah terjadi intrusi atau tidak. Signature-based detection dapat mendeteksi secara akurat terhadap jenis serangan baru yang belum diketahui.
Penulis mengimplementasikan aplikasi
intrusion detection system dengan mengacu pada Host-based intrusion detection system
dimana aplikasi akan berada pada host jaringan dengan
Intrusion detection system (IDS) dapat
- Piggyback Queries Penyerang menginputkan tambahan
3. SQL INJECTION
- Malformed Queries Penyerang menggunakan kerentanan pada hasil error message untuk mendapatkan informasi dari database :
- Inference Jenis serangan ini bergantung pada
- Alternate Encoding Jenis serangan ini menggunakan kombinasi dari spesial karakter (seperti quote, dash dll ) untuk melewati skema pertahanan :
4. LEARNING VECTOR QUANTIZATION Learning Vector Quantization merupakan
statement yang mempengaruhi hasil query : Select * from users where username=’’; drop table accounts -- and password=’’
Select bookTitle, ISBN from books where bookID = 1 UNION Select “hack”, balance from accounts where accNo = 3456 --;
web server
untuk mendapatkan informasi :
Select * from users where username= ’hello1’; select if( user() like 'root@%', benchmark(1000000, sha1('test')), 'false' ); -- ‘ and password=’’
Select * from books where bookID=1;exec(char(0x730065006c00650063 007400200040004000760065007200730069006 f006e00);
Select * from books where bookID=convert(int,(select top 1 name from sysobjects where xtype =‘u’));
salah satu metode dari jaringan syaraf tiruan yang telah banyak dimanfaatkan untuk pengenalan pola baik berupa teks, citra, suara, dan lain-lain. Metode jaringan syaraf tiruan
response-time
Gambar 2. Ilustrasi SQL injection
Proses SQL injection dapat dilakukan dengan menyisipkan perintah kedalam query normal yang dapat dilihat pada Gambar 2. Ilustrasi SQL injection.
. Dengan demikian, SQL injection dapat pula dikatakan sebagai suatu kegiatan yang menipu query dari database, sehingga seseorang yang tidak ter-otentikasi dapat mengetahui dan mendapatkan informasi yang terdapat pada database(Zam,2012).
database
SQL injection merupakan teknik untuk mengeksploitasi sebuah aplikasi web memakai data yang diberikan atau disisipkan dalam query SQL. Cara kerja SQL injection dengan cara memasukan query SQL atau perintah (command) sebagai input yang dimungkinkan melalui halaman web atau command prompt. Halaman web akan mengambil parameter dari user lalu membuat query SQL masuk kedalam
deteksi aplikasi berdasarkan pada jejak query aman dan berbahaya terdahulu yang telah dilatih dengan menggunakan algoritma learning vector quantization .
pada
3.1. Klasifikasi SQL injection
dalam penentuan bobot / model pembelajarannya, dimana pada metode
query tanpa validasi atau ilegal. Untuk
SQL injection merupakan serangan yang ditujukan pada database dengan menginputkan
learning vector quantization ditentukan hasil seperti apa selama proses pembelajaran.
learning vector quantization menerapkan supervised learning
melakukan injection , penyerang dapat melakukan nya dengan beberapa teknik penulisan :
- Tautologies Penyerang menginputkan query yang hasilnya selalu “True” :
Select * from users where username=’admin’ or 1=1 --‘ and password=’’;
- UnionQueries
” untuk mendapatkan lebih banyak data :
Penyerang menginputkan “UNION
Selama proses pembelajaran nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah pengelompokan unit unit yang hampir sama dalam satu area tertentu. Pembelajaran seperti ini sangat cocok untuk pengelompokan (klasifikasi) pola.
Secara garis besar, Proses learning vector
quantization dapat dilakukan dengan cara
berikut : 1.
Siapkan data learning dengan kelas X(m,n) dan target T atau kelas aktual.
QUERY
- α(X-Wj(lama))
Data penelitian didapat dari informasi dari sebuah paket data untuk dijadikan fitur dalam
quantization . Blok kerja program secara umum
dapat dilihat pada Gambar 3 Diagram alir proses pada aplikasi.
Pada gambar 3. dapat dilihat bahwa alur program dimulai dengan input data berupa paket data yang didapat dari perangkat jaringan dengan tujuan port 3306 yaitu port database MySQL. Kemudian pada paket data akan diambil data query untuk diproses oleh algoritma
learning vector quantization hingga
mendapatkan output notifikasi aman atau berbahaya.
Gambar 3. Diagram alir proses pada aplikasi 5.1. Data penelitian
intrusion detection system . Penulis menyediakan
5. METODOLOGI DAN PERANCANGAN
dataset pada penelitian intrusion detection
system ini yang akan digunakan sebagai data
latih dan data uji. Data tersebut berupa query SQL normal dan query SQL yang telah disisipkan perintah injection. Data yang digunakan dalam skripsi ini didapatkan dari signature attack yang telah dilakukan penulis.
5.2. Menangkap data
Menangkap data dilakukan dengan cara
listen pada port yang merupakan tujuan oleh query SQL secara default di port 3306 yang
merupakan port default service MySQL pada server yang berisi database. Paket yang ditangkap masih berupa paket data sehingga selanjutnya akan di filter untuk memudahkan sistem membaca data. Diagram alir tahap menangkap paket data dapat dilihat pada Gambar 4 Diagram alir proses menangkap data.
Metodologi dan perancangan sistem akan menyelesaikan permasalahan yang diberikan dengan menerapkan algoritma learning vector
) atau (α>eps) tidak terpenuhi atau berhenti ketika max epoch sudah terpenuhi. Setelah dilakukan training, akan diperoleh bobot akhir (W). Bobot-bobot ini nantinya akan digunakan untuk melakukan klasifikasi terhadap data baru. (Rohman, 2015).
Inisialisasi bobot (W), maksimum epoch (Max Epoch ), error minimum yang diharapkan (Eps), learning rate
(1) 2)
(α). Max
Epoch dan learning rate digunakan untuk menentukan batas ambang komputasi.
3. Melakukan proses sebagai berikut selama (epoch<max epoch
) atau (α>eps) a. epoch = epoch+1 b. Kerjakan untuk i=1 sampai n
1) Tentukan j sedemikian rupa sehingga
||X-Wj||minimum (sebut sebagai Cj)
Perbaiki Wj dengan ketentuan Jika T=Cj maka:
Epoch
Wj(baru)=Wj(lama)
(2) Jika T≠Cj maka:
Wj(baru)=Wj(lama)- α(X-Wj(lama))
(3) 3)
Kurangi nilai α (learning rate) dengan persamaan:
= − ( )
(4) 4. Kembali ke langkah ke-3, jika (epoch<max
Gambar 4 Diagram alir proses menengkap data
Ekstraksi fitur
(6)
= × 100%
- Ekstraksi fitur adalah proses untuk +
(7)
= × 100%
mengambil informasi dari sebuah data untuk dijadikan media dalam pengenalan karakter. Terdapat 5 fitur yang dapat digunakan sebagai 6.1.
Pengujian simulasi
acuan signature SQL injection yang dapat dilihat Pada pengujian simulasi, tingkat akurasi pada Tabel 1. Karakter set tiap huruf. dan recall yang paling tinggi didapat pada
Tabel 1. Karakter set tiap fitur skenario 2 dengan parameter 15 data latih.
Sedangkan pada skenario lainnya tingkat akurasi
fitur Kategori Karakter
dan recall cenderung cenderung menurun sejak
alphanumeric [a-z][A-Z][0-9] setelah skenario 2 dengan sifat yang fluktuatif.
1 Punctuation <, >, ‘ , “, ;, _, (, ), =, {, },
Data lengkap pengujian skenario dapat dilihat
@, ., ,, &, [, ], +, -, ?, %,
pada Tabel 6.2 Data pengujian simulasi, Gambar
#, !, :, \, /
4. Grafik tingkat presisi pengujian simulasi,
2 Special Xp_, @@, sp_, --, 0x,
Gambar 5. Grafik tingkat recall pengujian
combination or, /*, */, ||, >>, \\,
simulasi dan gambar 6. Grafik tingkat akurasi &#x, &#, .. pengujian simulasi.
3 White space Space, tab, line feed carriage return
4 Remaining Every other character 6.
PENGUJIAN DAN ANALISIS HASIL
Pada tahap ini dilakukan proses pengujian untuk mengetahui apakah sistem dapat bekerja dengan baik atau tidak. Uji coba dilakukan untuk menggambarkan pengujian terhadap sistem deteksi SQL injection menggunakan metode
learning vector quantization. Pengujian Gambar 4 Grafik tingkat presisi pengujian simulasi
terhadap sistem dilakukan untuk mengetahui tingkat presisi, recall dan akurasi yang dapat dihitung dengan melihat jumlah alert yang dihasilkan aplikasi. Terdapat empat alert yang dapat dihasilkan aplikasi.
- True Negative (TN) : kondisi dimana data aman dan hasil klasifikasi dari sistem adalah “aman”.
- True Positive (TP) : kondisi dimana data berbahaya dan hasil klasifikasi dari sistem adalah “berbahaya”.
Gambar 5. Grafik tingkat recall pengujian simulasi
- False Negative (FN) : kondisi dimana data bahaya dan hasil klasifikasi dari sistem adalah “aman”.
- False Positive (FP) : kondisi dimana data aman dan hasil klasifikasi dari sistem adalah “berbahaya”. Setelah jumlah setiap alert telah diketahui, maka nilai presisi, recall dan akurasi dapat dihitung dengan menggunakan persamaan berikut :
(5)
= × 100% Gambar 6. Grafik tingkat akurasi pengujian
- simulasi
Pengujian real attack
alphanumeric, punctuation, special combination dan remaining character lalu
based Web Application Firewall for SQL
Mossa, Asaad., 2010. Artificial Neural Network
<https://www.owasp.org/index.php/Cate gory:OWASP_Top_Ten_Project> [diakses pada 05 Juli 2017]
Release Candidate . [online] tersedia di
Konda, Matt., 2017. OWASP Top 10 - 2017
Keaslian Mata Uang Kertas. [e-journal]. Tersedia melalui: Perpustakaan Universitas Sumatera Utara <repository.usu.ac.id/bitstream/12345678 9/40443/7/journal.pdf> [diakses pada 05 Juli 2017]
Quantization (LVQ) Dan Backpropagation untuk Memeriksa
Hidayah, Fitri Yutari., 2014. Implementasi Dan Perbandingan Metode Learning Vector
Ariyus, Dony., 2007. Intrusion Detection System : Sistem Pendeteksi Penyusup pada Jaringan Komputer. Yogyakarta: Penerbit Andi.
2. Evaluasi tingkat akurasi dilakukan dengan cara menguji aplikasi dengan menggunakan data query yang bervariasi kedalam algoritma learning vector quantization ketika aplikasi terpasang pada suatu jaringan. Dengan menggunakan parameter dengan hasil akurasi yang paling maksimal didapatkan akurasi pada aplikasi deteksi SQL injection mencapai 80%.
akan memasuki mode text sebagai process yang berjalan yang akan menangkap dan mengklasifikasi query yang menuju database .
injection yang akurat, Setelah itu aplikasi
memproses nilai tersebut kedalam algoritma learning vector quantization sehingga mendapatkan pola query SQL
metode menangkap data yang menuju port service MySQL, Konversi data menjadi kode ASCII, Meng-ekstrak data kedalam beberapa fitur yang sesuai yaitu
Mengacu pada hasil pengujian simulasi maka pengujian real attack menggunakan parameter 15 data training
vector quantization dengan menerapkan
Intrusion detection system dapat dibangun dengan menerapkan algoritma learning
Kesimpulan yang dapat diambil dari penelitian yang dilakukan penulis adalah sebagai berikut : 1.
KESIMPULAN
, α 0,2 , pengali α 1 dan max epoch 500 tersebut tingkat recall mencapai 68 % dan tingkat akurasi mencapai 80%. Selain itu pada pengujian kedua ini di masukkan beberapa query yang berbeda dengan data training.
Variasi data latih tersebut digunakan untuk menjadi data latih yang digunakan pada pengujian real attack. Dengan menggunakan parameter 15 data training
Gambar 7. Grafik tingkat presisi, recall dan akurasi pengujian real attack
, α 0,2 , pengali α 1 dan max epoch 500.
Pada pengujian simulasi terdapat persamaan pada beberapa parameter. Semakin banyak data latih yang digunakan maka tingkat akurasi dan recall dari aplikasi akan semakin berkurang hal ini disebabkan semakin banyak variasi data latih maka bobot nilai akhir pada sistem akan saling mendekati satu sama lain sehingga batas antara hasil query aman dan berbahaya semakin kecil. Tingkat akurasi dan recall tertinggi menggunakan parameter 15 data training
TP = 29 % 89,47% 68% 80% FN = 21 % FP = 4 %
Recall Akurasi TN = 46 %
Tabel 2. Hasil pengujian real attack Alert Presisi
, α 0,2 , pengali α 1 dan max epoch 500. Pada pengujian ini aplikasi akan menerima 120 data yang berupa 50 data aman dan 70 data berbahaya atau SQL injection. Hasil lengkap pengujian real attack dapat dilihat pada tabel 5.3 hasil pengujian real attack dan gambar 7. Grafik tingkat presisi, recall dan akurasi pengujian real attack.
DAFTAR PUSTAKA
publication <http://waset.org/publications/1001/artifi cial-neural-network-based-web- application-firewall-for-sql-injection> [diakses pada 05 Juli 2017]
Pinzon, Cristian., 2010. AIIDA-SQL: An Adaptive Intelligent Intrusion Detector Agent for Detecting SQL Injection Attacks” [e-journal]. Tersedia di : ieeexplore <http://ieeexplore.ieee.org/ielx5/5594713 /5600012/05600026.pdf> [diakses pada
05 Juli 2017] Puspitaningrum, Diyah., 2006. Pengantar Jaringan Saraf Tiruan. Penerbit Andi.
Jogjakarta. Rohman Hariri, Fajar dkk., 2015. Learning
Vector Quantization untuk klasifikasi
Abstrak Tesis. [e-journal]. Tersedia melalui: AMIKOM Yogyakarta <ojs.amikom.ac.id/index.php/citec/article /download/369/349> [diakses pada 05 Juli 2017]
Zam, Efvy., 2012, SQL Injection : Jurus Menembus Keamanan Situs Web Paling Jakarta: Penerbit PT Elex Media Komputindo