Apa Itu SQL Injection dan Cara Mencegah SQL Injection Attack Lengkap - 3xploi7 BuG

Apa Itu SQL Injection dan Cara Mencegah SQL Injection Attack Lengkap

Apa Itu SQL Injection dan Cara Mencegah SQL Injection Attack Lengkap - SQL Injection merupakan salah satu risiko aplikasi/situs web yang paling sering ditemukan. Berdasarkan laporan keamanan aplikasi yang dikeluarkan oleh Veracode, 32% dari aplikasi web paling tidak memiliki satu kerentanan SQL Injection.

SQL Query adalah salah satu cara aplikasi terhubung ke database. SQL Injection terjadi ketika aplikasi gagal untuk membersihkan data yang tidak dipercaya(seperti data dalam bidang formulir web) dalam Query database

Attacker bisa menggunakan perintah SQL yang dibuat khusus untuk mengelabui aplikasi supaya meminta database untuk mengeksekusi perintah yang tidak terduga

Serangan SQL injection atau Injeksi SQL merupakan teknik serangan injeksi kode yang memanfaatkan celah keamanan yang terjadi pada layer basis data dari sebuah aplikasi.

Hal ini terjadi sebagai akibat dari data yang diinputkan oleh pengguna tidak dilakukan validasi dan dimuat di dalam baris perintah query SQL.

Dengan demikian menjadikan sebagian data yang diinputkan pengguna tersebut diperlakukan sebagai bagian dari kode SQL.
Berdasarkan Open Web Application Security Project (OWASP), injection juga merupakan merupakan ancaman nomor satu terhadap keamanan aplikasi web.

Sebagai tambahan, berdasarkan laporan kerentanan dari komunitas yang diperoleh melalui Voluntary Vulnerability Disclosure Program (VVDP), dari bulan Januari s.d. April 2019, 73% dari laporan kerentanan yang diterima merupakan kerentanan SQL Injection.

Berdasarkan statistik di atas, meskipun termasuk ke dalam kerentanan yang mudah untuk dicegah, saat ini SQL Injection tetap menjadi risiko pada aplikasi web yang paling sering ditemukan dan banyak organisasi memiliki kerentanan terhadap potensi kebocoran data akibat serangan SQL Injection.

JENIS SERANGAN SQL INJECTION 

Secara umum, terbisa beberapa jenis serangan SQL Injection, yaitu:

• Tautology Based Attack
Tujuan utama dari serangan jenis Tautology-based attack adalah untuk menginjeksi kode pada satu atau lebih baris perintah SQL dengan kondisi bersyarat sehingga baris perintah tersebut akan selalu dieksekusi dengan nilai “True”.

Attacker mengeksploitasi parameter yang bisa diinjeksi yang digunakan di dalam baris perintah query dengan sintaks kondisional bersyarat WHERE.

Tujuan Serangan: Melakukan bypass terhadap mekanisme otentikasi, mengidentifikasi parameter yang bisa diinjeksi, melakukan ekstrasi data.

SELECT accounts FROM users WHERE login=’’ or 1=1 -- AND pass=’’ AND pin=
• Query Ilegal / Query yang Secara Logik Salah (Illegal/Logically Incorrect Queries) }

Serangan ini memungkinkan Attacker untuk memperoleh informasi mengenai tipe dan struktur dari back-end basis data dari sebuah aplikasi berbasis web.

 Tujuan Serangan: Mengidentifikasi parameter yang bisa diinjeksi, melakukan database finger-printing, dan melakukan ekstraksi data.
SELECT akun FROM nasabah WHERE login=’’ AND pass=’’ AND pin= convert (int,(select top 1 name from sysobjects where xtype=’u’))

• Union Query

Serangan jenis ini, Attacker melakukan eksploitasi terhadap parameter yang rentan untuk mengubah data set yang dikembalikan dari perintah query yang dijalankan. } Tujuan Serangan: Melakukan bypass otentikasi, melakukan ekstraksi data.
SELECT akun FROM nasabah WHERE login=’’ UNION SELECT noKartu from KartuKredit where noAkun=1077 -- AND pass=’’ AND pin=

