Analisis Insiden Serangan SQL Injection di Indonesia

Jumat, 30 September 2022
12 min read

Data merupakan salah satu komponen terpenting dari sistem informasi. Aplikasi web yang didukung database digunakan oleh organisasi untuk mendapatkan data dari pelanggan. SQL sendiri adalah singkatan dari Structured Query Language. Ini digunakan untuk mengambil dan memanipulasi data dalam database. Namun karena hal ini juga peretas menemukan jenis serangan baru dan salah satu jenis serangannya adalah SQL Injection.

Serangan SQL injection adalah salah satu cyber crime yang menjadi ancaman sangat serius pada keamanan sebuah website. Bagaimana tidak, frekuensi kasus SQL injection berada di posisi ketiga dengan risiko serangan paling besar, berdasarkan data dari niagahoster.

Bayangkan, serangan SQL injection mencakup pencurian dan manipulasi database, termasuk email, password, data pribadi, bahkan hingga aset finansial Anda. Sangat berbahaya, bukan?

Kalian mungkin sedikit kurang familiar dengan apa itu SQL Injection (SQLI) atau cara kerjanya, tetapi kalian pasti tahu tentang korbannya. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn, dan Sony Pictures. Semua perusahaan ini diretas oleh penjahat dunia maya menggunakan SQL Injection. Seperti yang dikatakan OWASP, SQL Injection telah menjadi masalah umum dengan situs web berbasis database. Cacat ini mudah dideteksi, dan dengan mudah dieksploitasi.

Namun, apa itu SQL injection sebenarnya? Bagaimana cara kerja serangan itu dilakukan? Dan, adakah cara mencegah SQL Injection? Kali ini, kami akan membahas apa itu SQL injection secara lengkap, serta cara mudah untuk mencegahnya. Silahkan disimak!

Apa Itu SQL Injection?

SQL injection merupakan salah satu jenis injeksi berupa perintah SQL yang diinjeksikan ke dalam data-plane input untuk mempengaruhi eksekusi SQL command yang telah ditentukan. Exploitasi SQL injection yang berhasil dapat melakukan pembacaan data sensitif dari database, mengubah data pada database, menjalankan operasi administrasi pada database, dan dalam beberapa kasus mengeluarkan perintah ke sistem operasi.

Dalam situasi ini, penyerang dapat meningkatkan serangan SQL Injection untuk mengganggu server yang mendasarinya atau infrastruktur back-end lainnya, atau melakukan serangan denial-of-service.

Umumnya, hacker menggunakan perintah atau query SQL dengan tools tertentu untuk mengakses database. Injeksi kode yang dilakukan membuat mereka dapat masuk tanpa proses otentikasi. Setelah berhasil, hacker bebas untuk menambahkan, menghapus, serta mengubah data-data pada website.

Serangan SQL injection ini biasa terjadi pada situs web dan aplikasi web yang dirancang dengan buruk atau bisa dikatakan dapat ditargetkan ke website apapun yang menggunakan SQL database, seperti MySQL, Oracle, SQL Server, dan sebagainya.

