Apa itu OWASP?

OWASP (Open Web Application Security Project) merupakan organisasi nirlaba di Amerika Serikat yang resmi secara daring pada bulan Desember 2001. OWASP adalah komunitas terbuka yang didedikasikan untuk memungkinkan organisasi memahami, mengembangkan, memperoleh, mengoperasikan, dan memelihara aplikasi yang dapat dipercaya dari aspek keamanan.

Semua dokumen, perkakas, literatur, forum dan informasi lain yang berhubungan dengan keamanan dari OWASP bersifat terbuka dan dapat diakses secara bebas dan digunakan untuk semua pihak yang ingin melihat dunia internet aman dari semua ancaman keamanan informasi.

OWASP tidak berafiliasi dengan produk komersil apapun sebagai bentuk konsistensi mereka supaya dapat oyektif dalam memberikan rancangan/model keamanan sehingga dapat diadopsi secara luas dan musltisektor sehingga OWASP mempunyai prinsip Gratis & terbuka, Mematuhi kode etik (lihat etika), Tidak untuk keuntungan, Tidak didorong oleh kepentingan komersial, Pendekatan berbasis risiko.

Di Indonesia penggunaan standar OWASP sudah luas, berbagai Lembaga pemerintahan dan swasta menggunakannya sebagai dasar pengujian web. Laboratorium pengujian keamanan di Pustekkom Kemdikbud menggunakan metode ini sebagai salah satu rujukannya. OWASP juga digunakan sebagai bagian dari Vulnerability Analysis.

Logo OWASP

Ruang Lingkup OWASP

Sesuai tujuan awal dari OWASP berfokus pada aspek keamanan aplikasi, sampai saat ini OWASP sudah sampai pada versi 4 dengan rincian sebagai berikut :

  • Introduction and Objectives

Berisi ruang lingkup pengujian, skenario pengujian, batas pengujian dan teknik/perkakas yang dipakai

  • Information Gathering

Mengumpulan informasi target yang akan diuji misal mencari informasi sebanyak mungkin sebuah website melalui mesin pencari atau melalui pendekatan secara aktif dengan perangkat yang dirancang untuk memetakan informasi dari sebuah website.

  • Configuration and Deployment Management Testing

Menguji infrastruktur jaringan yang digunakan oleh sistem, konfigurasi sistem yang digunakan, Review informasi sensitif yang sudah dilakukan pada saat melakukan bekup, Menguji File Permission

  • Identity Management Testing

Menguji kerentanan akun yang digunakan, menguji proses perubahan akun yang digunakan, Menguji kelemahan akun yang digunakan

  • Authentication Testing

Pengujian enkripsi akun, akun default, skema bypass akun, fungsi pengingat akun, kebijakan akun yang lemah, fungsi reset akun, alternatif kanal otentifikasi lain

  • Authorization Testing

Pengujian direktori traversal, skema otoritas bypass

  • Session Management Testing

Pengujian skema manajemen session, cookies, CSRF (Cross Site Request Forgery), fungsi logout, time out session

  • Input Validation Testing

Pengujian CSS, Tampering HTTP, SQL injection, Database testing, SSL Injection

  • Error Handling, Analisa eror kode
  • Cryptography, Pengujian penggunaan SSL dan enkripsi
  • Business Logic Testing

Pengujian logika validasi data, Pengujian upload file yang tidak direkomendasikan, Pengujian file yang merusak sistem

  • Client Side Testing

Pengujian URL redirect, CSS injection, Clickjacking

OWASP Top 10

OWASP Top 10 adalah sebuah panduan bagi para developers dan security team tentang kelemahan-kelemahan pada web apps yang mudah diserang dan harus segera disiasati. Kelemahan-kelemahan ini memudahkan hacker untuk menanam malware, mencuri data, atau mengambil alih sepenuhnya website atau komputer Anda. OWASP Top 10 ini biasa diupdate secara rutin oleh sebuah tim yang terdiri dari pakar-pakar keamanan website di seluruh dunia. OWASP merekomendasikan perusahaan-perusahaan untuk memperhatikan kesepuluh masalah yang ada pada dokumen ini untuk mengamankan website dan data mereka dari ancaman hacker. Berikut ini adalah penjelasan singkat dari kesepuluh ancaman keamanan website yang ada pada OWASP Top 10

1. Injection.

Serangan injection biasa terjadi jika ada data yang tidak terpercaya dikirim ke sebuah code interpreter melalui sebuah formulir input atau cara input data ke website lainnya. Misalnya, seorang hacker bisa memasukkan kode database SQL melalui sebuah formulir yang sebenarnya hanya meminta data plaintext. Kalau formulir input ini tidak diamankan dengan baik maka kode SQL nya bisa saja dijalankan. Ini adalah contoh serangan injection SQL. Nah, serangan injection ini bisa dicegah dengan memvalidasi dan membersihkan data yang dimasukkan oleh user. Validasi yang dimaksud disini adalah menolak data-data yang terlihat mencurigakan. Membersihkan data berarti menghapus semua data-data mencurigakan tersebut. Tidak hanya itu, admin database juga bisa meminimalkan jumlah informasi yang mungkin terexpose ke serangan injection.

