HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Ketahui Bahaya SQL Injection Demi Keamanan Data

Beberapa bulan terakhir ini kita dikejutkan dengan adanya hacker yang mendapatkan data dari pejabat negara. Tentu saja hal ini menjadi ancaman yang cukup serius terhadap keamanan sebuah website. Perkembangan teknologi juga berbanding lurus dengan pertumbuhan kejahatan. Penjahat selalu mencari celah yang bisa dimanfaatkan untuk mendapatkan keuntungan.

SQL Injection merupakan jenis kejahatan baru akibat perkembangan teknologi digital. SQL injection bahkan masuk dalam kategori cybercrime, yaitu tindakan ilegal yang dilakukan seseorang untuk mencuri data. Serangan injeksi SQL ini dapat mencakup pencurian dan manipulasi database. Bayangkan jika database yang diretas itu adalah database aplikasi keuangan yang kita gunakan, tentu tidak akan sulit untuk mendapatkan email, password, dan data pribadi lainnya. Sangat berbahaya bukan?

Definisi SQL Injection

SQL Injection adalah teknik peretasan yang menyalahgunakan celah keamanan di lapisan SQL berbasis data aplikasi. Kesenjangan terbentuk karena input yang tidak tersaring dengan baik selama produksi, sehingga menimbulkan kesenjangan yang dapat disalahgunakan.

Biasanya hacker menggunakan perintah atau query SQL dengan tools tertentu untuk mengakses database. Injeksi kode dilakukan memungkinkan mereka untuk login tanpa proses otentikasi. Setelah upayanya berhasil, peretas bebas menambah, menghapus, dan mengubah data di situs web.Dalam banyak kasus, ini menyebabkan perubahan terus-menerus pada konten atau perilaku aplikasi. Kemudian SQL Injection juga dapat dilakukan dengan mengubah logika aplikasi dengan memodifikasi query untuk mengacaukan logika aplikasi seperti serangan UNION yang memungkinkan untuk mendapatkan data dari tabel database yang berbeda.

SQL Injection dapat menyerang berbagai jenis website yang menggunakan database SQL, seperti MySQL, Oracle, SQL Server dan lain-lain. Secara umum, serangan SQL Injection terjadi ketika administrator situs tidak menerapkan firewall atau sistem keamanan yang memadai. Hal ini sering kali memungkinkan penyerang melihat data yang biasanya tidak dapat mereka pulihkan. Ini dapat mencakup data milik pengguna lain atau data lain apa pun yang dapat diakses oleh aplikasi itu sendiri. 

Jenis SQL Injection

Jenis SQL Injection berdasarkan cara mengakses data backend dan seberapa besar potensi kerusakan yang ditimbulkannya, ada 3 jenis, yaitu:

1. In-band SQL Injection

In-band SQL Injection adalah jenis serangan yang paling umum. Dengan jenis serangan SQL ini, penyerang menggunakan saluran komunikasi yang sama untuk menyerang dan mengumpulkan data. Teknik ini memiliki dua jenis serangan yaitu error-based SQL injection dan union-based SQL injection. Dengan menggunakan teknik teknik error-based SQL injection, penyerang memperoleh informasi tentang struktur database ketika mereka menggunakan perintah SQL untuk menghasilkan pesan kesalahan dari server database. Sedangkan union-based SQL injection digunakan oleh penyerang untuk menggabungkan pernyataan pilihan ganda dan mengembalikan respons HTTP. Seorang penyerang dapat menggunakan teknik ini untuk mengekstrak informasi dari database.

2. Inferential SQL Injection

Inferential SQL injection atau dikenal juga dengan blind SQL injection karena database situs web tidak mengirimkan data ke penyerang seperti injeksi SQL in-band, namun penyerang dapat mempelajari struktur server dengan mengirimkan muatan data dan observasi respons. Inferential SQL injection kurang umum dibandingkan in-band SQL injection karena memerlukan waktu lebih lama.. Injeksi SQL inferensial dapat dibagi menjadi dua subtipe: 
  • Time-based SQL Injection: Penyerang mengirimkan kueri SQL ke database dan menyebabkan database menunggu beberapa detik sebelum memberikan respons terhadap kueri tersebut sebagai benar atau salah.
  • Boolean SQL Injection: Penyerang mengirimkan kueri SQL ke database dan mengamati respons dari aplikasi yang memberikan hasil benar atau salah.

3. Out-of-band Sql Injection

Out-of-band SQL injectionadalah jenis serangan yang paling jarang terjadi. Dengan jenis serangan SQL injection ini, penyerang menggunakan saluran komunikasi berbeda untuk menyerang dan mengumpulkan hasil. Penyerang menggunakan metode ini jika server terlalu lambat atau tidak stabil untuk menggunakan jenis serangan SQL injection lainnya.

Alur SQL Injection

