Penetration Testing

Dalam dunia industri security kita sering mendengar istilah penetration testing, dan bagi para penggiat security yang umumnya datang dari kalangan komunitas aktivitas penetration testing merupakan jenis pekerjaan yang sangat digandrungi serta di inginkan. Apa sebenarnya yang menjadi latar belakang aktivitas penetration testing?

Pengalaman saya di bidang security datang dari komunitas, dan hingga saat ini tidak begitu memperdulikan beragam teori dibalik sertifikasi bidang security profesional. Sehingga tidak memiliki pengetahuan untuk memberikan definisi dari penetration testing (bahasa indo nya uji penetrasi) secara teoritis. Secara gamblang, penetration testing merupakan aktivitas yang umumnya diminta oleh suatu client untuk mensimulasikan serangan terhadap infrastruktur IT mereka. Serangan ini tentu saja untuk menggambarkan simulasi apabila ada individu ataupun kelompok yang ingin masuk kedalam infrastruktur IT dan melakukan beragam hal seperti pencurian data. Penetration testing bisa juga berarti proses audit untuk menunjukan beragam kelemahan dari suatu infrastruktur IT yang memungkinkan penyerang menusuk masuk, sehingga hasil akhirnya diharapkan agar kelemahan tersebut dapat ditutup.

Salah satu informasi mengenai penetration testing yang menurut saya layak dibaca adalah tulisan sergicles. Beberapa poin penting dari penetration testing termasuk perbedaannya dengan vulnerability assessment dijelaskan disana.

The Phase

The common once are: application penetration testing, internal network penetration testing and external network penetration testing.

Tulisan sergicles cukup jelas menggambarkan aktivitas pada setiap fase: external network, internal network, application. External networks tentu saja untuk mensimulasikan jenis serangan yang dilakukan oleh penyerang dari luar, termasuk diantaranya informasi-informasi apa saja mengenai client yang dapat digunakan sebagai jalan masuk (information gathering). Informasi ini tidak terbatas pada sisi infrastruktur IT, namun bisa kepada faktor manusia yang menjadi resource client tersebut melalui media seperti linkedin maupun facebook.

Internal penetration testing menggambarkan resiko yang akan diterima oleh client apabila terjadi intrusi dari sisi internal. Misal: situasi dimana suatu client sering memasukan beragam vendor kedalam networknya, dapat dibayangkan apabila ada satu individu yang berniat mengambil keuntungan dari client tersebut ketika sudah berada didalam network dengan berusaha masuk kedalam infrastruktur client yang seharusnya tidak boleh disentuh. Atau bisa juga dibayangkan individu-individu yang memiliki akses seperti office-boy (jangan pernah meremehkan setiap kemungkinan 😉 ). Resiko internal penetration testing juga bisa untuk mensimulasikan apabila seorang penyerang telah berhasil mendapatkan akses dari luar. Penyerang memiliki waktu yang lebih banyak daripada konsultan ketika melakukan penetrasi, seorang penyerang mungkin bisa mendapatkan waktu hingga berbulan-bulan setelah masuk melalui security hole dari external network. Dengan begitu, penyerang tersebut memiliki kesempatan lebih banyak untuk melakukan aktivitas profiling dan eksploitasi serta pencurian beragam data dalam network target. Pada titik inilah seorang konsultan dapat mensimulasikan apa saja yang bisa didapatkan oleh penyerang apabila mereka berhasil kedalam network internal (contoh sederhana: eksploitasi komputer CEO untuk mendapatkan data-data penting perusahaan).

Penetration Testing v.s Vulnerability Assessment

Tulisan sergicles juga memberikan poin perbedaan antara vulnerability assessment dan penetration testing.

If we were to do a security assessment/VA, we would stop here. We would have a complete list of (enumerated) targets. We would know what services are running on them and their version numbers. Lastly, this would be matched against public vulnerability databases and reported on.

However, if we are pen-testing we are not after coverage – we are after the most amount of damage in the least amount of time.

