SIMULASI CELAH KEAMANAN APLIKASI WEB DENGAN METODE OWASP
Riska Kurnianto Abdullah NRP : 2206100709 Dosen Pembimbing : Ahmad Zaini ST., MT. Christyowidiasmoro ST., MT. 1
2
Latar belakang
Perangkat lunak yang tidak aman telah mengancam infrastruktur keuangan, kesehatan, pertahanan, energi, dan infrastruktur kritikal lainnya. Dengan semakin kompleks dan terhubungnya infrastruktur digital dengan dunia global maka kesulitan mencapai keamanan aplikasi meningkat secara eksponensial. Kita tidak dapat lagi mentoleransi masalah keamanan sederhana yang banyak bertebaran di internet.
3
Permasalahan Sulitnya
mencari acuan tentang isu keamanan terkini yang mudah, real dan terintegrasi. Kurangnya pemahaman dan kesadaran para pengembang terhadap isu keamanan aplikasi yang selalu mengancam setiap saat.
4
Tujuan Mengkaji
dan menganalisa sistem keamanan aplikasi web untuk mengetahui kelemahan dan pencegahan terhadap celah keamanan tersebut dengan standar OWASP Melakukan simulasi terhadap berbagai ancaman keamanan yang bisa dan sering terjadi pada sistem aplikasi web dalam bentuk prototype website.
Metodologi
5 •
•
•
Tester: Seseorang yang melakukan aktifitas pengujian Tools and metodologi: Inti dari panduan yang diberikan oleh OWASP Application: Aplikasi web yang akan diuji.
6
penetrasi…
7
Langkah kerja
8
Analisis data Analisa
dampak celah keamanan Melakukan analisa dari hasil penetrasi dan serangan untuk menutup celah keamanan.
1. SQL INJECTION
9
10
Teori
11
Normal
12
Penetrasi
13
Tindakan pencegahan Menggunakan
pada mysql
real escape character
2. Broken Authentichatio n and Session Management
14
15
Teori
16
Penetrasi Dalam
kasus ini dimisalkan pada tereksposnya nilai variabel session pada url, sehingga saat korban memberitahu ke temannya tentang url yang dimaksud teman korban ini bisa menjadi user yang terdaftar padahal tidak.
17
User Normal yg terdaftar
18
User yg tidak mempunyai login
19
Tidakan pencegahan Tidak
menggunakan session dalam url sama sekali
3. XSS
20
21
TEORI
22
Teori
Mark Curphey, Joel Scambray, and Erik Olson, “Improving Web Application Security”, Hal : 608
XSS bug salah satu contohnya yaitu terlalu mempertahankan data yang terpercaya yang dimasukkan oleh user
Amit Klein, Sanctum Security Group,
Pada inti dari serangan XSS adalah terletak pada skrip rentan dalam situs yg rentan. Skrip ini membaca bagian dari permintaan HTTP (biasanya parameter, kadang-kadang juga HTTP header atau path) dan Melakukan echo ke halaman respon, secara penuh atau sebagian, tanpa terlebih dahulu melakukan sanitasi itu yaitu memastikan itu tidak mengandung kode Javascript dan / atau tag HTML.
23
Normal Pencarian
kata “hacking exposed”
24
Percobaan penetrasi Memasukkan
XSS
input tag HTML
TEST
25
Attack
<iframe src="http://localhost/ta_2013/server_jahat /index.php" width="267" height="312">
25
26
Tidakan Pencegahan Melakukan
search
sanitasi terhadap variabel
Tag yang dipakai ‘htmlspecialchars()’
27
Setelah sanitasi dilakukan pada variabel $search
4. Referensi Objek Langsung Yang Tidak Aman
28
29
TEORI Celah
keamanan ini dapat terjadi karena ketika developer mengekspos referensi ke suatu objek dalam implementasi internal, seperti file, direktori, atau key database. Oleh karena hal itu maka tanpa adanya suatu pemeriksaan kontrol akses atau perlindungan lainnya, penyerang dapat memanipulasi referensi-referensi ini untuk mengakses data yang tidak terotorisasi.
30
Normal
31
Penetrasi
32
Tindakan Pencegahan Untuk
mencegahnya Pemeriksaan variabel ‘id’ dengan ‘session id’ yang di daftarkan sehingga apabila ada ketidak cocokan antara variabel ‘id’ dan variabel ‘session id’ sistem akan memberikan peringatan dan memblokir akses id untuk melihat informasi akun user yang lainnya.
33
Hasil
5. Kesalahan Konfigurasi Keamanan
34
35
Teori
36
Teori Kesalahan
konfigurasi keamanan dapat terjadi pada setiap tingkatan aplikasi, termasuk platform, framework, web server, dan custom code, Developer dan admin jaringan perlu bekerja sama untuk memastikan bahwa seluruh tingkatan telah dikonfigurasi dengan tepat.
37
Celah Kesalah
konfigurasi ‘php.ini’ Membuat varibel session terekspos dan membuka celah BAASM
38
Pencegahan Solusi
untuk masalah pada celah ini yaitu terletak apda sistem administrator. Petugas tersebut harus selalu waspada dan melakukan audit sistem keamanan secara berkala dan memperhatikan konfigurasi servernya. Selalu melakukan pengecekan pada server sebelum memakainya untuk sistem aplikasi web.
6. Sensitive Data Exposure
39
40
TEORI
41
Contoh database yang tidak dienkripsi
7. Missing Function Level Access Control
42
43
Teori
Penyerang dapat berupa semua user yang memiliki akses terhadap jaringan dari aplikasi web. Penyerang tersebut bisa berupa user anonim, ataupun member. Penyerang yang terotorisasi dengan sistem dengan mudah dapat mengubah URL atau parameter untuk mengubah otoritas aplikasi terhadap penyerang tersebut, sehingga menjadikan penyerang tersebut mempunyai level akses yang setara dengan admin.
44
Normal
45
Penetrasi
46
Tindakan Pencegahan Menambahkan
Role pada database, dan melakukan Check…
if ($row['role']) { echo "Admin Page..
"; } else { <script language="javasc ript"> alert("Maaf, Halaman hanya untuk ADMIN, anda tidak berhak mengakses halaman ini!!"); document.location.h ref='control.php'; }
8. Cross-Site Request Forgery
47
48
TEORI
49
TEORI Cross
Site Request Forgery atau disingkat CSRF adalah merupakan suatu teknik hacking yang bertujuan untuk mendapatkan atau bahkan menguasai suatu akun dengan cara menyerang web yang dieksekusi atas wewenang korban tanpa dikehendaki korban itu sendiri.
50
TEORI
51
Penetrasi Jumlah
akun korban
52
Penetrasi Korban
dikirimkan email dan penyerang seolah memberikan peluang bisnis yang bagus dan korban tertarik dah akhirnya membuka situs yang direferensikan penyerang dengan melakukan klik. Saat mengunjungi halaman tersebut korban hanya mendapati sebuah halaman yang rusak yang berisi tag
53
Penetrasi
Korban kembali melakukan cek saldonya setelah beberapa sat kemudian kembali dari situs yang direferensikan penyerang dan yang terjadi adalah saldo korban berkurang.
54
Penetrasi
Mengapa??
Saat mengunjungi situs yang direfensikan oleh penyerang, korban masih aktif pada situs yang digunakan untuk transaksi keuangannya. Pada situs Halaman yang dikunjungi korban ternyata berisi : img1
55
Pencegahan
Untuk mencegah agar sistem aplikasi tidak terkena dampak dari celah keamanan ini maka sistem aplikasi web tersebut harus dilengkapi dengan token pada form yang akan dikirim sehingga apabila ada ketidak cocokkan form maka transaksi tidak dapat dieksekusi.
9. Using Components With Known Vulnerabilities
56
57
TEORI
Hampir disetiap aplikasi memiliki masalah karena sebagian besar tim developer tidak fokus terhadap komponen atau library yang terkini. Dalam banyak kasus, para developer bahkan tidak mengenal seluruh komponen yang digunakannya. Melihat kasus ini depedensi komponen akan membuat sesuatu yang lebih buruk dalam sistem keamanan aplikasi web itu sendiri.
58
Penetrasi Salah
satu exploit yang digunakan untuk cms joomla
10. Redirect dan Forward yang tidak divalidasi
59
60
Teori
61
Teori
Aplikasi pada umumnya mengarahkan (redirect) pengguna ke halaman lain, atau menggunakan internal forwards dengan cara yang serupa. Kadang kala, halaman target dispesifikasikan ke dalam parameter yang tidak divalidasi, sehingga memperkenankan penyerang memilih halaman tujuan. Dalam hal ini penyerang mengaitkan ke redirect yang tidak divalidasi dan mengelabui korban untuk diklik. Korban sangat mungkin untuk melakukan klik sebab link tersebut terlihat menuju kesitus yang valid.
62
Penetrasi
63
Pencegahan Apabila
penggunaan redirect dan forward tidak dapat dihindari sebaiknya user yang menggunakan aplikasi web tersebut diperingatkan kalau akan menuju halaman yang lain. Hal ini dapat mencegah agar user setidaknya tetap megetahui ke arah mana lokasi situs yang ia tuju.
64
pencegahan
HASIL
65
66
HASIL
Hasil yang diperoleh yaitu celah keamanan yang sering terjadi pada web yaitu “using know vulnerabilities components” dan juga “kelemahan pada level akses control”. Dua celah keamanan ini dapat dicegah dengan melakukan review kode kembali dengan standar OWASP dan apabila aplikasi tergantung pada framework atau komponen usahakan komponen tersebut selalu yang terbaru.
67
Konsep Yang
di gunakan PENTERASI dengan tools OWASP TOP 10 2013 Konsep lain : Threat Modeling
68
Kelebihan dan kekurangan PENETRASI
THREAT MODELING
Pengujian dilakukan pada kode yg sedang digunakan
Perspektif penyerang
Cepat, sedikit waktu
Fleksibel
Terlaluterlambat dilakukan dalam SDLC
Dilakukan pada mula SDLC
Hanya menguji dampak depan saja
Pemodelan Ancaman yg tidak dilakukan secara otomatis
69
Kesimpulan
Untuk Melakukan verifikasi keamanan aplikasi web yang telah dikembangkan disarankan untuk melakukan review kode aplikasi dan melakukan pengujian keamanan terhadap aplikasi tersebut. Agar lebih baik lagi dalam melakukan pengujian aplikasi maka metode penetrasi dan review kode merupakan kombinasi yang tepat.
70
Celah keamanan yang ada dalam sepuluh kategori OWASP sangatlah sederhana dan mudah untuk dieksploitasi. Developer dan sistem administrator yang bertanggung jawab atas sistem keamanan aplikasi web kadang kurang memperhatikan hal tersebut.
71
TERIMA KASIH….