Anda di halaman 1dari 11

Vol 1 No 3 2020

ISSN Online: 2746-7422

Review Pengujian Keamanan Perangkat Lunak dalam Software


Development Life Cycle (SDLC)

Lindawani Siregar1
1
Politeknik Negeri Batam, Jurusan Teknik Elektro, Batam

E-mail: lindawani@polibatam.ac.id

Received: 23-08-2020 Accepted: 31-12-2020 Published: 31-12-2020

Abstrak
Pengujian keamanan perangkat lunak merupakan sarana penting untuk memastikan keamanan perangkat
lunak. Tujuan utama pengujian keamanan adalah untuk memeriksa sejauh mana kelemahan mekanisme
keamanan yang diimplementasikan. Hal ini dilakukan untuk menemukan kerentanan (vulnerabilities) suatu sistem
dan memastikan apakah sistem terlindungi. Perangkat lunak yang keamanannya tidak baik akan berakibat
hilangnya informasi dan dimanfaatkan oleh pihak lain yang tidak bertangung jawab. Cara yang lebih baik untuk
meningkatkan keamanan perangkat lunak adalah dengan memasukkan pengujian keamanan (security testing)
dalam proses SDLC (Software Development Life Cycle). Tulisan ini mereview pendekatan pengujian keamanan
perangkat lunak dan teknik yang diusulkan pada keamanan perangkat lunak beberapa tahun terakhir. Tulisan ini
meninjau dan menyimpulkan teknik atau pendekatan yang digunakan pada pengujian keamanan perangkat lunak
dalam beberapa penelitian.

Kata kunci: security testing; SDLC

Abstract
Software security testing is an essential means to ensure software security. The main purpose of security
testing is to check the weaknesses of implemented security mechanisms. Software security is done for searching
the vulnerabilities of a system and ensuring the system is protected. Lack of proper software security will impact
to the information losing by a threat source. The better way to improve software security is to include security
testing in the SDLC (Software Development Life Cycle) process. The review paper is presented and related to
software security testing approaches and techniques proposed in software security in recent years. This paper
reviews and concludes the techniques and approaches which used in software security testing in several studies.

Keywords: security testing; SDLC

1
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

Pendahuluan pengembang. Pengujian kemamanan perangkat


lunak (software security testing) adalah bagian
Permasalahan utama dalam pengembangan yang tidak terelakkan dari fase SDLC. Oleh
perangkat lunak yaitu muculnya celah karena itu, agar bisa menerapkan pengujian
keamananan (vulnerability) dan kesalahan logika keamanan perangkat lunak dengan benar maka
coding yang berakibat terjadinya eksploitasi dibutuhkan suatu proses yang sistematis [4].
sistem. Dalam mengembangkan perangkat Pengujian kemamanan perangkat lunak
lunak, keamanan merupakan hal yang penting mencakup proses validasi dan verifikasi apakah
untuk dipertimbangkan. Vulnerabilties sistem yang dikembangkan memenuhi
(kerentanan) merupakan cara untuk persyaratan yang ditentukan oleh pengguna [5].
menimbulkan threat (ancaman) yang Pengujian ini nantinya akan menghasilkan
menyebabkan risk merusak sistem. Namun, perbedaan antara hasil aktual dan yang
segala cacat dalam perangkat lunak dapat diharapkan.
ditangani pada setiap tahapan Software
Development Life Cycle (SDLC). SDLC (Software
Development Life Cycle) berarti sebuah siklus
A. Tinjauan Software Security Testing-SDLC
pengembangan perangkat lunak yang terdiri dari
beberapa tahapan dan penting keberadaannya Dalam siklus SDLC, keamanan memainkan
terutama dari segi pengembangannya. peran yang sangat penting. Pengujian keamanan
Permasalahan saat ini, developer mendahului perangkat lunak adalah sarana penting untuk
pekerjaan mereka tanpa mempertimbangkan mencapai tujuan secure Software Development
cacat keamanan dan kerentanan. Sebagian Life Cycle (SDLC). SDLC dianggap sebagai
besar kerentanan dapat ditelusuri akibat analisis kerangka kerja dalam pengembangan perangkat
yang buruk, desain yang buruk, dan metode lunak. Tahapan SDLC dapat dilihat pada gambar
pengembangan yang buruk [1]. Oleh karena itu, 1.
cara yang lebih baik untuk meningkatkan
keamanan melalui pengujian perangkat lunak ke
dalam proses SDLC.
Secure Software Development Life Cycle
menekankan suatu keamanan dalam siklus
pengembangan perangkat lunak. Perangkat
lunak yang aman tidak mudah dihasilkan dimana
harus ada perbaikan pada proses
pengembangan perangkat lunak untuk Gambar. 1 Software Development Life Cycle [6]
meminimalkan jumlah kerentanan dalam
mengembangkan perangkat lunak [1]. Proses Gambar 1 menunjukkan tahapan dalam siklus
menganalisis item perangkat lunak dalam SDLC. Ada beberapa tahapan yang harus
mendeteksi perbedaan antara kondisi yang ada dilewati dalam pengembangan perangkat lunak.
dan kondisi yang disyaratkan berupa defects Tahapan tersebut terdiri dari requirements,
(cacat), bug, error, serta untuk mengevaluasi fitur design, test plan, implementasi berupa code,
perangkat lunak yang dikenal dengan nama testing (pengu jian), tahapan terakhir yaitu
pengujian (testing) [2]. Pengujian adalah salah produk dapat digunakan. Secara umum dekripsi
satu fase dalam SDLC. Saat ini banyak setiap tahapan dirangkum dalam tabel 1 berikut
keamanan perangkat lunak yang masih lemah ini:
keamanannya. Sehingga security testing penting Tabel 1. Deskripsi SDLC
untuk menguji keamanan perangkat lunak.
Security testing memastikan bahwa perangkat Tahapan SDLC Deskripsi Proses
lunak bebas dari segala celah yang dapat Requirement Seluruh kebutuhan perangkat lunak
menyebabkan kerugian dan permasalahan. diperoleh pada fase ini, sehingga
didapatkan kegunaan perangkat lunak
Dalam setiap pengujian keamanan, perangkat yang diharapkan oleh pengguna dan
lunak akan diperiksa semua faktor keamanan batasan yang diinginkan. Proses lainnya
dapat berfungsi dengan baik atau tidak, jika yaitu analisis keamanan untuk
persyaratan dan kasus penyalahgunaan
faktor berfungsi dengan baik maka perangkat [7].
lunak aman [3]. Tujuan dari security testing
adalah untuk mengidentifikasi ancaman dalam Design Memberi gambaran tentang apa yang
harus dilakukan setelah menentukan
sistem dan mengukur sejauh mana kerentanan requirement. Kerentanan akan
yang ada yang mungkin timbul mengakibatkan diidentifikasi dan kemudian dianalisis.
hilangnya informasi.Hal ini juga membantu dalam Selanjutnya akan menganalisis apakah
mendeteksi semua risiko keamanan yang kerentanan tersebut dapat merusak
perangkat lunak atau tidak [7].
mungkin terjadi dalam sistem dan membantu
2
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

