Seperti yang kita ketahui ada istilah Black Hat, White Hat, dan Grey Hat Hacker. Hal demikian juga berlaku untuk metode penetration testing
atau sering kita dengan PENTEST.
Dalam PENTEST istilah yang sering kita dengar adalah Black Box, White Box, dan Grey Box.
Secara umum maksud dari istilah Black Box adalah kita melakukan PENTEST tanpa mengetahui informasi sama sekali dengan kata lain kita tidak memiliki akses sebagai orang internal,
sedangkan White Box berbanding terbalik dengan Black Box kita mengetahui informasi penuh tentang target, mulai dari akses akun internal, basis data, bahkan kode sumber.
Namun yang saya alami sejauh ini rata - rata PENTEST yang dilakukan adalah Grey Box, apabila kita melakukan PENTEST dengan metode ini artinya kita mengetahui beberapa informasi tentang target,
misal kita memiliki akses akun terhadap aplikasi yang akan diuji, kita masih bisa membaca beberapa kode sumber modul - modul tertentu dengan dampingan pihak developer.
Jika diambil kesimpulan maka :
White Box => PENTEST sebagai Developer
Grey Box => PENTEST sebagai user dengan hak akses yang sah. (tergantung perjanjian)
Black Box => PENTEST sebagai Attacker
Dengan metode tersebut jika diurutkan berdasarkan jumlah celah yang ditemukan, White Box memiliki presentasi terbanyak, disusul oleh Grey Box dan yang paling sedikit adalah Black Box.
Kenapa demikian?
White Box memiliki presentase temuan celah terbanyak dikarenakan kita mengetahui kode sumber dari target, artinya seorang attacker bisa membaca alur program alhasil temuan mungkin sangat banyak.
Namun membaca kode sumber adalah hal yang trivia (gampang - gampang, susah).
Grey Box memiliki presentase temuan celah sedang dikarenakan kita hanya tau beberapa informasi tentang target, melebihi dari hasil informasi yang didapatkan dari proses Information Gathering sebagai attacker.
Black Box memilikian presentase paling sedikit, dikarenakan kita buta tentang target, sehingga memang fitur yang dapat diakses publik saja yang bisa kita uji keamanannya.
Pentest termasuk bagian daripada Development, sehingga apabila sebuah aplikasi sudah dibuat dan diuji oleh QA (Quality Assurance) selanjutnya langkah yang tepat adalah dilakukan PENTEST, terutama aplikasi financial
seperti perbankan atau aplikasi yang rawan.
Setelah sesi PENTEST selesai maka akan ada 2 paparan hasil PENTEST.
Paparan 1 untuk pihak manajemen seperti direksi, kepala tiap divisi, developer. Paparan yang pertama membahas tentang keamanan pada umumnya, mirip dengan paparan security awareness.
Berikut adalah beberapa poin yang menurut saya menarik pada paparan pertama :
- Security tidak berhubungan langsung dengan produktivitas, misal ada atau tidaknya tabung pemadam api tidak berpengaruh terhadap produktivitas kantor. Tetapi kantor akan habis apabila terjadi bencana kebakaran dikarenakan tidak adanya tabung pemadam api.
- Semua pihak diharapkan menerima hasil laporan PENTEST, sama halnya pasien harus menerima dan tidak marah terhadap hasil analisa dokter tentang penyakit apa saja yang diderita pasien tersebut.
- Poin diatas lebih baik daripada penyakit kita diberitakan oleh media
- Hal yang unik dalam IT Security adalah pencurian tidak berpindah kepemilikan seperti halnya kehilangan barang, melainkan orang lain memiliki salinan data kita.
Pada tahap tersebut celah yang ditemukan dipaparkan secara umum hanya garis besarnya saja supaya pihak atasan mengerti apa dampak yang akan terjadi apabila ada seorang hacker jahat yang
mengeksploitasi celah tersebut.
Paparan 2 untuk pihak developer, kepala divisi developer dan infrastruktur (semua orang technical yang berhubungan dengan target PENTEST). Pada paparan ini kita menjelaskan secara technical tentang celah yang ditemukan (demo)
Kebutuhan dasar yang harus dimiliki perusahaan (Minimum Essential Force)
- Firewall (jaringan)
- Web App Firewall
- Email Security
- End Point Protection (Anti Virus)
Kebutuhan lanjutan
- Priviledge Account Security (mengatur akses admin ke sistem2)
- IPS
- Vulnerability Assesment (berkala)
- Network Access Control (mengontrol akses jaringan WiFi)
- Log manajemen (monitor kondisi keamanan keseluruhan)
Mari kita to the point
Gambaran target sebut saja
https://xyz.cok
- Aplikasi dibuat dengan Java
- Fitur aplikasi adalah e-banking
- Hampir semua menu diakses hanya dengan parameter POST, termasuk untuk menampilkan form.
- XSS POST
- Pada saat akan menampilkan data (fitur search) saya intercept melaui burp dan inject payload XSS biasa, ini saya temukan dihampir semua menu.
- Session Hijacking
- Saya berhasil masuk sebagai user lain apabila saya mengetahui cookienya JSESSIONID=xxxxx
- Logic Application (OTP)
- OTP Muncul di console log browser, sehingga saya bisa transfer ke orang lain tanpa harus pegang HP pemiliknya.
Saran untuk teman - teman
- Catat apa saja yang akan diuji di kertas atau di note, centang satu per satu yang sudah.
- Uji tiap menu, tiap form, jangan lewatkan console browser, dan inspect element.
Mungkin teman - teman di sini ada saran untuk saya bagaimana cara menghadapi POST XSS dikarenakan setahu saya yang bisa dieksploitasi massal adalah parameter GET.
Silahkan yang kurang jelas ditanyakan di sini! Terima Kasih Banyak.