OWASP (Open Web Application Security Project) adalah sebuah komunitas global yang berfokus pada peningkatan keamanan aplikasi web. Komunitas ini didirikan pada tahun 2001 dan terdiri dari berbagai macam anggota seperti security professional, developer, peneliti, akademisi, serta individu lain yang tertarik pada keamanan aplikasi web.

OWASP memiliki misi untuk membuat aplikasi web menjadi lebih aman dengan cara meningkatkan kesadaran akan keamanan, mengembangkan alat dan pedoman keamanan, serta memberikan pendidikan dan pelatihan untuk para pengembang dan security professional. OWASP juga mengadakan berbagai kegiatan seperti konferensi, workshop, dan lokakarya untuk membahas isu-isu terkait keamanan aplikasi web.

Salah satu hasil karya terkenal dari OWASP adalah daftar OWASP Top 10, yaitu daftar sepuluh kerentanan keamanan aplikasi web yang paling umum dan sering dieksploitasi oleh penyerang. Daftar ini dirilis secara berkala oleh OWASP dan menjadi acuan penting bagi para pengembang dan security professional dalam mengidentifikasi dan mengurangi risiko kerentanan keamanan pada aplikasi web yang mereka kelola.

OWASP Top 10 adalah daftar sepuluh kerentanan keamanan aplikasi web yang paling umum dan sering dieksploitasi oleh penyerang. OWASP (Open Web Application Security Project) adalah komunitas global yang berfokus pada peningkatan keamanan aplikasi web melalui berbagai kegiatan seperti riset, pengembangan alat, serta edukasi dan pelatihan.

OWASP Top 10 diupdate secara berkala oleh komunitas OWASP, dan daftar terbaru dikeluarkan pada tahun 2017. Daftar ini bertujuan untuk membantu para developer, security professional, serta pemilik aplikasi web untuk mengidentifikasi dan mengurangi risiko kerentanan keamanan pada aplikasi web yang mereka bangun atau kelola. Daftar OWASP Top 10 terbaru mencakup kerentanan seperti injection, broken authentication and session management, cross-site scripting (XSS), serta security misconfiguration, antara lain.

Berikut adalah daftar kerentanan aplikasi yang masuk OSWAP Top 10 :

  1. Broken Access Control

Broken access control adalah salah satu kerentanan keamanan aplikasi web yang masuk dalam daftar OWASP Top 10. Kerentanan ini terjadi ketika sistem akses kontrol pada aplikasi web tidak berfungsi dengan baik sehingga memungkinkan pengguna untuk mengakses data atau fungsionalitas yang seharusnya tidak dapat diakses oleh pengguna tersebut.

Contoh kasus yang dapat terjadi pada broken access control adalah ketika seorang pengguna yang seharusnya hanya memiliki hak akses terbatas pada aplikasi web, namun dapat mengakses data atau informasi yang sensitif karena kesalahan dalam pengaturan hak akses. Atau bisa juga seorang pengguna yang tidak memiliki hak akses sama sekali, dapat mengakses halaman atau fungsi tertentu karena ada kesalahan dalam sistem akses kontrol pada aplikasi web.

Kerentanan ini dapat terjadi karena kesalahan dalam desain, pengaturan, atau implementasi sistem akses kontrol pada aplikasi web. Oleh karena itu, para pengembang dan security professional harus memastikan bahwa sistem akses kontrol pada aplikasi web yang mereka kelola telah dirancang, diatur, dan diimplementasikan dengan benar, serta dilakukan pengujian secara teratur untuk mendeteksi kemungkinan adanya broken access control. Tindakan pencegahan lainnya termasuk membatasi aksesibilitas data dan fungsionalitas pada pengguna dan memantau aktivitas pengguna secara terus-menerus untuk mendeteksi adanya tindakan yang mencurigakan atau tidak sah.

2. Cryptographic Failures

Cryptographic failures adalah salah satu kerentanan keamanan yang terdapat pada aplikasi web. Kerentanan ini terjadi ketika penggunaan teknologi kriptografi pada aplikasi web tidak dilakukan dengan benar, sehingga data yang seharusnya terenkripsi dan aman dari pengintipan dapat dengan mudah diakses oleh pihak yang tidak berwenang.

Contoh kasus yang dapat terjadi pada cryptographic failures adalah ketika aplikasi web menggunakan algoritma kriptografi yang lemah atau telah dikenal sebagai tidak aman. Hal ini dapat memungkinkan serangan brute force atau serangan lainnya untuk berhasil membobol kunci enkripsi dan mengakses data sensitif yang seharusnya tidak dapat diakses oleh pihak yang tidak berwenang.