Tahapan SDLC Deskripsi Proses keluaran tanpa mengetahui seputar struktur in-
Tahapan SDLC Deskripsi Proses ternal dalam sistem [9]. Pengujian black box,
dapat dikatakan hanya mengevaluasi tampilan
Code Ini adalah tahap dimana pengembang
mengimplementasikan kode pada
luar secara fungsional tanpa mengetahui apa
perangkat lunak [7]. Berdasarkan desain sesungguhnya yang terjadi dalam proses secara
yang dibuat pada tahap sebelumnya kode detailnya. Pengujian ini untuk mengetahui
program akan diimplementasikan. Pada apakah fungsi-fungsi, inputan, dan keluaran dari
tahap ini, kerentanan seperti buffer over-
flow cenderung masuk ke dalam sistem
perangkat lunak sesuai dengan spesifikasi yang
perangkat lunak. Sehingga disarankan dibutuhkan. Pengujian black box merupakan pal-
agar saat kode selesai, cek secara manu- ing sederhana dibandingkan white box.
al sehingga kesalahan kecil atau bug
terdeteksi pada tahap ini.
Testing Pengujian perangkat lunak adalah tahap Tabel 2. Deskripsi jenis dari teknik pengujian white box dan
dimana jumlah kesalahan dan bug black box
maksimum harus diidentifikasi. Secara Teknik Jenis Deskripsi
umum security testing berfungsi dalam Pengujian
proses validasi, verifikasi dan error detec-
tion. Tujuannya yaitu: (a) untuk memerik-
sa apakah perangkat lunak berperilaku Equivalent Disebut kelas kesetaraan.
sebagaimana mestinya, (b) mengidentifi- partitioning Teknik ini membagi domain
kasi bug, (c) mengautentikasi sistem yang input dari sebuah program
diinginkan dengan kebutuhan asli ke kelas-kelas sehingga test
pengguna [7] case dapat diperoleh. Pen-
gujian ini merupakan test
case yang ideal
mengungkapkan kelas
1. Pengujian Kemanan Perangkat Lunak kesalahan, karena pada
teknik ini berusaha
Perangkat lunak dapat diuji dengan pengujian mengungkapkan kelas-kelas
dinamis. Teknik pengujian yaitu black box testing kesalahan.
dan white box testing [8] . Teknik pengujian yang Boundary BVA merupakan desain
utama ditunjukkan seperti pada gambar 2. Pen- Value Anal- teknik test case yang
ysis melengkapi equivalent parti-
gujian white box secara signifikan efektif karena tioning. Dari pada mem-
metode pengujian ini tidak hanya menguji fokuskan hanya pada kondi-
fungsionalitas dari perangkat lunak tapi juga si input, BVA juga
menguji struktur internal perangkat lunak. Pen- menghasilkan test case dari
domain output. Boundary
gujian ini menggunakan stuktur kontrol desain value fokus pada suatu
posedural untuk memperoleh test case. Saat batasan nilai dimana
merancang test case untuk melakukan pengujian kemungkinan yang terjadi
white box, keah- lian pemrograman sangat diper- yaitu terdapat cacat
tersembunyi.
lukan. Pengujian
black box Cause- Teknik ini ketika seseorang
[8] Effect Gra- ingin menerjemahkan se-
phing Tech- buah prosedur yang diten-
niques tukan ke dalam bahasa
perangkat lunak. Setiap
kondisi input dialokasikan
dalam bentuk grafik hingga
terbentuk grafik sebab-
akibat. Grafik ini akan dijadi-
kan dalam bentuk tabel
keputusan untuk digunakan
dalam test case.
Comparison Para pengembang
Testing perangkat lunak
menghasilkan versi inde-
Gambar 2. Klasifikasi umum teknik pengujian [8] penden dari sebuah aplikasi.
Masing-masing versi diuji
dengan data uji yang sama
Pengujian ini dapat diterapkan ke semua ting- untuk memastikan bahwa
katan termasuk pengujian unit, integrasi atau sis- seluruhnya menyediakan
tem. Jenis pengujian ini juga digunakan sebagai output yang sama. Test
pengujian keamanan untuk menentukan apakah case yang dirancang untuk
satu versi perangkat lunak
sistem terlindungi [9]. Namun, pengujian white dijadikan masukan pada
box menjadi proses pengujian yang kompleks pengujian versi perangkat
karena mengharuskan keterampilan pem- lunak lainnya, dan diharap-
rograman. Pengujian black box adalah pengujian kan hasil kedua versi
perangkat lunak harus sa-
yang dilakukan hanya berdasarkan requirement
3
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

