• Tidak ada hasil yang ditemukan

Pengembangan Intrusion Detection System Terhadap SQL Injection Menggunakan Metode Learning Vector Quantization

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pengembangan Intrusion Detection System Terhadap SQL Injection Menggunakan Metode Learning Vector Quantization"

Copied!
7
0
0

Teks penuh

(1)

Pengembangan

Intrusion Detection System

Terhadap SQL

Injection

Menggunakan Metode

Learning Vector Quantization

Alex Sandro Irawan1, Eko Sakti Pramukantoro2, Ari Kusyanti3

Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]

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

1. PENDAHULUAN

Internet saat ini merupakan kebutuhan primer bagi masyarakat modern dalam menunjang aktifitas sehari-hari. Dengan perkembangan teknologi internet saat ini memungkinkan pertukaran informasi seperti ilmu pengetahuan, hiburan, berita dan jenis informasi lain secara real-time. Faktor kemudahan dan kenyamanan ini menyebabkan internet menjadi media informasi yang paling banyak digunakan saat ini.

(2)

menyisipkan query ilegal yang bertujuan untuk bypass login, memanipulasi data dan merusak database (Konda,2017).

Untuk mengurangi ancaman ini, dibutuhkan mekanisme pertahanan yang dapat melindungi sistem dari injection. Metode Pencegahan 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.

Menurut hasil penelitian yang dilakukan oleh Pinzon (2010) tentang SQL injection yang berjudul AIIDA-SQL: An Adaptive Intelligent Intrusion Detector Agent for Detecting SQL Injection Attacks diperoleh akurasi sebesar 90,07% dengan menggunakan metode back propagation.

Menurut hasil penelitian yang dilakukan Hidayah (2014) yang berjudul Implementasi Dan Perbandingan Metode Learning Vector Quantization (LVQ) Dan Backpropagation Untuk Memeriksa Keaslian Mata Uang Kertas diperoleh akurasi dengan metode back propagation sebesar 60,71% dan akurasi dengan 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).

Berdasarkan permasalahan dan penelitian sebelumnya maka penulis ingin melakukan penelitian mengenai “Intrusion Detection System terhadap SQL injection menggunakan metode Learning Vector Quantization”,dimana metode learning vector quantization ini akan digunakan untuk mengklasifikasikan query dalam kelas berbahaya maupun aman.

2. INTRUSION DETECTION SYSTEM

Intrusion detection system (IDS) dapat didefinisikan sebagai tool, metode, sumber daya yang memberikan bantuan untuk melakukan identifikasi dan memberikan laporan terhadap aktifitas jaringan komputer. Intrusion detection system hanya mendeteksi aktifitas pada lalu-lintas jaringan yang tidak layak terjadi (Ariyus, 2007).

2.1. Host-basedintrusion detection system

Host based Intrusion detection system biasa 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 intrusion detection system.

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 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.

(3)

teknik signature-based detection dimana hasil deteksi aplikasi berdasarkan pada jejak query aman dan berbahaya terdahulu yang telah dilatih dengan menggunakan algoritma learning vector quantization.

3. SQL INJECTION

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 database. 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).

Proses SQL injection dapat dilakukan dengan menyisipkan perintah kedalam query normal yang dapat dilihat pada Gambar 2. Ilustrasi SQL injection.

Gambar 2. Ilustrasi SQL injection

3.1. Klasifikasi SQL injection

SQL injection merupakan serangan yang ditujukan pada database dengan menginputkan query tanpa validasi atau ilegal. Untuk 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

Penyerang menginputkan “UNION

QUERY” untuk mendapatkan lebih banyak data :

Select bookTitle, ISBN from books where

bookID = 1 UNION Select “hack”, balance

from accounts where accNo = 3456 --;

Piggyback Queries

Penyerang menginputkan tambahan statement yang mempengaruhi hasil query :

Select * from users where username=’’;

drop table accounts -- and password=’’

Malformed Queries

Penyerang menggunakan kerentanan pada hasil error message untuk mendapatkan informasi dari database :

Select * from books where

bookID=convert(int,(select top 1 name

from sysobjects where xtype =‘u’));

Inference

Jenis serangan ini bergantung pada response-time pada web server untuk mendapatkan informasi :

Select * from users where

username=’hello1’; select if( user()

like 'root@%', benchmark(1000000,

sha1('test')), 'false' ); --‘ and

password=’’

Alternate Encoding

Jenis serangan ini menggunakan kombinasi dari spesial karakter (seperti quote, dash dll ) untuk melewati skema pertahanan :

Select * from books where

bookID=1;exec(char(0x730065006c00650063 007400200040004000760065007200730069006 f006e00);

4. LEARNING VECTOR QUANTIZATION

Learning Vector Quantization merupakan 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 learning vector quantization menerapkan supervised learning dalam penentuan bobot / model pembelajarannya, dimana pada metode learning vector quantization ditentukan hasil seperti apa selama proses pembelajaran.

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 :

(4)

2. Inisialisasi bobot (W), maksimum epoch (Max Epoch), error minimum yang diharapkan (Eps), learning rate (α). 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) (1)

2) Perbaiki Wj dengan ketentuan Jika T=Cj maka:

Wj(baru)=Wj(lama)+α(X-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 Epoch) 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).

5. METODOLOGI DAN PERANCANGAN

Metodologi dan perancangan sistem akan menyelesaikan permasalahan yang diberikan dengan menerapkan algoritma learning vector 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

Data penelitian didapat dari informasi dari sebuah paket data untuk dijadikan fitur dalam intrusion detection system. Penulis menyediakan 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.

(5)

5.3. Ekstraksi fitur

