FLASH PROMO!! BELAJAR DATA SCIENCE ONLINE 6 BULAN 399K
Diskon 89%, Akses 76 Modul Data Science Premium, Metode Praktek Sandbox, Bersertifikat!
SERBU DISINI!
Pendaftaran ditutup dalam 0 Hari 3 Jam 8 Menit 28 Detik 

Intip Bahaya SQL Injection pada Manajemen Database

Belajar Data Science di Rumah 25-Januari-2023
https://dqlab.id/files/dqlab/cache/03a386a18ea6eeffe5c28b6c7a5dea10_x_Thumbnail800.jpeg

Dewasa ini, sebagian besar situs website maupun aplikasi modern terhubung ke database dan diprogram menggunakan SQL (Structured Query Language). Namun yang sangat dikhawatirkan adalah ancaman keamanan data dan peretasan situs website selalu mengintai kita. Apabila tidak diatasi secara langsung maka bisa saja situs web diserang oleh hacker secara bertubi-tubi. Akibatnya yang terjadi berimbas pada keamanan data yang kurang mendapatkan perhatian. Kondisi ini seringkali disepelekan sehingga seorang developer perlu mengaplikasikan SQL Injection sebagai langkah preventif dalam menumpas hacker yang mencoba untuk meretas situs website.


SQL Injection muncul ketika situs website tidak dapat menyaring, memfilter, atau mengontrol kueri dari situs web secara memadai yang memungkinkan hacker mencoba merangsek masuk dengan menggunakan kode SQL ke dalam kueri basis data. Berdasarkan OWASP, SQL Injection masuk dalam daftar 10 ancaman teratas dan menjadi ancaman yang berbahaya bagi pemilik situs website. Jadi sudah bisa dibayangkan ya bagaimana bahayanya ancaman yang satu ini. 


Sebagai langkah pencegahan, developer dapat menggunakan cara-cara berikut dalam mencegah serangan hacker melalui peretasan dengan SQL Injection. Kira-kira apa saja langkah pencegahan yang bisa kita lakukan? Simak artikel selengkapnya berikut ini yuk sahabat DQLab.


1. Melakukan Filter Pada Input Database

Metode pencegahan yang pertama yaitu melakukan filter pada input database. Banyak hacker mencoba untuk mengeksploitasi URL dan penanganan karakter khusus untuk menjelajahi database, menjalankan perintah untuk mendapatkan akses tidak sah dan mengekstraksi maupun menghapus data. Hacker berusaha mempelajari tentang database sebagai bagian dari proses eksploitasi SQL Injection. The International Journal of Research in Computer Applications and Robotic mengutip contoh pengiriman permintaan browser berikut ke server web


Untuk database yang tidak mengurai input pengguna untuk memeriksa tag HTML Pemilik situs memberikan sinyal kepada hacker bahwa database dapat diperiksa lebih lanjut dengan skrip untuk menjelajahi struktur dan mungkin dipakai dalam serangan Cross-site Scripting (XSS).


SQL


Selanjutnya kamu juga bisa melakukan standardisasi data yang tepat untuk melindungi dari kerentanan SQL Injection. Hacker dapat menyalahgunakan karakter khusus dalam menggunakan interface web untuk mengirimkan Code ke dalam database. Maka dari itu, untuk mengatasi kasus ini pemilik situs perlu membersihkan data untuk mencegah penggabungan atau mengenali input sebagai perintah. 


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


2. Membatasi Kode Database

Terkadang cara filter input pada database dinilai sebagai cara yang terbaik. Namun, hacker selalu ada cara lainnya yang berusaha mengagalkan rencana dari sang pemilik situs. Misalnya dengan menggunakan kerentanan zero-day, kompromi kredensial, dan banyak lagi. Organisasi dapat membatasi kode yang tersedia pada database untuk melakukan kontrol lebih lanjut dan membatasi kelicikan hacker dalam melakukan eksploitasi terkait SQL Injection.


SQL


Manajer database maupun developer perlu mengurangi fungsionalitas, menggunakan prosedur tersimpan, memasukkan input pengguna ke daftar putih, dan menerapkan pernyataan dan parameterisasi yang telah disiapkan. Taktik ini membatasi database secara ketat pada kemampuan yang diperlukan untuk tugas tersebut dan mencegah penggunaan dan eksploitasi yang tidak terduga.


Dalam keamanan dunia maya, permukaan serangan mengacu pada serangkaian titik masuk potensial bagi penyerang. Dalam konteks serangan SQLi, mengurangi permukaan serangan memerlukan penonaktifan fungsionalitas basis data yang tidak diperlukan.


