Unvalidated Input
Unvalidated input adalah jenis kerawanan yang cukup sering terjadi sehingga sangat serius konsekuensinya. Semua aplikasi berbasis web memerlukan penanganan masukan yang datang dari berbagai jenis sumber yang tidak dipercayai misalnya pemakai aplikasi. Jika masukan tidak divalidasi, maka pada suatu kesempatan penyerang dapat menyerang komponen aplikasi bagian belakang (database). Ada beberapa poin pada kerawanan pertama:
- HTTP requests from browsers to web apps
Bentuk masukan dalam aplikasi Web adalah URL, Querystring, Form Fields, Hidden Fields, Cookies, Headers. Aplikasi web menggunakan informasi ini untuk men-generate web pages. Attackers dapat mengubah semua jenis request
- Key Points:
Pengecekan dilakukan sebelum kamu menggunakan apasaja pada HTTP request. Validasi pada sisi client tidak relefan Tolak apa saja yang tidak diijinkan
Broken Access Controls
Akses control yang disalahgunakan dapat menimbulkan kerawaanan. Akses kontrol adalah bagaimana menjaga satu informasi pemakai (contoh sebagai otorisasi) dari jangkauan orang lain, jadi benar-benar rahasia. Poin kuncinya adalah tuliskan kebijaksanaan untuk akses control dan jangan menggunakan id yang penyerang dapat untuk memanipulasinya serta mengimplemtasikan akses control secara terpusat..
Broken Authentication and Session Management
- Key Points:
Keep credentials secret at all times. Use only the random sessionid provided by your environment
Cross Site Scripting Flaws
Web browser dapat menjalankan code yang dikirim dari web site server seperti Javascript atau flash sehingga memungkinkan untuk di attack seperti dengan mengirimkan isinya ke pemakai lain. Kata kuncinya adalah jangan membiarkan lubang untuk attacker mencuri isi web yang masih aktif.
Buffer Overflows
Aplikasi Web membaca semua jenis masukan dari para pemakai dan biasanya bahasa pemrograman C & C++ memiliki kerawanan untuk buffer overflows sehingga sebaiknya jangan digunakan dan hati-hati pada saat membaca kedalam buffers. Gunakan string yang aman dan benar.
Injection Flaws
Secara umum penggunaan parameter atau perintah dalam bentuk SQL jangan dilakukan dalam parameter konstan sehingga dapat diketahui oleh attackers.
- Key Points:
Use extreme care when invoking an interpreter, Use limited interfaces where possible (PreparedStatement), Check return values
Improper Error Handling
Penanganan masalah harus dilakukan dengan benar sehingga tidak meimbulkan efek lainnya yang membahayakan seperti Out of memory, too many users, timeout, db failure, authentication failure, access control failure, bad input. Kuncinya adalah perancangan skema penanganan errors yang benar dan juga konfigurasi server yang tepat.
Insecure Storage
Penggunaan kriptograsi untuk menyimpan informasi yang sensitif dan kalo bisa menggunakan algoritma yang mudah digunakan dan terintegrasi dengan baik.
- Key Points
Do not even think about inventing a new algorithm, Be extremely careful storing keys, certs, and passwords, Rethink whether you need to store the information, Don’t store user passwords – use a hash like SHA-256
Denial of Service
Banyak web site diijinkan untuk melakukan administrasi secara remote sehingga membantu sekali dalam pekerjaan tapi disisi lain menjadikan kerawanan sehingga diusahakan untuk jangan menggunakan admin account untuk mengakses ke internet, pisahkan admin account untuk aplikasi dan aplikasi utama, dan batasi scope untuk administrasi secara remote sehingga tidak terjadi DOS (Denial of Service)
Insecure Configuration Management
Semua web dan aplikasi server memiliki pilihan konfigurasi keamanan yang relavan, seperti default accounts & password dan hal lain yang terkait. Oleh karena itu perlu menjaga supaya patches benar-benar uptodate dan penggunaan scanning tools.
0 komentar:
Posting Komentar