• Piggy-Backed Query 

Pada serangan jenis ini, Attackeran berupaya untuk menginjeksi tambahan perintah query ke dalam perintah query yang asli. Kerentanan terhadap serangan jenis ini umumnya bergantung pada konfigurasi basis data yang mengizinkan beberapa perintah query SQL di dalam satu string tunggal.

Tujuan Serangan: Melakukan ekstraksi data, menambahkan atau memodifikasi data, melakukan serangan DoS (Denial of Services), mengeksekusi perintah jarak jauh (remote commands execution).
SELECT akun FROM nasabah WHERE login=’doe’ AND pass=’’; drop table nasabah -- ’ AND pin=123

• Stored-Procedures 
Serangan jenis ini Attacker berusaha untuk mengeksekusi “stored procedures”.

Tujuan Serangan: Melakukan privilege escalation, melakukan serangan Denial of Service (DoS), melakukan eksekusi perintah jarak jauh (remote command execution).

• Inference 
 Pada teknik serangan ini, Attacker melakukan modifikasi terhadap query untuk menyusun kembali ke dalam bentuk aksi yang dieksekusi berdasarkan jawaban atas pertanyaan benar/salah mengenai nilai data yang tersimpan di dalam database

Attacker umumnya menggunakan teknik ini untuk menyerang situs yang memiliki tingkat keamanan yang sudah cukup baik sehingga pada saat injeksi berhasil dilakukan, tidak ada informasi berguna yang diperoleh Attacker dari pesan error melalui basis data.

Tujuan Serangan: Mengidentifikasi parameter yang bisa diinjeksi, melakukan ekstraksi data serta menentukan skema basis data dari sistem target.

SELECT accounts FROM users WHERE login=’legalUser’ and ASCII(SUBSTRING((select top 1 name from sysobjects),1,1)) > X WAITFOR 5 -- ’ AND pass=’’ AND pin=0

• Alternate Encodings

Teknik serangan ini dilakukan dengan memodifikasi teks yang diinjeksi dengan tujuan untuk menghindari deteksi oleh mekanisme defensif dari teknik pemrograman dan juga beberapa mekanisme penegahan otomatis terhadap serangan SQL Injection.

 Tujuan Serangan: Menghindari/mengelabui deteksi perimeter keamanan.

SELECT accounts FROM users WHERE login=’legalUser’; exec(char(0x73687574646f776e)) -- AND pass=’’ AND pin=’’ 
DAMPAK SERANGAN SQL INJECTION 

Dampak dari teknik serangan SQL Injection cukup beragam, beberapa diantaranya yaitu sebagai berikut:

 Melakukan Bypass terhadap Mekanisme Otentikasi 
Teknik serangan ini memungkinkan Attacker untuk masuk ke dalam aplikasi dengan hak akses administratif, tanpa menggunakan username dan password yang valid.

 Melakukan Compromised terhadap Ketersediaan Data 
Dengan melakukan penghapusan terhadap seluruh data yang tersimpan di dalam basis data, Teknik serangan ini juga berpotensi terhadap aspek ketersediaan (availability) dari sistem tersebut.

Melakukan Pencurian Informasi Serangan ini juga bisa dimanfaatkan oleh Attackeran untuk melakukan pencurian informasi sensitive yang tersimpan di dalam basis data.

• Eksekusi Perintah Jarak Jauh (Remote Command Execution)
Melalui teknik serangan ini Attacker juga bisa melakukan perintah eksekusi melalui database yang memungkinkan Attacker untuk mengambil alih host atau target.

 Melakukan Modifikasi Data (Compromised Integritas Data) 
Melalui teknik serangan ini Attacker juga bisa melakukan perubahan terhadap konten data yang tersimpan di dalam basis data, atau memanfaatkan celah keamanan ini untuk memasukan konten yang berbahaya ke dalam halaman web.

Dalam kasus database yang diubah merupakan database perbankan, Attacker mungkin saja bisa melakukan pengubahan terhadap transaksi nasabah, atau memindahkan isi rekening nasabah ke rekening yang dikendalikan olehnya sehingga menimbulkan dampak finansial bagi korban


