Penetration Testing
Pengertian Penetration Testing adalah suatu
kegiatan dimana seseorang mencoba mensimulasikan serangan yang bisa dilakukan
terhadap jaringan organisasi / perusahaan tertentu untuk menemukan kelemahan
yang ada pada sistem jaringan tersebut. Orang yang melakukan kegiatan ini
disebut penetration tester (disingkat pentester). Penetration Testing mempunyai
standar resmi sebagai acuan dalam pelaksanaannya.
Merupakan metode yang digunakan untuk
mengevaluasi keamanan sistem atau jaringan komputer dengan melakukan sebuah
simulasi penyerangan. Pada metodologi OWASP Web Application Security Testing
difokuskan hanya pada keamanan aplikasi web, dimana prosesnya melibatkan
analisis secara aktif terhadap aplikasi web, untuk menemukan kelemahan,
kecacatan teknis, dan kelemahan. Masalah-masalah keamanan yang telah ditemukan
akan diberikan kepada pemilik sistem, yang disertakan dengan laporan yang
berisi informasi tentang perkiraan dampak yang timbul dan juga solusi-solusi
teknik untuk masalah-masalah tersebut.
Selain itu penetration testing juga merupakan
teknik yang telah umum digunakan untuk menguji keamanan suatu jaringan.
Penetration testing dikenal juga sebagai black box testing atau ethical
hacking. Penetration testing merupakan seni dari pengujian sistem aplikasi web
yang sedang berjalan, tanpa mengetahui apa yang dikerjakan di dalam (inner
workings) aplikasi web itu sendiri. Seorang penguji berperan sebagai penyerang
(attacker) dan berusaha untuk menemukan dan mengeksploitasi bagian dari
aplikasi web yang memiliki sifat mudah diserang (vulnerabilities).
Selama ini penetration testing telah terbukti
efektif dalam membantu menangani masalah keamanan pada jaringan. Teknik
penetration testing tidak hanya ditujukan pada aplikasi, tetapi juga dapat
diterapkan pada jaringan, dan sistem operasi, dimana tujuan utama-nya adalah
mencari dan kemudian berusaha untuk mengeksploitasi vulnerabilities yang telah
diketahui atau terdeteksi pada evaluasi sebelumnya yang terdapat dalam
teknologi tertentu.
Selain itu terdapat kelebihan dan kekurangan yang dimiliki oleh
pengujian aplikasi web dengan menggunakan teknik penetration testing, adalah
sebagai berikut:
KELEBIHAN
|
KEKURANGAN
|
Dapat dilakukan secara
cepat, cukup sedikit waktu yang dibutuhkan (oleh karena itu relatif murah).
|
Terlalu terlambat dilakukan
dalam SDLC
|
Relatif dibutuhkan
keterampilan yang lebih rendah bila dibandingkan dengan teknik pengujian yang
dilakukan dengan cara pemeriksaan source code (code reviews).
|
Hanya menguji dampak depan
saja
|
Pengujian dilakukan pada kode yang
sebenarnya sedang digunakan (exposed).
|
Penetration Testing Work Flow
Untuk melakukan penetrasi testing aplikasi
web, OWASP menggunakan suatu metode (workflow) yang digunakan untuk mengatasi
kemungkinan situasi yang terjadi pada saat proses penetrasi testing
berlangsung, Gambar 12 menunjukkan workflow diagram yang digunakan untuk
membantu melakukan penetrasi testing pada suatu aplikasi web, yang terdiri dari
beberapa tahap, diantaranya:
1. Penetrasi testing dimulai dengan mengumpulkan
informasi yang mungkin mengenai infrastruktur
dan aplikasi yang terlibat. Tahap ini sangat penting, karena jika tidak paham mengenai dasar teknologi yang terlibat,
maka kemungkinan gagal akan terjadi selama tahap
pengujian berlangsung.
2. Proses pengujian harus
mengikuti semua tahap yang berbeda yang ditunjukkan pada Gambar 12.
3. Penguji harus berusaha untuk mengeksploitasi
semua kelemahan yang ditemukan. Bahkan jika eksploitasi gagal dilakukan,
penguji akan memperoleh pemahaman lebih mengenai
resiko kelemahan yang ditemukan.
4. Semua informasi yang diperoleh dengan cara
memeriksa kelemahan aplikasi web (seperti,
kesalahan pemrograman atau pencurian informasi internal) harus digunakan kembali untuk mengukur semua pemahaman
tentang aplikasi dan bagaimana aplikasi tersebut
bekerja.
5. Jika selama proses pengujian berlangsung,
kelemahan berhasil ditemukan pada aplikasi
web, seperti penyingkapan informasi yang kritis bagi bisnis, maka perusahaan yang berhubungan
harus segera dihubungi untuk memberitahu tentang situasi dan resiko yang terlibat.
Metode Penetration Testing
Metode penetration testing aplikasi web pada
metodologi OWASP dilakukan berdasarkan pada dua pendekatan yaitu black box
testing dan gray box testing. Pengujian Black box berarti penguji tidak
memiliki banyak informasi mengenai struktur, komponen dan bagian internal
aplikasi web yang akan diuji. Sedangkan pengujian white box berarti penguji
memiliki sebagian informasi tentang bagian internal aplikasi, seperti penyedia
perangkat lunak (platform vendor), sessionID dan algoritma yang digunakan.
Gambar 11 merupakan gambar yang dihasilkan dari pemodelan metodologi OWASP yang
menunjukkan model yang terdapat pada metodologi OWASP untuk melakukan penetrasi
testing pada suatu aplikasi web, yang terdiri dari:
a. Tester: Seseorang yang melakukan aktifitas
pengujian
b. Tools and metodologi: Inti dari panduan yang
diberikan oleh OWASP
c. Application: Aplikasi web yang akan diuji.
Gambar OWASP
Penetration Testing Model
1. Tahap Pengujian Penetrasi Aplikasi Web
OWASP membagi uji
penetrasi aplikasi web ke dalam tiga tahap yaitu, sebelum pengujian (pre-attack
phase), saat pengujian (attack phase) dan setelah pengujian (post-attack
phase).
a. Pre-Attack Phase
Pre-Attack Phase
merupakan tahap yang dilakukan sebelum penyerangan atau disebut juga dengan
pengujian yang dilakukan dengan cara pasif, dimana penguji berusaha untuk
mengumpulkan informasi yang berhubungan dengan aplikasi dan memahami mekanisme
aplikasi web yang akan diuji.
Gambar Penetration Testing Workflow
b. Attack Phase
Attack phase adalah tahap inti dari pengujian aplikasi web yang
dilakukan secara aktif, dimana tahap ini bermanfaat untuk menemukan kelemahan
yang terdapat pada aplikasi web, yang dilakukan dengan cara melakukan simulasi
penyerangan pada aplikasi web. Berikut merupakan keterangan-keterangan yang
dibutuhkan selama proses pengujian:
- Kategori
Merupakan kategori pengujian yang telah didefinisikan oleh
OWASP, yang dikenal dengan istilah OWASP Top 10, yang merupakan sepuluh besar
kelemahan yang sering terjadi pada aplikasi web.
- Nomor Referensi
Digunakan untuk lebih memudahkan proses identifikasi, yang
diklasifikasikan berdasarkan pada kategori pengujian.
- Nama Kebutuhan
Nama kebutuhan
(requirement) yang diperlukan untuk dilakukan pengujian. Setiap kebutuhan
diidentifikasi berdasarkan nomor referensi.
- Kelemahan Aplikasi Web
(Vulnerability)
Deskripsi kelemahan aplikasi web yang telah didefinisikan
sebelumnya oleh OWASP, dengan mengetahui kelemahan dapat membantu menentukan
bagian mana dari aplikasi web yang perlu dilakukan perbaikan.
Gambar Tahap Penetration Testing
b. Post-Attack Phase
Pada tahap ini dilakukan penilaian terhadap dampak resiko yang
ditimbulkan setelah kelemahan ditemukan pada aplikasi web. Gambar merupakan
gambar yang dihasilkan dari pemodelan metodologi OWASP yang menunjukkan
tahap-tahap yang dilakukan selama proses penetrasi testing. Tahap yang
dilakukan setelah tahap pengujian selesai dilakukan, diantaranya adalah sebagai
berikut:
-
Penilaian Resiko
Penilaian resiko merupakan tahap yang dilakukan setelah proses
pengujian aplikasi web berhasil dilakukan. Metode yang digunakan untuk
memperkirakan resiko bisnis adalah dengan menggunakan metodologi OWASP, dimana
dengan metode tersebut dapat diputuskan apa saja yang harus dilakukan terhadap
resiko-resiko tersebut. Dengan mengetahui resiko yang akan terjadi maka banyak
manfaat yang akan diperoleh diantaranya, menghemat waktu dan mengurangi
terjadinya resiko yang lebih serius. Perkiraan resiko pada metodologi OWASP
dimulai dengan model:
Likelihood merupakan kemungkinan penyebab yang
digunakan untuk memprediksi akibat yang terjadi pada suatu aplikasi web.
Sedangkan impact adalah dampak atau konsekuensi yang ditimbulkan akibat
serangan yang ditujukan terhadap aplikasi web. Menurut OWASP terdapat beberapa
tahap untuk menentukan dan mengkombinasikan besarnya resiko yang ditimbulkan
akibat eksploitasi kelemahan yang terdapat pada suatu aplikasi web, tahap-tahap
tersebut diantaranya:
a. Tahap 1: Identifying a Risk
b. Tahap 2: Factors for Estimating Likelihood
c. Tahap 3: Factors for Estimating Business Impact
d. Tahap 4: Determining Severity of the Risk
e. Tahap 5: Deciding What to Fix
Tahap 1: Identifying a Risk
Tahap pertama untuk mengetahui resiko yang terjadi pada sistem
keamanan adalah dengan mendapatkan informasi yang berhubungan dengan Threat
agent yang terlibat, serangan yang digunakan, kelemahan yang diperoleh dan
dampak yang terjadi apabila kelemahan tersebut berhasil di eksploitasi.
Tahap 2: Factors for Estimating Likelihood
Setelah tahap pertama dilakukan dan telah digambarkan seberapa
serius hal tersebut, maka tahap selanjutnya adalah melakukan perkiraan
likelihood. Proses identifikasi yang dilakukan adalah dengan memperkirakan
likelihood apakah berada pada tingkat rendah, sedang, atau cukup tinggi.
Di bawah ini merupakan faktor-faktor yang digunakan untuk
memperkirakan seluruh likelihood diantaranya Threat agent factors dan
vulnerability factor.
a. Threat Agent Factors
Tahap pertama adalah threat agent, tujuannya adalah
memperkirakan kemungkinan yang akan terjadi apabila proses penyerangan berhasil
dilakukan oleh para attacker.
- Skill Level
Bagaimana kemampuan teknis yang dimiliki oleh attacker.
- Motive
Apakah motif attacker mencari dan memanfaatkan kelemahan yang
ada.
- Opportunity
Berapa banyak keuntungan yang dapat diperoleh oleh para attacker
setelah mengeksploitasi kelemahan yang ada.
- Size
Seberapa besar kelompok attacker tersebut.
b. Vulnerability Factors
Tahap berikutnya adalah faktor kelemahan. Tujuannya adalah
memperkirakan kemungkinan-kemungkinan yang terjadi pada bagian kelemahan yang
telah ditemukan dan dimanfaatkan.
- Ease of discovery
Seberapa mudah attacker menemukan kelemahan yang ada.
- Ease of exploit
Seberapa mudah para attacker mengeksploitasi kelemahan tersebut.
- Awareness
Seberapa baik pengetahuan yang diketahui tentang kelemahan yang
dimiliki oleh attacker.
- Intrusion detection
Bagaimana cara eksploitasi dapat di deteksi.
Gambar menunjukkan faktor-faktor yang digunakan untuk
memperkirakan likelihood, dan disertakan pula nilai pada setiap faktor-nya,
dimana nilai-nilai tersebut akan digunakan sebagai perhitungan besarnya resiko yang
terjadi sebenarnya.
Tahap 3: Factors for Estimating Impact
Terdapat dua macam dampak yang ditimbulkan apabila proses
penyerangan berhasil dilakukan. Dampak pertama adalah dampak teknis yang
terjadi pada sisi aplikasi, dan berakibat pada data yang digunakan dan
fungsi-fungsi yang tersedia pada aplikasi web. Dampak kedua adalah dampak
bisnis yang terjadi pada sisi bisnis dan operasional perusahaan. Faktor untuk
memperkirakan dampak yang terjadi diantaranya technical impact factor dan
business impact factor.
a. Technical Impact Factors
Dampak teknis terdiri dari confidentiality, integrity,
availability, dan accountability. Tujuannya adalah untuk memperkirakan besarnya
dampak yang terjadi pada sistem apabila kelemahan yang ditemukan berhasil di eksploitasi.
- Loss of confidentiality
Seberapa banyak data yang dapat diperlihatkan dan seberapa
sensitif data tersebut.
- Loss of integrity
Seberapa banyak data yang dapat di korupsi dan bagaimana tingkat
kerusakan-nya.
- Loss of availability
Seberapa besar layanan yang hilang dan seberapa vital hal
tersebut terjadi.
- Loss of accountability
Apakah aksi yang dilakukan oleh seorang attacker dapat
ditelusuri.
Gambar Faktor-faktor untuk Memperkirakan Likelihood
b. Business Impact Factors
Di bawah ini merupakan faktor-faktor umum yang mungkin terjadi
pada sektor bisnis apabila kelemahan yang ditemukan di eksploitasi:
- Financial damage
Berapa banyak
kerugian finansial yang ditimbulkan dari hasil eksploitasi
- Reputation damage
Apakah
eksploitasi yang dilakukan akan merusak reputasi bisnis.
- Non compliance
Seberapa banyak
ditemukan pelanggaran yang terjadi
- Privacy violation
Berapa banyak
identitas pribadi yang dapat diungkap.
Gambar menunjukkan faktor-faktor yang digunakan untuk
memperkirakan dampak yang terjadi, dan disertakan pula nilai pada setiap
faktor-nya.
Tahap Determining the Severity of the Risk
Pada tahap ini faktor likelihood dan impact dikombinasikan untuk
menghitung seberapa besar resiko yang akan ditimbulkan. Hal yang dilakukan pada
tahap ini adalah menentukan apakah likelihood mempunyai tingkat LOW, MEDIUM,
atau HIGH, dimana ketiga kategori tersebut berada pada skala nilai 0-9.
Tahap pertama untuk mengetahui tingkatan likelihood adalah
dengan cara menghitung jumlah nilai dari setiap faktor dibagi jumlah banyaknya
faktor. Di bawah ini merupakan contoh bagaimana menentukan kategori likelihood
apakah berada pada tingkat LOW, MEDIUM, atau HIGH.
Menentukan Besarnya Resiko
Setelah hasil perkiraan likelihood dan impact didapatkan,
kemudian dilakukan kombinasi antara keduanya untuk menentukan hasil akhir,
yaitu seberapa besar tingkat resiko yang sebenarnya diperoleh. Untuk menentukan
hasil akhir dapat digunakan nilai yang terdapat pada dampak teknis maupun
dampak bisnis.
Tahap 5: Deciding What to Fix
Setelah mendapatkan klasifikasi resiko dari aplikasi yang diuji,
maka harus diputuskan bagian apa saja yang akan diperbaiki, pada umumnya
organisasi atau perusahaan harus memperbaiki bagian yang dianggap vital dan
menimbulkan kerugian yang cukup besar saja
Tidak ada komentar:
Posting Komentar