Cara Melakukan Pentest: Tahapan Penetration Testing dari Scoping hingga Reporting
Bagaimana cara melakukan pentest?
Pertanyaan ini semakin sering muncul seiring meningkatnya penggunaan aplikasi, cloud, API, website, dan sistem digital dalam operasional perusahaan.
Perusahaan tidak cukup hanya mengetahui bahwa sistem memiliki vulnerability.
Pertanyaan yang lebih penting adalah:
Apakah vulnerability tersebut benar-benar dapat dimanfaatkan?
Seberapa besar dampaknya terhadap bisnis?
Apa yang harus diperbaiki terlebih dahulu?
Di sinilah penetration testing atau pentest memiliki peran penting.
Pentest merupakan proses pengujian keamanan yang dilakukan secara terstruktur, terkontrol, dan memiliki otorisasi untuk mengidentifikasi serta memvalidasi kelemahan keamanan pada sistem.
Namun pentest bukan aktivitas yang seharusnya dilakukan secara sembarangan.
Ada proses yang perlu dipersiapkan, mulai dari menentukan scope hingga menyusun laporan hasil pengujian.
Artikel ini membahas tahapan pentest secara lengkap, mulai dari:
Scoping → Reconnaissance → Vulnerability Identification → Validation → Controlled Exploitation → Analysis → Reporting → Remediation → Retesting
Catatan keamanan: Pentest hanya boleh dilakukan terhadap sistem yang Anda miliki atau yang secara eksplisit memberikan izin pengujian. Detail eksploitasi teknis harus selalu disesuaikan dengan scope dan Rules of Engagement (RoE).
Apa Itu Pentest?
Pentest atau penetration testing adalah pengujian keamanan terhadap sistem dengan pendekatan simulasi serangan yang dilakukan secara legal dan terkontrol.
Target pentest dapat berupa:
- website;
- web application;
- mobile application;
- API;
- server;
- network;
- cloud environment;
- internal infrastructure;
- external infrastructure.
Tujuannya bukan merusak sistem.
Tujuannya adalah:
Menemukan, memvalidasi, dan memahami risiko keamanan sebelum kelemahan tersebut dimanfaatkan oleh pihak yang tidak berwenang.
Gambaran Besar Tahapan Pentest
Secara umum, proses pentest dapat digambarkan sebagai berikut:
1. Scoping
↓
2. Authorization & Rules of Engagement
↓
3. Reconnaissance
↓
4. Vulnerability Identification
↓
5. Validation
↓
6. Controlled Exploitation
↓
7. Impact Analysis
↓
8. Reporting
↓
9. Remediation
↓
10. Retesting
Setiap tahap memiliki tujuan berbeda.
Karena itu, pentest bukan sekadar:
“Scan → Hack → Report.”
Pentest profesional membutuhkan proses yang lebih terstruktur.
1. Menentukan Scope Pentest
Tahap pertama adalah menentukan scope.
Scope menjawab pertanyaan:
Sistem apa saja yang boleh diuji?
Misalnya perusahaan memiliki:
- 10 website;
- 5 aplikasi;
- 100 server;
- 3 API;
- cloud environment.
Bukan berarti semuanya otomatis masuk scope.
Perusahaan harus menentukan aset mana yang termasuk dalam pengujian.
Contoh Scope
In Scope:
- app.company.com
- Customer Portal
- Public API
Out of Scope:
- sistem internal tertentu;
- third-party application;
- sistem partner.
Dengan scope yang jelas, proses pentest menjadi lebih aman dan terukur.
2. Menentukan Authorization
Pentest harus dilakukan dengan izin yang jelas.
Ini merupakan salah satu perbedaan antara:
Authorized Security Testing
dan
Unauthorized Hacking.
Dokumen authorization sebaiknya menjelaskan bahwa tester memiliki izin untuk melakukan pengujian terhadap target yang telah disepakati.
Tanpa authorization yang jelas, aktivitas pengujian dapat menimbulkan masalah hukum maupun operasional.
3. Menentukan Rules of Engagement
Setelah scope ditentukan, perusahaan dan tester perlu menyepakati Rules of Engagement (RoE).
RoE dapat mencakup:
- waktu pengujian;
- metode yang diperbolehkan;
- sistem yang boleh diuji;
- aktivitas yang dilarang;
- batasan pengujian;
- emergency contact;
- prosedur jika terjadi gangguan.
Contohnya:
Pengujian hanya dilakukan pada staging environment dan tidak diperbolehkan melakukan tindakan yang berpotensi mengganggu availability sistem.
Aturan seperti ini membantu mengurangi risiko operasional.
4. Menentukan Jenis Pentest
Sebelum pengujian dimulai, tentukan jenis pentest.
Misalnya:
External Pentest
Menguji aset yang dapat diakses dari internet.
Internal Pentest
Menguji keamanan dari perspektif internal network.
Web Application Pentest
Berfokus pada aplikasi web.
Mobile Application Pentest
Berfokus pada aplikasi Android atau iOS.
API Pentest
Berfokus pada keamanan API.
Cloud Pentest
Menguji aset cloud sesuai scope dan kebijakan provider.
Jenis pentest harus disesuaikan dengan tujuan perusahaan.
5. Menentukan Black Box, Gray Box, atau White Box
Pendekatan pengujian juga perlu ditentukan.
Black Box
Tester memperoleh informasi yang sangat terbatas.
Pendekatan ini lebih mendekati perspektif external attacker.
Gray Box
Tester memperoleh sebagian informasi.
Pendekatan ini memberikan kombinasi perspektif attacker dan informasi internal.
White Box
Tester memperoleh informasi yang lebih lengkap mengenai sistem.
Pendekatan ini dapat memungkinkan pengujian yang lebih mendalam.
6. Reconnaissance
Setelah scope dan aturan disepakati, tester mulai memahami target.
Tahap ini disebut reconnaissance.
Tujuannya adalah memahami:
- aset;
- teknologi;
- service;
- application;
- architecture;
- dan attack surface.
Informasi yang dikumpulkan harus tetap berada dalam scope.
Secara sederhana:
Reconnaissance = memahami target sebelum melakukan pengujian lebih lanjut.
7. Attack Surface Mapping
Setelah informasi dikumpulkan, tester dapat membuat pemetaan attack surface.
Misalnya:
Internet
↓
Firewall
↓
Web Application
↓
API
↓
Database
Dari sini tester dapat menentukan area mana yang perlu mendapatkan perhatian.
Attack surface yang besar berarti semakin banyak area yang perlu dikelola.
8. Vulnerability Identification
Tahap berikutnya adalah mencari potensi vulnerability.
Pengujian dapat menggunakan kombinasi:
- automated scanning;
- manual testing;
- configuration review;
- application testing;
- security assessment.
Tujuannya adalah menemukan kelemahan yang berpotensi memiliki dampak terhadap keamanan.
Contohnya:
- authentication weakness;
- authorization issue;
- insecure configuration;
- outdated component;
- input validation issue;
- access control weakness.
9. Validasi Temuan
Tidak semua hasil scanning otomatis berarti vulnerability yang dapat dieksploitasi.
Karena itu, temuan perlu divalidasi.
Misalnya scanner menghasilkan:
Potential High-Risk Finding
Tester kemudian melakukan pemeriksaan lebih lanjut.
Hasilnya dapat berupa:
False Positive
atau
Confirmed Finding.
Validasi ini penting agar laporan tidak dipenuhi temuan yang tidak relevan.
10. Controlled Exploitation
Jika vulnerability telah tervalidasi, pengujian dapat dilanjutkan dengan controlled exploitation sesuai scope.
Tujuannya untuk mengetahui:
Apakah vulnerability tersebut benar-benar dapat dimanfaatkan?
Pengujian harus dilakukan dengan hati-hati.
Tester tidak seharusnya mengejar eksploitasi maksimal jika tindakan tersebut dapat:
- merusak data;
- mengganggu layanan;
- menghapus sistem;
- atau menimbulkan dampak bisnis yang tidak diperlukan.
Prinsipnya:
Prove the risk without creating unnecessary damage.
11. Menguji Attack Path
Pada pentest tertentu, tester tidak hanya melihat satu vulnerability.
Tester dapat mencoba memahami apakah beberapa kelemahan dapat membentuk attack path.
Contoh konseptual:
Initial Access
↓
Privilege Escalation
↓
Access to Internal Resource
↓
Sensitive Data Exposure
Ini memberikan gambaran yang lebih realistis mengenai potensi dampak serangan.
12. Menguji Business Logic
Salah satu bagian penting dari pentest aplikasi adalah business logic testing.
Tidak semua kelemahan dapat ditemukan dengan scanner.
Misalnya aplikasi memiliki proses:
Register
↓
Order
↓
Payment
↓
Approval
↓
Delivery
Tester dapat mengevaluasi apakah terdapat kelemahan dalam workflow tersebut.
Misalnya:
- proses dapat dilewati;
- authorization tidak konsisten;
- validasi tidak berjalan pada kondisi tertentu;
- user dapat melakukan aktivitas yang seharusnya tidak diperbolehkan.
Karena itu, tester membutuhkan pemahaman terhadap:
Technology + Application + Business Process.
13. Impact Analysis
Setelah temuan ditemukan dan divalidasi, langkah berikutnya adalah menganalisis dampaknya.
Pertanyaan yang perlu dijawab:
Apa yang dapat diakses?
Siapa yang terdampak?
Seberapa besar akses yang diperoleh?
Apakah data sensitif dapat terdampak?
Apakah sistem lain dapat ikut terdampak?
Apa dampaknya terhadap bisnis?
Hasil analisis inilah yang membantu menentukan prioritas remediation.
14. Menentukan Severity
Temuan pentest biasanya diberikan tingkat severity.
Contohnya:
Critical
High
Medium
Low
Namun severity teknis bukan satu-satunya pertimbangan.
Perusahaan juga perlu mempertimbangkan:
Business Impact
Misalnya vulnerability pada sistem yang memproses transaksi utama perusahaan dapat memiliki prioritas tinggi meskipun konteks teknisnya berbeda dengan vulnerability pada sistem yang tidak kritis.
15. Menyusun Evidence
Setiap temuan sebaiknya memiliki evidence yang memadai.
Evidence dapat membantu menunjukkan:
“Temuan ini benar-benar terjadi.”
Evidence harus disajikan secara bertanggung jawab dan tidak membocorkan data sensitif secara tidak perlu.
Contohnya laporan dapat menggunakan:
- screenshot yang telah disanitasi;
- request/response yang relevan;
- hasil observasi;
- atau bukti teknis lainnya.
16. Menyusun Laporan Pentest
Reporting merupakan salah satu output terpenting dari pentest.
Laporan yang baik harus dapat dipahami oleh dua kelompok:
Technical Team
Membutuhkan informasi teknis untuk melakukan remediation.
Management
Membutuhkan gambaran:
- risiko;
- prioritas;
- dampak;
- dan rekomendasi.
Karena itu, laporan pentest idealnya memiliki:
Executive Summary
Technical Findings
Risk Assessment
Recommendation
17. Struktur Laporan Pentest
Struktur laporan dapat mencakup:
Executive Summary
Menjelaskan kondisi keamanan secara umum.
Scope
Menjelaskan sistem yang diuji.
Methodology
Menjelaskan pendekatan pengujian.
Findings
Menjelaskan vulnerability yang ditemukan.
Severity
Menjelaskan tingkat risiko.
Evidence
Menunjukkan bukti temuan.
Impact
Menjelaskan potensi dampak.
Recommendation
Memberikan arah remediation.
Conclusion
Memberikan kesimpulan kondisi keamanan.
18. Contoh Format Temuan
Contoh sederhana:
Finding
Broken Access Control
Severity
High
Affected Asset
Customer Portal
Description
Ditemukan kelemahan pada mekanisme authorization yang memungkinkan user tertentu mengakses resource yang seharusnya dibatasi.
Potential Impact
Dapat menyebabkan unauthorized access terhadap data tertentu.
Recommendation
Perkuat server-side authorization dan lakukan validasi access control pada setiap request yang relevan.
Retest
Lakukan pengujian ulang setelah remediation.
Format seperti ini lebih bermanfaat daripada sekadar:
“Ada vulnerability.”
19. Executive Summary untuk Management
Management biasanya tidak membutuhkan detail teknis yang terlalu dalam.
Executive summary dapat menjawab:
Berapa temuan ditemukan?
Berapa yang memiliki prioritas tinggi?
Sistem apa yang paling berisiko?
Apa dampaknya terhadap bisnis?
Apa yang harus dilakukan?
Misalnya:
Hasil penetration testing menemukan beberapa security findings pada customer-facing application. Temuan dengan prioritas tertinggi berkaitan dengan access control dan authentication. Perusahaan direkomendasikan memprioritaskan remediation pada area tersebut dan melakukan retesting setelah perbaikan.
Dengan demikian, management dapat memahami kondisi tanpa harus membaca seluruh detail teknis.
20. Remediation
Setelah laporan diterima, pekerjaan belum selesai.
Perusahaan perlu melakukan:
Remediation
atau tindakan perbaikan.
Contohnya:
- patch software;
- memperbaiki konfigurasi;
- memperkuat access control;
- memperbaiki code;
- meningkatkan authentication;
- memperbaiki security architecture.
Prioritas remediation sebaiknya ditentukan berdasarkan:
Severity + Exploitability + Business Impact + Asset Criticality
21. Retesting
Setelah remediation selesai, lakukan retesting bila sesuai scope dan kebutuhan.
Tujuannya:
Memastikan vulnerability sudah diperbaiki atau risikonya sudah berkurang sesuai target.
Siklusnya:
Finding
↓
Remediation
↓
Retest
↓
Validated
atau
↓
Still Open
Jika vulnerability masih ditemukan, diperlukan remediation lanjutan.
22. Pentest Bukan Sekadar Sekali Selesai
Keamanan sistem bersifat dinamis.
Setelah pentest selesai, perusahaan mungkin:
- menambah fitur;
- mengubah architecture;
- melakukan deployment;
- menambah API;
- migrasi cloud;
- mengganti software.
Perubahan tersebut dapat menciptakan vulnerability baru.
Karena itu, pentest sebaiknya menjadi bagian dari continuous security improvement.
Checklist Tahapan Pentest
Berikut checklist sederhana yang dapat digunakan perusahaan:
Planning
☐ Menentukan tujuan
☐ Menentukan scope
☐ Menentukan target
☐ Menentukan timeline
Authorization
☐ Authorization tersedia
☐ Rules of Engagement disepakati
☐ PIC teknis tersedia
☐ Emergency contact tersedia
Testing
☐ Reconnaissance
☐ Attack surface mapping
☐ Vulnerability identification
☐ Validation
☐ Controlled exploitation
☐ Impact analysis
Reporting
☐ Executive summary
☐ Technical findings
☐ Evidence
☐ Severity
☐ Recommendation
Post-Pentest
☐ Remediation
☐ Retesting
☐ Risk review
☐ Improvement plan
Kesalahan yang Harus Dihindari Saat Melakukan Pentest
1. Tidak Menentukan Scope
Ini dapat menyebabkan pengujian terhadap sistem yang tidak seharusnya diuji.
2. Tidak Memiliki Authorization
Pentest tanpa izin bukan security testing yang sah.
3. Langsung Melakukan Eksploitasi
Pentest harus dimulai dari planning dan scoping.
4. Mengabaikan Business Impact
Temuan teknis harus dikaitkan dengan risiko bisnis.
5. Tidak Melakukan Remediation
Laporan tidak memberikan manfaat maksimal jika tidak ada tindakan perbaikan.
6. Tidak Melakukan Retesting
Perusahaan perlu memastikan perbaikan efektif.
Pentest untuk Perusahaan: Apa yang Harus Dipersiapkan?
Sebelum melakukan pentest, perusahaan sebaiknya memastikan:
1. Asset Inventory
Mengetahui aset yang dimiliki.
2. Scope
Menentukan target pengujian.
3. Authorization
Memastikan izin pengujian.
4. Rules of Engagement
Menentukan batasan.
5. PIC
Menentukan pihak yang bertanggung jawab.
6. Backup & Recovery
Memastikan kesiapan menghadapi kemungkinan gangguan.
7. Remediation Owner
Menentukan siapa yang akan menangani temuan.
Dengan persiapan tersebut, pentest dapat berjalan lebih aman dan menghasilkan output yang lebih bermanfaat.
Apakah Pentest Harus Dilakukan oleh Internal atau Eksternal?
Keduanya dapat digunakan.
Internal Pentest
Kelebihannya:
- tim memahami lingkungan internal;
- lebih mudah melakukan follow-up;
- dapat dilakukan sebagai bagian dari program internal.
Namun dibutuhkan:
- kompetensi;
- tools;
- waktu;
- dan independensi yang memadai.
External Pentest
Dapat memberikan:
- perspektif pihak luar;
- expertise khusus;
- pendekatan yang lebih independen.
Pilihan bergantung pada kebutuhan dan maturity perusahaan.
Mengapa Kompetensi SDM Penting dalam Pentest?
Tools cybersecurity terus berkembang.
Namun tools bukan pengganti pemahaman.
Seorang security professional perlu memahami:
Network
Application
Operating System
Cloud
Security
Risk
Business Logic
Karena itu, perusahaan yang ingin membangun kemampuan security testing internal perlu mempertimbangkan pengembangan kompetensi SDM.
Training Pentest untuk Meningkatkan Kompetensi Tim
NEMA Academy dapat membantu perusahaan mengembangkan kompetensi melalui Training Pentest dan Cybersecurity yang disesuaikan dengan kebutuhan organisasi.
Materi dapat diarahkan berdasarkan level peserta, mulai dari:
Basic
→
Intermediate
→
Advanced
Topik training dapat mencakup:
- fundamental penetration testing;
- vulnerability assessment;
- reconnaissance;
- web application security;
- network security;
- security testing methodology;
- vulnerability analysis;
- reporting;
- risk assessment;
- dan remediation.
Untuk kebutuhan perusahaan, training dapat menggunakan pendekatan:
Concept → Demonstration → Practice → Case Study → Review
Dengan demikian, peserta tidak hanya mengetahui apa itu pentest, tetapi juga memahami bagaimana penetration testing menjadi bagian dari proses peningkatan keamanan perusahaan.
Kesimpulan
Cara melakukan pentest tidak dimulai dengan melakukan serangan terhadap sistem.
Proses yang profesional justru dimulai dari:
Scoping
↓
Authorization
↓
Rules of Engagement
↓
Reconnaissance
↓
Vulnerability Identification
↓
Validation
↓
Controlled Exploitation
↓
Impact Analysis
↓
Reporting
↓
Remediation
↓
Retesting
Setiap tahapan memiliki fungsi penting untuk memastikan pengujian dilakukan secara aman, terkontrol, dan memberikan nilai bagi perusahaan.
Hal yang paling penting adalah memahami bahwa:
Pentest bukan sekadar mencari vulnerability.
Pentest membantu perusahaan menjawab:
“Seberapa aman sistem kita jika diuji dari perspektif attacker?”
Dan yang lebih penting:
“Apa yang harus kita lakukan setelah mengetahui risikonya?”
Karena itu, hasil pentest sebaiknya tidak berhenti pada laporan.
Gunakan hasilnya untuk:
Find → Understand → Prioritize → Remediate → Retest → Improve
Dengan pendekatan tersebut, pentest dapat menjadi bagian dari program cybersecurity yang berkelanjutan, bukan sekadar aktivitas pengujian satu kali.
Butuh training IT untuk tim Anda?
NEMA Academy merancang in-house training dan pendampingan yang disesuaikan dengan kebutuhan organisasi Anda. Konsultasikan kebutuhan tim Anda langsung dengan kami.

