Stress & Penetration Test?

Fay Anyatasia
Dekowarehouse Project
3 min readMay 17, 2018

2 sprint telah terlewati, maka user story yang telah di accept sudah terdeploy. Sebuah projek tentunya harus dibuat agar scalable sehingga bisa dikembangkan nantinya menjadi lebih besar dan user yang mengakses akan lebih banyak. Namun bagaimana ketika diakses oleh 1000 user misalkan website kita malah down? atau ternyata terdapat celah di dalam website kita sehingga dimanfaatkan oleh orang untuk mencuri data berharga?

Pastinya kita tak ingin itu terjadi. Oleh karena itu dilakukan stress & penetration testing.

Stress Test

Stress test sebenarnya merupakan bagian dari performance testing. Performance testing adalah test untuk mengecek performa dari aplikasi kita ketika dijalankan. Tujuan dari performance testing ini adalah meminimalisir resiko dan juga cost. Stress test adalah test yang mengecek bagaimana performa aplikasi kita dengan nilai maksimum, atau melebihi kapasitas maksimum request dan jobs. Dengan kata lain, stres test menentukan poin dimana sistem kita akan break down dan memastikan bahwa aplikasi kita berjalan sesuai fungsinya dibawah kapasitas maksimum.

Apa saja informasi yang harus kita perhatikan ketika kita melakukan stres test?

  • Average Response Time
  • Peak Response Time
  • Error Rates
  • CPU Utilization
  • Memory Utilization

Banyak tools yang digunakan untuk melakukan stress test. Seperti misalkan JMeter, atau Apache Benchmark. Yang saya gunakan untuk stress test dibawah ini yaitu Apache Benchmark.

Implementasi pada Kelompok

Line dibawah ini mengetest dengan 50,000 request, dengan konkurensi 100 dan timeout 20 detik.

ab -n 50000 -c 100 -t 20 http://dekowarehouse.herokuapp.com/

Hasilnya dari 7336 request semuanya berhasil. Test selesai dikerjakan selama 20 detik dengan 0 failed request. Total data transfer 16MB untuk 7336 request. Average response timenya 272 ms, dengan longest request 1135 ms.

Ini baru sebagian saja. Nantinya nilai request dan konkurensi akan dinaikkan perlahan hingga ditemukan di poin mana aplikasi akan fail.

Penetration Test

Nah, penetration test atau biasa disingkat pentest adalah simulated cyberattack yang bisa dilakukan terhadap jaringan organisasi/ perusahaan untuk menemukan kelemahan yang ada pada sistem . Orang yang melakukan kegiatan ini disebut penetration tester (disingkat pentester).

Kenapa sih kita harus melakukan pentest? 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.

Penetration Testing proses dapat dibagi menjadi 5 tahapan :

  1. Perencanaan dan pengintaian : tahap ini mendefinisikan scope dan goal dari test ini, termasuk dengan sistem yang menjadi target dan metode testing yang digunakan. Serta mengumpulkan informasi terkait bagaimana target bekerja dan kelemahan-kelemahan yang mungkin.
  2. Scanning : tahap ini bertujuan untuk memahami bagaimana aplikasi target merespon terhadap berbagai percobaan attack. Hal ini bisa dilakukan dengan memeriksa code untuk memprediksi bagaimana sistem behavior ketika running (static analysis), atau memerika code yang sedang berjalan (dynamic analysis).
  3. Gaining Access : Tahap ini menggunakan berbagai attack, seperti cross-site scripting, SQL injection dan backdoor untuk mengungkap kelemahan sistem. Tester kemudian akan mencoba meng-eksploitasi kelemahan ini, biasanya dengan menambah privilege, mencuri data, dan sebagainya sehhingga memahami kerusakan yang dapat disebabkan dari adanya kelemahan ini.
  4. Mantaining Access : Tahap ini bertujuan untuk melihat apakah kelemahan tadi dapat dimanfaatkan untuk mendapatkan akses tetap dalam sistem yang tereksploitasi — cukup lama bagi attacker untuk mendapatkan akses yang dalam.
  5. Analysis : Tahap ini menganalisa kelemahan yang di eksploitasi, data sensitif yang di akses, dan berapa lama waktu pen tester dapat berada di dalam sistem tanpa terdeteksi.

Implementasi dalam Kelompok

Reference :

--

--