Keamanan Aplikasi Web Husni husni.trunojoyo.ac.id komputasi.wordpress.com Web Engineering 2010 Pertemuan ke-13
Keamanan Aplikasi Web? Bukan keamanan jaringan Mengamankan: – “Custom Code” yang menggerakkan suatu aplikai web – Pustaka (library) – Sisterm Back-end – Server aplikasi dan Web 2
Ilustrasi Masalah 3 Application Layer Penyerang mengirimkan serangan dalam request HTTP valid Kode aplikasi diakali untuk melakukan yang tidak boleh dilakukan Keamanan mensyaratkan kepakaran pengembangan software, bukan tanda- tangan. Network Layer Firewall, hardening, patching, IDS & SSL tidak dapat mendeteksi atau menghentikan serangan dalam request HTTP. Keamanan bersandar pada database tanda-tangan
Server Web yang Paling Biasa Terinfeksi (Januari – Juni 2008) 4
Kebutuhan Mengamankan Aplikasi/Situs Web Situs-situs dirusak, sebagaimana banyak dilaporkan di Internet Alasan perusakan – Kerentanan (vulnerability) dari aplikasi – Site owner authored (accidental/intentional) – Kesalahan konfigurasi server Web 5
Keamanan Corporate 6 Internet Server (Data) Workstations (Green Segment) Firewall !!!!!!!!!!!! Wild Wild West
Keamanan Layer Network & Transport 7 Mengamankan secara tradisional tidak cukup Kendali Jaringan – lalu lintas yang salah Lebih 70% menyerang level aplikasi
Aplikasi Web 8 Secara umum tersusuan dari himpunan script yang berada pada suatu web server dan berinteraksi dengan database dan sumber content dinamis lain. Biasanya berjalan pada port 80/8080 Serangan Tak-Terdeteksi Data sebagai bagian dari trafik sah pada port 80/8080, sehingga tak terdeteksi. Perangkat jaringan & Firewall konvensional tidak dapat membedakankan data “buruk” dari data yang benar (asli)
Keamanan Aplikasi Web Merujuk ke kombinasi orang, proses dan teknologi Kenali, ukuran dan kelola resiko-resiko Diperkenalkan oleh Open source dan aplikasi web “custom” 9
Resiko dalam Aplikasi Pengguna jahat dapat login tanpa account sah Pengguna tak berhak menampilkan, menambah, mengupdate dan menghapus data Pengguna sah dapat menambah/mengupdate data sebagai pengguna lain Pengguna jahat dapat meng-upload malicious content. Pengguna jahat dapat mencuri hak pengguna valid. 10
Orang, Proses & Teknologi OrangKesadaranPelatihanPedoman ProsesPengembangan yang aman Pemeriksaan kode yang aman Pengujian keamanan TeknologiKonfigurasi yang aman Firewall aplikasiScanner otomatis 11
Standar Keamanan Aplikasi Web OWASP (Open Web Application Security Project) WASC ( Web Application Security Consortium) 12
OWASP OWASP adalah proyek yang didedikasikan untuk berbagi (share) pengetahuan dan mengembangkan software open source yang mengedepankan pemahaman tentang keamanan aplikasi web. Informasi lebih lanjut: – OWASP Top 10 13
WASC Sebuah grup pakar, praktisi dan perwakilan organisasi internasional yang membuat open source dan secara luas telah disetujui sebagai standar keamanan praktis terbaik bagi world wide web. Database peristiwa web hacking Klasifikasi ancaman keamanan web 14
Proyek OWASP-Top Ten Menyediakan standar minimum bagi keamanan aplikasi web. OWASP top ten menggambarkan suatu konsensus luas mengenai apa kelemahan aplikasi web yang paling kritis. Pengadopsi – US Federal Trade commission, US DOD, VISA – Perusahaan: Sprint, IBM dll... 15
OWASP: Kelemahan Aplikasi Web Paling Kritis A1 - Unvalidated Input (Input Tak-Divalidasi) Informasi dari request web tidak divalidasi sebelum digunakan oleh suatu aplikasi web. Penyerang dapat memanfaatkan kekurangan ini untuk menyerang komponen backend melalui aplikasi web. 16
OWASP: Kelemahan Aplikasi Web Paling Kritis A2 - Broken Access Control (Kendali Akses Rusak) Pembatasan pada apa pengguna terotentikasi boleh lakukan tidak dengan tepat diterapkan. Penyerang dapat memanfaatkan kerusakan ini untuk mengakses account pengguna lain, nemapilkan file-file sensitif, atau menggunakan fungsi-fungsi yang bukan haknya. 17
OWASP: Kelemahan Aplikasi Web Paling Kritis A3 - Broken Authentication & Session Management (Otentikasi dan Manajemen Sesi Rusak) Account pengguna dan session token-nya tidak dilindungi dengan benar. Penyerang yang dapat mengakses password, key (kunci), session cookie atau token lain dapat menghancurkan pembatasan otentikasi dan mengambil itentitas pengguna lain. 18
OWASP: Kelemahan Aplikasi Web Paling Kritis A4 – Cacat Cross Site Scripting (XSS) Aplikasi web dapat digunakan sebagai suatu mekanisme untuk mengantarkan serangan ke web browser end-user. Serangan yang berhasil dapat menyingkap session token dari end-user, menyerang mesin lokal atau men-spoof content untuk mempermainkan penguna. 19
OWASP: Kelemahan Aplikasi Web Paling Kritis A5 - Buffer Overflow (Meluapnya buffer) Komponen aplikasi web dalam beberapa bahasa yang tidak dengan tepat men-validasi input dapat dibuat crash, dan pada beberapa kasus, digunakan utuk mengambil kendali dari proses. Komponen-komponen ini dapat termasuk CGI, pustaka, driver dan komponen server aplikasi Web. 20
OWASP: Kelemahan Aplikasi Web Paling Kritis A6 - Injection Flaws (Cacat Injeksi) Aplikasi web melewatkan beberapa parameter saat mengakses sistem eksternal atau sistem operasi lokal. Jika penyerang dapat melekatkan perintah- perintah “jahat” (malicious) dalam paramemeter ini, sistem eksternal mungkin mengeksekusi perintah tersebut “atas nama” aplikasi web. 21
OWASP: Kelemahan Aplikasi Web Paling Kritis A7 - Improper Error Handling (penanganan error tak tepat) Kondisi error yang terjadi selama operasi normal tidak ditangani dengan benar. Jika penyerang dapat menyebabkan terjadinya error yang tak ditangani oleh aplikasi web, penyerang dapat memperoleh informasi detail mengenai sistem, meniadakan layanan, mengakibatkan gagalnya mekanisme keamanan atau server crash (macet). 22
OWASP: Kelemahan Aplikasi Web Paling Kritis A8 - Insecure Storage (media simpan tak-aman) Aplikasi web sering menggunakan fungsi kriptografi untuk melindungi informasi dan akun. Fungsi-fungsi ini dan kode untuk mengintegrasikan- nya terbukti sulit dituliskan dengan tepat, sering mengakibatkan proteksi yang lemah. 23
OWASP: Kelemahan Aplikasi Web Paling Kritis A9 - Denial of Service (Penolakan Layanan) Penyerang dapat menghabiskan sumber daya aplikasi web untuk suatu titik dimana pengguna sah lain tidak dapat lebih lama mengakses atau menggunakan aplikasi. Penyerang dapat pula mengunci pengguna lain atau bahkan menyebabkan aplikasi lengkap gagal. 24
OWASP: Kelemahan Aplikasi Web Paling Kritis A10 - Insecure Configuration Management (Manajemen Konfigurasi Tak-Aman) Memiliki standar konfigurasi server yang tangguh adalah kritis untuk mengamankan aplikasi web Server-server ini mempunyai banyak pilihan konfigurasi yang mempengaruhi keamanan dan tidak mengamankan di luarnya. 25
Peranan Pengembang dalam Keamanan Aplikasi Pengembang harus : – Bekerja dengan arsitek solusi dan administrator sistem untuk memastikan keamanan aplikasi Berkontribusi untuk keamanan dengan: – Mengadopsi praktik pengembangan keamanan aplikasi yang baik – Mengetahui dimana kerentanan keamanan terjadi dan bagaimana menghindarinya – Menggunakan teknik pemrograman yang aman. 26
Pendekatan Keamanan Holistik Keamanan harus dipertimbangkan pada: Semua tahapan suatu proyek – Perancangan – Pengembangan – Penyebaran (deployment) Semua layer – Network – Host – Application “Security is only as good as the weakest link” 27
Referensi: Internet Ten_Project PRACTICES/Web+Application+Best+Practices milyid=84B3AA98‐A1E5‐4A74‐A56B‐7ADDBDED79CC&disp laylang=en 28
Pertanyaan? 29