• Melakukan Impersonasi Pengguna

Attacker juga bisa memanfaatkan serangan ini untuk melakukan impersonasi dengan menanfaatkan akun pengguna yang aktif di dalam basis data.


KLASIFIKASI SQL INJECTION 

Secara umum serangan SQL Injection bisa diklasifikasikan ke dalam 3 (tiga) kategori utama , yakni:

1. In-band SQL Injection 
Merupakan tipe serangan SQL Injection yang paling umum dan mudah untuk dieksploitasi. In-band SQL Injection terjadi ketika Attacker bisa menggunakan kanal komunikasi yang sama baik untuk melancarkan serangan maupun memperoleh hasil dari serangan.

Terbisa dua tipe yang paling umum dari in-band SQL Injection, yaitu

a. Error-based SQL Injection.
Teknik serangan ini sangat bergantung pada pesan kesalahan yang dihasilkan oleh server database untuk memperoleh informasi mengenai struktur dari database. Pada beberapa kasus, teknik ini sendiri cukup bagi Attacker untuk melakukan enumerasi terhadap keseluruhan database.

b. Union-Based SQL Injection. Teknik serangan ini memanfaatkan operator SQL UNION untuk mengkombinasikan hasil dari dua atau lebih perintah SELECT ke dalam satu hasil yang kemudian dikembalikan sebagai bagian dari HTTP response.

2. Inferential SQL Injection (Blind SQL Injection) 
Tidak seperti in-band SQL Injection, serangan tipe Inferential SQL Injection membutuhkan waktu yang lebih lama bagi Attacker untuk melakukan eksploitasi.

Pada serangan tipe ini, tidak ada data yang ditransfer melalui aplikasi web dan Attacker tidak bisa mengetahui hasil dari serangan melalui kanal komunikasi yang digunakannya.

Hal ini lah yang menyebabkan tipe SQL Injection ini juga dikenal sebagai “Blind SQL Injection”. Dalam melancarkan serangan SQL Injection tipe ini, Attacker bisa merekonstruksi struktur database dengan cara mengirimkan payload,  melakukan observasi terhadap respon dari aplikasi web, dan perilaku yang ditunjukkan oleh server database.

Terbisa dua tipe inferential SQL Injection, yaitu

a. Blind-boolean-based SQL Injection. Teknik ini merupakan salah satu teknik yang bergantung pada pengiriman query SQL ke database yang memaksa aplikasi untuk mengirimkan nilai balikan yang berbeda bergantung pada apakah query balikan yang diberikan TRUE atau FALSE. Teknik serangan ini umumnya sangat lambat (khususnya pada database dengan skala yang besar) karena Attacker akan melakukan enumersi terhadap database, karakter per karakter.

b. Blind-time-based SQL Injection. Teknik in merupakan teknik inferensia yang bergantung pada pengiriman query SQL ke database yang memaksa database untuk menunggu dalam rentang waktu tertentu (dalam detik) sebelum melakukan response. Waktu response tersebut akan mengindikasikan kepada Attacker hasil query yang dilakukan TRUE atau FALSE.

Bergantung pada nilai balikan yang dihasilkan, response HTTP akan dikembalikan dengan jeda atau dikembalikan dengan segera.

Hal ini memungkinkan Attacker untuk menyimpulkan jika payload yang digunakan menghasilkan nilai balikan TRUE atau FALSE meskipun tidak ada data yang diperoleh dari nilai balikan dari database. Teknik serangan ini umumnya sangat lambat (khususnya pada database dengan skala yang besar) karena Attacker akan melakukan enumersi terhadap database, karakter per karakter.

3. Out-of-band SQL Injection 
Tipe SQL Injection ini termasuk jarang ditemukan karena bergantung pada fitur yang diaktifkan oleh server database yang digunakan oleh aplikasi web. Out-of-band SQL Injection terjadi saat seorang

Attacker tidak bisa menggunakan kanal komunikasi yang sama untuk melancarkan serangan dan memperoleh hasil serangannya.

