21
Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan Nilai Atribut Query SQL dan Honeypot Satrio Gita Nugraha 5109100097 Dosen Pembimbing: Prof. Ir. Supeno Djanali, M.Sc., Ph.D. Baskoro Adi Pratomo, S.Kom., M.Kom.

Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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.

Page 2: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Latar Belakang

Banyak layanan bisnis berbasis web

Page 3: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Latar Belakang

Aplikasi web rentan akan serangan keamanan

Page 4: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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; --’;

Page 5: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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?

Page 6: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 7: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Deskripsi Aplikasi

Sistem untuk mendeteksi dan mencegahserangan SQL injection secara real-timedengan metode penghapusan atribut querySQL dan honeypot sebagai penyedia fasilitasuntuk kebutuhan analisis serangan.

Page 8: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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.

Page 9: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Kebutuhan Fungsional

Menerima HTTP Request

Client

SQL Injection ProxyMenerima HTTP Response

Web ServerHoneypot

Mendeteksi Serangan SQL Injection

Menyediakan Analysis Tool

Menyediakan Log Pengaksesan

Page 10: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 11: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 12: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 13: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 14: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 15: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Uji Coba Serangan SQLMap

Page 16: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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

Page 17: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

Performa Penangan Request

4700

4800

4900

5000

5100

5200

5300

5400

5500

5600

Response Time (ms)

Request Method

Resp

onse

Tim

e (m

s)

Page 18: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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)

Page 19: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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.

Page 20: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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.

Page 21: Injection dengan Penghapusan Nilai Atributdigilib.its.ac.id/public/ITS-paper-35320-5109100097-presentationpdf.pdf · Sistem Pendeteksi dan Pencegah Serangan SQL Injection dengan Penghapusan

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.