Injection dengan Penghapusan Nilai...

Preview:

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.

Recommended