Tipe serangan SQL Injection ini menjadi alternatif teknik inferential time-based bagi Attacker, terutama jika respon dari server tidak stabil.

Tipe Out-of-band SQL Injection bergantung kepada kemampuan server database untuk membuat request DNS atau HTTP untuk mengirimkan data kepada Attacker.

CARA SERANGAN SQL INJECTION BEKERJA

Secara umum untuk melakukan serangan dengan teknik SQL Injection umumnya Attacker menjalankan dua tahapan proses yaitu

1. Tahapan Riset. 

Attacker umumnya melakukan riset dengan mengirimkan berbagai macam
nilai yang tidak diharapkan sebagai argumen input, kemudian dia mempelajari respon dari aplikasi, kemudian dia menentukan apakah target URL rentan atau tidak terhadap SQL Injection.

2. Tahap Serangan. 
Setelah melakukan riset mengenai kerentanan pada aplikasi, maka pada tahapan ini Attacker membuat payload tertentu sebagai nilai input dari argumen sehingga payload tersebut akan diinterpretasikan sebagai bagian dari perintah SQL ketimbang hanya data.

Kemudian database melakukan eksekusi terhadap perintah yang telah dibuat oleh Attacker.
CARA SERANGAN SQL INJECTION BEKERJA
Serangan SQL Injection terjadi karena aplikasi web yang tidak melakukan validasi terhadap nilai yang diterima dari formulir isian pada web, cookie, parameter input, dan lainnya sebelum melewatkan nilai tersebut ke query SQL yang akan dieksekusi pada server database.

Dengan demikian, hal ini memungkinkan Attacker untuk memanipulasi input sehingga data yang dikirimkan bisa diinterpretasikan sebagai kode/perintah SQL ketimbang sebagai data. Berikut merupakan contoh sederhana dari teknik serangan SQL Injection.

SQL statement dinamis umumnya dikonstruksi pada saat eksekusi dilakukan, misalkan contoh berikut ditulis dalam bahasa pemrograman .NET dimana parameter input harus diisikan oleh pengguna

 Query = "SELECT * FROM users WHERE username = ' " +request.getParameter("input")+ " ' " ; 

Maka baris kode tersebut akan menjalankan perintah query SQL sebagai berikut:

SELECT * FROM users WHERE username = ‘input’ 

Salah satu teknik yang umum dilakukan oleh Attacker adalah dengan melakukan manipulasi terhadap SQL statement, dimana Attacker berupaya memodifikasi SQL query statements dan menyisipkan “exploited statements” ke dalam database.

Lalu apa yang akan terjadi jika pengguna memasukan nilai berikut:

 $user = ‘ OR ‘1’ = ‘1 $password = ‘ OR ‘1’= ‘1 

Karena nilai 1=1 memiliki arti selalu menghasilkan nilai benar atau TRUE, maka query tersebut akan berhasil dieksekusi meskipun tidak ada username dan password yang valid yang dimasukan, dengan demikian Attacker berhasil mem-bypass mekanisme otentikasi.

Versi lainnya dari serangan ini adalan dengan menyisipkan dua karakter dash secara berurutan (--) atau karakter # yang oleh database MySQL dianggap sebagai penanda bagian komentar sehingga baris perintah setelahnya akan diabaikan.

SELECT *
FROM users
WHERE loginName = ‘ John ‘ - - AND Password = anything
SELECT *
FROM Customers
WHERE AccNumber = 1 OR 1 = 1 # AND Pin = anything
Dengan demikian Attacker bisa mem-bypass mekanisme otentikasi, karena perintah setelah (--) atau # yakni AND Pin = anything akan dianggap sebagai baris komentar oleh database.

INSIDEN SIBER TERKAIT SQL INJECTION

• MOSSACK FONSECA (PANAMA PAPERS)

The Panama Paper 11.5 Juta dokumen rahasia sebesar 2.6 TB milik firma temebut terekspos ke publik. Kejadian tersebut terjadi pada sebuah firma hukum asar Panama