Ekstraksi fitur adalah proses untuk mengambil informasi dari sebuah data untuk dijadikan media dalam pengenalan karakter. Terdapat 5 fitur yang dapat digunakan sebagai acuan signature SQL injection yang dapat dilihat pada Tabel 1. Karakter set tiap huruf.

Tabel 1. Karakter set tiap fitur

fitur Kategori Karakter

0 alphanumeric [a-z][A-Z][0-9]

1 Punctuation <, >, ‘ , “, ;, _, (, ), =, {, }, @, ., ,, &, [, ], +, -, ?, %, #, !, :, \, /

2 Special combination

Xp_, @@, sp_, --, 0x, or, /*, */, ||, >>, \\, &#x, &#, ..

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 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”.

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 :

𝑃𝑟𝑒𝑠𝑖𝑠𝑖 =𝑇𝑃+𝐹𝑃𝑇𝑃 × 100% (5)

𝑅𝑒𝑐𝑎𝑙𝑙 =𝑇𝑃+𝐹𝑁𝑇𝑃 × 100% (6)

𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁𝑇𝑃+𝑇𝑁 × 100% (7)

6.1. Pengujian simulasi

Pada pengujian simulasi, tingkat akurasi dan recall yang paling tinggi didapat pada skenario 2 dengan parameter 15 data latih. Sedangkan pada skenario lainnya tingkat akurasi dan recall cenderung cenderung menurun sejak setelah skenario 2 dengan sifat yang fluktuatif. Data lengkap pengujian skenario dapat dilihat pada Tabel 6.2 Data pengujian simulasi, Gambar 4. Grafik tingkat presisi pengujian simulasi, Gambar 5. Grafik tingkat recall pengujian simulasi dan gambar 6. Grafik tingkat akurasi pengujian simulasi.

Gambar 4 Grafik tingkat presisi pengujian simulasi

Gambar 5. Grafik tingkat recall pengujian simulasi

(6)

6.2. Pengujian real attack

Mengacu pada hasil pengujian simulasi maka pengujian real attack menggunakan parameter 15 data training, α 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.

Tabel 2. Hasil pengujian real attack

Alert Presisi Recall Akurasi

TN = 46 %

TP = 29 % 89,47% 68% 80%

FN = 21 %

FP = 4 %

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, α 0,2 , pengali α 1 dan max epoch 500.

Gambar 7. Grafik tingkat presisi, recall dan akurasi pengujian real attack

Variasi data latih tersebut digunakan untuk menjadi data latih yang digunakan pada pengujian real attack. Dengan menggunakan parameter 15 data training, α 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.

7. KESIMPULAN

Kesimpulan yang dapat diambil dari penelitian yang dilakukan penulis adalah sebagai berikut :

1. Intrusion detection system dapat dibangun dengan menerapkan algoritma learning vector quantization dengan menerapkan metode menangkap data yang menuju port service MySQL, Konversi data menjadi kode ASCII, Meng-ekstrak data kedalam beberapa fitur yang sesuai yaitu alphanumeric, punctuation, special combination dan remaining character lalu memproses nilai tersebut kedalam algoritma learning vector quantization sehingga mendapatkan pola query SQL injection yang akurat, Setelah itu aplikasi akan memasuki mode text sebagai process yang berjalan yang akan menangkap dan mengklasifikasi query yang menuju database.

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%.

DAFTAR PUSTAKA

Ariyus, Dony., 2007. Intrusion Detection System : Sistem Pendeteksi Penyusup pada Jaringan Komputer. Yogyakarta: Penerbit Andi.

Hidayah, Fitri Yutari., 2014. Implementasi Dan Perbandingan Metode Learning Vector Quantization (LVQ) Dan Backpropagation untuk Memeriksa 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]

Konda, Matt., 2017. OWASP Top 10 - 2017 Release Candidate. [online] tersedia di <https://www.owasp.org/index.php/Cate gory:OWASP_Top_Ten_Project> [diakses pada 05 Juli 2017]

(7)

Injection. [e-journal]. Tersedia di : Waset 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]

Gambar

Gambar 1. Host based intrusion detection system
Gambar 2. Ilustrasi SQL injection
Gambar 4 Diagram alir proses menangkap data.
Gambar 6. Grafik tingkat akurasi pengujian simulasi
+2

Referensi

Dokumen terkait

Pengguna Narkoba Menggunakan Metode Learning Vector Quantization (LVQ) ” dapat diketahui bahwa parameter seperti learning rate , pengali learning rate , jumlah data

Algoritma Learning Vector Quantization (LVQ) dapat diterapkan untuk menentukan jalur irigasi lahan pertanian di Desa Penggarutan dengan proses awal yang dilakukan

Pendekatan teknik atau metode yang akan dilakukan ke dalam jaringan syaraf tiruan metode Learning Vector Quantization (LVQ) menggunakan algoritma genetika, studi permasalahannya

Pada penelitian ini, penulis akan menganalisis akurasi pembelajaran jaringan Learning Vector Quantization (LVQ) dengan menggunakan algoritma genetika pada pengenalan

Sehingga diharapkan dengan penelitian ini dapat mengetahui cara menerapkan metode Jaringan Syaraf Tiruan Learning Vector Quantization (LVQ) berdasarkan data nilai yang ada

Penelitian ini melakukan pengembangan sistem klasifikasi pola sidik jari menggunakan algoritma Fuzzy Learning Vector Quantization (Fuzzy LVQ) dan Fuzzy Backpropagation, untuk

Metode Learning Vector Quantization yang digunakan dalam jaringan syaraf tiruan mampu mengenali setiap pola yang akan diuji jika pola tersebut memiliki kemiripan ciri dengan

Setelah dilakukan analisa data lapangan, pengujian data menggunakan algoritma Learning Vector Quantization, maka dapat diambil kesimpulan bahwa sistem pakar