Beberapa Insiden SQL Injection di Indonesia

  1. Perubahan data pada Situs KPU (2004)

  2. Serangan Xnuxer sukses dan memungkinkannya melakukan SQL Injection (manipulasi query SQL). Akibatnya, hacker asal Jogja ini bisa memodifikasi halaman web dan mengubah informasi pada situs KPU.

    Nama partai, misalnya, berubah menjadi Partai Si Yoyo, Partai Kolor Ijo, Partai Dibenerin Dulu Webnya, dan sebagainya. Bahkan, Xnuxer juga sempat berniat mengubah hasil perolehan suara namun gagal.

    “… Saya yakin sebenarnya KPU sudah banyak mendapatkan informasi mengenai celah-celah tersebut. Meski dari celah yang diinformasikan masih banyak celah lain yang tidak diketahui pada saat itu,” kata Dani setelah ditangkap polisi.

    Setelah insiden ini, situs KPU juga beberapa kali masih kena hack. Coba bayangkan kericuhan yang mungkin terjadi jika situs pemerintahan terus-terusan dimanipulasi sehingga menyebarkan misinformasi di masyarakat. Sangat berbahaya, bukan?

  3. Data Pengguna Tokopedia Bocor ke Dark Web (2020)

  4. Di tahun 2020, kabar tidak sedap menggoncang Tokopedia. Pasalnya, 91 juta data pengguna dan lebih dari tujuh juta data merchant di e-commerce ini dibocorkan oleh hacker bernama ShinyHunters.

    Masih belum jelas metode apa yang ShinyHunters gunakan. Menurut Ruby Alamsyah, pakar keamanan cyber, kemungkinan ShinyHunters memanfaatkan celah sistem cloud di Tokopedia.

    Selain itu, bisa juga hacker kelas kakap ini melakukan SQL Injection ataupun teknik yang lebih canggih lainnya.

    Gara-gara ulah ShinyHunters, data personal pengguna Tokopedia (email, nama, alamat, tanggal lahir, jenis kelamin, nomor telepon dan password yang terenkripsi) bocor ke publik.

    Bahkan, informasi tersebut dijual ke dunia maya dengan harga sekitar Rp 70 juta.

    Tokopedia pun menenangkan penggunanya dengan memastikan data sensitif seperti password aman karena terenkripsi. Artinya, informasi sudah diubah ke kode rahasia sehingga tidak bisa dibaca hacker.

    Sayangnya, hacker juga tidak kalah strategi. Penjahat cyber ini membolehkan oknum tertentu mengunduh data ilegal ini secara gratis.

    “…pelaku mau melakukan share gratis beberapa juta akun untuk membuat semacam sandiwara siapa yang berhasil membuka kode acak pada password,” duga ahli keamanan cyber, Pratama Persadha.

    Tentunya, insiden ini berpotensi membawa kerugian kepada pengguna Tokopedia. Sebab, hacker bisa memanfaatkan profil pengguna untuk scam (penipuan online) dan phising (mengambil alih akun atau sistem). Mengirim email penipuan, misalnya. Tokopedia pun segera menginvestigasi kasus dan menyarankan penggunanya segera mengganti password secara berkala.

  5. Pembobolan database Polri

    Polri juga pernah ikut menjadi korban serangan hacker. Di November 2021, hacker dengan nama akun @son1x666 mengklaim telah meretas database milik Polri melalui akun Twitternya.

    Dalam cuitannya tersebut, ada 28.000 informasi log in dan data pribadi yang dicuri. Selain itu ada tiga link berisi sampel data yang diduga berasal dari database Polri berisi informasi nama, tempat tanggal lahir, nomor registrasi pokok, alamat, golongan darah, satuan kerja, suku, alamat email, pangkat, hingga pelanggaran anggota.

    Menanggapi hal ini, Polri telah memastikan data internal dan sistem keamanan Polri tetap aman. Menurut investigasi, peretasan ini dilakukan oleh hacker yang dikenal seringkali menyerang situs pemerintah di dunia untuk menunjukkan eksistensinya dan bentuk protes ketidakadilan pemerintah terhadap rakyat.

Bagaimana sih cara kerjanya SQL Injection?

SQL Injection adalah perhatian utama saat mengembangkan aplikasi Web. Ini terjadi ketika aplikasi menerima input pengguna yang berbahaya dan kemudian menggunakannya sebagai bagian dari pernyataan SQL untuk meminta database backend.

Untuk cara kerja serangan SQL injection sendiri terjadi dalam tiga tahapan, yaitu:

  1. Hacker mengincar celah keamanan database

  2. Pertama-tama, penyerang akan mencari celah keamanan pada sebuah website atau aplikasi yang menjadi sasaran. Biasanya, celah keamanan terhadap SQL injection ada pada form loginnya.

    Selanjutnya, penyerang akan menginput kode melalui form login dengan query SQL yang akan diproses database sebagai perintah.

    Sebagai contoh, seorang pengguna memiliki username budikeren dan password budi123 di sebuah website. Ketika pengguna ini melakukan login, website akan melakukan validasi dengan query SQL berikut:

    SELECT * FROM users WHERE username = 'budikeren' AND password = 'budi123'

    Jika query yang dikirim memberikan detil login pengguna, maka loginnya berhasil. Jika tidak, maka loginnya ditolak atau gagal.

    Yang terjadi pada sebuah serangan SQL injection adalah penyerang dapat melakukan login tanpa menggunakan password dengan SQL Comment Sequence menggunakan simbol double minus (–).

    Query yang terkirim pun berubah seperti berikut:

    SELECT * FROM users WHERE username = ‘budi’--’ AND password = ‘ ’
  3. Proses validasi atas SQL Query yang digunakan

  4. Query SQL di atas membuat database melakukan proses validasi perintah. Hasilnya, database akan memberikan informasi login dari pengguna yang memiliki username budikeren tanpa mengecek passwordnya. Kemudian, sistem akan membiarkan penyerang login sebagai budi.

  5. Database berhasil diakses

  6. Penyerang berhasil masuk ke website tanpa verifikasi. Yang paling berbahaya, penyerang bisa mengubah rolenya menjadi administrator website. Kalau sudah begitu, penyerang bisa dengan mudah mengakses, memodifikasi, dan bahkan menghapus semua data pribadi pengguna website tersebut.

    Wah, berbahaya juga ya kalau itu sampai terjadi? Benar sekali

