digilib@itb.ac.id +62 812 2508 8800

COVER Bayu Mahendra
PUBLIC rikrik

BAB 1 Bayu Mahendra
PUBLIC rikrik

BAB 2 Bayu Mahendra
PUBLIC rikrik

BAB 3 Bayu Mahendra
PUBLIC rikrik

BAB 4 Bayu Mahendra
PUBLIC rikrik

BAB 5 Bayu Mahendra
PUBLIC rikrik

PUSTAKA Bayu Mahendra
PUBLIC rikrik

Keamanan perangkat lunak merupakan aspek penting dalam menentukan kualitas perangkat lunak sehingga aspek keamanan harus dipertimbangkan dalam proses pengembangan perangkat lunak. Pengujian perangkat lunak dengan cara manual sangat menyita waktu. Terkadang proses pengujian perangkat lunak lebih lama dibandingkan proses pengembangan perangkat lunak. Oleh karena itu, pengujian secara otomatis perlu dilakukan untuk mempersingkat waktu pengujian. Fuzz testing (fuzzing) adalah teknik pengujian keamanan perangkat lunak secara otomatis dengan cara mengirimkan seed atau data masukan abnormal ke program yang diuji. American Fuzzy Lop (AFL) adalah salah satu fuzzer yang populer saat ini. AFL adalah grey-box fuzzer yang menggunakan teknik mutasi untuk menghasilkan data masukan abnormal. Data masukan abnormal tersebut dihasilkan oleh AFL menggunakan teknik mutasi deterministik dan non deterministik (acak). AFL sudah mendukung mode tunggal dan mode paralel. Pada mode paralel, terdapat perbedaan antara master node dan slave node terkait pembuatan data masukan. Master node menggunakan mutasi deterministik dan mutasi acak sedangkan slave node hanya menggunakan mutasi acak. Penggunaan mutasi deterministik pada kedua node mengakibatkan duplikasi data masukan sehingga kurang efisien dalam penggunaan sumber daya komputasi. Pada penelitian ini, diajukan rancangan sistem untuk fuzzing paralel. Teknologi virtualisasi dimanfaatkan untuk melakukan fuzzing secara paralel. Terdapat sebuah master node dan 1 atau lebih container sebagai slave node. Master node terdiri dari aplikasi berbasis python, database dan AFL. Beberapa AFL di container digunakan untuk melakukan proses fuzzing yang dikelola oleh master node. Sebuah aplikasi yang bertindak sebagai agen digunakan untuk mengelola sinkronisasi informasi antar AFL. Rancangan yang diajukan mengimplementasikan kedua teknik mutasi di setiap node. Selain itu, sinkronisasi informasi seperti seed dan path coverage diperlukan untuk mencegah duplikasi tugas sehingga proses fuzzing bisa lebih efisien dan lebih cepat untuk menemukan kecacatan atau kerentanan pada program yang diuji.