Penyerang mungkin telah mengeksploitasi portal web costumer yang menjalankan versl Drupal dengan SOL Injection

Data data orang penting dan berkuasa di dunia yang terlibat dalam skema penghindaraan pajak

Pada tahun 2016, Mossack Fonseca yang merupakan sebuah firma hukum asal Panama mengalami insiden kebocoran data (data breach) yang menyebabkan 11,5 juta dokumen rahasia sebesar 2,6 TB milik firma tersebut terekspos ke publik.
Kebocoran data yang pada insiden Panama Papers ini bermula dari hacker yang memanfaatkan sebuah kerentanan SQL Injection yang terbisa pada Content Management System (CMS) Drupal yang digunakan pada portal web firma hukum tersebut.

Dokumen rahasia yang bocor dalam insiden ini dikenal sebagai “Panama Papers” dan berisi bagaimana pengguna jasa Mossack Fonseca yang banyak diantaranya merupakan tokoh-tokoh penting di dunia menghindari pajak.

Insiden yang terjadi pada Mossack Fonseca ini menyebabkan runtuhnya reputasi Mossack Fonseca dan dampak finansial bagi firma hukum tersebut sehingga akhirnya pada 14 Maret 2018 Mossack Fonseca mengumumkan berhenti beroperasi.

• WORLD ANTI-DOPING AGENCY

World Anti-Doping Agency (WADA) mengkonfirmasi sebuah insiden siber yang dilakukan oleh grup espionase siber asal Rusia

Terdapat dua tahapan serangan, penyerang menggunakan SQL Injection untuk mencuri alamat email dan password dari server yang dimAiki oleh WADA. kemudian digunakan untuk melakukan phising ke sistem yang menyimpan rekam medis

Atlet Amerika diberikan kompensasi berupa ijin untuk menggunakan obat-obatan yang tergolong sebagai doping

Pada September 2016, World Anti-Doping Agency (WADA) menkonfirmasi sebuah insiden siber yang dilakukan oleh grup espionase siber asal Rusia yang dikenal sebagai Tsar Team atau APT28.

Grup ini diketahui memperoleh ilegal akses ke dalam database Sistem Manajemen dan Administrasi Anti-Doping (ADAMS) milik WADA menggunakan akun yang dibuat oleh International Olympic Committee (IOC) untuk Olimpiade Rio 2016.

Insiden siber yang terjadi pada WADA ini diketahui dilakukan dalam dua tahapan serangan. Pada tahapan pertama, Attacker menggunakan SQL Injection untuk mencuri alamat email dan password dari server yang dimiliki oleh WADA.
Informasi mengenai alamat email dan password ini kemudian digunakan untuk melakukan serangan spearphishing kepada personil WADA dengan tujuan untuk mencuri kredensial untuk masuk ke dalam sistem yang menyimpan rekam medis pribadi milik atlet.

Dampak dari serangan siber yang ditujukan ke sistem ADAMS milik WADA ini adalah sejumlah informasi rekam medis pribadi milik atlet bocor dan dipublikasi kepada publik.

Hal ini menjadi sebuah kontroversi karena terbisa sejumlah atlet yang diberikan kompensasi berupa ijin untuk menggunakan obat-obatan yang tergolong sebagai doping pada saat bertanding karena alasan kesehatan atlet tersebut.

• PHILIPPINES COMMISION ON ELECTIONS (COMELEC)

Sebanyak 55 juta data pribadi yang terdaftar sebagai pemilih di Philipine mengalami kebocoran data
Penyerang menggunakan tools SQL Map Pen-Testing untuk mencuri data dari back-end database milik Oracle.

Data yang bocor berupa detail informasi biometrik dan nomor paspor pemilih yang berpotensi disalahgunakan oleh pihak tidak berwenang berupa pemerasan dan penipuan.

Pada bulan Maret 2016, grup hacker yang menamakan dirinya sebagai “Anonymous Philippines” meretas masuk ke dalam situs web dari Komisi Pemilihan Umum Filipina (COMELEC) dan melakukan deface terhadap situs web tersebut.
Pada hari yang sama, grup hacker “LulzSec Pilipinas” mempublikasikan sebuah link online yang diklaim berisikan keseluruhan database COMELEC yang berisi 55 juta informasi pribadi pemilih terdaftar sebesar 340 GB.