Teknik Jenis Deskripsi


Pengujian

ma.
Fuzz Testing Disebut random input, teknik
ini memberi masukan acak
(inputan yang tidak diharap-
kan) ke dalam aplikasi.
Karakteristik utama pen-
gujian fuzz testing adalah: Gambar. 3 Software Testing Life Cycle [9]
(a) inputnya acak; (b) jika
aplikasi hang, pengujiannya
gagal. Tahap pertama dalam STLC adalah require-
ment analysis. Dalam langkah ini Quality Assur-
Model- Teknik ini menggu nakan
based test- pendekatan model ber- ance (QA) memahami persyaratan yang akan
ing dasarkan requirement sys- diuji. Test planning merupakan fase terpenting
tem dan fungsi yang telah dalam STLC karena karena ini adalah tahap di-
ditentukan. Test case di-
turunkan dari model yang mana semua strategi pengujian didefinisikan [9].
menggambarkan aspek Tahap ini berkaitan dengan persiapan rencana
yang diuji. Biasanya disebut uji. Test case development merupakan fase di-
sebagai uji abstrak.
mana tim QA menuliskan test case. Yang ter-
Basis Path Teknik ini meng evalua- penting pada fase ini adalah test case dan test
Testing si kompleksi tas kode pro-
gram dan pendefinisian alur
script. Test execution adalah fase dimana penguji
yang akan dieksekusi. Test akan menjalankan test case yang telah diper-
case mendapatkan ukuran siapkan sebelumnya. Jika ditemukan bug atau
yang kompleks dari
perancangan prosedural.
error, penguji akan membuat dalam bentuk
Selanjutnya digunakan uku- laporan [9]. Test result reporting merupakan
ran ini untuk mendefinisikan pelaporan hasil yang dihasilkan setelah pen-
basis dari jalur pengerjaan. gujian dimana laporan bug tadi diteruskan ke tim
Loop Test- Teknik ini melakukan pen- developer untuk diperbaiki [9]. Defect retesting
ing gujian beberapa kali di merupakan tahapan dimana penguji melakukan
bawah kontrol program.
Pengujian Aspek yang paling penting pengujian ulang terhadap kode yang telah diubah
white box dari pengujian ini adalah yang diberikan pengembang untuk memeriksa
[8] memastikan bahwa loop apakah defect (cacat) tersebut diperbaiki atau
kontrol dijalankan berkali-
kali dan berhasil keluar saat tidak. Test closure adalah tahapan akhir dari
kondisi tertentu terpenuhi. STLC. Penguji akan menganalisa hasil laporan
Control Terdapat dua komponen serta menentukan strategi yang tepat untuk per-
Structure utama dalam pengujian ini baikan aplikasi berikutnya.
Testing yaitu condition testing dan
data flow testing. Condition C. Software Release Life Cycle
testing, setiap kondisi logis
dalam suatu program diuji. Software Release Life Cycle adalah tahapan-
Data flow testing, pengujian
ini berdasarkan penggunaan tahapan dalam pengembangan perangkat lunak
variabel yang telah diten- sampai perangkat lunak tersebut dapat dirilis,
tukan. software yang telah dilakukan perbaikan bug
atau error atau berupa pengembangan software.
Tahapan ini muncul setelah tahapan STLC dan
mencakup tahapan pengujian lebih lanjut yaitu
B. Software Testing Life Cycle
alpha testing dan beta testing. Alpha testing ada-
Software Testing Life Cycle mendefinisikan lah jenis pengujian dilakukan untuk mengidentifi-
langkah-langkah atau tahap dalam pengujian kasi semua kemungkinan masalah atau bug
perangkat lunak. Gambar 3 membahas langkah- sebelum produk diluncurkan ke user [10]. Alpha
langkah STLC yang dilakukan perangkat lunak testing bisa dilakukan menggunakan teknik white
selama proses pengujian. box atau black box [9]. Alpha testing dilakukan di
lingkungan laboratorium dan biasanya penguji
adalah yang memang ahli di bidangnya [11].
Beta testing dilakukan setelah pengujian al-
pha, dan dapat dianggap sebagai user ac-
ceptance testing. Beta testing sepenuhnya
berhubungan dengan end-user tanpa ada hub-
ungannya dengan developer [9]. Ini adalah pen-
gujian terakhir sebelum mengirimkan produk ke
4
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