Selain itu, cryptographic failures juga dapat terjadi ketika implementasi teknologi kriptografi pada aplikasi web tidak sesuai dengan standar dan pedoman yang berlaku, seperti misalnya kegagalan dalam mengelola kunci enkripsi atau dalam mengimplementasikan protokol kriptografi dengan benar.

Untuk mengatasi kerentanan cryptographic failures, para pengembang dan security professional harus memastikan bahwa teknologi kriptografi yang digunakan pada aplikasi web telah diterapkan dengan benar, menggunakan algoritma kriptografi yang aman, dan mematuhi standar dan pedoman yang berlaku. Selain itu, implementasi kriptografi pada aplikasi web juga harus dilakukan dengan hati-hati dan teliti, serta dilakukan pengujian secara teratur untuk mendeteksi kemungkinan adanya cryptographic failures.

3. Injection

Injection adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika penggunaan input yang tidak terverifikasi atau tidak terjaga dengan baik pada aplikasi web, dapat memungkinkan serangan yang menyuntikkan kode berbahaya ke dalam sistem. Serangan ini dapat dilakukan melalui berbagai jenis input pada aplikasi web, seperti input form, parameter URL, atau bahkan melalui input yang dimasukkan oleh pengguna pada halaman komentar.

Contoh kasus yang dapat terjadi pada injection adalah serangan SQL injection, di mana serangan ini memungkinkan para penyerang untuk memasukkan kode SQL berbahaya pada input aplikasi web, yang dapat mengakibatkan kerusakan pada database yang diakses oleh aplikasi tersebut. Selain SQL injection, juga terdapat serangan lain seperti LDAP injection, XML injection, dan command injection.

Untuk menghindari kerentanan injection, para pengembang dan security professional harus memastikan bahwa setiap input pada aplikasi web telah terverifikasi dengan benar dan tidak dapat dimasukkan kode berbahaya. Hal ini dapat dilakukan dengan cara melakukan filter pada input yang diterima, melakukan validasi dan sanitasi data, dan menggunakan teknologi seperti parameterized queries dan prepared statements untuk menghindari serangan injection.

Selain itu, para pengembang dan security professional juga harus memastikan bahwa sistem dan aplikasi web yang mereka kelola selalu diperbarui dan terbaru, serta dilakukan pengujian secara teratur untuk mendeteksi kemungkinan adanya kerentanan injection atau serangan lainnya.

4. Insecure Design

Insecure design adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika desain sistem aplikasi web yang dibuat tidak mempertimbangkan keamanan dengan baik. Hal ini dapat memungkinkan para penyerang untuk memanfaatkan celah yang ada pada desain tersebut untuk melakukan serangan dan merusak sistem.

Contoh kasus yang dapat terjadi pada insecure design adalah ketika sistem aplikasi web dirancang dengan cara yang tidak memperhatikan masalah keamanan, seperti misalnya tidak adanya fitur autentikasi atau otorisasi, tidak memperhatikan kerahasiaan data, atau tidak memperhitungkan serangan yang dapat terjadi dari luar sistem. Hal ini dapat memungkinkan para penyerang untuk mengakses data sensitif, merusak sistem, atau bahkan mencuri informasi pengguna.

Untuk menghindari kerentanan insecure design, para pengembang dan security professional harus memastikan bahwa desain sistem aplikasi web telah mempertimbangkan masalah keamanan dengan baik dan sesuai dengan standar keamanan yang berlaku. Hal ini dapat dilakukan dengan cara melakukan analisis risiko, memperhatikan aspek keamanan pada setiap tahap pembuatan aplikasi web, serta menggunakan arsitektur yang telah terbukti aman dan telah diuji secara luas.

5. Security Misconfiguration

Security misconfiguration adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika konfigurasi sistem atau aplikasi web tidak dilakukan dengan benar. Hal ini dapat memungkinkan para penyerang untuk memanfaatkan celah yang ada pada konfigurasi tersebut untuk melakukan serangan dan merusak sistem.

Contoh kasus yang dapat terjadi pada security misconfiguration adalah ketika sistem atau aplikasi web tidak diatur dengan benar, seperti misalnya tidak mematikan fitur atau layanan yang tidak digunakan, menggunakan kata sandi yang lemah, atau tidak mengaktifkan fitur keamanan seperti HTTPS atau SSL. Hal ini dapat memungkinkan para penyerang untuk melakukan serangan seperti serangan DDoS, brute force attack, atau bahkan mencuri informasi pengguna.

