Abstract:
Situs web merupakan sebuah layanan aplikasi yang sudah banyak digunakan di masyarakat
luas. Sudah hampir setiap orang menggunakan situs web untuk kebutuhan sehari-hari, seperti
komunikasi, belajar, bekerja, serta melihat berita. Konten-konten pada situs web dibuat dalam
sebuah file yang disimpan dalam server web. Salah satu server web yang paling umum digunakan
adalah Apache. Dengan adanya layanan server web, situs web dapat menampilkan gambar,
tulisan, mengakses halaman web lain, dan lain-lain. Salah satu protokol yang digunakan untuk
mengakses halaman web dari server web adalah HTTP. Setiap aktivitas di situs web akan
tercatat di file log pada server web yang disebut file access log. Semakin banyaknya situs web
yang beredar, semakin besar peluang situs web dieksploitasi. Tujuan penyerang melakukan
eksploitasi terhadap situs web adalah untuk mengambil data pribadi pengguna, mengubah hak
akses pengguna, dan sebagainya. Salah satu cara agar penyerang dapat mengeksploitasi server
web adalah dengan mengunggah skrip webshell melalui halaman di situs web.
Pada skripsi ini, dibuat sebuah aplikasi untuk mendeteksi adanya webshell. Terdapat lima
jenis webshell yang akan dianalisis dalam skripsi, yaitu webshell Webadmin, C99, B374K, R57,
dan WSO. Aplikasi digunakan untuk mendeteksi aktivitas webshell dan menampilkan laporan
aktivitas dalam bentuk web. Pendeteksian ini digunakan dengan metode pembelajaran mesin,
yaitu Decision Tree. Sebelum diolah dengan metode Decision Tree, file log akan dipreproses
menjadi beberapa bagian dan empat atribut untuk fitur dalam Decision Tree. Agar dapat
mendeteksi webshell dari suatu log, dibutuhkan data latih untuk pemberian label dan mengetahui
karakteristik dari masing-masing webshell sebelum menguji data uji.
Pengujian dilakukan dengan memeriksa kesesuaian hasil prediksi aktivitas webshell menggunakan
model pembelajaran mesin dengan hasil preproses. Aplikasi yang dibangun dapat
mendeteksi aktivitas webshell beserta jenisnya yang terjadi berdasarkan file log yang diuji. Perangkat
lunak berhasil mendeteksi adanya aktivitas webshell Webadmin, C99, dan B374K dari
log DVWA dan Student Portal dengan rata-rata ketepatan 96%. Perangkat lunak tidak berhasil
mendeteksi aktivitas webshell R57 dan WSO karena kedua webshell tersebut memiliki karakter
yang sama dan tidak bisa diidentifikasi.