pengguna. Feedback langsung dari pelanggan d. Stress testing


merupakan keuntungan utama beta testing.
Kedua pengujian ini dilakukan untuk memung- Cara dilakukan untuk mengetahui kinerja sis-
kinkan pengguna untuk memvalidasi seluruh tem di luar kapasitas operasionl. Hal ini
kebutuhan. Pengguna menemukan kesalahan terkait dengan kapasitas muatan sistem [2].
yang lebih rinci dan membiasakan untuk me- e. Security testing
mahami perangkat lunak yang telah dibuat.
Pengujian keamanan dilakukan untuk menilai
bahwa sistem aman atau tidak. Ini adalah
proses yang berkaitan dengan fakta bahwa
data dapat terlindungi dan memelihara
1. Pengujian Non-fungsional fungsionalitas sistem sebagaimana mestinya
[2].
Pengujian non-fungsional mencakup aspek
perangkat lunak yang mungkin tidak berkaitan f. Recovery testing
dengan fungsi tertentu. Hal ini pada dasarnya Dilakukan untuk memeriksa pemulihan sistem
berkaitan dengan persyaratan non-fungsional setelah terjadi kegagalan pada perangkat
dan dimodelkan untuk menilai kesiapan sistem keras. Akibatnya perangkat lunak terpaksa
sesuai dengan kriteria yang tidak tercakup dalam gagal, hingga pada akhirnya yang akan diuji
pengujian fungsional [2]. Beberapa contoh pen- adalah sistem yang telah direcovery [2].
gujian non-fungsional dapat dilihat pada gambar
3. g. Compatibility testing
Pengujian kompatibilitas berkaitan dengan
pengecekan kompatibilitas sistem dengan
lingkungan lainnya. Cara ini memeriksa kom-
patibilitas sistem terhadap komponen lainnya
seperti perangkat keras, perangkat lunak lain,
DBMS dan sistem operasi [2].

Review Penelitian
Beberapa penelitian direview terkait dengan
pengujian keamanan perangkat lunak. Sesuai
dengan tahapan SDLC, penulis mereview securi-
ty testing dalam dua tahapan yaitu secara teknik
maupun metodologi yang digunakan peneliti.
Tabel 3. Review pengujian kemanan perangkat lunak
Gambar 4. Contoh teknik pengujian non-fungsional [2]
No. Tahun Penulis Judul
Gambar 4 menunjukkan beberapa contoh 1. 2010 Zhanwei Hui, Software Security Test-
teknik pengujian non-fungsional seperti berikut: Song Huang, ing Based on Typical
Bin Hu, dan SSD:A Case Study
a. Performance testing Yi Yao

Teknik ini menilai seluruh kinerja sistem. Ini 2. 2015 DONG Binary-oriented Hybrid
Fangquan, Fuzz Testing
digunakan untuk mengevaluasi kinerja sis- DONG
tem di bawah beban kerja tertentu [2]. Chaoqun,
ZHANG Yao,
b. Load testing dan LIN
Teng
Uji beban dilakukan untuk memastikan kapa-
sitas pengambilan beban pada sistem. Pen- 3. 2016 Pan Ping, Research on Ssecurity
Zhu Xuan, Test for Application
gujian beban dilakukan untuk mengetahui dan Mao Software Based on
perilaku sistem pada kondisi beban normal Xinyue SPN
maupun beban puncak [2].
4. 2016 Aziz Ahmad Interface-based Soft-
c. Endurance testing Rais ware Testing

