Assalamu’alaikum. Kali ini saya akan berbagi ilmu Sistem Jaringan mengenai penetration testing concept.
A. PENGERTIAN PENETRATION TESTING (PENTEST)
Penetration Testing (disingkat pentest) 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. Standar ini bisa dilihat di pentest-standard.org.
B. FUNGSI PENTEST
Kenapa kegiatan pentest diperlukan ? Perusahaan-perusahaan besar yang menyimpan data-data sensitif (seperti Bank) tentu tidak ingin jaringannya dibobol oleh orang tidak bertanggung jawab yang kemudian bisa mengambil alih kontrol jaringan dan menimbulkan kerugian yang sangat besar. Oleh karena alasan itu perusahaan menginvestasikan dana untuk memperkuat sistem jaringannya. Salah satu metode paling efektif adalah melakukan pentest. Dengan melakukan pentest, celah-celah keamanan yang ada dapat diketahui dan dengan demikian dapat diperbaiki secepatnya. Seorang pentester mensimulasikan serangan yang dapat dilakukan, menjelaskan resiko yang bisa terjadi, dan melakukan perbaikan sistem tanpa merusak infrastruktur jaringan perusahaan tersebut.
C. TIPE PENTEST
Ada dua jenis tipe pentest, yaitu : overt dan covert. Overt pentest dilakukan dengan sepengetahuan perusahaan. Covert pentest dilakukan tanpa sepengetahuan perusahaan. Kedua tipe pentest ini memiliki kelebihan dan kelemahan satu sama lain.
1. Overt Penetration Testing
Pada overt pentest, seorang pentester bekerja bersama dengan tim IT perusahaan untuk mencari sebanyak mungkin celah keamanan yang ada. Salah satu kelebihannya adalah pentester mengetahui informasi sistem jaringan yang ada secara detail dan dapat melakukan serangan tanpa khawatir akan di-blok. Salah satu kelemahannya adalah tidak bisa menguji respon dari tim IT perusahaan jika terjadi serangan sebenarnya. Saat jumlah waktu dalam kegiatan pentest dibatasi, akan lebih efektif menggunakan tipe overt.
2. Covert Penetration Testing
Pada covert pentest, seorang pentester melakukan kegiatan pentest tanpa sepengetahuan perusahaan. Artinya tes ini digunakan untuk menguji respon dari tim IT perusahaan jika terjadi serangan sebenarnya. Covert test membutuhkan waktu yang lebih lama dan skill yang lebih besar daripada overt test. Kebanyakan pentester profesional lebih merekomendasikan covert test daripada overt test karena benar-benar mensimulasikan serangan yang bisa terjadi. Pada covert test, seorang pentester tidak akan berusaha mencari sebanyak mungkin celah keamanan, tetapi hanya akan mencari jalan termudah untuk masuk ke dalam sistem, tanpa terdeteksi.
D. METODE PENTEST
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:
- Tester: Seseorang yang melakukan aktifitas pengujian
- Tools and metodologi: Inti dari panduan yang diberikan oleh OWASP
- Application: Aplikasi web yang akan diuji.
E. TAHAP MELAKUKAKAN PENTEST
Penetration Testing memiliki standar (PTES) yang digunakan sebagai acuan dalam pelaksanaanya yang dibagi ke dalam beberapa tahap :
1. Pre-engagement Interactions
Tahap dimana seorang pentester menjelaskan kegiatan pentest yang akan dilakukan kepada client (perusahaan). Disini seorang pentester harus bisa menjelaskan kegiatan-kegiatan yang akan dilakukan dan tujuan akhir yang akan dicapai.
2. Intelligence Gathering
Tahap dimana seorang pentester berusaha mengumpulkan sebanyak mungkin informasi mengenai perusahaan target yang bisa didapatkan dengan berbagai metode dan berbagai media. Hal yang perlu dijadikan dasar dalam pengumpulan informasi adalah : karakteristik sistem jaringan, cara kerja sistem jaringan, dan metode serangan yang bisa digunakan.
3. Threat Modeling
Tahap dimana seorang pentester mencari celah keamanan (vulnerabilities) berdasarkan informasi yang berhasil dikumpulkan pada tahap sebelumnya. Pada tahap ini seorang pentester tidak hanya mencari celah keamanan, tetapi juga menentukan celah yang paling efektif untuk digunakan.
4. Vulnerability Analysis
Tahap dimana seorang pentester mengkombinasikan informasi mengenai celah keamanan yang ada dengan metode serangan yang bisa dilakukan untuk melakukan serangan yang paling efektif.
5. Exploitation
Tahap dimana seorang pentester melakukan serangan pada target. Walaupun demikian tahap ini kebanyakan dilakukan dengan metode brute force tanpa memiliki unsur presisi. Seorang pentester profesional hanya akan melakukan exploitation ketika dia sudah mengetahui secara pasti apakah serangan yang dilakukan akan berhasil atau tidak. Namun tentu saja ada kemungkinan tidak terduga dalam sistem keamanan target. Walaupun begitu, sebelum melakukan serangan, pentester harus tahu kalau target mempunyai celah keamanan yang bisa digunakan. Melakukan serangan secara membabi-buta dan berharap sukses bukanlah metode yang produktif. Seorang pentester profesional selalu menyempurnakan analisisnya terlebih dahulu sebelum melakukan serangan yang efektif.
6. Post Exploitation
Tahap dimana seorang pentester berhasil masuk ke dalam sistem jaringan target dan kemudian melakukan analisis infrastruktur yang ada. Pada tahap ini seorang pentester mempelajari bagian-bagian di dalam sistem dan menentukan bagian yang paling critical bagi target (perusahaan). Di sini seorang pentester harus bisa menghubungkan semua bagian-bagian sistem yang ada untuk menjelaskan dampak serangan / kerugian yang paling besar yang bisa terjadi pada target (perusahaan).
7. Reporting
Reporting adalah bagian paling penting dalam kegiatan pentest. Seorang pentester menggunakan report (laporan) untuk menjelaskan pada perusahaan mengenai pentesting yang dilakukan seperti : apa yang dilakukan, bagaimana cara melakukannya, resiko yang bisa terjadi dan yang paling utama adalah cara untuk memperbaiki sistemnya.
- 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.
- Tahap 1: Identifying a Risk
- Tahap 2: Factors for Estimating Likelihood
- Tahap 3: Factors for Estimating Business Impact
- Tahap 4: Determining Severity of the Risk
- Tahap 5: Deciding What to Fix
- 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.
3. 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.
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.
4. 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.
5. 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.
H. PENGUJIAN AUTENTIKASI
Pengujian autentikasi dapat dilakukan dari yang mudah (default password) sampai yang membutuhkan waktu untuk mendapatkan hasil (brute force). Beberapa aplikasi web sering diserang dengan menggunakan teknik Bypassing Authentication Schema, misalnya SQL Injection.
Pada umumnya, pengujian ini dilakukan dengan mengolah hasil temuan dari proses pengumpulan informasi. Bisa juga dilakukan dengan melakukan Googling. Bahkan bila menggunakan kata kunci (keyword) yang spesifik seringkali ditemukan nama pengguna atau kata kunci dalam format .doc, .xls, .pdf, dan ada pula password database yang ditemukan dalam plain text.
a. Nomor Referensi
OWASP-AT-001 s/d OWASP-AT-010
b. Kebutuhan (Prioritas)
Kategori ini berhubungan dengan kebutuhan untuk memastikan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang dihubungi adalah betul-betul server yang asli. Gambar merupakan gambar yang dihasilkan dari pemodelan pengujian fungsi Autentikasi menurut OWASP.
Kategori Pengujian Autentikasi
-
Dapat dilakukan secara cepat, cukup sedikit waktu yang dibutuhkan (oleh karena itu relatif murah).
-
Relatif dibutuhkan keterampilan yang lebih rendah bila dibandingkan dengan teknik pengujian yang dilakukan dengan cara pemeriksaan source code (code reviews).
-
Pengujian dilakukan pada kode yang sebenarnya sedang digunakan (exposed).
KEKURANGAN PENTEST
-
Terlalu terlambat dilakukan dalam SDLC
-
Hanya menguji dampak depan saja
#REKRUTMENSISJARGEN8
#SISJARLAB
Referensi :