Serangan siber adalah upaya untuk mendapatkan akses tidak sah ke komputer, sistem komputer, atau jaringan komputer dengan maksud untuk membahayakan. Serangan siber bertujuan untuk menonaktifkan, mengganggu, menghancurkan, atau mengontrol sistem komputer, atau untuk mengubah, memblokir, menghapus, memanipulasi, atau mencuri data yang tersimpan di sistem tersebut.
Tetapi dari berbagai macam serangan yang ada, kita perlu mengenalinya dengan mengidentifikasi seperti bentuk serangannya, bagaimana serangan itu berjalan, dan kita juga perlu tahu cara mencegah serangan tersebut. Berikut ini adalah contoh dari beberap tipe serangan yang sering terjadi.
SQL injection
SQL Injection merupakan singkatan dari Structured Query Language salah satu teknik yang memanfaatkan celah keamanan yang ada di SQL pada lapisan basis data aplikasi. Terbentuknya celah tersebut akibat input dari user tidak difilter dengan benar, serta proses pembuatannya menggunakan form yang salah. Hingga saat ini, SQL Injection masih dijadikan favorit hacker untuk meluncurkan serangan kepada website. Terlebih hacking melalui jaringan internet saat ini sudah semakin canggih dengan berbagai keamanan.
Sebagai contoh, teknik SQL Injection melalui form username yang seharusnya username diisi dengan karakter saja, akan tetapi form tersebut bisa diisi dengan karakter lainnya, sehingga hacker bisa menggunakannya dengan menyisipkan karakter seperti (:;-,=”), alhasil, hacker bisa memasukan query SQL Injection. Nah, yang terjadi selanjutnya sudah bisa dipastikan jika website Kamu dapat ditembus hacker tersebut.
Cara kerja SQL Injection
Para attacker atau hacker biasanya memasukkan karakter kontrol SQL dan kata kunci perintah (misalnya, tanda kutip tunggal (‘), tanda kutip ganda (“), sama (=), komentar (- -), dll.) Untuk mengubah struktur kueri. Menggunakan karakter kontrol ini dengan perintah SQL umum (misalnya, SELECT, FROM, DELETE, dll.) Memungkinkan akses atau pengambilan elemen data dari server database backend.
SQL Injection sendiri memiliki banyak jenis seperti sqli pada login form, parameter, session atau cookies dll.
Cara Mencegah SQL Injection
1. Mengatur input validation
Tujuan dari validation input ini adalah untuk memverifikasi jenis input yang dikirimkan oleh pengguna diperbolehkan atau tidak. Dengan begitu, hanya value yang lolos validasi yang dapat dijalankan.
2. Memisahkan database username dan password
Ini adalah salah satu cara mengatasi serangan SQL injection pada aplikasi. Dengan memisahkan database username dan password, maka pelaku penyerangan membutuhkan usaha dan percobaan lebih karena harus memahami struktur database aplikasi. Hal ini juga berguna untuk mengantisipasi apabila ada 1 database yang terekspose, maka database-database lainnya dapat terlindungi.
3. Memasang filter untuk input metakarakter
Memasang filter input metakarakter adalah salah satu cara mengatasi ancaman SQL injection. Mengimplementasikan filter terhadap metakarakter (&, ;, `, ‘, \, “, |, *, ?, ~, <, >, ^, (, ), [, ], {, }, $, \n, dan \r) berguna untuk mencegah input pada form isian pengguna yang bisa dimanfaatkan untuk melakukan serangan injeksi SQL.
4. Memasang WAF dan IPS
Pemasangan Web Application Firewall (WAF) bisa meminimalisir potensi serangan SQL injection dan juga serangan cyber lainnya dengan mencocokan query yang masuk dengan daftar query SQL berbahaya. Sementara Intrusion Prevention System (IPS) bekerja sebagai lapisan keamanan yang berfungsi memantau traffic pada OS dan jaringan.
Server Side Request Forgery (SSRF)
Server-side request forgery (juga dikenal sebagai SSRF) adalah kerentanan keamanan web yang memungkinkan penyerang menginduksi aplikasi sisi server untuk membuat permintaan HTTP ke domain sewenang-wenang yang dipilih penyerang.
Dalam contoh SSRF yang khas, penyerang dapat menyebabkan server membuat koneksi kembali ke dirinya sendiri, atau ke layanan berbasis web lain dalam infrastruktur organisasi, atau ke sistem pihak ketiga eksternal.
Cara kerja Server Side Request Forgery (SSRF)
Dalam serangan SSRF terhadap server itu sendiri, penyerang menginduksi aplikasi untuk membuat permintaan HTTP kembali ke server yang menampung aplikasi, melalui antarmuka jaringan loopback. Ini biasanya melibatkan penyediaan URL dengan nama host seperti 127.0.0.1 (alamat IP yang dicadangkan yang menunjuk ke adaptor loopback) atau localhost (nama yang umum digunakan untuk adaptor yang sama).
Cara Mencegah Server Side Request Forgery (SSRF)
1. Whitelist dan resolusi DNS
Menerapkan simple blacklist atau regex langsung pada masukan pengguna untuk memfilter alamat IP atau domain mana yang dapat membuat permintaan adalah cara yang buruk untuk dilakukan ketika kita ingin menangkal serangan SSRF.
2. Penanganan Respon
Memastikan bahwa respon yang diterima oleh remote server adalah apa yang diharapkan oleh server adalah penting untuk mencegah data respon yang tak terduga bocor ke penyerang. Penting untuk diingat, dalam keadaan apa pun, respon raw dari permintaan yang dikirim oleh server untuk tidak dikirim ke klien.
3. Nonaktifkan skema URL yang tidak digunakan
Jika aplikasi hanya menggunakan HTTP atau HTTPS untuk membuat permintaan, hanya izinkan skema URL tersebut. Menonaktifkan skema URL yang tidak digunakan akan mencegah aplikasi web membuat permintaan menggunakan skema URL yang berpotensi berbahaya seperti file:///, dict://, ftp:// dan gopher: //.
Cukup Sekian dari saya. Terima kasih.
Referensi :