Ini adalah teknik pengujian yang dilakukan


untuk menentukan perilaku sistem setelah A. Software Security Testing Based on Typi-
waktu tertentu. Misalnya sebuah sistem call SSD : A Case Study
bekerja dengan baik pada awal jam pertama
namun kinerjanya menurun setelah tiga jam Zhanwei Hui [12] menghadirkan model Soft-
eksekusi [2]. ware Security Testing (SST) berdasarkan Soft-
5
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

ware Security Defects (SSD) dan keamanan. Kerentanan (vulnerability) perangkat


menganalisanya. Software security defects lunak adalah representasi dari SSD sebagai
(cacat keamanan perangkat lunak) adalah celah fungsi perangkat lunak. Integrasi dimodelkan pa-
keamanan pada perangkat lunak yang dapat da gambar 5.
mengakibatkan pelanggaran dalam kebijakan

Gambar. 5 Model integrasi pengujian keamanan perangkat lunak berbasis SSD [12]

Model integrasi ini dibagi menjadi dua yang ritma simpul pohon untuk SSD. Berikut algorit-
kompatibel dengan SSD. Di bagian kiri adalah manya [13]:
proses pengujian fungsi keamanan tradisional,
yang menguji mekanisme keamanan perangkat
lunak, dan menghasilkan test case. Pengujian
keamanan perangkat lunak tradisional lebih
memperhatikan mekanisme keamanan Software a. Pilih security defects sebagai akar permasa-
under Test (SUT), namun tidak mempertim- lahan
bangkan SSD secara spesifik yang mungkin b. Security defects adalah objek yang diuji dan
mempengaruhi fungsi keamanan SUT [13]. merupakan ancaman yang sedang dianalisis.
c. Menganalisis security defects
Di bagian kanan adalah proses pengujian d. Menganalisis secara langsung pengujian se-
berbasis SSD, yang disebut juga adverse testing. curity defects. Tandai yang cacat sebagai
Pada akhir model, proses integrasi ini akan node utama, dan tandai keseluruhan sebagai
menghasilkan jenis test case yang tidak hanya sub-nodenya. Tandai tipe node utama
memvalidasi kebijakan keamanan perangkat lu- menggunakan logika (AND / OR) sebagai
nak, namun juga memberi kepercayaan pada hubungan logika dengan sub-node.
pengguna bahwa Software under Test (SUT) e. Dekomposisi setiap sub-node
dapat melawan bentuk serangan pada security
[12]. Saat pengujian, penguji menggunakan algo-
6
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

f. Jika bisa terdekomposisi, tandai sebagai tion sebagai back-end mulai bekerja. Symbolic
node utama dari sub-node tadi, dan lakukan execution memecahkan kendala dari path dan
seperti langkah kedua. menghasilkan masukan tes baru dengan path
g. Ulangi langkah (1) ke langkah (3) sampai baru yang berbeda. Kemudian menjalankan front
semua sub-node tidak bisa didekomposisi end dan ulangi proses ini. Algortitma pengujian
atau tidak perlu didekomposisi. binary-oriented hybrid fuzz ditunjukkan pada al-
goritma 1.
Hasil yang peneliti temukan yaitu adanya indi-
kasi bahwa model pengujian keamanan berbasis
SSD yang terintegrasi memang bisa menjadi
proses yang efektif. Dengan menjalankan be-
berapa tes, peneliti berhasil menemukan bebera- Algoritma 1 binary-oriented hybrid fuzz test-
pa bug (terkait dengan SSD). Model ini ing
menghasilkan urutan tes secara otomatis [12]. 1 Input: program P, testing goals Goals
2 while Goals is NOT attained DO
A. Binary-oriented Hybrid Fuzz Testing 3 coverage_flag=TRUE
Tahun 2015 DONG Fangquan [14] membuat 4 while coverage_flag==TRUE DO
model pengujian hybrid fuzz. Model ini meng- 5 Fuzzing_test() //fuzz testing
gabungkan pengujian fuzz dan symbolic execu- 6 coverage_monitor() //monitor the code
tion. Pengujian fuzz menemukan bug program coverage ratio //the number of covered
dengan menjalankan program dengan input acak basic blocks increases
yang dihasilkan, sehingga ditemukan keadaan 7 if BasicBlock_Num has increased then
crash. Meskipun pengujian fuzz mampu mengek- 8 DONothing
splorasi jauh ke dalam program secara efisien, 9 else
namun tidak dapat menjamin code coverage ratio 10 coverage_flag=FALSE
dalam beberapa situasi. Sebaliknya, symbolic 11 endwhile
execution dapat sekaligus mengeksplorasi ban- 12 //the code coverage ratio does not in-
yak jalur (path) yang bisa diambil oleh sebuah crease
program di bawah masukan yang berbeda [15]. 13 Symbolic_Execute()
Perbedaan keduanya dapat dilihat pada graph 14 generate New Cases
berikut ini: 15 goto 2
16 endwhile

