1.    Pengertian
Pentest atau Penetration Testing adalah suatu cara atau metodologi untuk mencari
tahu atau mendeteksi kelemahan suatu sistem yang berkaitan dengan security baik
aplikasi maupun sistem dan mengindentifikasi suatu resiko yang mungkin akan
terjadi atau mendeteksi kelemahan suatu sistem (memperkecil kelemahan dari
suatu sistem). Penetration Testing biasanya di lakukan oleh suatu badan atau
perorangan untuk mendeteksi kelemahan system (aplikasi, jaringan, server,
peripheral) yang dimiliki oleh Suatu Institusi untuk menemukan, memperbaiki
atau memberikan nasihat (advice) agar sistem tersebut relatif aman (yang tentu saja
tidak ada system yang sepenuhnya aman, tidak ada yang bisa menggaranti bahwa
sistem yang mereka bangun aman 100%).
Penetration
testing dan hacking memiliki pengertian yang sangat dekat, namun ada sedikit
perbedaan diantara keduanya. Keduanya sama-sama melakukan serangan pada system
IT baik itu network maupun web application. Namun Penetration Testing melakukan
serangan tersebut atas dasar perjanjian kerjasama dengan pemilik system IT yang
berkekuatan hukum, selain itu seorang penetration testing juga harus mampu
melakukan analisa secara menyeluruh terhadap kelemahan yang ada dan mampu
membuat kesimpulan atas tingkat kelemahan untuk keseluruhan system IT serta
mampu memberikan rencana perbaikan/solusi. Sedangkan hacking dilakukan tanpa
adanya perjanjian kerjasama yang berkekuatan hukum dan dengan banyak motivasi /
alasan  seperti keuntungan, protes, atau tantangan dan bahkan ingin
terkenal 
 
2.    Proses
penetration testing 
Pada prakteknya proses
penetration testing dibagi menjadi beberapa tahapan, dan tiap tahapan merupakan
kunci kesuksesan pada tahapan selanjutnya. Tahapannya adalah :
1.    Engagement
/ Perjanjian
2.    Information
gathering (Pengumpulan informasi) dan scanning
3.    Vulnerability
assessment / Penilaian kerentanan
4.    Exploitation
/ Eksploitasi
5.    Reporting
/ Pelaporan
 2.1. Engagement / Perjanjian
Salah satu cara terbaik  untuk memenangkan
suatu project adalah dengan menggunakan proposal, pertanyaannya adalah apa yang
harus kita tuliskan pada proposal khususnya dalam project penetration testing
?  Sebaiknya dalam proposal anda terdapat ulasan tentang pemahaman anda
terhadap kebutuhan, usulan pendekatan / metodologi (menggunakan scan tools
otomatis, pendekatan manual testing, dll).  Dalam proposal tersebut anda
harus mampu meyakinkan client  bahwa pekerjaan  anda akan membawa
nilai bisnis untuk client (kontinuitas, kerahasiaan yang terjaga, menghindari
kehilangan uang karena pelanggaran).
Dalam proposal juga berisi tentang harga pekerjaan
dan lama waktu pengerjaan. Untuk menghitung harga pekerjaan sebaiknya
memperhatikan hal hal berikut :
- Tipe perjanjian (Black Box | Grey Box…)
 - Lama pekerjaan
 - Tools yang digunakan dalam pekerjaan
 - Jumlah target (IP address, domains, dll).
 
Anda dapat memberikan biaya per jam jika anda tidak
bersedia untuk menghitung berdasarkan kuantitas jumlah pekerjaan yang
diperlukan.
Ketika anda telah memenangkan project , maka
perusahaan tersebut akan mengikat kita secara hukum dengan menandatangani
dokumen kontrak dan atau surat perjanjian kerahasiaan / non disclosure
agreement (NDA). Dokumen kontrak tersebut bisa berupa Memorandum of
Understanding (MOU) atau Rules of Engagement (ROE).
MOU pada dasarnya adalah perjanjian singkat seperti
apa peran dan tanggung jawab entitas bagi setiap pihak, apa hukum yang
digunakan dalam perjanjian, dll. MOU hampir sama dengan ROE namun ROE lebih
detail, sedangkan MOU lebih menjelaskan tentang peran dan tanggung jawab pihak
yang terkait.
ROE  merupakan dasar hukum dari penetration
tester bekerja. ROE berisi detail dari apa yang akan dilakukan, bagaimana cara
melakukan,  apa yang didapatkan client sebagai hasil. Dokumen RoE harus
sangat rinci dan mencakup metodologi  pengujian, tools  yang akan
digunakan, tes yang akan dilakukan, setiap akses, peralatan, atau persyaratan
konektivitas, dan ketentuan lain yang perlu disesuaikan oleh penetration tester 
dalam perjanjian. Client juga perlu mengetahui kapan perjanjian akan dimulai
dan kapan akan berakhir.
Pastikan ketika client membutuhkan dokumentasi
dalam perjanjian, bahwa dokumen yang diberikan harus sangat detail. Ini akan
menjadi dokumen yang paling penting selain nomor kontak yang akan anda tukar
dengan client, sehingga anda membutuhkan waktu yang cukup dalam membuat
template yang komprehensif dan memiliki landasan hukum untuk memastikan bahwa
segala hak dan kewajiban anda dan client telah ditulis dan yang paling penting
adalah mengikat secara hukum. Jika perlu konsultasikan dengan penasehat hukum
anda.
Aspek
minimum yang perlu anda dan client definisikan dalam dokumen RoE adalah :
- Scope / batasan target (IP, domain, server, department, dll)
 - Time-frame untuk test (tanggal mulai dan selesai, jam perhari yang diperlukan untuk test)
 - Orang yang terkait dengan test
 - Kontak (nomor telpon dan email), sehingga anda dapat telpon untuk keadaan darurat ketika test
 - Pemberitahuan status kemajuan mingguan
 - Methodology yang digunakan
 - Tools yang digunakan
 - Persetujuan untuk melakukan social engineering pada pegawai atau teknik yang lain seperti password cracking dan denial of service
 