Insiden siber yang menyebabkan kebocoran data pemilih Filipina ini diketahui berkaitan dengan kerentanan SQL Injection yang terbisa pada sistem yang menyimpan jutaan data pribadi pemilih terdaftar.

Akibat dari insiden ini adalah 55 juta informasi pribadi, seperti informasi biometrik dan nomor paspor pemillih terdaftar yang merupakan warga Filipina diketahui oleh pihak yang tidak berhak.

Informasi pribadi yang bocor ini berpotensi disalahgunakan oleh pihak yang tidak bertanggung jawab misalnya untuk tujuan pemalsuan identitas maupun pemerasan atau penipuan.

• QATAR NATIONAL BANK

Informasi sebesar 1.4 GB bocor ter-masuk didalamnya data terkait pemerintah kerajaan Qatar , pejabat pemerintahan, militer , dan jurnalis terkemuka.

Penyerang menggunakan tools SOL Map Pen-Testing untuk mencuri data dari back-end database milik Oracle.
Para penjahat berusaha menggunakan kredensial yang bocor untuk mengakses rekening bank dan media sosial.

Pada bulan Juli 2015, kelompok hacker diketahui mulai menyerang Qatar National Bank (QNB) hingga menyebabkan kebocoran informasi sebesar 1,4 GB.

Informasi yang dibocorkan diketahui dipublikasi secara online oleh Attacker dan berisi informasi pribadi dari nasabah QNB, termasuk di dalamnya nasabah yang merupakan pemerintah kerajaan Qatar dan pejabat pemerintahan.

Informasi yang dibocorkan juga berisi detail riwayat transaksi perbankan dari nasabah, termasuk transaksi luar negeri.
Jika melihat pengaturan file dari informasi yang dibocorkan, dimana file-file disusun ke dalam tiga highlevel folder, yaitu ‘Backup’, ‘Files’, dan ‘Folders’, maka insiden siber pada QNB ini bisa disimpulkan diperoleh melalui serangan SQL Injection menggunakan tools SQL Injection berbasis open source.

Meskipun terbisa ribuan akun nasaban QNB yang dibocorkan,  insiden yang dialami oleh QNB diperkirakan tidak ditujukan untuk memperoleh keuntungan finansial, melainkan untuk menurunkan reputasi dan membuat malu QNB dan sejumlah orang-orang penting yang informasi pribadi dan transaksi perbankan miliknya dipublikasikan oleh pelaku serangan.

Cara Mencegah SQL Injection Attack

1. MENGGUNAKAN PARAMETERIZED SQL QUERY 

Menggunakan parameterized query atau prepared statement merupakan salah satu teknik sederhana dan bisa dikatakan mudah untuk dilakukan.

Penggunaan parameterized query ditujukan supaya database bisa membedakan mana yang merupakan SQL statement dan mana yang merupakan data yang diinputkan oleh pengguna.

Melalui cara ini, Attacker tidak bisa mengubah isi query, walaupun telah memasukkan kode SQL saat melakukan input. Berikut merupakan contoh penggunaan prepare statement pada bahasa pemrograman PHP.

Melalui mekanisme ini, data yang dikirimkan oleh pengguna akan menggantikan parameter yang berada di dalam tanda kurung “(?)”, sebagai parameter data yang diinputkan oleh pengguna.

2. LAKUKAN PENGECEKAN POLA (PATTERN CHECK) : VALIDASI INPUT DATA DENGAN MENGGUNAKAN REGULAR EXPRESSION

Secara umum terbisa dua hal yang bisa dilakukan untuk melakukan validasi input, yakni

a. Melakukan Whitelist.
Hanya menerima input data yang memang benar-benar diketahui baik. Beberapa hal yang perlu menjadi pertimbangan melalui cara ini antara lain nilai yang diizinkan, tipe data, ukuran data, data range, konten dari data.

