1. TUGAS
PELANGGARAN KODE ETIK BIDANG TI
“ MENEROBOS BASIS DATA SEBUAH WEB DENGAN SQL INJECTION”
Disusun untuk memenuhi tugas mata kuliah Etika Profesi Teknologi Informasi
Dosen Pengampu :
Galih A.F. M.Kom.
Yopi Nugraha, M.Kom.
Oleh :
Dede Alamsyah – 13832014
PTI 3/6 B
'
PROGRAM STUDI PENDIDIKAN TEKNOLOGI INFORMASI
SEKOLAH TINGGI KEGURUAN DAN ILMU PENDIDIKAN
( STKIP ) GARUT
2016
Jl. Pahlawan No. 32 Telp. (0262) 233556 Fax. (0262) 540649 Tarogong – Garut
2. 1. Pengertian SQL injection
SQL injection adalah jenis aksi hacking pada keamanan komputer di mana seorang
penyerang bisa mendapatkan akses ke basis data di dalam sistem. SQL Injection yaitu serangan
yang mirip dengan serangan XSS dalam bahwa penyerang memanfaatkan aplikasi vektor dan juga
dengan Common dalam serangan XSS.
SQL injection merupakan salah satu kelemahan yang paling dahsyat untuk dampak bisnis,
karena dapat menyebabkan pembongkaran semua informasi yang sensitif yang tersimpan dalam
sebuah aplikasi database, termasuk informasi berguna seperti username, password, nama, alamat,
nomor telepon, dan rincian kartu kredit. Jadi SQL injection adalah kelemahan yang diterjadi ketika
penyerang mampu mengubah Structured Query Language (SQL) di dalam database. Dengan
mempengaruhi database, penyerang dapat memanfaatkan sintaks dan kemampuan dari SQL itu
sendiri, serta kekuatan dan fleksibilitas yang mendukung fungsi database dan fungsi sistem operasi
yang hanya dilakukan dalam database.
2. Sejarah SQL Injection
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang
membahas tentang ide pembuatan basis data relasional pada bulan Juni1970. Artikel ini juga
membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data
tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional
berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL,
IBM pun mengubahnya menjadi SQL.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis
data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran
Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de factobahasa dalam
manajemen basis data. Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya
standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian
diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal
dengan SQL92.
Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan
tetapi kebanyakan implementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server
basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki
dialek masing-masing. Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition
Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda
untuk tiap sistem manajemen basis data (SMBD), namun secara umum implementasi tiap bahasa ini
memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum
yang dapat digunakan pada kebanyakan SMBD.
3. 3. Cara Kerja SQL Injection
Aplikasi web menjadi lebih canggih dan semakin teknis yang kompleks. Mulai dari internet
dinamis dan portal intranet, seperti e-commerce dan pasangan extranet, untuk HTTP dikirimkan
oleh aplikasi perusahaan seperti sistem manajemen dokumen dan ERP aplikasi. Sifat aplikasi web
dengan desain yang beragam fitur dan kemampuan web tersebut untuk menyusun, memproses, dan
menyerbarkan informasi melalui internet atau dari dalam intranet membuat aplikasi web tersebut
menjadi target yang populer untu diserang.
Aplikasi web menjadi target penyerangan juga disebabkan karena keamanan jaringan pada
pasar teknologi telah jatuh tempo dan ada sedikit peluang untuk menembus sistem informasi
melalui kelemahan networkbased, hacker semakin banyak yang berpindah fokus mereka untuk
mencoba mengkompromi aplikasi tersebut.
SQL injection merupakan serangan dimana kode SQL dimasukkan atau ditambahkan ke dalam
aplikasi/ user input parameter yang kemudian diteruskan ke SQL server back-end untuk parsing dan
eksekusi. Setiap prosedur yang membangun pernyataan SQL berpotensi untuk mudah terserang.
Bentuk injeksi utama SQL terdiri dari penyisipan langsung kode ke dalam parameter yang
digabungkan dengan perintah SQL dan kemudian dieksekusi. Sebuah serangan langsung paling
sedikit menyuntikan kode ke dalam string yang ditujukan ke penyimpanan di dalam tabel atau
sebagai metadata. Ketika string yang tersimpan akhirnya digabungkan ke dalam perintah SQL
dinamis, kode tersebut akan dieksekusi. Ketika aplikasi web gagal untuk membersihkan paramater
dengan benar dilewatkan ke pernyataan SQL yang dibuat secara dinamis (bahkan ketika
menggunakan teknik parameterisasi) ini memungkinkan untuk seorang penyerang untuk
mengubah mengubah konstruksi back-end SQL.
Ketika seorang penyerang dapat memodifikasi pernyataan SQL, pernyataan tersebut akan
dieksekusi dengan hak yang sama dengan aplikasi pengguna, saat menggunakan server SQL untuk
mengeksekusi perintah yang berinteraksi dengan sistem operasi, proses akan berjalan dengan hak
akses yang sama dengan komponen yang mengeksekusi perintah (misalnya database server, aplikasi
server, atau web server).
4. Langkah-langkah SQL Injection
• Tes Vulnerabilitas
Pengujian atau tes ini perlu dilakukan untuk mengetahui apakah sebuah situs web memiliki
celah keamanan atau tidak untuk dilakukan SQL Injection. Salah satu karakter yang sering
digunakan untuk melakukan vulnerabilitas adalah pemakaian karakter kutip tunggal (‘). Sebagai
contoh misal situs web target adalah http://www.gue.com/product.php?id=3’ Maka untuk
melakukan pengujian, penulisan kutip dituliskan setelah angka 3.
• Menentukan Jumlah Kolom
Penentuan jumlah kolom ini perlu dilakukan karena kita perlu mengetahui kolom mana dari
sebuah tabel yang bisa dimanfaatkan. Hal ini bertujuan supaya kita bisa memasukkan perintah SQL
Injection pada lokasi yang tepat. Sebab kalau kita memasukkan di tempat yang salah maka kita
tidak akan memperoleh apapun. Untuk melakukan hal ini agak bersifat “trial and error”, dimana
4. perintah yang digunakan adalah ORDER BY.
• Mencari Kolom yang Vunerable
Selanjutnya adalah mencari kolom yang memiliki celah untuk dilakukan SQL Injection.
Istilah lainnya adalah angka error.
• Menentukan Nama Database
Pada dasarnya ini bukanlah sesuatu yang penting tapi akan lebih baik agar bisa
dimanfaatkan untuk kepentingan lain
• Mencari Nama Kolom
• Menampilkan Isi data
5. Mencegah SQL Injection
• Batasi panjang input box dengan cara membatasi di kode program
• Administrator web haruslah tegas menolak user yang menginput karakter selain abjad dan
angka
• Untuk nilai numerik, konversilah menjadi integer
• Filter input yang dimasukkan user
• Jika memungkinkan, buatlah daftar karakter yang boleh digunakan
• Batasi karakter yang boleh diinput oleh pengunjung situs web anda
• Matikan atau sembunyikan pesan – pesan error yang keluar dari SQL Server yang berjalan
• Kalau bisa, hilangkan show error mysql
• Bagi yang menggunakan CMS, sangat disarankan untuk mengupdate CMS
6. Contoh Kasus yang menggunakan SQL Injection
• 2004 : Dani Firmansyah membobol situs (hacker) di Pusat Tabulasi Nasional Pemilu Komisi
Pemilihan Umum (TNP KPU).
• 11 Mei 2011 : Andi Kurniawan ( Mahasiswa STIMIK Amikom Jogjakarta ) melakukan
tindakan hacking di website Mabes Polri
• Februari 2002 : Jeremiah Jacks membobol guess.com .
• Juli 2008 : Kaspersky Malaysia telah dibobol oleh seseorang dari Turki yang dikenal sebagai
m0sted.
• November 2008 :British Royal Navy website telah dibobol oleh Seseorang Rumania dengan
Code Name TinKode
• 5 Februari 2011 : HBGary telah dirusak oleh group hacker yang menamakan diri LulzSec.
7. UU IT yang menyangkut pelanggaran etika dengan SQL Injection
Undang-Undang Nomor 11 Tahun 2008 Tentang Internet & Transaksi Elektronik (ITE) Undang-
undang.
Pasal 30 UU ITE tahun 2008 ayat 3 : Setiap orang dengan sengaja dan tanpa hak atau
melawan hukum mengakses computer dan/atau system elektronik dengan cara apapun
dengan melanggar, menerobos, melampaui, atau menjebol system pengaman (cracking,
5. hacking, illegal access). Ancaman pidana pasal 46 ayat 3 setiap orang yang memebuhi
unsure sebagaimana dimaksud dalam pasal 30 ayat 3 dipidana dengan pidana penjara paling
lama 8 (delapan) dan/atau denda paling banyak Rp 800.000.000,00 (delapan ratus juta
rupiah).
Pasal 35 UU ITE tahun 2008 : Setiap orang dengan sengaja dan tanpa hak atau melawan
hukum melakukan manipulasi, penciptaan, perubahan, penghilangan, pengrusakan informasi
elektronik dan/atau dokumen elektronik dengan tujuan agar informasi elektronik dan/atau
dokumen elektronik tersebut seolah-olah data yang otentik (Phising = penipuan situs).
REFERENSI
injeksi sql – http: .wikipedia.org
sql – http://anaktakalar.blogspot.com
uu IT - http://criminalita-informatica.blogspot.co.id/
6. hacking, illegal access). Ancaman pidana pasal 46 ayat 3 setiap orang yang memebuhi
unsure sebagaimana dimaksud dalam pasal 30 ayat 3 dipidana dengan pidana penjara paling
lama 8 (delapan) dan/atau denda paling banyak Rp 800.000.000,00 (delapan ratus juta
rupiah).
Pasal 35 UU ITE tahun 2008 : Setiap orang dengan sengaja dan tanpa hak atau melawan
hukum melakukan manipulasi, penciptaan, perubahan, penghilangan, pengrusakan informasi
elektronik dan/atau dokumen elektronik dengan tujuan agar informasi elektronik dan/atau
dokumen elektronik tersebut seolah-olah data yang otentik (Phising = penipuan situs).
REFERENSI
injeksi sql – http: .wikipedia.org
sql – http://anaktakalar.blogspot.com
uu IT - http://criminalita-informatica.blogspot.co.id/