Untuk menghindari kerentanan security misconfiguration, para pengembang dan security professional harus memastikan bahwa konfigurasi sistem atau aplikasi web telah dilakukan dengan benar dan sesuai dengan standar keamanan yang berlaku. Hal ini dapat dilakukan dengan cara memperhatikan aspek keamanan pada setiap tahap pengaturan sistem atau aplikasi web, menggunakan konfigurasi standar yang telah teruji dan disetujui oleh industri, serta melakukan pengujian keamanan secara teratur untuk menemukan kemungkinan kerentanan dan melakukan perbaikan pada konfigurasi yang tidak aman.

6. Vulnerable and Outdated Components

Vulnerable and outdated components adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika aplikasi menggunakan komponen atau library yang tidak diperbarui atau memiliki kerentanan keamanan yang diketahui. Hal ini dapat memungkinkan para penyerang untuk memanfaatkan celah yang ada pada komponen atau library tersebut untuk melakukan serangan dan merusak sistem.

Contoh kasus yang dapat terjadi pada vulnerable and outdated components adalah ketika sistem atau aplikasi web menggunakan komponen atau library yang sudah usang dan tidak lagi diperbarui, atau menggunakan versi komponen atau library yang memiliki kerentanan keamanan yang diketahui. Hal ini dapat memungkinkan para penyerang untuk mengambil alih sistem, mencuri informasi pengguna, atau bahkan merusak sistem secara keseluruhan.

Untuk menghindari kerentanan vulnerable and outdated components, para pengembang dan security professional harus memastikan bahwa komponen atau library yang digunakan dalam aplikasi web selalu diperbarui dan terbaru. Hal ini dapat dilakukan dengan cara memantau situs web dan sumber informasi keamanan lainnya untuk mengetahui kemungkinan kerentanan pada komponen atau library yang digunakan, serta mengganti komponen atau library yang tidak lagi diperbarui dengan versi yang lebih baru dan lebih aman.

7. Identification and authentication failures

Identification and authentication failures adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika sistem atau aplikasi tidak dapat memverifikasi identitas pengguna dengan benar, atau ketika proses autentikasi yang digunakan tidak aman. Hal ini dapat memungkinkan para penyerang untuk memanfaatkan celah yang ada pada identifikasi dan autentikasi tersebut untuk melakukan serangan dan merusak sistem.

Contoh kasus yang dapat terjadi pada identification and authentication failures adalah ketika sistem atau aplikasi web menggunakan proses autentikasi yang lemah atau mudah ditebak, seperti menggunakan kata sandi yang lemah atau menggunakan informasi yang mudah ditebak sebagai jawaban keamanan. Hal ini dapat memungkinkan para penyerang untuk mencuri informasi pengguna atau bahkan mengambil alih akun pengguna secara keseluruhan.

Untuk menghindari kerentanan identification and authentication failures, para pengembang dan security professional harus memastikan bahwa proses identifikasi dan autentikasi pada aplikasi web yang mereka kelola aman dan sesuai dengan standar keamanan yang berlaku. Hal ini dapat dilakukan dengan cara menggunakan metode autentikasi yang kuat, seperti autentikasi dua faktor atau autentikasi melalui token, serta memastikan bahwa kata sandi pengguna memenuhi standar keamanan yang tinggi.

8. Software and Data Integrity Failures

Software and data integrity failures adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika data atau program pada sistem tidak terlindungi dari modifikasi yang tidak sah atau tidak terotorisasi oleh pengguna atau penyerang. Hal ini dapat menyebabkan integritas data atau program menjadi rusak dan menyebabkan kerusakan pada sistem atau aplikasi web.

Contoh kasus yang dapat terjadi pada software and data integrity failures adalah ketika data pada sistem atau aplikasi web dimanipulasi oleh penyerang, seperti mengubah data pada basis data atau mengubah aliran proses aplikasi web. Hal ini dapat menyebabkan data atau program pada sistem tidak dapat dipercaya lagi, menghasilkan hasil yang tidak akurat atau bahkan membahayakan.

Untuk menghindari kerentanan software and data integrity failures, para pengembang dan security professional harus memastikan bahwa sistem dan aplikasi web yang mereka kelola dilindungi dengan pengamanan yang sesuai, seperti enkripsi data atau penggunaan tanda tangan digital untuk memverifikasi keaslian data atau program. Hal ini dapat membantu mencegah manipulasi atau modifikasi tidak sah pada data atau program.

9. Security Logging and Monitoring Failures