Lalu dampak berbahaya dari sebuah serangan SQL injection apa saja?

  1. Verifikasi Login bisa Ditembus

  2. Dengan SQL injection, penyerang dapat masuk ke website/aplikasi tanpa username dan password yang valid. Artinya, peran verifikasi pengguna untuk memfilter akses website bisa mudah dilewati. Kondisi ini tentu sangat membahayakan website yang menjadi sasarannya.

  3. Privasi Pengguna Website Terancam

  4. Tak hanya bisa mengakses website tanpa login, pelaku SQL injection juga dapat melakukan login sebagai pengguna lain, tergantung teknik yang digunakan.
    Dengan kondisi ini, hacker bisa mendapatkan informasi pengguna dan menyalahgunakannya untuk aktivitas ilegal. Termasuk, penipuan atas nama pengguna tersebut.

  5. Data Website Dicuri

  6. Aksi SQL injection dengan query SELECT dan OUTPUT, membuat penyerang bisa mendapatkan akses atas semua data di tabel database targetnya. Misalnya, username, password, pin rekening bank, dan kredensial lainnya.
    Dengan akses terhadap informasi sensitif di atas, data pelanggan, data pribadi, serta dokumen rahasia perusahaan pun dapat dicuri.

  7. Database Dimodifikasi

  8. Teknik SQL injection juga dapat digunakan untuk mengubah serta menambah data baru pada database. Hal ini sangat berbahaya kalau terjadi di website yang memproses transaksi keuangan seperti bank atau toko online.
    Hacker bisa saja mengubah data transaksi nasabah, bahkan memindahkan isi rekening nasabah ke rekening lain milik hacker tersebut.

  9. Riwayat Data dari Database Dihapus

  10. Tak ingin aksinya dilacak, penyerang dengan akses administrator bisa menghapus keseluruhan data pada database.
    Meskipun sebelumnya database sudah dicadangkan di cloud, serangan ini tetap berbahaya. Sebab, selama backup database belum dipulihkan, website atau aplikasi tidak dapat berjalan.

  11. OS Command Execution dan Pembobolan Firewall

  12. Beberapa server database memungkinkan akses terhadap operating system (OS). Jika serangan SQL injection berhasil mengakses OS, artinya hacker mampu menyerang jaringan internal yang ada di balik firewall dengan OS Command Execution.

    Singkatnya, SQL injection tak hanya berbahaya sebagai serangan tunggal, tapi juga membuka kemungkinan serangan berbahaya lainnya.