2.2. Information gathering (Pengumpulan informasi), dan scanning
Setelah pekerjaan hukum selesai maka anda harus
segera memulai pekerjaan sebagai penetration tester, dan yang harus dilakukan
adalah menggali informasi tentang perusahaan client. Penetration tester harus
mengetahui bisnis client tersebut bergerak dibidang apa? Sehingga anda bisa
mengetahui aset terpenting client yang harus dilindungi dari attacker. Anda
juga harus mampu menilai tingkat resiko yang ada pada setiap aset yang dimiliki
oleh client.
Selanjutnya
minimum informasi yang harus anda dapatkan adalah ketika melakukan wawancara atau scanning IP Address kita bisa
mendapatkan kerentanan dan bisa menentukan ancaman apa yang kemungkinan dapat
membahayakan bisnis, meskipun terkadang kerentanan dan ancaman tersebut baru
bisa didapatkan setelah kita melakukan analisa lebih mendalam.
2.3. Vulnerability assessment / Penilaian kerentanan
Tahap ini bertujuan untuk membangun sebuah daftar
kerentanan yang ada pada target sistem. Penetration tester akan melakukan
sebuah penilaian kerentanan untuk setiap target yang ditemukan di tahap
sebelumnya. Semakin besar daftar semakin banyak kesempatan untuk mengeksploitasi
sistem. Penilaian kerentanan dapat dilakukan secara manual (dengan menggunakan
data yang dikumpulkan dalam tahap sebelumnya, seperti deteksi service) atau
melalui tool otomatis.
Ketika anda melakukan penilaian kerentanan secara
manual tanpa bantuan tools otomatis dan kemudian anda kesulitan menentukan
tingkat resiko / dampak kerentanan tersebut ada pada level high, medium atau
low, anda dapat menggunakan referensi dari  OSVDB, Bugtraq ID atau CVE.
Kenapa tahap ini harus dilakukan, dan kenapa tidak
langsung saja melakukan eksploitasi ? Yang perlu diingat adalah tugas
penetration tester tidak hanya melakukan eksploitasi dengan sukses, tetapi juga
harus dapat membuat laporan dan analisa kerentanan system IT yang dimiliki oleh
client, sekaligus mampu menjelaskan apa dampak kerugian yang akan dialami oleh
client apabila eksploitasi berhasil dilakukan baik secara finansial maupun non
finansial.
2.4. Exploit / Eksploitasi
Tahap eksploitasi akan memanfaatkan semua kelemahan
yang ditemukan pada langkah sebelumnya. Eksploitasi bertujuan memvalidasi
adanya kerentanan pada langkah sebelumnya, dan untuk melakukan bypass ke
system.
2.5. Reporting / Pelaporan
Laporan  adalah dokumen yang berisi history
dan hasil dari project Anda.  Sebagai penetration tester, anda harus
memahami level hierarki yang ada di perusahaan client. Dan anda harus mampu
berbicara pada setiap level tersebut dengan bahasa mereka. Layer yang ada di perusahaan biasanya ada 3, yaitu:
1.    Executive
Di level ini anda berbicara dengan matrik dan grafik yang menyajikan tentang resiko, dan dampak kerugian baik secara finansial maupun non finansial.
Di level ini anda berbicara dengan matrik dan grafik yang menyajikan tentang resiko, dan dampak kerugian baik secara finansial maupun non finansial.
2.    IT
Departement
Di level ini anda akan berbicara lebih detail pada tiap departemen tentang kerentanan beserta dampaknya.
Di level ini anda akan berbicara lebih detail pada tiap departemen tentang kerentanan beserta dampaknya.
3.    Development
Di level ini anda akan berbicara tentang hasil eksploitasi, proof of concept, tips untuk perbaikan, source code. Disinilah anda dapat menuliskan laporan anda secara teknik.
Di level ini anda akan berbicara tentang hasil eksploitasi, proof of concept, tips untuk perbaikan, source code. Disinilah anda dapat menuliskan laporan anda secara teknik.
Untuk
perusahaan yang berskala kecil biasanya hanya terdiri 2 level saja yaitu
executive dan development. Pastikan bahwa client anda dapat memahami laporan
yang anda buat.
Berikut
merupakan contoh struktur laporan :
1.
Executive summary
Pada
bagian ini anda dapat menceritakan secara singkat sistem IT yang telah anda
pen-test, kemudian hasil secara keseluruhan tingkat resiko untuk keseluruhan
sistem IT menunjukkan high, medium, atau low.  Anda juga dapat menyajikan
summary dari hasil eksploitasi anda berupa grafik tentang vulnerability by
impact, vulnerability by cause, successfull attack by type.
2.
Vulnerability report
Pada
bagian ini dibagi menjadi dua sub bagian :
a. Detail
of vulnerability
Pada sub
bab ini anda bisa membuat tabel yang berisi tentang tanggal uji coba, nama
vulnerability / kerentanan, impact level / tingkat dampak, cause / sebab
kerentanan, lokasi / url.  
b. Proof
of concept
Proof of concept disini bisa menggunakan langkah
langkah serangan yang telah sukses dilakukan. Laporan bisa berupa keterangan
yang disertai screenshot hasil uji coba. Semua vulnerability pada tabel
diatas  yang dapat dilakukan uji coba serangan dan sukses, maka perlu
dibuat laporan proof of concept nya.
3.   
Remediation report
Remediation report bisa dibagi menjadi dua, yaitu
rencana jangka pendek dan rencana jangka panjang. Rencana jangka pendek dapat
diterapkan ketika hal tersebut dapat mengatasi kerentanan yang paling penting
(yang memiliki nilai resiko medium dan high) dan dapat dilakukan sesegera
mungkin. Sedangkan rencana jangka panjang dapat diterapkan ketika membawa
manfaat jangka panjang dan perusahaan tidak dapat melakukan dalam waktu 6-12
bulan ke depan, sehingga membutuhkan investasi waktu dan dana yang besar.
Dalam membuat remediation report, anda bisa berbagi
tugas dengan tim anda untuk memberikan solusi yang terbaik ke client, tapi jika
anda bekerja sendiri sebagai seorang freelance maka anda harus bisa menguasai
hal ini. Jadi tugas anda sebagai seorang penetration tester tidak hanya
melakukan eksploitasi terhadap system mereka, tapi juga untuk meningkatkan
keamanan dari system mereka.
4.   
Logs
Logs
adalah segala catatan kegiatan penetration testing yang meliputi:
- Tanggal test
 - Target yang di test
 - Type test yang dilakukan
 - Source IP Address
 - Tools yang digunakan
 - Anggota penetration team
 