2. Broken Authentication.

Kelemahan pada sistem login bisa memberi hacker akses ke akun user. Tidak hanya itu mereka bisa menguasai seluruh sistem dengan meng-hack akun admin. Untuk memitigasi kelemahan authentication, Anda bisa menggunakan 2-factor authentication (2FA).

3. Sensitive Data Exposure.

Jika sebuah website menyimpan data-data sensitive penggunanya, tentunya akan bahaya jika mereka tidak menjaga keamanannya. Untuk mengurangi kemungkinan pencurian data, Anda bisa mengenskripsi data-data sensitifnya. Developer juga harus memastikan bahwa website tidak menyimpan data-data sensitive yang sebenarnya tidak dibutuhkan.

4. XML External Entities.

Ini adalah serangan ke website dan aplikasi yang menganalisa input XML. Input ini bisa mereferensikan entity external untuk mengetahui kelemahan yang ada pada input XMLnya. Entiti external yang dimaksud disini biasanya berupa unit penyimpanan, seperti misalnya hard drive. Analisa input XML bisa dibuat seakan-akan mereka mengirim data ke entity external yang tidak dipercaya, dimana mereka bisa mengirim data-data sensitive ke hackernya langsung. Cara terbaik untuk mengatasi XEE ini adalah dengan memiliki web app yang mengandung jenis data yang tidak terlalu kompleks.

5. Broken Access Control.

Access control pada poin ini mengacu kepada sistem control yang mengakses informasi dan fungsionalitasnya. Access control yang rusak memungkinkan penyerang untuk melewati proses autorisasi dan melakukan hal-hal yang biasanya hanya bisa dilakukan oleh admin.

6. Security Misconfiguration.

 Kesalahan konfigurasi keamanan adalah kelemahan yang paling sering terjadi di antara kelemahan lain di daftar ini. Biasanya kesalahan terjadi jika Anda hanya menggunakan default konfigurasi tanpa melihat kebutuhan website.

7. Cross Site Scripting.

Kelemahan cross site scripting akan terjadi pada web app jika web app tersebut menginjinkan user untuk menambahkan kode custom ke sebuah path URL atau ke website yang dilihat oleh user lain. Kelemahan ini biasa dimanfaatkan untuk menjalankan kode JavaScript yang berbahaya pada browser korban. Contohnya, jika seorang hacker mengirim email ke korban dengan mengatas namakan nama bank tersebut dan menyertakan link ke website bank tersebut, mereka bisa saja menaruh kode JavaScript berbahaya ke dalamnya. Kalau website bank tidak terlindungi dengan baik, nasabah Anda akan menjadi korban.

8. Insecure Deserialization.

Untuk mengerti apa masalah dari kelemahan ini, kita harus mengerti dulu apa arti dari serialisasi dan deserialisasi. Serialisasi adalah proses dimana object diambil dari kode aplikasi dan di-convert ke format lain sehingga bisa digunakan untuk keperluan lain, misalnya menyimpan data ke sebuah disk. Deserialisasi berarti sebaliknya; meng-convert data yang sudah diserialisasi kembali object yang digunakan oleh aplikasinya. Insecure deserialization atau deserialisasi yang kurang aman bisa saja diserang dengan memanfaatkan data dari asal yang tidak dipercaya. Ini bisa menyebabkan terjadinya serangan DDoS. Untuk mencegah ini terjadi, Anda perlu melarang deserialisasi dari data yang tidak dipercaya.

9. Using Components With Known Vulnerabilities.

Kebanyakan web developer menggunakan komponen seperti libraries dan frameworks di web app mereka. Komponen-komponen ini adalah kumpulan software yang menolong developers untuk bekerja dengan lebih efisien. Beberapa hacker biasa mencari kelemahan yang ada pada komponen-komponen ini agar mereka bisa melakukan serangan. Oleh karena itu, developer harus selalu memastikan bahwa komponen-komponen ini sudah diupdate agar tetap aman.

10. Insufficient Logging and Monitoring.

Kebanyakan web app tidak mengambil langkah yang cukup untuk mendeteksi penembusan data. Rata-rata orang baru sadar kalau terjadi penembusan di website mereka setelah 200 hari. Ini tentunya memberikan penyerang banyak waktu untuk melakukan penyerangan. OWASP merekomendasikan developer untuk mengimplementasi logging dan monitoring serta rencana response insiden agar mereka tahu jika ada penyerangan yang terjadi pada aplikasi mereka.

Please follow and like us:

Leave a Reply

Your email address will not be published.