Arsitektur sistem web:

  • Server, daemon yang berfungsi menerima request melalui protokol http baik lokal maupun internet. Contoh: web server (Apache, Nginx, IIS, Node-http, dll).
  • Client, me-request informasi berupa file yang ada dalam storage atau meminta server melakukan fungsi tertentu. Contoh: browser (internet explorer, firefox, opera, chrome, dll).

Celah keamanan aplikasi web:

  • Unvalidated Input
    • Jenis serangan: Cross Site Scripting (XSS), Buffer Overflows, Injection flaws.
    • Cara penanganan:
      • Hindari validasi di sisi client (browser)
      • Membatasi format atau pola nilai yang diizinkan.
  • Broken Access Control
    • Insecure Ids, menggunakan id atau kunci yang menunjuk kepada user atau fungsi.
    • File permission
    • Cara penanganan:
      • Mengembangkan komponen filter yang dapat dijalankan pada sensitive resources.
      • Tempatkan file – file pada lokasi yang tidak dapat diakses oleh browser dan hanya role tertentu saja yang dapat mengaksesnya.
  • Broken Authentication dan Session Management
    • Cara penanganan:
      • Password strength, aplikasi harus memberikan level minimal dari keamanan sebuah password.
      • Password use, aplikasi harus membatasi user yang login kembali ke sistem pada tenggang waktu tertentu.
      • Password storage, password tidak boleh disimpan dalam aplikasi.
      • Password tidak boleh di-hardcode.
      • Session ID protection, menghubungkan komunikasi antara server dan client pada sebuah kanal SSL-protected.
  • Cross Site Scripting
    • Terjadi ketika seseorang membuat aplikasi web melalui script user lain dengan menambahkan konten pada request.
    • Cara penanganan:
      • Validasi data masuk dari request.
  • Buffer Overflows
    • Penyerang mengirimkan request yang membuat server menjalankan kode-kode yang dikirimkan penyerang.
    • Cara penanganan:
      • Mengawasi apabila terdapat patch atau bug-report dari produk server yang digunakan.
  • Injection Flaws
    • Hacker dapat mengirimkan atau men-inject request ke sistem operasi atau sumber luar (database). Contoh: SQL Injection.
    • Cara penanganan:
      • Validasi inputan
  • Insecure Storage
    • Metode enkripsi yang lemah pada saat penyimpanan.
    • Cara penanganan:
      • Tidak membuat password sebagai atribut dari kelas yang mewakili user.
  • Denial of Service
    • Serangan yang dibuat hacker dengan mengirimkan request dalam jumlah sangat besar dalam waktu bersamaan.
    • Cara penanganan:
      • Membatasi resource yang dapat diakses oleh user dalam jumlah yang minimal.
  • Insecure Configuration Management
    • Hak akses direktori atau file yang salah.
    • Adanya service yang seperti remote administration dan
      content management yang masih aktif.
    • Penggunaan default account dan default password.
    • Fungsi administrative atau fungsi debug yang bisa diakses. Adanya pesan error yang informatif dari segi teknis.
    • Kesalahan konfigurasi SSL certificate dan setting enkripsi.
    • Penggunaan self-signet certificates untuk melakukan autentikasi.

Keamanan client WWW:

  • Pelanggaran privacy
  • Penyisipan virus atau trojan horse(menyisipkan kode/skrip program ke sebuah browser/aplikasi).

 

Advertisements