Lalu bagaimana cara mencegah insiden serangan SQL Injection di Indonesia tersebut terulang kembali?

  1. Mengatur Input Validation

  2. Proses ini bertujuan untuk memverifikasi jenis input yang dikirimkan oleh pengguna diperbolehkan atau tidak.
    Berikut bagaimana melakukan validasi tablename:

    switch ($tableName) { case 'fooTable': return true; case 'barTable': return true; default: return new BadMessageException('unexpected value provided as table name'); }

    Untuk drop-down list, sangat mudah untuk memvalidasi data. Misalnya, jika kamu ingin pengguna memilih rating dari 1 hingga 5, ubah kode PHP menjadi seperti ini:

    <?php if(isset($_POST["selRating"])) { $number = $_POST["selRating"]; if((is_numeric($number)) && ($number > 0) && ($number < 6)) { echo "Selected rating: " . $number; } else echo "The rating has to be a number between 1 and 5!"; ?> }
  3. Mengamankan DataBase yang Digunakan

  4. Dengan memisahkan database dan username password, maka penyerang membutuhkan usaha dan percobaan lebih karena harus memahami struktur database aplikasi.
    Beberapa cara yang dapat digunakan untuk mengamankan database :

    1. Definisikan dengan baik hak akses dari pengguna yang mengakses database serta berikan hak akses terhadap pengguna sesuai dengan hak akses yang diperlukannya (least privileged).
    2. Menggunakan teknik enkripsi untuk mengamankan data yang tersimpan didalam database.
    3. Non aktifkan akses dari publik untuk mengakses database.
    4. Lakukan penggantian password secara berkala untuk akun yang digunakan untuk mengakses database.
  5. Menonaktifkan Informasi Pesan Kesalahan Aplikasi (Error)

  6. Salah satu kebiasaan yang kerap kali dilakukan oleh pengembang aplikasi pada saat pengembangan adalah mengaktifkan mode debug guna memudahkan pengembang dalam menemukan kesalahan dalam aplikasi yang dikembangkannya. Namun kerap kali pengembang lupa untuk menonaktifkan mode debug pada saat aplikasi memasuki masa penggunaan (production). Sehingga hal ini kerap kali menjadi keuntungan bagi penyerang dengan teknik SQL Injection untuk mengetahui parameter URL mana yang rentan terhadap serangan. Untuk menghindari hal ini, pengembang cukup menonaktifkan mode debug pada aplikasi untuk mencegah pesan error yang ditampilkan oleh pihak penyerang.

  7. Lakukan Pengujian Keamanan Aplikasi Secara Berkala

  8. Hal ini bertujuan agar celah keamanan terkait aplikasi yang digunakan dapat diketahui secara dini, dengan demikian langkah preventif ataupun perbaikan terhadap celah keamanan tersebut dapat segera dilakukan.

  9. Menggunakan Perangkat Keamanan Web Application Firewall

  10. Hal ini bertujuan untuk mendeteksi dan memblokir serangan SQL Injection berjalan pada aplikasi.

Referensi

Alizanovic, V. (2022, February 11). Apa Itu SQL Injection? Ini Panduan Lengkap Cara Mencegahnya!Niagahoster. Retrieved September 26, 2022, from https://www.niagahoster.co.id/blog/apa-itu-sql-injection/

Mochamadnurulhuda. (2021, October 4). SQL Injection di Indonesia dan Beberapa Langkah Pencegahannya.Medium. Retrieved September 27, 2022, from https://medium.com/@mochamadnurulhuda16_70407/sql-injection-di-indonesia-dan-beberapa-langkah-pencegahannya-5de8b146f7f8

Risyan, R. (2020, November 12). Apa Itu SQL Injection: Cara Kerja, Contoh, Dan Jenis-Jenis. Monitor Teknologi. Retrieved September 27, 2022, from https://www.monitorteknologi.com/apa-itu-sql-injection/

Sandy, O. P. (2022, March 31). Serangan SQL Injection Jadi Aduan Siber Tertinggi Selama 2021. Cyberthreat.id. Retrieved September 27, 2022, from https://cyberthreat.id/read/13925/Serangan-SQL-Injection-Jadi-Aduan-Siber-Tertinggi-Selama-2021

Security Advisory. (2019, September 18). MENGENAL SQL INJECTION DAN CARA MENCEGAHNYA. Badan Siber Dan Sandi Negara. Retrieved September 27, 2022, from https://bssn.go.id/mengenal-sql-injection-dan-cara-mencegahnya/

Shinta, A. (2022, July 28). Apa itu SQL Injection dan Bagaimana Cara Mencegahnya. Dewaweb. Retrieved September 27, 2022, from https://www.dewaweb.com/blog/apa-itu-sql-injection/

Trivusi. (2022, September 21). 7 Jenis Serangan pada Jaringan Komputer dan Langkah Pencegahannya. Trivusi. Retrieved September 26, 2022, from https://www.trivusi.web.id/2022/08/serangan-jaringan.html

Team Member

Rizky Yugitama, S.S.T.TP., M.T

Product Owner / Mentor

Nabil Aziz Bima Anggita

Scrum Master / Pembuat Laporan / Publisher

Talita Listra

Pembuat Laporan

Izzhan Hawary

Pembuat Laporan

Muhammad Aldi Irfan

Pembuat Laporan

Muhammad Zainur Rifqi Al Munawwar

Pembuat Laporan


Topologi Jaringan

VPN