Istilah-istilah dalam penetration testing :
- Black Box Testing dalah penetration testing dilakukan tanpa mengetahui informasi-informasi sebelumnya yang berkaitan dengan sistem / jaringan seperti, sistem operasi yang digunakan oleh target, topologi jaringannya seperti apa, open port dan service apa saja yang sedang running.
 
- White Box Testing adalah penetration testing di lakukan terhadap sistem / jaringan dengan tipewhite box, biasanya informasi-informasi mengenai sistem / jaringan sudah di ketahui. Tetapi hal tersebut tidak serta-merta memberikan kemudahan dalam melakukan penetrasi, hal tersebut tergantung dari tester yang melakukan pengujian menilai sejauh mana kelemahan-kelemahan yang terdapat di dalam sistem / jaringan.
 
Untuk Penetration testing pada aplikasi “Web
Application Penetration Testing“, metode yang biasa di pakai yaitu:
- Passive Penetration Testing: Dalam hal ini yang dilakukan adalah kita melakukan pemetaan dan pengujian terhadap kontrol yang ada didalam web application, login dan konfigurasinya, sehingga kita bisa memetakan target system.
 
- Active Penetration Testing: Yaitu kita melakukan kegiatan aktif dalam pengujian terhadap keamanan system dengan melakukan manipulasi input, pengambilan akses, dan melakukan pengujian terhadap vulnerability-vulnerability yang sudah ada.
 
- Aggressive Penetration Testing: Melakukan eksploitasi terhadap vulnerability, melakukan reverse enginering terhadap software dan system. menanamkan backdoor, mendownload code, mencoba mengambil alih finansial dan informasi yang ada di server.