Menurut OWASP (Open Web Application Security Project) sebuah projek open source yang dibangun untuk menemukan celah dan penyebab dari keamanan suatu perangkat lunak serta mencari penanganan dan solusinya, celah keamanan pada aplikasi web atau situs website yang sering dijumpai dan cara menanganinya menurut OWASP, diantaranya :
Berikut beberapa penyerangan yang berkaitan dengan masalah ini
Setidaknya ada beberapa hal yang musti diperhatikan saat menangani validasi pada aplikasi web. Pertama, tidak baik dan rentan apabila aplikasi web dibangun dengan client side scripting. Kedua, sering dijumpai aplikasi web menggunakan pendekatan negatif (negative approach) pada validasinya. Aplikasi mencoba mendeteksi apabila terdapat elemen yang berbahaya pada request parameter. Masalah dari pendekatan ini hanya dapat melindungi dari beberapa serangan yaitu serangan yang dikenali oleh validation code yang dicegah. Bisa juga dengan menggunakan pendekatan positif (positive approach) dengan membatasi suatu format atau pola untuk nilai yang diijinkan dan memastikan inputan tersebut sesuai degan format tersebut.
Permasalahan lain yang sering dijumpai berkait dengan access control, diantaranya :
Untuk mengatasi hal-hal tersebut dapat dengan mengembangkan filter atau komponen yang bisa dijalankan pada sensitive resource. Filter tadi dapat digunakan dalam menjamin hanya pengguna yang terotorisasi dapat mengaksesnya.
Untuk mencegah session ID ang dapat terlihat oleh seseorang pada suatu jaringan yang sama adaah dengan mengubungkan komunikasi antara server dengan client dalam sebuah SSL protected channel.
Cukup sulit melindungi aplikasi web dari serangan DoS ini, namun bisa juga dengan membatasi resource yang bisa diakses oleh pengguna dalam jumlah minimum sehingga membatasi load data yang akan diakses pengguna dari sistem.
Sumber : whello.id |
Unvalidated Input
Seluruh laman web menampilkan data dari HTTP atau HTTPS request yang dibuat oleh pengguna dan menggunakan data tersebut dalam melakukan operainya. Para peretas bisa saja memanipulasi atau merubah bagian-bagian pada request dapat berupa query tring, cookie information, header sehingga dapat membypass mekanisme keamanan.Berikut beberapa penyerangan yang berkaitan dengan masalah ini
- Cross Site Scripting
- Injection Flaws
- Buffer Overflows
Setidaknya ada beberapa hal yang musti diperhatikan saat menangani validasi pada aplikasi web. Pertama, tidak baik dan rentan apabila aplikasi web dibangun dengan client side scripting. Kedua, sering dijumpai aplikasi web menggunakan pendekatan negatif (negative approach) pada validasinya. Aplikasi mencoba mendeteksi apabila terdapat elemen yang berbahaya pada request parameter. Masalah dari pendekatan ini hanya dapat melindungi dari beberapa serangan yaitu serangan yang dikenali oleh validation code yang dicegah. Bisa juga dengan menggunakan pendekatan positif (positive approach) dengan membatasi suatu format atau pola untuk nilai yang diijinkan dan memastikan inputan tersebut sesuai degan format tersebut.
Broken Access Control
Sering dijumpai aplikasi web yang mengkategorikan pengguna-penggunanya ke dalam role yang berbeda dan juga level akses yang berbeda dalam berinteraksi dengan konten yang berbeda pula. Masalahnya adalah ada beberapa aplikasi web yang tidak efektif dalam memaksa agar otorisasi ini bekerja sebagaimana mestinya. Misalkan, ada aplikasi web hanya menggunakan sebuah cek poin dimana pengguna yang terpilih yang bisa mengakses. Untuk proses lebih lanjut, pengguna harus membuktikan dirinya terotorisasi dengan menggunakan username dan password. Namun, terkadang beberapa aplikasi web tidak menjalankan pengecekan dari cek poin sebelumnya, dimana jika pengguna berhasil melewati halaman login, maka mereka bisa bebas menjalankan segala operasi.Permasalahan lain yang sering dijumpai berkait dengan access control, diantaranya :
- Insecure ID, beberapa aplikasi web menggunakan id atau kunci yang merujuk pada pengguna, suatu ID dapat juga ditebak, dan apabila peretas dapat mudah menebak ID dari pengguna yang terotorisasi maka aplikasi web akan mudah untuk diserang.
- File permissions, beberapa web memercayakan kepada eksternal file yang menyimpan daftar dari pengguna yang terotorisasi dan resources mana saja yang bisa diakses. Apabila file tersebut dapat dibaca dari luar, maka peretas bisa saja memodifikasi dengan menambahkan dirinya sebagai daftar pengguna yang diijinkan.
Untuk mengatasi hal-hal tersebut dapat dengan mengembangkan filter atau komponen yang bisa dijalankan pada sensitive resource. Filter tadi dapat digunakan dalam menjamin hanya pengguna yang terotorisasi dapat mengaksesnya.
Broken Authentification dan Session Management
Authentification dan session management merujuk pada segala aspek dari pengaturan pengguna autentifikasi dan pengelolaan session aktif. Berikut beberapa hal yang musti diperhatikan:- Password strength, aplikasi web yang dibuat harus memberikan level minimum dari keamanan suatu password, bisa dilihat dari panjang password dan kombinasi dari huruf kecil besar, angka ataupun simbol.
- Password Storage, password tidak boleh disimpan tanpa dienkripsi terlebih dahulu. Hal ini untuk memastikan bahwa informasi yang sensitif seperti password tidak disebarkan di dalam aplikasi dan mencegah peretas apabila mampu membobol database dapat melihat isi password.
- Session ID protection, server pada umumnya menggunakan seion id dalam mengidentifikasi pengguna yang masuk ke dalam session. Namun, apabila session id dapat dilihat oleh seseorang pada jaringan yang sama maka orang tersebut dapat menjadi seorang client.
Untuk mencegah session ID ang dapat terlihat oleh seseorang pada suatu jaringan yang sama adaah dengan mengubungkan komunikasi antara server dengan client dalam sebuah SSL protected channel.
Denial Of Service
Denial of Service adalah serangan yang dilakukan oleh peretas dengan mengiriman request dalam jumlah yang sangat banyak dalam waktu yang bersamaan sehingga server kelebihan beban dan tidak dapat melayani pengguna yang lain dikarenakan request-request tersebut. Serangan DoS bisa saja menghabiskan bandwitch pada server, menghabiskan memory, koneksi database dan sumber daya yang lain.Cukup sulit melindungi aplikasi web dari serangan DoS ini, namun bisa juga dengan membatasi resource yang bisa diakses oleh pengguna dalam jumlah minimum sehingga membatasi load data yang akan diakses pengguna dari sistem.