PENETRATION TESTING CONCEPT

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.

F. 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).
1. 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.
2. 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.
3. Post-Attack Phase
Pada tahap ini dilakukan penilaian terhadap dampak resiko yang ditimbulkan setelah kelemahan ditemukan pada aplikasi web.
G. 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:
  • 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
1. 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.
2. 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.

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

I. PENGUJIAN OTORISASI
Otorisasi adalah konsep yang memungkinkan akses pada sumber daya hanya pada seseorang yang telah diijinkan sebelumnya. Pengujian Otorisasi berarti mengerti bagaimana proses otorisasi bekerja, dan menggunakan informasi tersebut untuk mengalahkan mekanisme otorisasi. Otorisasi adalah suatu proses yang dilakukan setelah proses autentikasi berhasil dilakukan, sehingga penguji akan memeriksa bagian ini setelah mendapatkan kepercayaan yang valid, yang berhubungan dengan peran dan hak yang telah ditetapkan. Selama proses pengukuran, harus diperiksa apakah mungkin terjadi penerobosan skema otorisasi, mencari jalur kelemahan, atau mencari cara untuk meningkatkan hak yang dilakukan oleh penguji itu sendiri.
Kebutuhan ini digunakan untuk memastikan bahwa akses pada sumber daya (resources) atau pengaturan akses kepada informasi hanya digunakan oleh pengguna yang telah diijinkan sebelumnya. Gambar merupakan gambar yang dihasilkan dari pemodelan pengujian fungsi Otorisasi menurut OWASP.
J. PENGUJIAN MANAJEMEN SESI
Manajemen sesi atau identik dengan Session ID digunakan untuk mengingat pengguna, menghilangkan kebutuhan pengguna untuk melakukan login ulang, dan memungkinkan server untuk menelusuri pola browsing pengguna. Session ID diperlukan untuk melakukan hal-hal tersebut. Dan dengan adanya session ID ini dapat dilakukan Session Hijacking terhadap pengguna yang sedang melakukan akses ke dalam server. Web aplikasi menggunakan Session ID untuk menyimpan parameter-parameter yang relevan terhadap pengguna. Session ID akan terus ada pada server selama pengguna masih aktif atau terhubung dengan server. Session akan otomatis dihapus jika pengguna logout atau melampaui batas waktu koneksi.
a. Nomor Referensi 
OWASP-SM-001 s/d OWASP-SM-005
b. Kebutuhan (Prioritas) 
Kategori ini dibutuhkan untuk mengatasi semua masalah yang berhubungan dengan manajemen sesi yang digunakan pengguna mulai dari autentikasi sampai dengan pengguna meninggalkan aplikasi web. Gambar merupakan gambar yang dihasilkan dari pemodelan pengujian fungsi Manajemen Sesi menurut OWASP.
KELEBIHAN PENTEST
  • 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 :

Leave a comment