Proses serangan SQL injection dapat dibagi menjadi beberapa tahapan, antara lain:

  • Peretas akan mencari celah keamanan di database. Biasanya celah keamanan terhadap SQL injection terdapat pada form login.Saat pengguna masuk, situs mengautentikasi dengan permintaan.
  • Jika terjadi serangan SQL injection, hacker dapat login tanpa menggunakan password menggunakan SQL Comment Sequence dengan tanda minus ganda (–). Jadi query nya juga akan berubah.
  • Validasi SQL query digunakan. Query yang digunakan oleh hacker akan diurutkan oleh database. Oleh karena itu, sistem akan mengizinkan peretas ini untuk login dengan pengguna tanpa memverifikasi kata sandi.
  • Akses basis data berhasil. Jika Anda sudah mencapai langkah ini, berarti peretas telah memperoleh akses ke situs web tanpa verifikasi. Kini para hacker bahkan bisa menjadikan dirinya sebagai administrator sehingga bisa dengan mudah mengakses seluruh data yang ada bahkan melakukan perubahan terhadapnya.

Alasan Harus Waspada dengan SQL Injection

Setelah melihat alur kerja serangan SQL injection, kita juga perlu melihat beberapa alasan mengapa SQL injection dinilai sangat berbahaya, antara lain:

  • Verifikasi koneksi dapat dengan mudah disusupi. Peretas dapat mengakses situs web atau aplikasi tanpa nama pengguna dan kata sandi yang valid.
  • Privasi pengguna situs web atau aplikasi mungkin terancam.
  • Data dari suatu website atau aplikasi dapat dengan mudah dicuri.
  • Database dimodifikasi
  • Data basis data historis mungkin dihapus. Jika hacker telah mengubah dirinya menjadi admin maka ia dapat menghapus semua data historis dari database karena tidak ingin terdeteksi.
  • OS Command Execution dan pembobolan Firewall

Pencegahan yang Bisa Dilakukan

Kita tentu perlu mencegah serangan SQL Injection yang bisa terjadi kapan saja. Berikut beberapa cara yang dapat digunakan:
  • Atur format pengisian. Misalnya kita bisa mengisi form dengan tipe data tertentu, selain itu kita bisa membatasi jumlah maksimal karakter yang bisa dimasukkan. Misalnya pola nama hanya boleh menggunakan huruf dan dibatasi 15 karakter.
  • Validasi input data. Input data terbagi menjadi 2 jenis, yaitu whitelisting (menyaring data dengan menerima inputan data yang sudah pasti aman), dan blacklistening (menolak input data yang diketahui berbahaya, seperti penggunaan karakter tertentu)
  • Gunakan parameterized SQL query. Tujuannya adalah untuk membedakan antara SQL query dan data yang dimasukkan pengguna.
  • Gunakan SQL Escape String, dimana kita akan menggunakan serangkaian kode yang menambahkan karakter escape atau mengganti karakter yang dianggap berbahaya dengan karakter lain.
  • Matikan notifikasi error. Fitur ini dapat dimanfaatkan oleh para hacker untuk mencari celah pada website yang kita miliki.
  • Menggunakan WAF (Web Application Firewall) dan IPS (Intrusion Prevention System)
Kejahatan bisa terjadi dimana saja, bahkan di dunia digital sekalipun. Segala sesuatu yang melibatkan data pelanggan harus dilindungi. Serangan SQL Injection bukan satu-satunya kejahatan yang akan kita hadapi karena banyak penjahat dunia maya yang mengancam situs web atau aplikasi kita.Oleh karena itu, kita harus tetap waspada dan terus meningkatkan keamanan situs internet. Namun sebelum melanjutkan ke tingkat lanjutan, Anda harus mengetahui dasar-dasar SQL.
5/5 - (1 vote)
Anisa Sifa

Recent Posts

Ingin Membuat Website E-Commerce Yang Menarik? Perhatikan Tips Ini

Design website toko online tidak hanya soal estetika, tapi juga UX yang bagus secara keseluruhan.…

16 hours ago

Apa Saja Jenis Proyek yang Bisa Dikerjakan UX Designer? Yuk Simak Di Sini

Sebelum memulai karir Anda sebagai desainer UX, Anda harus membuat portofolio yang mencakup semua pengalaman…

2 days ago

Aktifkan Keep-Alive Untuk Meningkatkan Performa Website Anda

Keep-Alive memungkinkan browser pengunjung Anda mendownload semua konten (JavaScript, CSS, gambar, video, dll) melalui koneksi…

3 days ago

Baca Ini Untuk Pelajari Apa Saja Job Description Web Developer

Job description seorang web developer adalah membuat situs web menggunakan berbagai bahasa pemrograman. Tanggung jawab…

4 days ago

Rekomendasi Tools A/B Testing untuk Meningkatkan Conversion Rate

Secara default, WordPress tidak mendukung A/B testing. Tapi jangan khawatir. Di bawah ini, kami telah…

5 days ago

Ingin Menjadi UX Designer? Coba Pelajari Apa Saja Tugasnya!

UX design merupakan singkatan dari User Experience design atau desain pengalaman pengguna. Istilah ini sering…

7 days ago