Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Sistem Pendeteksi danPencegah Serangan SQL Injection denganPenghapusan Nilai AtributQuery SQL dan Honeypot
Satrio Gita Nugraha 5109100097
Dosen Pembimbing:
Prof. Ir. Supeno Djanali, M.Sc., Ph.D.
Baskoro Adi Pratomo, S.Kom., M.Kom.
Latar Belakang
Banyak layanan bisnis berbasis web
Latar Belakang
Aplikasi web rentan akan serangan keamanan
SQL Injection
SELECT * FROM user WHERE
id=‘1111’ AND password=‘1234’
AND CONVERT(char, no)-- ’;
SELECT * FROM user WHERE
id=‘111’ UNION SELECT * FROM member WHERE id=‘admin’--’
AND password=‘1234’;
SELECT * FROM user WHERE
id=‘admin’ AND
password=‘1234’; DROP TABLE
user; --’;
Rumusan Masalah
Bagaimana mendeteksi serangan SQL Injection?Bagaimana cara menyembunyikan lokasi web server yang sesungguhnya dari penyerang?Bagaimana membelokkan request yang terdeteksi sebagai serangan SQL injection ke Honeypot?
Solusi
SistemPendeteksi danPencegahSerangan SQL Injection denganPenghapusanNilai AtributQuery SQL danHoneypot.
Web Server(AYODHYA)
Honeypot(ALENGKA)
SQL Injection Proxy(KOSALA)
Private Network Switch
Public Network
Client Client Client
Deskripsi Aplikasi
Sistem untuk mendeteksi dan mencegahserangan SQL injection secara real-timedengan metode penghapusan atribut querySQL dan honeypot sebagai penyedia fasilitasuntuk kebutuhan analisis serangan.
Kegunaan Aplikasi
Sistem mampu berperilaku seperti sebuah webserver dihadapan penyerang.Sistem dapat mendeteksi dan mencegahserangan SQL injection pada web serversecara real-time.Sistem dapat menyediakan fasilitaspencatatan data serangan untuk kebutuhananalisis dan pembelajaran pola serangandalam bentuk honeypot.
Kebutuhan Fungsional
Menerima HTTP Request
Client
SQL Injection ProxyMenerima HTTP Response
Web ServerHoneypot
Mendeteksi Serangan SQL Injection
Menyediakan Analysis Tool
Menyediakan Log Pengaksesan
Penanganan HTTP Request
ID UJ-01Referensi Use Case
UC-001
Nama Uji Coba Menerima HTTP requestTujuan UjiCoba
Menguji fungsi penerimaan HTTP request berjalan
Kondisi awal Aplikasi berjalan dengan kondisi listening port 80
Skenario 1 Client mengirimkan HTTP request dengan GET method
Masukan HTTP request dari clientKeluaran yang diharapkan
HTTP header dari request client
Hasil Uji Coba
BERHASIL
Skenario 2 Client mengirimkan HTTP request dengan POST method
Masukan HTTP request dari clientKeluaran yang diharapkan
HTTP header dan body dari request client
Hasil UjiCoba BERHASIL
Pendeteksian SQL Injection
ID UJ-02Referensi Use Case
UC-002
Nama Uji Coba Pendeteksian SQL InjectionTujuan Uji Coba
Mengetahui kemampuan sistem dalam mengenali serangan SQL injection
Kondisi awal Aplikasi berjalan dengan kondisi listening port 80
Skenario 1 Client mengirimkan HTTP request tanpa SQL injection
Masukan HTTP request tidak mengandung SQL injection dari client
Keluaran yang diharapkan
Sistem mendeteksi request sebagai request normal
Hasil Uji Coba
BERHASIL
Skenario 2 Client mengirimkan HTTP request dengan SQL injection
Masukan HTTP request mengandung SQL injection dari client
Keluaran yang diharapkan
Sistem mendeteksi request sebagai request SQL injection
Hasil UjiCoba
BERHASIL
Penanganan HTTP Response
ID UJ-03Referensi Use Case
UC-003
Nama Uji Coba Penerimaan HTTP ResponseTujuan Uji Coba
Mengetahui kemampuan sistem untuk mengambil HTTP response yang tepat untuk kemudian dikirimkan ke client
Kondisi awal Aplikasi berjalan dengan kondisi sudah menerima HTTP request dari client
Skenario 1 Menggunakan HTTP request normalMasukan HTTP request normalKeluaran yang diharapkan
HTTP response dari web server
Hasil Uji Coba
BERHASIL
Skenario 2 Menggunakan HTTP request SQL injection
Masukan HTTP request SQL injectionKeluaran yang diharapkan
HTTP response dari honeypot
Hasil UjiCoba
BERHASIL
Ketersediaan Data Serangan
ID UJ-04Referensi Use Case
UC-004
Nama Uji Coba Ketersediaan Log Pengaksesan Pada Honeypot
Tujuan Uji Coba
Dapat melihat log pengaksesan SQL honeypot
Kondisi awal
Honeypot berjalan, HTTP request sudah diterima oleh honeypot
Skenario 1 HTTP request merupakan SQL injection dan dikirimkan kepadahoneypot.
Masukan HTTP request mengandung SQL injection
Keluaran yang diharapkan
Log pengaksesan honeypot pada basis data
Hasil UjiCoba
BERHASIL
Ketersediaan Analysis Tool
ID UJ-05Referensi Use Case
UC-005
Nama Uji Coba Ketersediaan Analysis ToolTujuan Uji Coba
Dapat menggunakan analysis tool untuk mengakses log pada honeypot
Kondisi awal Honeypot telah memiliki log pengaksesan
Skenario 1 Melihat data-data serangan pada sistem
Masukan Basis data log pengaksesanKeluaran yang diharapkan
Data-data log pengaksesanberdasarkan klasifikasi tertentu.
Hasil UjiCoba
BERHASIL
Uji Coba Serangan SQLMap
Uji Coba Serangan SQLMap
0
100
200
300
400
500
600
700
800
900
1000
1,1 1,2 1,3 1,4 1,5 2,1 2,2 2,3 2,4 2,5 3,1 3,2 3,3 3,4 3,5 4,1 4,2 4,3 4,4 4,5
Deteksi SQLMap
Total Request Masuk Terdeteksi Sebagai Serangan Tidak Terdeteksi Sebagai Serangan
Jum
lah
Requ
est
Risk, Level
Performa Penangan Request
4700
4800
4900
5000
5100
5200
5300
5400
5500
5600
Response Time (ms)
Request Method
Resp
onse
Tim
e (m
s)
Performa Deteksi SQL Injection
0
1
2
3
4
5
6
7
8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Detection Time (ms)
Request Ke
Det
ectio
n Tim
e (m
s)
Kesimpulan
Semua fungsionalitas sistem berjalan dengan baik.
Sistem mampu berperan selayaknya web serversesungguhnya.
Sistem mampu mendeteksi serangan SQL injection yang dikirimkan melalui POST method.
Sistem mampu mengatasi serangan automated SQL injection dari SQLMap.
Rata-rata waktu yang dibutuhkan untuk mendeteksi SQL injection adalah 2 millisecond sehingga tidak terlalumemberatkan sistem.
Saran
Untuk meningkatkan performa sistem, perlu digunakan libraryyang mampu menangani socket dan stream secara lebih baikdan optimal.
Untuk memudahkan pemasangan sistem pada lingkunganbaru serta kehandalan sistem, perlu digunakan bahasapemrograman yang lebih ringan dan mampu menanganisocket dengan lebih baik.
Perlu dilakukan modifikasi terhadap sistem dan metodependeteksian agar juga mampu menangani SQL injectionyang menggunakan GET method.
Terima Kasih
Satrio Gita Nugraha 5109100097
Sistem Pendeteksidan PencegahSerangan SQL Injection denganPenghapusan NilaiAtribut Query SQL dan Honeypot
Dosen Pembimbing:
Prof. Ir. Supeno Djanali, M.SC., Ph.D.
Baskoro Adi Pratomo S.Kom., M.Kom.