Halo, kali ini saya akan mencoba menuliskan sebuah writeup singkat tentang celah keamanan yang saya temukan di beberapa subdomain milik salah satu website pemerintahan di alamat: https://surabaya.go.id/. Sebenarnya tidak ada niatan awalnya untuk melakukan security testing (pen-test) terhadap website tersebut, cerita berawal dari penasaran dengan platform VDP finder: FireBounty.com dari YesWeHack yang merupakan website yang menyediakan database berbagai Vulnerability Disclosure Policy (VDP) dan Bug Bounty Program (BBP) yang didapatkan menggunakan teknik crawling berbagai website yang me-listing mekanisme pelaksanaan VDP ataupun BBP di website mereka. Kita juga dapat menambahkan manual dengan klik tombol “ADD VDP”.
Apa itu VDP dan security.txt?
Menurut U.S Department of Education, VDP adalah pedoman yang menjelaskan aktivitas yang dapat dilakukan oleh peneliti keamanan (security researcher) untuk menemukan dan melaporkan kerentanan keamanan dalam sistem dan layanan yang dapat diakses internet dengan cara yang sah secara hukum. Vulnerability Disclosure terbagi menjadi dua jenis, ada yang namanya Full Disclosure, yaitu dimana bug yang ditemukan perlu dijelaskan dan dideskripsikan dengan detail ke publik demi keamanan bersama, dan ada juga yang namanya Responsible Disclosure, yang sama dengan full disclosure, tapi bedanya kita memberikan batas waktu yang memungkinkan kerentanan tersebut untuk ditambal atau diperbaiki oleh developer yang bersangkutan. Salah satu standard yang digunakan untuk membuat VDP adalah menggunakan security.txt yang merupakan internet draft (https://datatracker.ietf.org/doc/html/draft-foudil-securitytxt) yang diusulkan untuk menjadi standard informasi keamanan situs web yang dimaksudkan untuk memungkinkan peneliti keamanan melaporkan kerentanan keamanan dengan mudah.
Selanjutnya saya mencoba mencari situs-situs startup besar Indonesia yg memang menyediakan bugbounty program seperti tokopedia.com dan bukalapak.com di kolom pencarian firebounty.com, namun hasilnya nihil. Saya kemudian menyadari bahwa situs-situs yang di crawl sepertinya hanya yang memiliki VDP dengan menggunakan standard dari security.txt. Karena, ketika saya coba iseng memasukkan kata kunci (dork) sederhana berikut: “.id” untuk mencari apakah ada situs Indonesia dengan domain yang berakhiran “.id” yang terindeks di database firebounty.com. Saya cukup terkejut ternyata cukup banyak hasil yang keluar, saya kira tidak ada sama sekali karena yang saya tahu baru startup besar saja yg menjalankan program Bug Bounty.
Setelah saya teliti lebih lanjut, memang situs-situs yang muncul ini memiliki standard security.txt ditandai dengan adanya file security.txt pada directory /.well-known/ (
/.well-known/security.txt
)ataupun pada root directory (/security.txt
). Dari beberapa hasil pencarian yang muncul, ada satu yang menarik perhatian saya yaitu ada satu website pemerintahan surabaya.go.id yang memiliki pedoman untuk VDP pada url: http://surabaya.go.id/.well-known/security.txt/. Wah kalau tim security ataupun developer nya sudah tau dengan standard security.txt yang bisa dibilang tergolong baru karena merupakan internet draft yang di submit oleh Edwin Foudil pada September 2017 dan masih dalam tahap awal pengembangan menurut security.txt. Artinya, siapapun yang menerapkan standard security.txt ini di website surabaya.go.id dan mungkin yang pertama dan satu-satunya website pemerintahan yang menerapkan standard tersebut, sudah berkontribusi besar dalam upaya information security Indonesia yang lebih baik.
Mengapa? Karena sekarang setiap security researcher entah itu white-hat, grey-hat, atau bahkan black-hat sekalipun yang mungkin nyasar ataupun dengan sengaja ingin mencari celah keamanan di website surabaya.go.id akan mendapatkan informasi yang jelas bagaimana harus melaporkan kerentanan keamanan yang ditemukannya, apalagi jika “diapresiasi” atas setiap yang dilaporkan, kemungkinan “diisengin” ataupun terjadinya kasus kebocoran data dengan motif apapun kemungkinan bisa diminimalisir. Saya mengira awalnya kalau yang maintenance website ini saja tahu tentang security.txt pastilah sudah paham dan sering riset tentang security khususnya keamanan website. Karena yakin aman untuk di test dan informasinya jelas harus melaporkan kemana, saya langsung saja melanjutkan keisengan saya dengan melakukan Web Application Testing terhadap scope: *.surabaya.go.id
The Assessment & Bugs
Saya mulai mengeksplorasi target menggunakan teknik basic automation recon menggunakan standard tools untuk melakukan subdomain enumeration dan vulnerability scanning tahap awal. Kemudian dilanjutkan dengan manual testing untuk beberapa temuan dan endpoint yang menarik. Singkat cerita, saya menemukan multiple vulnerabilities yang severity level nya mulai dari sekedar information, low, medium, high, hingga critical. Hari ini saya cek terakhir kali sudah ada beberapa yang di-patch, namun masih ada juga yang belum padahal sudah lama sekali sejak laporan pertama kali saya kirimkan. Berikut beberapa dari sekian banyak kerentanan yang saya laporkan (yg disensor itu yang belum di patch):
Saya memang tidak sampai melampirkan Proof-of-Concept (PoC) dan hanya melaporkan celah yang menurut saya memiliki impact yang cukup saja dikarenakan di VDP ini tidak ada bounty ataupun apresiasi yang layak yg akan diberikan, hanya dikasih 2M (Makasih Mas), namun ada beberapa kerentanan umum yang saya coba juga sampai tahapan eksploitasi dan ternyata memiliki impact yang cukup besar (parah).
Timeline:
Takeaways:
Cool