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

13516109 Kevin Fernaldy.pdf
Terbatas  Dessy Rondang Monaomi
» Gedung UPT Perpustakaan

Saat ini, aplikasi berbasis web sangat bervariasi dalam lingkup dan fitur-fitur yang disediakan. Salah satu contoh aplikasi berbasis web adalah aplikasi berbasis JavaScript. Namun, seiring dengan berkembangnya aplikasi berbasis web, potensi kemunculan kerentanan juga akan semakin tinggi. Salah satu cara yang dapat digunakan untuk mendeteksi kerentanan dalam aplikasi adalah dengan melakukan analisis kode statis. Beberapa kakas analisis kode statis sudah dibangun dan dapat mendeteksi kerentanan dari aplikasi berbasis JavaScript. Namun kakas yang sudah dibangun hanya menggunakan representasi abstract syntax tree (AST) sehingga analisis yang dilakukan tidak efisien. Dalam tugas akhir ini, dilakukan pembangunan untuk sebuah kakas analisis kode statis untuk mendeteksi kerentanan dari aplikasi berbasis JavaScript. Kakas analisis yang dibangun mampu mendeteksi kerentanan berupa injeksi dan tiga variasi dari cross-site scripting (XSS), yaitu reflected XSS, persistent XSS dan DOM-based XSS. Untuk melakukan analisis, kakas menggunakan metode taint analysis yang merupakan salah satu bentuk data-flow analysis. Dengan metode ini, representasi yang digunakan untuk analisis adalah data-flow graph (DFG), control-flow graph (CFG) dan call graph. Kakas yang dibangun telah diuji dengan unit testing, dan system testing dengan menganalisis 4 proyek open source berbasis JavaScript yang memiliki kerentanan. Kakas berhasil mendeteksi 8 kerentanan berupa command injection dan XSS dari keempat proyek open source tersebut. Namun 4 kerentanan gagal terdeteksi oleh kakas karena pemanggilan fungsi bawaan dari JavaScript yang tidak didukung oleh kakas yang dibangun.