b. Melakukan Blacklisting.
Hanya menolak input data yang memang benar-benar diketahui tidak baik. Hal yang bisa dilakukan pada teknik ini yakni menolak input yang mengandung konten berbahaya.
Misalkan seperti contoh berikut: Memberikan batasan hak akses untuk membatasi kerusakan yang terjadi akibat SQL injection.

Jangan sesekali Anda login ke database menggunakan akses admin sebagai root. Namun, Anda bisa menggunakan akses istimewa yang telah ditentukan untuk membatasi ruang lingkup sistem.

3. TAMBAHKAN ESCAPE KARAKTER 

Tambahkan escape karaketer yang memiliki makna khusus di SQL. Misalkan karakter yang memiliki memiliki makna khusus di SQL yakni single quote (‘) di dalam paramater bisa diinterpretasikan sebagai dua single quotes (‘’).

Maka untuk menghindari kesalahan eksekusi dalam database, tambahkan karakter escape seperti back slash, misal (\’). Sehingga karakter single quote akan tetap diartikan sebagai single quote oleh database.

4. MENONAKTIFKAN INFORMASI PESAN KESALAHAN APLIKASI (ERROR) 
Salah satu kebiasaan yang kerap kali dilakukan oleh pengembang aplikasi pada saat masa pengembangan adalah mengaktifkan mode debug guna memudahkan pengembang dalam menemukan kesalahan dalam aplikasi yang dikembangkannya.

Namun kerap kali pengembang lupa untuk menon aktifkan mode debug pada saat aplikasi memasuki masa penggunaan (production).

Sehingga hal ini kerap kali menjadi keuntungan bagi Attacker dengan teknik SQL injection untuk mengetahui parameter URL mana yang rentan terhadap serangan ini. Sehingga untuk menghindari hal ini, cukup non-aktifkan mode debug pada aplikasi untuk mencegah pesan error yang ditampilkan dimanfaatkan oleh pihak Attacker.

5. AMANKAN DATABASE YANG DIGUNAKAN 

Beberapa cara yang bisa digunakan untuk mengamankan database yang digunakan antara lain:

a. Definisikan dengan baik hak akses dari pengguna yang mengakses database serta berikan hak akses terhadap pengguna sesuai dengan hak akses yang diperlukannya (least privileged).

b. Gunakan teknik enkripsi untuk mengamankan data anda yang tersimpan di dalam database. Hal ini bertujuan supaya ketika data anda berhasil dicuri oleh Attacker, maka Attacker tidak menbisakan informasi apapun mengenai data yang tersimpan.

c. Non aktifkan akses dari publik untuk mengakses database anda.

d. Lakukan penggantian password secara berkala untuk akun yang digunakan untuk mengakses database.

6. LAKUKAN PENGUJIAN KEAMANAN APLIKASI SECARA BERKALA 

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

7. GUNAKAN PERANGKAT KEAMANAN WEB APPLICATION FIREWALL 

Hal ini bertujuan untuk mendeteksi dan meblok serangan SQL Injection berjalan sukses pada aplikasi anda. Demikian beberapa cara pencegahan yang bisa Anda lakukan supaya terhindar dari serangan SQL injection.

Selain itu, pastikan juga bahwa aplikasi web yang Anda bangun telah lulus SQL injection vulnerability test. Semoga artikel diatas bermanfaat bagi dan bisa membantu Anda untuk lebih meningkatkan keamanan aplikasi anda dari serangan SQL Injection.

Lihat juga :

Ada pertanyaan? Silahkan komentar

Posting Komentar

Tambahkan komentar disini

Iklan Atas Artikel

3xploi7 1

3xploi7 2

Iklan Bawah Artikel

Stay toon disini ya karena artikel akan selalu di update.
Kalau ada masalah silahkan gabung grup
Kunjungi Terus " 3xploi7 " untuk update menarik selanjutnya, Jangan sampai Terlewatkan.
• Join Grup Team :
— Facebook Grup ( 5.325 Anggota )
— Jasa Kebutuhan Sosmed : Disini