Algoritma 1 menunjukkan pseudo code dari binary-oriented hybrid


coverage ratio tidak meningkat pada pengujian
fuzz, maka ditetapkan flag FALSE (jika tidak tidak
dilakukan apapun yang ditunjukkan sebagai baris
ke 4-10). Kemudian sistem beralih ke symbolic
execution dan menghasilkan test case baru dan
mengeksekusi ulang loop (baris 13-15). Perco-
baan ini membuktikan bahwa pengujian untuk
Symbolic execution fuzz testing program biner dapat mencapai code coverage
ratio yang lebih tinggi dalam kondisi yang logis.
Gambar 6. Dua metode dalam penerapan Binary-oriented
Hybrid Fuzz Testing [14] Ternyata pengujian fuzz konvensional tidak
dapat menjamin code coverage ratio dalam ban-
Gambar 6 menunjukkan symbolic execution
yak keadaan. Peneliti memperkenalkan metode
dapat mengeksplorasi semua jalur program yang
pengujian baru yaitu pengujian hybrid fuzz, untuk
dapat dieksekusi secara luas sedangkan pen-
menguji program biner. Percobaan ini membuk-
gujian fuzz mengeksplorasi keseluruhan jalur
tikan bahwa pengujian hybrid fuzz untuk program
program secara mendalam. Peneliti telah meng-
biner dapat mencapai code coverage ratio yang
gabungkan kelebihan pengujian fuzz dan symbol-
lebih tinggi dalam keadaaan yang logis [14].
ic execution dan merancang pengujian berupa
Binary-oriented Hybrid Fuzz Testing [14]. Cara
kerjanya yaitu membagi dua teknik utama yaitu
pengujian fuzz dan symbolic execution. B. Research on security test for application
software based on SPN
Pengujian fuzz sebagai front-end, menjalan-
kan program dengan input acak. Analisis kode Tahun 2016 Pan Ping [16] menganalisis kea-
biner dijadikan jembatan antara pengujian fuzz manan perangkat lunak aplikasi dengan parame-
dan symbolic execution. Jika ditemukan code ter SPN (Stochastic Petri nets). SPN tidak hanya
coverage ratio meningkat maka symbolic execu- dapat menggambarkan arsitektur perangkat lu-

7
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

nak dengan baik, namun juga menyajikan proses perangkat lunak (software design stage). Beri-
kerja perangkat lunak. Secara sederhana digam- kutnya akan diterapkan analisis keandalan dan
barkan dalam sebuah diagram pohon dan model keamanan perangkat ke software design stage
SPN ditunjukkan pada gambar 7. dan software testing, serta desain test case [16].
Pengujian keamanan pada perangkat lunak
pada aplikasi biasanya mencakup user authenti-
cation atau pengujian otentikasi pengguna,pe
ngujian sistem jaringan dan pengujian database.
Peneliti [16] juga menggambarkan operasi logika
sederhana keamanan user authentication.
Kontrol akses pengguna yang sederhana dalam
perangkat lunak dijadikan sebagai gambaran
metode pengujian keamanan perangkat lunak
aplikasi berdasarkan SPN.
Gambar 8 menunjukkan diagram alir operasi
logika user security authentication. Dari contoh
operasi logika ini lah yang nantinya akan dikem-
bangkan model SPN yaitu digambarkan pada
petri nets. Gambar 8 merupakan diagram alur
operasi logika sederhana dari user security au-
Gambar 7. Model sederhana diagram pohon dan SPN [16] thentication.
Pemetaan SPN didasari oleh proses Markov. Proses spesifiknya adalah sebagai berikut:
Places merepresentasikan keadaan dalam se- Input berupa user name dan password untuk log-
buah koponen atau sistem dan dapat berhub- in authentication saat menggunakan aplikasi.
ungan di dalam satu fase. Transition digunakan Jika autentikasi berhasil, sistem akan
untuk menggambarkan peristiwa yang terjadi da- mengekstrak user ID dan mengaktifkan user dan
lam sistem. Biasanya akan menghasilkan modu- kemudian memberikan izin kepada user. Setelah
lasi ke status sistem tersebut. Token adalah mendapatkan izin untuk masuk dalam aplikasi,
penanda atau identitas yang berada di places. pengguna dapat melakukan operasi yang di-
Kehadiran token di suatu tempat menunjukkan inginkan. Sistem akan menghapus user authenti-
bahwa kondisi telah sesuai dengan fungsi yang cation saat log out, dan akhirnya kembali ke
diberikan [17]. keadaan awal. Jika digambarkan dalam model
SPN maka akan dimodelkan seperti gambar 9.
Tujuan penggunaan SPN dalam analisis kea-
manan perangkat lunak adalah untuk mengetahui Gambar 9 menunjukkan model SPN dari
keadaan yang menyebabkan perangkat lunak operasi logika user security authentication. State
menjadi failed. Berikut adalah langkah-langkah mewakili setiap keadaan parsial sistem
SPN untuk pengujian dan analisa perangkat lu- perangkat lunak. Transition akan ditriger untuk
nak [16]: sistem perangkat lunak dari satu state ke state
lain. Pada saat proses running keseluruhan sis-
Pertama kita perlu menganalisis risiko tem perangkat lunak, token atau petri nets terse-
perangkat lunak untuk mengkonfirmasi per- but terus-menerus akan melakukan transfer.
mintaan keamanan dari software development. Transfer dikatakan sebagai fungsi perangkat lu-
Kemudian menentukan keadaan perangkat lunak nak akan melakukan berbagai operasi saat pros-
yang tidak aman. Pada tahap ini, perancang es dijalankan. P1-P10 merepresentasikan
perangkat lunak perlu memiliki pemahaman ten- keadaan dari operasi yang diinginkan. Transition
tang proses perancangan perangkat lunak. t2-t4 digunakan untuk memverifikasi nama
Selain itu menentukan keadaan berbahaya yang pengguna dan password login. Transition t5 -t11
tidak sesuai dengan tujuan perancangan adalah operasi untuk menetapkan peran dan
perangkat lunak serta menetukan persyaratan kontrol akses izin kepada pengguna [16].
keamanan dan spesifikasi desain [16].
Selanjutnya menetapkan model SPN dari
perangkat lunak, sehingga dapat dibangun grafik
SPN. Buatlah daftar kumpulan tanda yang dapat
dicapai. Lakukan analisis terhadap tanda yang
dapat dicapai dengan mudah agar diperoleh
mengapa sistem dikatakan gagal. Sesuai dengan
analisis kegagalan perangkat lunak tadi , maka
penguji dapat kembali ke tahap perancangan