Vulnerability Assessment lebih fokus pada coverage, istilah lainnya adalah menemukan beragam public vulnerability pada seluruh sistem dalam network target. Public vulnerability ini tidak perlu ada eksploit nya namun memiliki potensi untuk di eksploitasi sehingga harus ditutup. Sedangkan penetration testing benar-benar melakukan eksploitasi terhadap sistem client dalam arti masuk kedalam mesin mereka. Lalu apa pentingnya penetration testing jika fokusnya bukan pada coverage atau penemuan vulnerability pada seluruh sistem yang dimiliki oleh client?! Penetration testing bertujuan untuk menunjukan sampai sejauh apa seorang penyerang dapat menusuk masuk kedalam infrastruktur target, data-data seperti apa yang bisa didapatkan oleh penyerang, resiko paling parah apa yang akan dihadapi oleh client apabila penetrasi tersebut berhasil, dsb. Ini artinya penetration testing menunjukan secara nyata bahaya yang akan dihadapi oleh suatu client apabila serangan tersebut berhasil. Tentu saja berhasil atau tidaknya aktivitas penetration testing tidak akan membuktikan 100% bahwa infrastruktur client hack-proof atau tidak, namun setidaknya bisa menunjukan seberapa rentan infrastruktur IT client tersebut dari beragam level penyerang. Pada bagian report biasanya akan ditunjukan seberapa tinggi tingkat kesulitan penetrasi pada infrastruktur client, apakah penetrasi tersebut bisa dilakukan dengan menggunakan tools-tools public pada internet, menggunakan metode script-kiddies, atau perlu sekumpulan expert yang menggunakan customized tools dan private technique.

Hal lain yang membedakan aktivitas penetration testing dengan vulnerability assessment adalah ketika penetrasi berhasil. Berhubung vulnerability assessment hanya bertujuan menemukan vulnerability maka biasanya aktivitas akan berhenti disitu. Sedangkan penetration testing baik yang dilakukan secara individu ataupun team, akan menusuk masuk melalui mesin-mesin yang berhasil di penetrasi. Salah satu contohnya adalah pada tulisan sebelumnya dimana dilakukan password cracking untuk masuk ke mesin-mesin selanjutnya. Contoh lain: Masuk kedalam mesin salah satu system administrator, dilakukan information gathering pada mesin tersebut dengan membaca beragam file didalamnya hingga ditemukan data username/password yang tidak terenkripsi menuju server-server penting. Ataupun mendapatkan skema network dimana dapat kita temukan lokasi mesin-mesin high-level management seperti direktur dan CEO, dengan informasi tersebut seorang penetration tester dapat fokus pada target selanjutnya dan jika penetrasi bisa dilakukan maka kebocoran data internal akan berakibat fatal. Individu maupun team dapat bekerja sama menggali lebih dalam suatu target yang berhasil di penetrasi untuk menemukan informasi-informasi lain yang bermanfaat untuk kemudian dilakukan penetrasi lagi, mencari informasi lagi dilanjutkan dengan penetrasi lagi, begitu seterusnya. Inilah yang membedakan antara penetration testing dan vulnerability assessment dimana penetration testing benar-benar menunjukan aktivitas dari penyerang yang sebenarnya.

Metodologi dari penetration testing ada beragam, dan banyak pihak yang berusaha mengklasifikasikan metode-metode tersebut sehingga menjadi panduan yang generic, salah satunya adalah PTES Technical Guidelines. Setiap team ataupun konsultan tentu memiliki resep dan rahasia perusahaan nya masing-masing, namun satu hal yang pasti, sebelum melakukan pekerjaan tentunya harus disepakati bersama scope dari pekerjaan tersebut. Pada tulisan ini telah dijelaskan beberapa perbedaan antara penetration testing dan vulnerability assessment, jika anda berada pada posisi konsultan maka perbedaan ini dapat menjadi salah satu bentuk proposal awal kepada client, dan jika anda adalah pihak client yang membutuhkan suatu audit IT security maka definisi penetration testing diatas dapat menjadi informasi tipe audit seperti apakah yang dibutuhkan oleh perusahaan anda.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s