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 Quantization

  Menggunakan 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