8
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

Gambar 8. Diagram alir operasi logika user security authentication [16]

Gambar. 9 Model SPN dari operasi logika user security authentication [16]

Gambar 10. Proses pengujian berdasarkan interface-base software [18]

C. Interface-based software testing lihat pada gambar 10 bahwa raw requirement


(sebagai input) akan dianalisis dan dimodelkan
Tahun 2016 Aziz Ahmad Rais [18] menye- dalam interface yang sudah ditentukan. Sebagai
diakan perangkat lunak berbasis interface contoh client registration requirement, persyara-
dengan teknik pengujian yang lebih baik dalam
tan pertama yang ditentukan bahwa perangkat
mengukur kualitas perangkat lunak. Pengujian ini lunak mengharuskan klien mendaftar sebelum
bersifat otomatis untuk menghasilkan kualitas mereka meminta layanan lain. Dengan demikian,
perangkat lunak, melalui pengujian di awal, serta
layanan registrasi klien dapat ditentukan oleh
meningkatkan keseluruhan kemampuan uji [18]. satu interface, sementara klien mengakses
Konsep dari pengujian berbasis interface ini layanan lain melalui interface GUI. Setelah
dimodelkan seperti pada gambar 10. pengumpulan data dan manipulasi selesai,
Konsep dibalik pengujian berbasis interface layanan pendaftaran klien harus menyimpan data
bukan berarti menunda desain dan eksekusi na- klien dalam sebuah repositori [18].
mun menunggu sampai semua kelas yang akan Business requirements interface inilah yang
diimplementasikan sudah siap. Seperti yang ter-
menentukan layanan registrasi klien. Menyimpan
9
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

data, mengakses layanan registrasi klien melalui Daftar Pustaka


