penetration testing keamanan web menggunakan sql injection

advertisement
PENETRATION TESTING KEAMANAN WEB MENGGUNAKAN
SQL INJECTION
Barkah Akbar Harahap[1], Husni Lubis [2], T. M. Diansyah [3]
Program Studi Teknik Informatika, Sekolah Tinggi Teknik Harapan
Jl. HM Joni No 70 C Medan
[1]
[2]
[3]
E-mail : [email protected] , [email protected] , [email protected]
Abstrak
Pada masa sekarang ini banyak terciptanya berbagai teknologi baru yang mendukung kinerja manusia. Teknologi
semakin berkembang pesat dengan berbagai fitur aplikasi website yang memudahkan pengguna untuk
melakukan banyak pekerjaan, seperti halnya berbagi informasi, media penyimpanan, dan melakukan transaksi
jual-beli yang dapat diakses atau dilakukan kapan saja dimana saja. Semakin berkembangnya teknologi
menghasilkan kemudahan bagi banyak pengguna akan tetapi semakin banyaknya tercipta teknologi baru semakin
tinggi pula tingkat kejahatan komputer yang terjadi. Keamanan dalam sebuah website menjadi penting, karena
data terpusat dapat diambil dan disalahgunakan oleh pihak yang tidak bertanggung jawab. Salah satu cara untuk
menguji keamanan website adalah dengan menggunakan teknik SQL Injection. SQL Injection adalah salah satu
teknik hacking dimana penyerang memasukkan karakter-karakter khusus pada url sebuah website untuk
mengeksploitasi celah keamanan yang muncul disekitar lapisan basis data pada aplikasinya. Celah keamanan
tersebut ditunjukkan pada saat user memasukkan nilai string dan karakter-karakter kontrol lainnya yang ada
dalam intruksi SQL yang tidak di-filter secara benar atau user memasukkan string dengan tipe data tidak sama
yang seharusnya tidak diproses.
Kata Kunci : Injeksi SQL, Keamanan Web, Pengujian Penetrasi
Abstract
At the present time the creation of many new technologies that support human performance. Technology is
growing rapidly with the various features of a website application that allows users to do a lot of work, as well
as information sharing, storage, and perform transactions that can be accessed or made anytime anywhere. The
continued development of technology generates a lot of convenience to the user but the increasing number of
new technologies to create the higher the level of computer crime that happened. Security in a website is
important, because centralized data can be retrieved and abused by irresponsible parties. One way to test the
security of a website is to use SQL Injection techniques. SQL injection is a hacking technique in which an
attacker can enter SQL commands via the url of a website to be executed by the database. The security hole is
shown when the user enter a value string and other control characters that exist in the SQL commands that are
not filtered properly or the user enter a string value with data type is not the same as that should not be
processed.
Keyword : SQL Injection, Web Security, Penetration Testing
1.
Latar Belakang
Pada masa sekarang ini banyak terciptanya
berbagai teknologi baru yang mendukung kinerja
manusia. Teknologi semakin berkembang pesat
dengan berbagai fitur aplikasi website yang
memudahkan pengguna untuk melakukan banyak
pekerjaan, seperti halnya berbagi informasi, media
penyimpanan, dan melakukan transaksi jual-beli yang
dapat diakses atau dilakukan kapan saja dimana saja.
Semakin berkembangnya teknologi menghasilkan
kemudahan bagi banyak pengguna akan tetapi
semakin banyaknya tercipta teknologi baru semakin
tinggi pula tingkat kejahatan komputer yang terjadi.
Keamanan dalam sebuah website menjadi penting,
karena
data
terpusat
dapat
diambil
dan
disalahgunakan oleh pihak yang tidak bertanggung
jawab. Salah satu cara untuk menguji keamanan
website adalah dengan menggunakan teknik SQL
Injection. SQL Injection adalah salah satu teknik
serangan yang dapat digunakan oleh penyerang untuk
mengeksploitasi aplikasi web, sebagai akibatnya
penyerang bisa mendapatkan akses tidak sah ke
database atau untuk mengambil informasi langsung
dari database.
Adapun tujuan yang ingin dicapai dari penelitian
ini adalah:
1. Mengetahui tentang teknik SQL Injection.
2. Mengetahui tingkat dan jenis-jenis keamanan
internet.
3. Melakukan pengujian terhadap aplikasi website
untuk mengetahui dan menganalisa tingkat
keamanan dari website yang diancang dan
website lain yang ada pada media internet.
Biltek Vol. 5, No. 021 Tahun 2015 – Sekolah Tinggi Teknik Harapan
1
4. Melakukan penelitian mengenai SQL Injection
untuk penerapan dan pencegahannya. Menarik
kesimpulan atas ujicoba dan penetration testing
keamanan web yang telah dilakukan dengan
menggunakan teknik SQL Injection.
2.
Sebelum melakukan SQL Injection dibutuhkan
sebuah website sebagai uji coba untuk penulis. Maka
penulis membuat sebuah website sederhana sebagai
bahan percobaan, interfaceyang ditampilkan adalah
sebuah link dari data artikel yang menampilkan isi
artikel. Yaitu sebagai berikut:
Metode Penelitian
Analisis Rancangan Sistem
Analisa terhadap suatu sistem sangat diperlukan
untuk mengetahui kegiatan-kegiatan yang sedang
berjalan dalam suatu sistem. Tujuan mengetahui
kegiatan-kegiatan tersebut adalah untuk memahami
dan mengerti jalannya sistem serta hambatanhambatan yang terdapat dalam sistem tersebut. Fungsi
dari analisis sistem adalah untuk mengidentifikasi
kebutuhan sistem, kebutuhan perangkat keras
(hardware), maupun kebutuhan perangkat lunak
(software)
sebagai
dasar
kebutuhan
untuk
perancangan
sistem.
Analisis
ini
akan
mengidentifikasi permasalahan dan kekurangan yang
ada pada sistem yang akan dibangun.
Data Artikel
xxxx
xxxx
xxxx
2.1
Analisis Kebutuhan Aplikasi
Dalam melakukan pengujian penetration testing
keamanan web menggunakan SQL Injection, perlu
mempertimbangkan dan menganalisa kebutuhan
perangkat keras (Hardware) dan perangkat lunak
(Software) yang akan digunakan agar pengujian
tersebut berjalan seperti yang diharapkan. Proses
pengujian penetration testing keamanan web
menggunakan SQL Injection ini membutuhkan
perangkat keras dan perangkat lunak sebagai media
dan alat yang digunakan untuk melakukan pengujian.
Gambar 1. Tampilan Halaman Website Uji Coba
Pada halaman diatas merupakan tampilan link
data artikel dari website sederhana yang diujikan,
berikut ini adalah tampilan data artikel jika link
tersebut diklik. Dapat dilihat pada Gambar 2. berikut:
Isi Artikel
xxxx
xxxx
xxxx
2.2
2.3
Perancangan Sistem
Pada proses pengujian SQL Injection yang
dilakukan adalah pengujian dilakukan pada aplikasi
website sederhana yang sengaja penulis rancang
sendiri sebagai kesimpulan sistem kerja website dan
tingkat keamanannya dapat diketahui. Aplikasi web
tidak terlepas dari penggunaan database sebagai
sumber data untuk membuat tampilan web yang
dinamis. Penggunaan aplikasi web seringkali tidak
dibarengi dengan penggunaan unsur perlindungan
terhadap akses kepada database. Lewat penggunaan
teks sederhana, seseorang bisa masuk dan login
kedalam sistem bahkan tanpa harus memasukan
username dan password, tetapi hanya dengan
memasukan query SQL kepada aplikasi. Pemaksaan
query SQL secara ilegal ini disebut dengan istilah
SQL Injection atau SQL Insertion. Karena sebenarnya
user tidak memiliki hak untuk melakukan query
terhadap database secara langsung, maka dilakukanlah
proses pemaksaan agar aplikasi melakukan suatu
query untuk tujuan tertentu, biasanya untuk
menembus bagian administrasi suatu aplikasi web.
2.4
Perancangan Interface Uji Coba
Gambar 2. Tampilan Halaman Artikel
2.5
Perancangan Database
Pada uji coba SQL Injection yang akan
dilakukan, penulis membuat sebuah database untuk
dapat dilakukan pengujian. Adapun design database
yang dibuat adalah sebagai berikut:
a. Tabel User, pada tabel ini memiliki deskripsi
dengan nama tabel “user” dan primary key “login”.
Yang dapat di lihat pada Tabel 1. berikut ini:
No
Tabel 1. Desain Tabel User
Field
Type
Width Keterangan
Name
1
Login
Varchar
20
2
Password
Varchar
20
Username
Password
User
b. Tabel Articles, pada tabel ini memiliki deskripsi
dengan nama tabel “articles” dan primary key
“id_artikel”. Dapat di lihat pada Tabel 2. berikut ini:
No
Tabel 2. Desain Tabel Articles
Field
Type
Width Keterangan
Name
1
Id
Int
11
Id Artikel
2
Articles
Varchar
200
Isi Artikel
Biltek Vol. 5, No. 021 Tahun 2015 – Sekolah Tinggi Teknik Harapan
2
Kemudian dilakukan pengujian atau penetration
testing keamanan kepada website lain yang dipilih
secara acak melalui media internet. Dengan
mengakses “http://www.google.com” pencarian target
menggunakan kata kunci “penjualan kebaya” dengan
tujuan mencari website online dengan penjualan
kebaya. Maka didapatlah target pengujian dengan
alamat
url
seperti
berikut:
“http://www.grosirkebaya.net/”.
cukup baik.
2. Teknik SQL Injection tidak dapat dijadikan acuan
untuk mendapatkan hasil yang diinginkan, tetapi
perlu juga memahami pemrograman lain seperti
Javacript, HTML dan lainnya. Hal ini dikarenakan
teknik SQL Injection hanya dapat diproses pada
sintak SQL pada halaman yang memiliki proses
query SQL.
3. Dengan pengembangan bahasa pemrograman PHP
begitu juga pemrograman yang lain, teknik SQL
Injection telah diantisipasi
dengan didukung
library baru mengikuti versi bahasa pemrograman
yang digunakan. Seperti otomatisasi pendeteksi
karakter “/” atau karakter “=” dan lainnya.
Sehingga teknik SQL Injection tidak dapat
berjalan.
Pada
activity
diagram
dibawah
ini
menggambarkan proses yang berjalan pada web.
Proses yang berlangsung terjadi setelah menguji
keamanan web tersebut, yang dapat dilihat pada
Gambar 5. berikut :
Pelaku
Gambar 3. Tampilan Website Online Yang Menjadi
Target Pengujian
Pengujian dilakukan sama halnya pada website
sebelumnya dengan memasukan perintah SQL
Injection pada url website sehingga menjadi seperti
berikut ini: “http://www.grosirkebaya.net/?id=1
Diperoleh hasil respon dari website lain yang
menjadi target uji coba tampak seperti Gambar 4.
dibawah ini:
Website
Buka Website
Menampilkan
Halaman
Insert Sql Injection
Eksekusi Sql
Database
Respon Request
Tidak
Hasil Respon
Lanjutkan
Lanjutkan Sql
Injection
Gambar 5. Activity Diagram
Berdasarkan gambar activity diagram di atas,
dapat dijelaskan bagi pengguna menjalankan aplikasi
dan juga respon sistem yang menghasilkan perintah
kemudian diinputkan dengan url.
Gambar 4. Tampilan Halaman Website Setelah
Dilakukan SQL Injection
Dalam pengujian yang ditargetkan pada sebuah
aplikasi website lain memberikan hasil yang berbeda,
SQL Injection yang diterapkan pada website
rancangan penulis sama sekali tidak mendapatkan
respon. dengan beberapa kesimpulan keamanan yang
dapat dijelaskan sebagai berikut:
1. Aplikasi website tidak seluruhnya dapat dengan
mudah untuk dilakukan SQL Injection, hal ini
dikarenakan kemanan aplikasi website tersebut
3.
Hasil & Pembahasan
Tampilan Halaman Website Uji Coba
Gambar 6. Tampilan Halaman Website Uji Coba
Biltek Vol. 5, No. 021 Tahun 2015 – Sekolah Tinggi Teknik Harapan
3
Tampilan Halaman Isi Artikel
Gambar 12. Respon SQL Injection Informasi Isi
Akses Login
Gambar 7. Tampilan Halaman Isi Artikel
Tampilan Respon SQL Injection Tahap Pertama
Respon SQL Injection Informasi Isi Seluruh Data
ISI
TABE
L
Gambar 8. Tampilan Respon SQL Injection Tahap
Pertama
Gambar 13. Respon SQL Injection Informasi Isi
Seluruh Data
Tampilan Respon SQL Injection Informasi Server
4.
Gambar 9. Respon SQL Injection Informasi
Server
Tampilan Respon SQL Injection Informasi Isi Tabel
Gambar 10. Respon SQL Injection Informasi Isi
Tabel
Respon SQL Injection Informasi Field
Gambar 11. Respon SQL Injection Informasi Field
Respon SQL Injection Informasi Isi Akses Login
Kesimpulan dan Saran
Kesimpulan
Dari pembahasan yang telah penulis uraikan
pada BAB sebelumnya, penulis mengambilkan
kesimpulan antara lain sebagai berikut :
1. Meskipun tergolong teknik lama, tetapi
penggunaan SQL Injection untuk mendapatkan
hak akses administrator terhadap suatu aplikasi
website masih populer. Hal ini dikarenakan tidak
sedikit aplikasi website yang membiarkan
karakter-karakter asing diinputkan kedalam query
sehingga menghasilkan lubang atau celah
keamanan. Salah satu cara pengamanan aplikasi
website yang bisa dilakukan adalah dengan
menambahkan kode, dengan begitu bisa
dilakukan proteksi keamanan terhadap aplikasi
website yang dirancang sehingga memperkecil
resiko kerusakan pada aplikasi karena ulah
penyusup yang menggunakan teknik SQL
Injection.
2. Injeksi SQL dapat dengan mudah diatasi dalam
kebanyakan
bahasa
pemrograman
yang
menargetkan aplikasi web atau menawarkan
fungsi. Misalnya dalam DBI di Perl, metode
DBI::quote meloloskan karakter khusus. Dan
pada masa sekarang ini tidak sedikit juga aplikasi
website yang sudah menerapkan tingkat
keamanan website yang cukup tinggi sehingga
teknik SQL Injection yang dilakukan tidak
mendapatkan respon.
Saran
Penetration testing keamanan web menggunakan
SQL Injection yang telah penulis lakukan masih jauh
dari kesempurnaan. Hal ini disebabkan karena
keterbatasan waktu dan pengetahuan penulis dalam
melakukannya. Adapun saran dari penulis untuk
penelitian dan pengembangan selanjutnya adalah:
Biltek Vol. 5, No. 021 Tahun 2015 – Sekolah Tinggi Teknik Harapan
4
1.
2.
Bagi pengguna website yang ingin mendaftarkan
hosting, terlebih dahulu memeriksa ataupun
menganalisa hosting yang akan disewa, sebab
dari penyewaan hosting tersebut juga dapat
terjadi pembobolan ataupun perusakan terhadap
website.
Dalam membangun sebuah website terlebih
dahulu memastikan tidak terladapat lubang pada
script yang menjadi celah untuk dirusak ataupun
dibobol website tersebut.Perlu ditambahkan fitur
offline mode (modus offline), sehingga dalam
keadaan koneksi internet buruk ataupun putus,
user masih dapat memberikan persetujuan.
Persetujuan tersebut nantinya akan diproses ke
ERP Server pada saat smartphone dalam keadaan
online (terjangkau internet).
Menggunakan Algoritma Rijndael. Jurnal
EECCIS Vol. 7, No. 1
[3] Widhiarso, Yoni. 2013. Rancang Bangun Media
Promosi dan Pemesanan Online Bagas Motor
Berbasis Web. Jurnal Seminar Riset
Unggulan
Nasional
Informatika
dan
Komputer FTI UNSA 2013
[4] Winasis, T. A. 2001. Trik Membangun Situs
Web Gratis. Jakarta. PT Elex Media
Komputindo
[5] Anggreana, J. K. 2013. Simulasi Keamanan
Pada Aplikasi Web Dengan Web Application
Firewall. Jurnal Ilmiah Komputer dan
Informatika (KOMPUTA)
Daftar Pustaka
[1] Ariyus, D. 2008. PENGANTAR ILMU
KRIPTOGRAFI Teori Analisa dan
Implementasi. Yogyakarta. ANDI
[2] Dharmawan, E. A. dan Sarosa, M. 2013.
Perlindungan Web Pada Login Sistem
Biltek Vol. 5, No. 021 Tahun 2015 – Sekolah Tinggi Teknik Harapan
5
Download