Apa Itu SQL Injection?

Apa Itu SQL Injection?

Sadarkah Anda, bahwa sekarang ini semakin banyak cybercrime atau kejahatan siber yang dilakukan dengan memanfaatkan perkembangan internet dan teknologi yang merajalela? Dilansir dari Astra, menurut catatan kejahatan internet FBI, kurang lebih 422 juta orang terkena cybercrime per tahun 2022 dan 80% dari cybercrime yang dilaporkan umumnya disebabkan oleh serangan phishing.

Selain cybercrime seperti phising, ransomware, deface website dan email hingga penipuan online, ada juga jenis kejahatan baru yaitu SQL Injection. Pada artikel ini, kami akan menjelaskan apa itu SQL Injection, bagaimana cara kerja serangan tersebut dan bagaimana cara mencegah injeksi SQL.

Apa Itu SQL Injection?

SQL Injection merupakan jenis cybercrime berbentuk serangan injeksi yang bisa mengeksekusi statement SQL berbahaya agar dapat mengendalikan server database di balik aplikasi web.

Dengan memanfaatkan kerentanan SQL Injection, hacker dapat menerobos langkah-langkah keamanan dalam suatu aplikasi seperti melewati otentikasi dan otorisasi halaman web atau aplikasi web. Selain itu, mereka juga bisa mengambil seluruh basis data SQL dan menambah, memodifikasi, serta menghapus catatan dalam database.

Secara umum, SQL Injection memungkinkan penyerang untuk melihat data yang biasanya tidak dapat mereka ambil. Ini mungkin termasuk data milik pengguna lain, atau data lain yang dapat diakses oleh aplikasi itu sendiri. Dalam banyak kasus, hacker menyebabkan perubahan terus-menerus pada konten atau perilaku aplikasi.

Dilansir dari OWASP, SQL Injection menduduki peringkat ketiga resiko serangan cyber terbesar sebanyak 94%. Injeksi ini dapat menyerang semua website yang menggunakan SQL sebagai database seperti SQL Server, MySQL dan PostgreSQL. Serangan ini umumnya rawan terjadi bila web developer tidak menggunakan firewall atau sistem keamanan yang lain.

Dalam beberapa situasi, penyerang dapat meningkatkan serangan injeksi SQL untuk mengkompromikan server yang mendasarinya atau infrastruktur back-end lainnya dan melakukan serangan denial-of-service.

Apabila suatu serangan SQL berhasil, maka hacker akan mendapatkan akses tidak sah ke data sensitif, seperti kata sandi, detail kartu kredit, atau informasi pribadi pengguna. Banyak pelanggaran data profil tinggi dalam beberapa tahun terakhir merupakan hasil dari serangan injeksi SQL, yang menyebabkan kerusakan reputasi dan denda peraturan.

Dalam beberapa kasus, hacker bisa mendapatkan jalan pintas yang dapat dimasuki terus-menerus ke dalam sistem organisasi, yang mengakibatkan serangan jangka panjang yang bisa tidak diketahui dalam waktu lama.

Bagaimana Cara Kerja Serangan SQL Injection?

cara kerja sql injection

Untuk memulai serangan injeksi SQL, hacker harus lebih dulu menemukan halaman website atau aplikasi website yang rentan form input/login websitenya terhadap SQL Injection kemudian memasukkan kueri SQL berbahaya dan menunggupengguna yang rentan dalam halaman website atau aplikasi website sebagai sumber masuk (input).

Selanjutnya kueri SQL divalidasi dan perintah dieksekusi oleh database. Setelahnya, hacker mendapatkan akses untuk melihat dan mengambil data atau berperan sebagai administrator website atau aplikasi tersebut.

Penyerangan ini terjadi karena ada celah dalam keamanan, biasanya disebabkan oleh developer yang tidak menghidupkan firewall atau tidak mengaktifkan filter untuk meta karakter di form input yang ada pada website atau aplikasi.

Singkatnya, pintu masuk dari serangan ini adalah melalui form username. Seharusnya, form username hanya diisi karakter saja. Tapi, karena form tersebut bisa diisi dengan karakter lain, hacker dapat menyematkan karakter kontrol SQL seperti : (titik dua), ; (titik koma), – (tanda hubung), = (sama dengan) dan ’(tanda kutip) serta kata kunci perintah yang bisa merusak tatanan database. Akhirnya, hacker mampu memasukkan kueri SQL injection dan website telah berhasil diretas.