GUI, dan menerapkan berbagai jenis validasi
dilakukan oleh technical design interface. Setelah [1] Y. H. Tung, S. C. Lo, J. F. Shih, and H. F.
memisahkan setiap fungsi, akan mempermudah Lin, “An integrated security testing frame-
dalam merancang interface untuk layanan yang
work for secure software development life
disediakan oleh perangkat lunak. Setelah menen-
tukan interface layanan perangkat lunak, penguji cycle,” in The 18th Asia-Pacific Network
dapat menulis test case misalnya uji unit, atau uji Operations and Management Symposium
otomatis. Pengembang software dapat men- (APNOMS), 2016.
gidentifikasi semua technical interface, [2] A. Sethi, “A review paper on levels, types &
merancang perangkat lunak, dan kemudian techniques in software testing,” in Interna-
menerapkannya. Interface dapat dengan mudah tional Journal of Advanced Research in
dimodelkan menggunakan UML (Unified Model- Computer Science, 2017, vol. 8, no. 7.
ing Language) [18]. [3] R. Kumar, S. A. Khan, and R. A. Khan,
“Software security testing a pertinent
Untuk merancang tes dan menerapkan proses
framework,” in Journal of Global Research
pengujian dalam proyek pengembangan
in Computer Science (JGRCS), vol. 5, no.
perangkat lunak, dibutuhkan sebuah strategi
efektif untuk melaksanakan test case. Salah satu 3, pp. 23-27, March. 2014.
cara yaitu menerapkan pengujian berbasis inter- [4] N. Mahendra and S. A. Khan, “A catego-
face. Dapat disimpulkan bahwa kualitas rized review on software security testing,“
perangkat lunak menunjukkan bahwa perangkat in International Journal of Computer Appli-
lunak berkualitas tinggi bergantung pada pen- cations, vol. 154, no. 1, Nov. 2016.
gujian yang efektif dan berhasil. Sementara pen- [5] S. Krishnaveni, D. Prabakaran, and S.
gujian yang sukses bergantung pada teknik pen- Sivamohan, “Analysis of software security
gujian yang tepat. Teknik ini mendukung pen- testing techniques in cloud computing,” in
gujian yang otomatis, dan pengembangan teknik International Journal of Modern Trends in
pengujian secara paralel [18]. Engineering and Research, vol. 02, Issue.
01, Jan. 2015.
[6] G. McGraw, “Software security testing,”
Simpulan IEEE Security & Privacy, Sep.2004.
[7] M. Khari, Vaishali, and P. Kumar, “ Em-
Dalam tulisan ini, tinjauan berbagai pendeka- bedding security in Software Development
tan dan teknik pengujian keamanan telah ditinjau Life Cycle (SDLC),” in International Con-
dan temuan ditabulasikan dalam urutan kronol- ference on Computing for Sustainable
ogis. Selain itu tulisan ini juga mendefinisikan Global Development, 2016, pp. 3805-4421.
dan mengklasifikasikan teknik pengujian kea- [8] J. Irena, “software testing methods and
manan perangkat lunak yang biasa digunakan techniques,” IEEE Computer Society,
pada umumnya. Sebagian besar teknik pengujian 2008, pp. 30-35.
keamanan diimplementasikan pada berbagai [9] M. A. Jamil, M. Arif, N. S. A. Abubakar, and
tahap SDLC (Software Development Life Cycle).
A. Ahmad, “Software testing techniques: a
Hal ini dikarenakan pengujian keamanan
literature review,“ in 6th International Con-
perangkat lunak berperan penting untuk
menghindari serangan atau ancaman dari luar. ference on Information and Communication
Beberapa peneliti dalam penelitianya juga men- Technology for The Muslim World, 2016.
coba menerapkan model dan teknik pengujian [10] N. Jenkins, A Software Testing Primer. San
terbaru seperti: pengujian berdasarkan SSD Francisco, California: Creative Commons,
(Software Security Defects), pengujian hybrid 2008.
fuzz, pengujian dengan parameter SPN (Sto- [11] Guru99, “Alpha testing Vs Beta testing,”
chastic Petri nets), serta pengujian berbasis inter- 2017. [Online]. Available:
face. Dari keseluruhan pengujian ternyata https://www.guru99.com/alpha-beta-
berdampak baik dalam proses pengujian. testing-demystified.html. [Accessed: 07
Dec 2019].
[12] Z. Hui, S. Huang, B. Hu and Y. Yao,
"Software security testing based on typical
SSD: A case study,"in 3rd International
Conference on Advanced Computer
Theory and Engineering (ICACTE),
Chengdu, 2010, pp. V2-312-V2-316.

10
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11
Review Pengujian Keamanan Perangkat Lunak dalam Software Development Life Cycle (SDLC) (Lindawani Siregar)

[13] S. Huang, Z. Hui, L. Wang, and X. M. Liu, [16] P. Ping, Z. Xuan, and M. Xinyue, “Re-
“A Case Study of Software Security Test search on security test for application soft-
Based On Defects Threat Tree Modeling,” ware based on SPN,” in 13th Global
in International Conference on Multimedia Congress on Manufacturing and
Information Networking and Security, 2010. Management, GCMM, 2016, pp. 1140 –
[14] D. Fangquan, D. Chaoqun, Z. Yao, and L. 1147.
Teng, “ Binary-oriented hybrid fuzz testing,” [17] School of Informatic University of Ei-
in IEEE, 2015, pp. 4799-8355. denburgh Scotland, “Stochastic Petri Nets,”
[15] R. Baldoni, E. Coppa, D. Cono D'Elia, C. 2017. [Online]. Available:
Demetrescu, and I. Finocchi, “A survey of http://www.inf.ed.ac.uk/teaching/courses/p
symbolic execution techniques,” in Cyber m/Note7. [Accessed: 10 Dec 2019].
Grand Challenge highlights from DEF CON [18] A. A. Rais, “Interface-based software test-
24, Aug. 2016. ing,” in Journal Of Systems Integration,
2016.

11
Jurnal ASEECT Vol. 1, No. 3, Tahun 2020, hal. 1-11

Anda mungkin juga menyukai