Security logging and monitoring failures adalah salah satu kerentanan keamanan pada aplikasi web yang terjadi ketika sistem atau aplikasi web tidak memiliki mekanisme pengawasan dan pencatatan yang memadai untuk aktivitas pengguna dan akses sistem. Hal ini dapat menyebabkan para penyerang untuk dapat melakukan serangan yang tidak terdeteksi atau menghindari pengawasan oleh para security professional.

Contoh kasus yang dapat terjadi pada security logging and monitoring failures adalah ketika sistem atau aplikasi web tidak memiliki logging dan monitoring yang memadai, sehingga aktivitas yang mencurigakan atau aneh tidak terdeteksi oleh sistem atau para security professional. Hal ini dapat memberikan kesempatan bagi para penyerang untuk mengambil alih sistem atau mencuri data penting tanpa diketahui.

Untuk menghindari kerentanan security logging and monitoring failures, para pengembang dan security professional harus memastikan bahwa sistem atau aplikasi web yang mereka kelola dilengkapi dengan mekanisme logging dan monitoring yang memadai. Hal ini dapat dilakukan dengan cara memasang perangkat lunak logging dan monitoring atau memanfaatkan layanan dari penyedia layanan cloud yang sudah memiliki mekanisme tersebut.

10. Server-Side Request Forgery (SSRF)

Server-Side Request Forgery (SSRF) adalah kerentanan keamanan pada aplikasi web yang memungkinkan penyerang untuk memanipulasi permintaan HTTP yang dilakukan oleh aplikasi web pada sisi server. Penyerang dapat memanipulasi permintaan tersebut untuk mengeksploitasi sistem yang terhubung ke jaringan internal atau internet, melakukan penyerangan ke aplikasi web atau server yang terhubung, atau bahkan mencuri data penting.

Contoh kasus yang dapat terjadi pada Server-Side Request Forgery (SSRF) adalah ketika aplikasi web memungkinkan pengguna untuk memasukkan URL dan melakukan permintaan HTTP. Penyerang dapat memanipulasi input URL dan mengirim permintaan HTTP ke server yang tidak seharusnya terhubung oleh aplikasi web tersebut, seperti server internal yang tidak diakses oleh pengguna biasa. Penyerang juga dapat melakukan serangan ke server lain yang terhubung dengan aplikasi web, seperti database server atau server lain yang menyimpan data penting.

Untuk menghindari kerentanan Server-Side Request Forgery (SSRF), para pengembang dan security professional harus memastikan bahwa aplikasi web yang mereka kelola memvalidasi input pengguna dengan cermat dan membatasi akses ke sumber daya internal pada server. Hal ini dapat dilakukan dengan cara membatasi akses ke port atau sumber daya internal yang tidak diperlukan, serta membatasi penggunaan protokol yang digunakan untuk melakukan permintaan HTTP.

Selain itu, para pengembang dan security professional juga dapat menggunakan teknologi seperti firewall dan Web Application Firewall (WAF) untuk memantau dan membatasi akses ke sumber daya internal pada server. Hal ini akan membantu mencegah akses yang tidak sah atau tidak terotorisasi pada sumber daya internal pada server dan melindungi aplikasi web dari kemungkinan serangan Server-Side Request Forgery (SSRF).

Security Operation Center (SOC) adalah bagian dari sebuah organisasi yang menangani terkait keamanan informasi. SOC mengembangkan teknologi untuk membuat arsitektur untuk melakukan monitoring, deteksi, analisa dan solusi terhadap insiden keamanan siber. Tim keamanan ini seharusnya terdiri dari analis keamanan informasi, pemantauan seluruh aktifitas server, basis data, jaringan,aplikasi, perangkat yang terhubung dan website yang dikelola.SOC tidak hanya mengidentifikasi serangan tetapi juga melakukan analisis, investigasi sumbernya, membuat laporan tentang kerentanan yang ditemukan serta membuat rencana untuk mencegah kejadian serupa terjadi lagi.

Tugas dan Fungsi SOC :

  • Melakukan tindakan proaktif seputar kejadian keamanan jaringan, perangkat keras dan perangkat lunak.
  • Menawarkan solusi terkait keamanan informasi pada organisasi termasuk dengan penyedia dari pihak ketiga.
  • Instalasi dan pembaharuan perangkat lunak
  • Memonitor dan manajemen firewall
  • Melakukan scan terhadap virus, malware dan ransomeware
  • Mengelola trafik email
  • Melakukan analisis mendalam terhadap log yang berkaitan dengan keamanan informasi
  • Melakukan analisa terhadap trend keamanan informasi
  • Investigasi serangan sehingga dapat mencegah serangan di kemudian hari
  • Membuat kebijakan keamanan informasi pada organisasi
  • Melakukan backup dan recovery data