Wikipedia

Hasil penelusuran

Minggu, 05 Januari 2020

Penetration Testing dan Hacking Phase


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.


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOanD8W3xJB2b-NPIHrbiw8-tIHHtgNPqeWjNboN9ZR3S7IkGMEaigWoEr9uiXTtG5xY-3lz7IBGSAHDdJa78udlebA517FgTe0dBB_mlPjLQHsueiytTucRhhF2jN8IGL-vD0_sARpQ7G/s320/1.png
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.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7x-1M90z_fnUED2cAcR3NrEoV-xL8Znch8vrdbE9U4_ifjSmN9g4RUzghAhzKPdxHHwGgTQkSJiIGSzktrz1IogR7NLKTBOg9NoiMz9wZUwzhGu-hcXIMs8ZWN7kjSCQU5-_sqH7aIwf/s320/2.png
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. 

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Oyng0brKS5_U_IwSohoHa3ogwGMQLtBRybylMXzt2dj1l7ucCCiFdaWmsck2IseH1YkH7vwhfOjperRy57FJEnOAFUuDxQqmrNCsjzBVrQ_CABpHl-sE5xYboN4h-tQ3KUc_08dm0wit/s1600/3.png
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:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2KvEunbGXsEfQkIlZf86SCOj8iFO8abVQ1MyZhCNcoK98d8SqzcQDp72suskzoM4xU_YVw0nQNvl8bt92XdPeiFzvds94SRTltP08IEbFl8WnwklpO0vYTkBM4nrnl41RdQ8iPUfYuhMG/s1600/4.png

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.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Qtfb2gtlZ_rqI0Hum4s123ywVHwCQqwdUI9r0ccXNR32kIpwjZoeaNmZy9T5-mhWLD4YP3ZWcwu_IEEsE_HCuQkaAvA-L7YIRNYzIcNeaaae27b15O9LDe2s6r8mIA7df2YaVi8PWleH/s320/5.jpg
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: