Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS

Kenali 5 Serangan SQL Injection Yang Membahayakan

Belajar Data Science di Rumah 16-Mei-2023
https://dqlab.id/files/dqlab/cache/aa59832e62165e8a9561993ed5bd2b48_x_Thumbnail800.jpeg

SQL Injection merupakan salah satu risiko aplikasi/situs web yang paling sering ditemukan. Tidak dapat dipungkiri, bila SQL Injection ini menjadi permasalahan yang pelik dan harus dituntaskan ketika perusahaan memiliki keamanan data yang minim dan kurangnya penguasaan cyber crime. Berdasarkan laporan keamanan aplikasi yang dikeluarkan oleh Veracode, 32% dari aplikasi website paling tidak memiliki satu kerentanan SQL Injection. Berdasarkan Open Web Application Security Project (OWASP), SQL Injection juga merupakan ancaman nomor satu terhadap keamanan aplikasi website.


Berdasarkan informasi dari Badan Siber dan Sandi Negara (BSSN) melalui Voluntary Vulnerability Disclosure Program (VVDP), pada bulan Januari sampai April 2019 sekitar 73% dari laporan kerentanan yang diterima merupakan kerentanan SQL Injection. Melihat data statistik yang muncul meskipun masuk ke dalam kerentanan yang mudah untuk dicegah, saat ini SQL Injection tetap menjadi risiko aplikasi website yang paling sering ditemukan dan banyak organisasi memiliki kerentanan terhadap potensi bocornya data akibat adanya serangan SQL Injection ini.


Keberadaan SQL Injection ini memunculkan banyak serangan yang perlu diwaspadai oleh pemilik database agar data tidak rentan dicuri. Apa sajakah serangan serangannya? Simak informasi selengkapnya melalui artikel berikut ini yuk sahabat DQLab!


1. Tautology Based Attack

Tautology based attack adalah salah satu bentuk serangan pada sistem keamanan komputer yang menggunakan tautologi untuk mengeksploitasi celah keamanan pada sistem tersebut. Serangan ini biasanya dilakukan dengan mengirimkan serangkaian input yang terdiri dari tautologi atau pernyataan yang selalu benar ke dalam sistem yang rentan.


Tautologi sendiri adalah pernyataan yang selalu benar, tidak peduli apa pun konteks atau kondisi yang ada. Sebagai contoh, pernyataan "hari ini adalah hari yang cerah atau tidak cerah" adalah sebuah tautologi, karena tidak peduli cuaca seperti apa hari ini, pernyataan tersebut akan selalu benar.


Dalam serangan tautologi based attack, penyerang akan mengirimkan serangkaian input yang terdiri dari tautologi atau pernyataan yang selalu benar ke dalam sistem. Tujuannya adalah untuk membuat sistem menganggap input yang diberikan benar, sehingga memungkinkan penyerang untuk mengakses informasi rahasia atau melakukan tindakan yang seharusnya tidak diizinkan.

SQL

Sebagai contoh, sebuah sistem keamanan yang memvalidasi login pengguna dengan menggunakan input berupa username dan password dapat menjadi rentan terhadap serangan tautologi based attack jika sistem tersebut hanya memvalidasi keberadaan username dan password, tanpa memvalidasi apakah username dan password tersebut benar atau tidak. Dalam hal ini, penyerang dapat mengirimkan input yang terdiri dari tautologi seperti "username = username OR 1=1" dan "password = password OR 1=1", sehingga sistem akan menganggap input yang diberikan benar dan memperbolehkan penyerang untuk masuk ke dalam sistem.


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Query Ilegal

Query illegal SQL injection adalah serangan keamanan pada sistem basis data yang memanipulasi query SQL dengan cara memasukkan karakter-karakter ilegal atau karakter khusus yang tidak seharusnya ada dalam query SQL. Dengan melakukan hal ini, penyerang dapat memanipulasi query SQL dan memperoleh informasi rahasia atau melakukan tindakan yang seharusnya tidak diizinkan.

SQL

Salah satu cara yang paling umum untuk melakukan query illegal SQL injection adalah dengan memasukkan karakter tanda kutip tunggal ('') atau karakter slash () pada query SQL. Hal ini biasanya digunakan untuk mengakhiri sebuah string pada query SQL, sehingga memungkinkan penyerang untuk memasukkan perintah-perintah tambahan atau memanipulasi query SQL.


3. Union Query

