Penetration and Stress Testing in Python

Refo Ilmiya
AdHub Team
Published in
4 min readApr 29, 2019

Stress Testing

Stress testing adalah sebuah konsep dimana developer melakukan aktivitas pengujian perangkat lunak di luar batas operasi normal. Tujuannya adalah untuk menentukan ketahanan perangkat lunak yang telah kita buat.

Dalam implementasinya, stress testing memungkinkan developer untuk mengetahui ketahanan suatu website. Jadi, meskipun perangkat lunak kita sudah berjalan baik di setiap fiturnya, pastikan juga setiap perangkat lunak tetap bekerja dengan maksimal saat diberi ‘beban berat’. Kita tidak bisa hanya menguji dengan data uji yang terbatas. Stress test dilakukan secara bertahap yaitu pertama dengan test kecil dan dilkanjutkan dengan maksimal user yang bisa ditangani web ,ini penting karena kita harus tau seberapa kuat web dalam menangani beban.

Banyak tool-tool yang digunakan untuk stress test diantaranya adalah locust dan website loadimpact.com

Pada postingan kali ini, Saya akan melakukan Stress test pada website adhub kami menggunakan locust untuk di local dan loadimpact.com untuk website live.

Implementasi Stress testing
Berikut adalah implementasi Stress testing untuk web Adhub

Sumber:

https://gitlab.cs.ui.ac.id/ppl-fasilkom-ui/2019/PPLA2/blob/US-30-locust_branch/locustfile.py

Terlihat dari potongan code tersebut, File tersebut mendefinisikan suatu task untuk login dan dua task untuk bernavigasi ke homepage setelah login dan mengunjungi suatu page /platform-iklan/ beberapa kali.

Parameter, min_wait dan max_wait, mendefinisikan waktu tunggu antar request dari user berbeda.

Gambar di atas menunjukkan bahwa jumlah user yang digunakan adalah 5 dan tiap detiknya akan dibuat satu user baru.

Gambar di atas memberikan informasi bahwa website mampu menangani 100 user sekaligus tanpa ada kasus pemanggilan yang gagal.

Dari gambar tersebut dapat dilihat bahwa response time yang stabil berbanding lurus dengan jumlah user.

Sedangkan dari website loadimpact, berikut adalah hasilnya,

Dari seluruh uraian di atas, dapat disimpulkan bahwa performawebsite kami baik, ditandai oleh tidak adanya request yang gagal.

Penetration Test

Di lain sisi, Penetration test jauh berbeda dengan Stress test karena definisinya sendiri adalah praktik pengujian sistem komputer, jaringan atau aplikasi web untuk menemukan celah keamanan yang dapat dieksploitasi oleh penyerang. Pengujian penetrasi dapat diotomatisasi dengan bantuan tools atau dilakukan secara manual.

Penetration test berfokus kepada mencari celah security dari suatu website sedangkan stress test berfokus pada mencari breaking point dari suatu website dalam menghandle load dari user.

Penetration test tidak kalah penting dengan Stress Test dikarenakan Penetration Test memberikan informasi kepada developer bahwa dimana saja celah security dari suatu website.

Pada postingan kali ini, Saya akan melakukan Penetration test pada website adhub Saya menggunakan : pentest-tools.com

Implementasi Penetration testing
Berikut adalah implementasi Penetration testing untuk web Adhub, Saya ingin mengetes penetrasi pada page profile (page login)

Terlihat dari risk rating pada hasil di atas, terdapat 1 High Risk dan 2 Medium Risk yang perlu ditangani.

Hal ini dikarenakan password dikirim menggunakan jaringan yang tidak aman, solusi yang dapat dilakukan adalah mengkonfigurasi ulang webserver sehingga dapat menggunakan HTTPS yang mengenkripsi komunikasi antar web browser dan server. Kedua risk lainnya yang ada di tingkat medium juga diakibatkan website yang tidak aman karena menggunakan HTTP sehingga solusinya sama seperti di atas.

References:

--

--