Salah satu contohnya adalah xp_cmdshell extended stored procedure di Microsoft SQL Server. Prosedur ini dapat menelurkan shell perintah Windows dan meneruskan string untuk dieksekusi. Karena proses Windows yang dihasilkan oleh xp_cmdshell memiliki hak keamanan yang sama dengan akun layanan SQL Server, ketersediaan tak terbatas dari prosedur ini memungkinkan penyerang menyebabkan kerusakan parah


3. Membatasi Akses Database

Pada momen tertentu, pemilik situs harus berhati-hati atas kredensial pengguna, praktik kerentanan yang tidak diketahui dalam aplikasi web atau database maupun server yang berusaha dieksploitasi oleh hacker. Nah, untuk meminimalisir potensi kerusakan yang terjadi atas serangan yang dilakukan oleh hacker maka berikut adalah pencegahan yang dapat dilakukan:

  • Akses eksternal harus dibatasi dengan firewall

  • Akses pengguna harus dibatasi untuk pesan kesalahan minimal, fungsi database dan juga tabel database

  • Keuntungan potensial dari pelanggaran harus dibatasi melalui enkripsi dan penggunaan minimal akun bersama

SQL

Peretas dapat belajar banyak hal seputar arsitektur database yang terdapat pada pesan kesalahan. Untuk memblokir eksplorasi ini, pastikan pemilik situs menampilkan informasi minimal dan jangan jangan sampai membocorkan lebih dari itu. Gunakan mode customErrors “Remote Only” atau yang setara dalam database untuk membatasi tampilan pesan kesalahan ke dalam mesin lokal dan hanya mengirim pesan ke pengguna eksternal dan penyerang potensial. Dengan menggunakan taktik ini tentunya dapat menambahkan perlindungan ekstra untuk mengaburkan struktur database internal, nama tabel maupun nama akun organisasi.


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


4. Mempertahankan Aplikasi dan Database

Kerentanan yang seringkali terjadi baik dalam aplikasi maupun database harus segera diatasi dengan mengikuti standar keamanan siber. Pemilik situs dapat mengambil langkah dengan menggunakan kaidah SQL Injection dan standar operasional yang berlaku. Semua komponen situs harus dipantau dan diperbarui, termasuk perangkat lunak server database, kerangka kerja, plugin, API atau Application Programming Interface dan perangkat lunak server website. Pembaruan tersebut dilakukan untuk meringankan beban dari tim pengembangan TI dan aplikasi. 


5. Memantau Input dan Komunikasi Aplikasi Database

Organisasi atau vendor pihak ketiga harus terus memantau semua pernyataan SQL dari aplikasi yang terhubung dengan database. Pemantauan harus fokus pada aktivitas pendokumentasian untuk akun basis data, pernyataan yang disiapkan, dan prosedur tersimpan. Pemantauan memungkinkan identifikasi pernyataan dan kerentanan SQL yang lebih efektif. Setelah teridentifikasi, admin dapat menghapus dan menonaktifkan akun yang tidak perlu, laporan yang disiapkan, dan prosedur tersimpan.

SQL

Sekarang kamu sudah mengetahui apa itu SQL injection, bagaimana serangan siber ini terbilang bahayanya dan beberapa tips cara mencegah injeksi SQL pada situs website maupun aplikasi kamu. Mengingat semakin berkembangnya ancaman kejahatan siber, meningkatkan keamanan website dan aplikasi adalah hal yang penting. Namun sebelum masuk ke tingkat advance tersebut, ada baiknya hal-hal yang bersifat fundamental dari SQL loh. 


Eits, kamu gak perlu bingung harus belajar SQL dimana karena DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula karena membahas hal-hal yang bersifat fundamental. Agar bisa mengaksesnya, kamu cukup berlangganan untuk menjadi member premium di DQLab. Yuk, tunggu apa lagi? Sekarang giliran mu!


Penulis: Reyvan Maulid


Mulai Belajar
Data Science Sekarang
Bersama DQLab

Buat Akun Belajarmu & Mulai Langkah
Kecilmu Mengenal Data Science.

Buat Akun Gratis Dengan :

https://dqlab.id/files/dqlab/file/data-web-1/data-user-2/50040333a3a5d46bf130664e5870ebc6/8be7fae4b69abead22aa9296bcab7b4b.jpg Sign-Up dengan Google

https://dqlab.id/files/dqlab/file/data-web-1/data-user-2/50040333a3a5d46bf130664e5870ebc6/d0aa879292fb427c0978d2a12b416e98.jpg Sign-Up dengan Facebook

Atau Buat Dengan :