Penjelasan Penetration Testing
Merupakan metode yang digunakan buat 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, buat menemukan kelemahan, kecacatan teknis, dan kelemahan. Masalah-perkara keamanan yang sudah ditemukan akan diberikan kepada pemilik sistem, yg disertakan menggunakan laporan yang berisi liputan mengenai perkiraan imbas yang muncul dan jua solusi-solusi teknik untuk masalah-masalah tadi.
Selain itu penetration testing jua adalah teknik yang telah generik digunakan untuk menguji keamanan suatu jaringan. Penetration testing dikenal juga sebagai black box testing atau ethical hacking. Penetration testing merupakan seni menurut pengujian sistem pelaksanaan web yg sedang berjalan, tanpa mengetahui apa yg dikerjakan pada pada (inner workings) aplikasi web itu sendiri. Seorang penguji berperan sebagai penyerang (attacker) serta berusaha untuk menemukan serta mengeksploitasi bagian berdasarkan pelaksanaan web yg mempunyai sifat mudah diserang (vulnerabilities).
Selama ini penetration testing sudah terbukti efektif dalam membantu menangani kasus keamanan dalam jaringan. Teknik penetration testing tidak hanya ditujukan pada pelaksanaan, namun jua dapat diterapkan dalam jaringan, serta sistem operasi, dimana tujuan primer-nya merupakan mencari dan kemudian berusaha buat mengeksploitasi vulnerabilities yg telah diketahui atau terdeteksi pada penilaian sebelumnya yang terdapat dalam teknologi tertentu.
Selain itu masih ada kelebihan dan kekurangan yang dimiliki sang pengujian pelaksanaan web menggunakan menggunakan teknik penetration testing, merupakan menjadi berikut:
A. Kelebihan
a. Dapat dilakukan secara cepat, cukup sedikit saat yg dibutuhkan (oleh karenanya relatif murah).
b. Relatif diperlukan keterampilan yg lebih rendah jika dibandingkan menggunakan teknik pengujian yang dilakukan dengan cara pemeriksaan source code (code reviews).
c. Pengujian dilakukan pada kode yg sebenarnya sedang dipakai (exposed).
B. Kekurangan
a. Terlalu terlambat dilakukan dalam SDLC
b. Hanya menguji efek depan saja
Penetration Testing Work Flow
Untuk melakukan penetrasi testing pelaksanaan web, OWASP menggunakan suatu metode (workflow) yg dipakai buat mengatasi kemungkinan situasi yang terjadi pada saat proses penetrasi testing berlangsung, Gambar 12 menunjukkan workflow diagram yg digunakan untuk membantu melakukan penetrasi testing dalam suatu pelaksanaan web, yg terdiri berdasarkan beberapa termin, antara lain:
1. Penetrasi testing dimulai menggunakan mengumpulkan fakta yg mungkin mengenai infrastruktur serta pelaksanaan yg terlibat. Tahap ini sangat penting, karena bila tidak paham mengenai dasar teknologi yg terlibat, maka kemungkinan gagal akan terjadi selama tahap pengujian berlangsung.
2. Proses pengujian wajib mengikuti semua tahap yg berbeda yg ditunjukkan pada Gambar 12.
3. Penguji harus berusaha buat mengeksploitasi seluruh kelemahan yg ditemukan. Bahkan jika eksploitasi gagal dilakukan, penguji akan memperoleh pemahaman lebih tentang resiko kelemahan yang ditemukan.
4. Semua fakta yang diperoleh menggunakan cara menilik kelemahan aplikasi web (misalnya, kesalahan pemrograman atau pencurian fakta internal) wajib dipakai balik buat mengukur semua pemahaman mengenai aplikasi dan bagaimana aplikasi tersebut bekerja.
5. Apabila selama proses pengujian berlangsung, kelemahan berhasil ditemukan pada aplikasi web, misalnya penyingkapan kabar yg kritis bagi usaha, maka perusahaan yg bekerjasama wajib segera dihubungi buat memberitahu tentang situasi serta resiko yg terlibat.
Metode Penetration Testing
Metode penetration testing aplikasi web dalam metodologi OWASP dilakukan berdasarkan pada 2 pendekatan yaitu black box testing dan gray box testing. Pengujian Black box berarti penguji nir mempunyai banyak berita mengenai struktur, komponen serta bagian internal aplikasi web yg akan diuji. Sedangkan pengujian white box berarti penguji memiliki sebagian kabar tentang bagian internal pelaksanaan, misalnya penyedia software (platform vendor), sessionID dan algoritma yang digunakan. Gambar 11 merupakan gambar yang dihasilkan dari pemodelan metodologi OWASP yang menampakan contoh yg masih ada pada metodologi OWASP buat 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 sang OWASP
c. Application: Aplikasi web yang akan diuji.
Gambar OWASP Penetration Testing Model
Tahap Pengujian Penetrasi Aplikasi Web
OWASP membagi uji penetrasi pelaksanaan web ke pada 3 termin yaitu, sebelum pengujian (pre-attack phase), ketika pengujian (attack phase) dan sehabis pengujian (post-attack phase).
Pre-Attack Phase
Pre-Attack Phase adalah termin yg dilakukan sebelum penyerangan atau disebut jua dengan pengujian yang dilakukan dengan cara pasif, dimana penguji berusaha untuk mengumpulkan keterangan yang herbi pelaksanaan serta tahu prosedur pelaksanaan web yg akan diuji.
Gambar Penetration Testing Workflow
Attack Phase
Attack phase merupakan tahap inti dari pengujian pelaksanaan web yang dilakukan secara aktif, dimana tahap ini bermanfaat untuk menemukan kelemahan yg terdapat pada pelaksanaan web, yg dilakukan menggunakan cara melakukan simulasi penyerangan pada aplikasi web. Berikut adalah warta-warta yg diharapkan selama proses pengujian:
a. Kategori
Merupakan kategori pengujian yang sudah didefinisikan oleh OWASP, yg dikenal menggunakan istilah OWASP Top 10, yang merupakan sepuluh besar kelemahan yang seringkali terjadi pada pelaksanaan web.
b. Nomor Referensi
Digunakan buat lebih memudahkan proses identifikasi, yang diklasifikasikan berdasarkan pada kategori pengujian.
c. Nama Kebutuhan
Nama kebutuhan (requirement) yang dibutuhkan buat dilakukan pengujian. Setiap kebutuhan diidentifikasi menurut nomor referensi.
d. Kelemahan Aplikasi Web (Vulnerability)
Deskripsi kelemahan aplikasi web yang sudah didefinisikan sebelumnya oleh OWASP, menggunakan mengetahui kelemahan bisa membantu menentukan bagian mana dari pelaksanaan web yang perlu dilakukan perbaikan.
Gambar Tahap Penetration Testing
Post-Attack Phase
Pada termin ini dilakukan penilaian terhadap dampak resiko yang ditimbulkan sesudah kelemahan ditemukan pada aplikasi web. Gambar adalah gambar yg dihasilkan berdasarkan pemodelan metodologi OWASP yang menerangkan termin-termin yang dilakukan selama proses penetrasi testing. Tahap yang dilakukan setelah tahap pengujian terselesaikan dilakukan, antara lain merupakan sebagai berikut:
A. Penilaian Resiko
Penilaian resiko merupakan termin yang dilakukan selesainya proses pengujian aplikasi web berhasil dilakukan. Metode yg digunakan buat memperkirakan resiko usaha adalah menggunakan memakai metodologi OWASP, dimana menggunakan metode tadi bisa diputuskan apa saja yang wajib dilakukan terhadap resiko-resiko tadi. Dengan mengetahui resiko yg akan terjadi maka poly manfaat yang akan diperoleh antara lain, menghemat ketika dan mengurangi terjadinya resiko yang lebih berfokus. Perkiraan resiko pada metodologi OWASP dimulai dengan contoh:
Likelihood merupakan kemungkinan penyebab yang digunakan buat memprediksi dampak yg terjadi pada suatu aplikasi web. Sedangkan impact adalah dampak atau konsekuensi yang ditimbulkan akibat serangan yg ditujukan terhadap aplikasi web. Menurut OWASP terdapat beberapa termin untuk menentukan dan mengkombinasikan besarnya resiko yang ditimbulkan dampak eksploitasi kelemahan yg masih ada dalam suatu pelaksanaan web, tahap-termin tadi 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 lima: Deciding What to Fix
Tahap 1: Identifying a Risk
Tahap pertama buat mengetahui resiko yang terjadi dalam sistem keamanan adalah dengan mendapatkan kabar yang herbi Threat agent yang terlibat, serangan yg digunakan, kelemahan yang diperoleh dan efek yang terjadi jika kelemahan tadi berhasil pada pendayagunaan.
Tahap 2: Factors for Estimating Likelihood
Setelah termin pertama dilakukan dan telah digambarkan seberapa berfokus hal tersebut, maka tahap selanjutnya merupakan melakukan asumsi likelihood. Proses identifikasi yang dilakukan merupakan dengan memperkirakan likelihood apakah berada pada taraf rendah, sedang, atau relatif tinggi.
Di bawah ini merupakan faktor-faktor yang digunakan buat memperkirakan semua likelihood diantaranya Threat agent factors serta vulnerability factor.
a. Threat Agent Factors
Tahap pertama merupakan threat agent, tujuannya merupakan memperkirakan kemungkinan yg akan terjadi apabila proses penyerangan berhasil dilakukan sang para attacker.
- Skill Level
Bagaimana kemampuan teknis yg dimiliki oleh attacker.
- Motive
Apakah motif attacker mencari dan memanfaatkan kelemahan yang terdapat.
- Opportunity
Berapa banyak laba yg dapat diperoleh oleh para attacker setelah mengeksploitasi kelemahan yang ada.
- Size
Seberapa besar grup attacker tersebut.
b. Vulnerability Factors
Tahap berikutnya merupakan faktor kelemahan. Tujuannya adalah memperkirakan kemungkinan-kemungkinan yg terjadi pada bagian kelemahan yg telah ditemukan serta dimanfaatkan.
- Ease of discovery
Seberapa mudah attacker menemukan kelemahan yg terdapat.
- Ease of exploit
Seberapa gampang para attacker mengeksploitasi kelemahan tersebut.
- Awareness
Seberapa baik pengetahuan yang diketahui tentang kelemahan yang dimiliki oleh attacker.
- Intrusion detection
Bagaimana cara pendayagunaan bisa di deteksi.
Gambar memperlihatkan faktor-faktor yang dipakai buat memperkirakan likelihood, serta disertakan juga nilai dalam setiap faktor-nya, dimana nilai-nilai tersebut akan digunakan menjadi perhitungan besarnya resiko yang terjadi sebenarnya.
Tahap tiga: Factors for Estimating Impact
Terdapat 2 macam efek yg disebabkan apabila proses penyerangan berhasil dilakukan. Dampak pertama merupakan pengaruh teknis yg terjadi pada sisi pelaksanaan, dan berakibat pada data yang dipakai dan fungsi-fungsi yg tersedia pada pelaksanaan web. Dampak kedua adalah dampak bisnis yg terjadi pada sisi bisnis serta operasional perusahaan. Faktor buat memperkirakan dampak yang terjadi antara lain technical impact factor serta business impact factor.
a. Technical Impact Factors
Dampak teknis terdiri menurut confidentiality, integrity, availability, serta accountability. Tujuannya adalah buat memperkirakan besarnya dampak yg terjadi pada sistem jika kelemahan yang ditemukan berhasil pada pendayagunaan.
- Loss of confidentiality
Seberapa poly data yang dapat diperlihatkan serta seberapa sensitif data tadi.
- Loss of integrity
Seberapa banyak data yg dapat pada korupsi dan bagaimana taraf kerusakan-nya.
- Loss of availability
Seberapa akbar layanan yg hilang serta seberapa vital hal tadi terjadi.
- Loss of accountability
Apakah aksi yg dilakukan oleh seorang attacker bisa ditelusuri.
Gambar Faktor-faktor buat Memperkirakan Likelihood
b. Business Impact Factors
Di bawah ini merupakan faktor-faktor generik yg mungkin terjadi pada sektor bisnis jika kelemahan yg ditemukan pada pendayagunaan:
- Financial damage
Berapa banyak kerugian finansial yg disebabkan berdasarkan output eksploitasi
- Reputation damage
Apakah eksploitasi yg dilakukan akan merusak reputasi bisnis.
- Non compliance
Seberapa poly ditemukan pelanggaran yang terjadi
- Privacy violation
Berapa poly identitas langsung yang dapat diungkap.
Gambar menunjukkan faktor-faktor yg digunakan buat memperkirakan impak yg terjadi, serta disertakan jua nilai pada setiap faktor-nya.
Tahap Determining the Severity of the Risk
Pada tahap ini faktor likelihood dan impact dikombinasikan buat menghitung seberapa besar resiko yg akan ditimbulkan. Hal yang dilakukan pada tahap ini merupakan memilih apakah likelihood memiliki taraf LOW, MEDIUM, atau HIGH, dimana ketiga kategori tadi berada pada skala nilai 0-9.
Tahap pertama buat mengetahui tingkatan likelihood adalah menggunakan cara menghitung jumlah nilai menurut setiap faktor dibagi jumlah banyaknya faktor. Di bawah ini adalah model bagaimana menentukan kategori likelihood apakah berada pada taraf LOW, MEDIUM, atau HIGH.
B. Menentukan Besarnya Resiko
Setelah output perkiraan likelihood dan impact didapatkan, kemudian dilakukan kombinasi antara keduanya buat memilih output akhir, yaitu seberapa akbar tingkat resiko yg sebenarnya diperoleh. Untuk memilih hasil akhir bisa digunakan nilai yg masih ada pada impak teknis maupun impak bisnis.
Tahap lima: Deciding What to Fix
Setelah menerima penjabaran resiko menurut aplikasi yang diuji, maka harus diputuskan bagian apa saja yg akan diperbaiki, pada umumnya organisasi atau perusahaan harus memperbaiki bagian yang dianggap penting dan menimbulkan kerugian yang relatif akbar saja
Pengujian Autentikasi
Pengujian autentikasi dapat dilakukan dari yang gampang (default password) hingga yang membutuhkan ketika buat menerima output (brute force). Beberapa aplikasi web tak jarang diserang dengan memakai teknik Bypassing Authentication Schema, misalnya SQL Injection.
Pada umumnya, pengujian ini dilakukan dengan memasak output temuan menurut proses pengumpulan kabar. Bisa jua dilakukan menggunakan melakukan Googling. Bahkan jika menggunakan istilah kunci (keyword) yang khusus tak jarang ditemukan nama pengguna atau istilah kunci pada format .doc, .xls, .pdf, serta ada jua password database yang ditemukan dalam plain text.
a. Nomor Referensi
OWASP-AT-001 s/d OWASP-AT-010
b. Kebutuhan (Prioritas)
Kategori ini herbi kebutuhan buat memastikan bahwa berita benar -betul asli, orang yang mengakses atau memberikan berita merupakan benar -betul orang yang dimaksud, atau server yang dihubungi merupakan betul-benar server yg orisinil. Gambar adalah gambar yg dihasilkan berdasarkan pemodelan pengujian fungsi Autentikasi menurut OWASP.
Gambar Kategori Pengujian Autentikasi
Pengujian Otorisasi
Otorisasi merupakan konsep yang memungkinkan akses dalam sumber daya hanya pada seorang yang telah diijinkan sebelumnya. Pengujian Otorisasi berarti mengerti bagaimana proses otorisasi bekerja, dan memakai keterangan tadi buat mengalahkan prosedur otorisasi. Otorisasi adalah suatu proses yang dilakukan sesudah proses autentikasi berhasil dilakukan, sehingga penguji akan menilik bagian ini setelah mendapatkan kepercayaan yg valid, yg herbi kiprah dan hak yang sudah ditetapkan. Selama proses pengukuran, harus diperiksa apakah mungkin terjadi penerobosan skema otorisasi, mencari jalur kelemahan, atau mencari cara buat meningkatkan hak yang dilakukan oleh penguji itu sendiri.
Kebutuhan ini dipakai untuk memastikan bahwa akses dalam asal daya (resources) atau pengaturan akses kepada liputan hanya digunakan oleh pengguna yang sudah diijinkan sebelumnya. Gambar adalah gambar yg dihasilkan berdasarkan pemodelan pengujian fungsi Otorisasi dari OWASP.
Gambar Kategori Pengujian Otorisasi
Pengujian Manajemen Sesi
Manajemen sesi atau identik dengan Session ID dipakai buat mengingat pengguna, menghilangkan kebutuhan pengguna buat melakukan login ulang, serta memungkinkan server buat menelusuri pola browsing pengguna. Session ID diharapkan buat melakukan hal-hal tersebut. Dan menggunakan adanya session ID ini dapat dilakukan Session Hijacking terhadap pengguna yang sedang melakukan akses ke dalam server. Web aplikasi menggunakan Session ID buat menyimpan parameter-parameter yg relevan terhadap pengguna. Session ID akan terus ada pada server selama pengguna masih aktif atau terhubung menggunakan 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 diperlukan buat mengatasi seluruh kasus yang herbi manajemen sesi yg digunakan pengguna mulai dari autentikasi hingga menggunakan pengguna meninggalkan pelaksanaan web. Gambar merupakan gambar yang dihasilkan dari pemodelan pengujian fungsi Manajemen Sesi dari OWASP.
Gambar Kategori Pengujian Manajemen Sesi