Union query SQL injection adalah serangan keamanan pada sistem basis data yang memanipulasi query SQL dengan cara menambahkan perintah UNION di dalamnya. Perintah UNION digunakan untuk menggabungkan hasil query dari dua atau lebih tabel menjadi satu, sehingga memungkinkan penyerang untuk mengambil informasi rahasia dari tabel-tabel lain yang seharusnya tidak dapat diakses.

SQL

Dalam contoh ini, penyerang menambahkan perintah UNION setelah query asli, yang digunakan untuk mengambil informasi kartu kredit dari tabel credit_cards. Dengan demikian, penyerang dapat mengambil informasi rahasia dari tabel-tabel lain yang seharusnya tidak dapat diakses.


Untuk mencegah union query SQL injection, pengembang sistem basis data perlu memastikan bahwa query SQL yang dibuat aman dan tidak mudah dimanipulasi oleh penyerang. Beberapa cara yang dapat dilakukan adalah dengan memvalidasi input user, melakukan escape pada karakter-karakter khusus pada query SQL, dan menggunakan prepared statement atau parameterized query.


4. Piggy-Backed Query

Piggy-backed query SQL injection adalah serangan keamanan pada sistem basis data yang memanipulasi query SQL dengan cara menyisipkan query SQL tambahan di akhir query SQL asli yang sedang dijalankan. Teknik ini memungkinkan penyerang untuk mengeksekusi perintah-perintah tambahan yang tidak diizinkan dan mengambil data yang seharusnya tidak dapat diakses. 

SQL

Dalam contoh ini, penyerang menyisipkan perintah DROP TABLE di akhir query SQL asli, yang mengakibatkan tabel users dihapus. Penyerang juga menggunakan tanda -- pada akhir perintah untuk menghindari error pada query SQL.


Untuk mencegah piggy-backed query SQL injection, pengembang sistem basis data perlu memastikan bahwa query SQL yang dibuat aman dan tidak mudah dimanipulasi oleh penyerang. Beberapa cara yang dapat dilakukan adalah dengan memvalidasi input user, melakukan escape pada karakter-karakter khusus pada query SQL, dan menggunakan prepared statement atau parameterized query.


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


5. Stored Procedures

Serangan selanjutnya yaitu Stored Procedures. Stored procedures SQL injection adalah serangan keamanan pada sistem basis data yang memanipulasi stored procedures dengan cara menyisipkan query SQL tambahan di dalamnya. Stored procedures adalah sebuah blok kode SQL yang disimpan dalam basis data dan dapat dipanggil oleh pengguna untuk menjalankan perintah-perintah tertentu pada basis data. Teknik ini memungkinkan penyerang untuk mengeksekusi perintah-perintah tambahan yang tidak diizinkan dan mengambil data yang seharusnya tidak dapat diakses.


Berikut adalah contoh dari Stored Procedures dalam Serangan SQL Injection:

SQL

Dalam contoh ini, stored procedures get_user_details dijalankan dengan parameter @username. Penyerang dapat menyisipkan query SQL tambahan pada parameter ini, sehingga stored procedures akan mengeksekusi query SQL yang tidak diinginkan.


Untuk mencegah stored procedures SQL injection, pengembang sistem basis data perlu memastikan bahwa stored procedures yang dibuat aman dan tidak mudah dimanipulasi oleh penyerang. Beberapa cara yang dapat dilakukan adalah dengan menggunakan parameter yang tepat untuk input user, memvalidasi input user, dan membatasi hak akses pengguna pada stored procedures.


SQL menjadi hal yang sangat wajib untuk dikuasai oleh praktisi data. Hampir semua pekerjaan seorang praktisi data pasti akan melibatkan proses query pada database, sehingga meskipun tidak begitu advanced menguasai SQL, setidaknya kita bisa menguasai hal-hal fundamentalnya terlebih dahulu.


Eits, kamu gak perlu bingung harus belajar SQL dimana karena DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula. DQLab merupakan platform belajar online yang berfokus pada pengenalan Data Science & Artificial Intelligence (AI) dengan menggunakan bahasa pemrograman populer, serta platform edukasi pertama yang mengintegrasi fitur Chat GPT. Selain itu DQLab juga menggunakan metode HERO yaitu Hands-On, Experiential Learning & Outcome-based, yang dirancang ramah untuk pemula. 


Untuk mendapatkan pengalaman belajar menarik, buruan sign up di DQLab. Daftar sekarang dan kejar impianmu untuk menjadi Data Analyst!


Penulis: Reyvan Maulid


Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login