Karena ada banyak aplikasi web dan situs web yang menyimpan semua data dalam basis data SQL dan menggunakan SQL untuk menjalankan sistem operasi, serangan SQL Injection yang berhasil dapat menimbulkan konsekuensi yang sangat serius, seperti:

  • Hacker dapat menemukan kredensial pengguna lain dalam database dan kemudian menyamar sebagai pengguna ini. Pengguna yang ditiru bisa jadi adalah administrator database dengan semua hak istimewa.
  • Memungkinkan hacker untuk mendapatkan akses penuh ke semua data dalam server database.
  • Hacker dapat mengubah data dalam database dan menambahkan data baru seperti dalam aplikasi keuangan, hacker dapat mengubah saldo, membatalkan transaksi, atau mentransfer uang ke akun mereka.
  • Hacker bisa menggunakan SQL untuk menghapus catatan dari database. Meskipun administrator membuat cadangan, penghapusan data dapat memengaruhi ketersediaan aplikasi sampai basis data dipulihkan.
  • Hacker dapat menggunakan SQL Injection sebagai vektor awal dan kemudian menyerang jaringan internal di belakang firewall.

Karena beberapa konsekuensi di atas, serangan ini berakibat:

  • Verification/Authentication yang bisa ditembus dengan mudah membuat keamanan website atau aplikasi menurun.
  • Privasi pengguna terancam akibat data-data dalam website yang dicuri.
  • Database yang dimodifikasi atau dihapus membuat website/aplikasi tidak bisa berjalan.
  • Pembobolan firewall dan OS Command yang bisa menyerang jaringan internal.

Bagaimana Cara Mencegah SQL Injection?

Bagaimana Cara Mencegah SQL Injection?

Setelah mengetahui pengertian dan dampak serangan SQL Injection, mari kita bahas bagaimana cara mencegah serangan ini:

  • Menggunakan WAF (Web Application Firewall) dan IPS (Intrusion Prevention System).
  • Mengatur format pengisian agar form hanya bisa diisi dengan format atau tipe karakter tertentu dan membuat batasan maksimal karakter yang bisa dimasukkan. Misalnya, hanya bisa huruf dan angka dengan maksimal 15 karakter.
  • Menggunakan parameterized SQL query sebagai pembeda diantara kueri SQL dengan data input pengguna.
  • Menggunakan SQL Escape String untuk menambahkan atau mengubah karakter escape yang dianggap berbahaya berubah menjadi karakter lainnya.
  • Melakukan 2 jenis validasi input data. Pertama whitelisting atau menerima data input yang sudah pasti aman kemudian menyaringnya. Kedua adalah blacklistening atau langsung menolak data input yang sudah diketahui dan dipastikan berbahaya.
  • Mematikan notifikasi error yang bisa dimanfaatkan oleh hacker untuk mencari celah dari website yang kita miliki.

Untuk mengetahui apakah website atau aplikasi Anda rentan terhadap serangan, Anda bisa mendeteksi secara manual dengan cara:

  • Mengirimkan karakter kutipan ‘ dan mencari kesalahan atau anomali lainnya.
  • Mengirimkan beberapa sintaks SQL untuk mengevaluasi nilai dasar (asli) dari titik masuk ke nilai yang berbeda, lalu mencari perbedaan sistematisnya.
  • Mengirimkan ekspresi boolean seperti OR 1 = 1 dan OR 1 = 2 dan mencari perbedaan dalam respons aplikasi.
  • Mengirimkan payload yang dirancang untuk memicu penundaan waktu saat dieksekusi dalam kueri SQL dan mencari perbedaan waktu yang dibutuhkan untuk merespons.
  • Mengirimkan payload OAST yang dirancang untuk memicu interaksi jaringan di luar band ketika dieksekusi dalam kueri SQL dan memantau interaksi yang dihasilkan.

Bijak dan Teliti Dalam Mengelola Website

Sebagai dampak buruk perkembangan teknologi, kejahatan juga turut berkembang dan bervariasi, salah satunya adalah kejahatan digital. Untuk itu, dalam membuat dan mengelola website atau aplikasi, Anda harus tetap teliti dan waspada.

Dalam pengelolaan website dan aplikasi, pastikan Anda tidak lupa untuk menggunakan firewall dan meningkatkan sistem keamanan agar pengguna merasa aman saat mengunjungi website atau menggunakan aplikasi Anda.

Nah, Anda bisa loh membeli salah satu jenis database yang anda inginkan tergantung preferensi Anda. Dengan menggunakan layanan Cloud VPS IDCloudHost, Anda bisa memilih SQL apa yang Anda inginkan karena ada banyak pilihannya mulai dari MySQL, MariaDB, PostgreSQL, dan lainnya.

solusi sempurna untuk bisnis anda
Subscribe here to get update