Celah Keamanan Pada Aplikasi Web

Bycahyono

Celah Keamanan Pada Aplikasi Web

Celah Keamanan Pada Aplikasi Web

Open Web Application Security Project (OWASP) adalah project open source yang dibangun untuk menemukan penyebab dari tidak amannya sebuah software dan menemukan cara menanganinya ada 9 celah keamanan aplikasi web yang ditemukan dan rekomendasi mereka tentang menangani sebagai sebuah standard keamanan minimal dari aplikasi web.

Berikut ini adalah 10 celah tersebut dan cara agar kita dapat mengatasi masalah tersebut.
I Unvalidated input
semua aplikasi web menampikan data dari HTTP request yang dibuat oleh user dan menggunakan data tersebut untuk melakukan operasinya. Hacker dapat memanipulasi bagian-bagian pada request (query string, cookle information, header) untuk membypass mekanisme keamanan.
berikut ini tiga jenis penyerangan yang berhubungan dengan masalah ini:
a. Cross site scripting
b. Buffer overflow
c. Injection flaws
II Broken Access Control
Banyak aplikasi yang mengkategorikan user-usernya ke dalam role yang berbeda dan level yang berbeda untuk berinteraksi dengan content yang dibedakan dari kategori-kategori tersebut, salah satu contohnya, banyak aplikasi yang terdapat user role dan admin role: hanya admin role yang dijinkan untuk mengakses halaman khusus atau melakukan action melakukan action administration.
Masalahnya adalah beberapa aplikasi tidak efektif untuk memaksa agar otomatis ini bekerja contohnya, beberapa program hanya menggunakan sebuah chekpoint dimana hanya user yang terpilih yang dapat mengakses: untuk proses lebih lanjut, user harus membuktikan dirinya menjalankan pengecekan dari chek point sebelumnya: dimana apabila user berhasil melewati halaman login, mereka dapat bebas menjalankan operasi.
Masalah lain yang berhubungan dengan access control adalah :
a. Insecure Ids (Id Tidak aman) – beberapa site menggunakan id atau kunci yang menunjukan kepada user atau fungsi. ID dapat juga ditebak, dan jika hacker dapat mudah menebak ID dari user yang terautorisasi, maka site akan mudah diserang.
b. File permissions- kebanyakan web dan aplikasi server percaya kepada external file yang menyimpan daftar dari user yang terotorisasi dan resources mana saja yang dapat dan/atau tidak dapat di akses. Apabila file ini dapat di baca dari luar, maka hacker dapat memodifikasi dengan mudah untuk menambahkan dirinya pada daftar user yang diijinkan.
Langkah –langkah apa saja yang dapat di lakukan untuk mengatasinya? Pada contoh-contoh tadi, kita dapat mengembangkan filter atau komponen yang dapat di jalankan pada sensitive resources, filter atau komponen tadi dapat menjamin hanya user yang terotorisasi dapat mengakses. Untuk melindungi dari inseure Ids yang dapat memberi acess control, pada masalah file permission, file-file tersebut harus berada pada lokasi yang tidak dapat di akses oleh web browser dan hanya role tertentu saja yang dapat mengaksesnya.
III Broken Authentication dan session Management
Authentication dan session management menunjuk kepada semua aspek dari pengaturan user authentifikasi management of active session, ini beberapa hal yang perlu di perhatikan :
a. Password strength-Aplikasi kita harus memberikan level minimal dari keamanan sebuah password dan mendaftar: aplikasi tidak mengijinkan password dengan panjang 3-4 atau kata-kata simple yang dapat mudah ditebak oleh hacker.
b. Password use –Aplikasi kita harus membatasi user yang mengakses aplikasi melakukan login kembali ke sistem pada tenggang waktu tertentu. Dengan cara ini aplikasi dapat dilindungi dari serangan brute force dimana hacker bisa menyerang berulang kali untuk berhasil login ke sistem, selain itu, log in yang gagal sebaiknya dicatat sebagai informasi kepada administrator untuk mengindikasikan kemungkinan serangan yang terjadi.
c. Password storage – password tidak boleh disimpan di dalam aplikasi. Password harus disimpan dalam format terenkripsi dan disimpan di file lain seperti database atau file password. Hal ini dapat meastikan bahwa informasi yang sensitif seperti password tidak disebarkan ke dalam aplikasi.
Issue lain yang berhubungan: password tidak boleh dalam bentuk hardcode didalam source code
Session ID Protection – server biasanya menggunakan session Id untuk mengidentifikasi user yang msauk kedalam session. Akan tetapi jika session ID ini dapat dilihat oleh seseorang pada jaringan yang sama, orang tersebut dapat menjadi seorang client.
Salah satu cara yang dapat digunakan untuk mencegah terlihat sessio ID oleh seseorang pada suatu jaringan yang sama adalah menghubungkan komunikasi antara server dan client pada sebuah SSL-protected channel.
IV Cross Site Scripting
Cross Site Script atau kependekannya XSS merupakan salah satu serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukan kode HTML (HyperText Markup Language) atau client script code lainnya kesuatu situs. Serangan ini akan seolah-olah datang dari situs tersebut akibat serangan ini antara lain penyerang dapat mem-bypass keamanan disisi klkien, mendapat informsi sensitif, atau menyimpan aplikasi berbahaya.
Alasannya kependekan yang digunakan XSS bukan CSS karena CSS sudah digunakan untuk cascade syle sheet.
Cross site Scripting atau XSS memiliki Tipe XSS antara lain:
1. Reflected XSS atau nonpersitent
Reflected XSS merupakan tipe XSS yang paling umum dan yang paling mudah dilakukan oleh penyerang. Penyerang menggunakan social engineering agar tautan dengan kode berbahaya ini diklik oleh pengguna. Dengan cara ini penyerang bisa mendapatkan cookie pengguna yang bisa digunakan selanjutnya untuk membajak session pengguna.
Mekanisme pertahanan menghadapi serangan ini adalah dengan melakukan validasi input sebelum menampilkan data apapun yang di-generate oleh pengguna. Jangan percaya apapun data yag dikirim oleh pengguna.
2. Stored XSS
Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar. Sebuah serangan stored XSS dapat berakibat pada seluruh pengguna. Stored XSS terjadi saat pengguna diizinkan untuk memasukan data yang akan ditampilkan kembali. Contohnya adalah pada message board, buku tamu, dll. Penyerang memasukkan kode HTML atau client script code lainnnya pada posting mereka.
Serangan ini lebih menakutkan. Mekanisme pertahanannya sama dengan reflected XSS: jika pengguna diizinkan untuk memasukkan data, lakukan validasi sebelum disimpan pada aplikasi.
V Buffer over Flow
Kelemahan Buffer overflow adalah salah satu dari banyak kelemahan dari keamanan komputer. Kelemahan jenis ini dapat digunakan pada remote acces atau local acces atau, karena ini dapat memberikan si Attacker kesempatan untuk melancarkan jurus-jurus dengan coding di komputer target.
Serangan Buffer overflow terjadi ketika si attacker emberikan input yang berlebihan pada program yang di jalankan, sehingga program mengalami kelebihan muatan dan memory tidak dapat mengalokasikannya. Ini memberikan kesempatan kepada Attacker untuk menindih data pada program dan men take over kontrol porgram yang dieksekusi attacker.
Buffer over flow hasil dari kelemahan bahasa pemograman c, c++, fontran, dan assembly, yang tidak secara otomatis melakukan pengecekan batas input ketika program dieksekusi. Sebagai akibat dari Buffer overflow dapat menyebatkan crash pada program, atau mempersilahkan si Attacker untuk mengesekusi perintah atau coding jahatnya untuk menguasai sistem target, seperti tujuan mengambil alih akun root menggunakan metode buffer overflow.
Di dalam artikel ini, kami mencoba sedikit memberikan penjelasan bagaimana buffer overflow itu bekerja, dan bagaimana cara mengatisipasinya. Buffer overflow biasa terjadi sebagai berikut :
1. Program yang begitu kompleks, sehingga programmer sendiri tidak mengetahui kelemahan programnya.
2. Relies on external data to control pada program.
Buffer adalah alokasi yang disediakan di memory seperti array atau pointer di c. Di bahasa C dan C++, tidak ada pembatasan otomasyisa pada buffernya, yang mana user dapat menulis input melewati buffer. Sebagai contoh:
Int main (){
Int buffer [10];
Buffer [20] =10;
}
Program bahasa C diatas adalah program yang valid, dan setiap compiler dapat mengkompil ini tanpa error. Tetapi, program ini dapat di jahili dengan menuliskan input melebihi batas buffer memory yang telah ditentukan, yang mana akan menghasilkan kesalahan pada program.
Sebuah proses adalah program dalam eksekusi. Program yang tereksekusi di dalam disk mengandung beberapa set intruksi binary yang dikerjakan oleh processor; beberapa read only data, seperti printf string format; global dan data statis yang output terakhir eksekusi program; dan sebuah brk pointer yang menjaga jalur dari malloced memory. Fungsi loval variabel adalah otomatis terbentuknya variabel dalam stack ketika fungsi di eksekusi

 

sumber : http://wswaa126a23.blogspot.co.id

About the author

cahyono administrator

Leave a Reply

Loading...
Contact Us