Sistem Static Application Security Testing (SAST) di industri umumnya memakai
AI hanya sebagai pemfilter hasil, bukan mesin analisisnya. Pendekatan
pembelajaran mesin mayoritas berhenti pada klasifikasi biner tingkat fungsi,
memisahkan representasi struktural dan kontekstual, bergantung pada anotasi baris,
dan menurun saat pola kerentanan berubah. Tugas akhir ini mengembangkan modul
deteksi kerentanan berbasis AI dengan Graph Neural Network (GNN) dan
Language Model (LM) sebagai mesin analisis SAST, yang memberi jenis
kerentanan, lokasi baris penyebab, dan tingkat keyakinan dari satu model.
Modul dikemas sebagai pustaka berantarmuka tetap sehingga arsitekturnya dapat
dipertukarkan tanpa mengubah pemanggil. Tiga arsitektur yang memadukan GNN
pada Code Property Graph dengan LM diusulkan, yaitu berbasis graph, hibrida
graph–LM, dan sekuensial. Ketiganya melokalisasi baris tanpa mewajibkan anotasi
pada tiap fungsi latih, dan diperbarui berkelanjutan lewat gabungan Elastic Weight
Consolidation Done Right (EWC-DR) dan experience replay.
Pada dataset MegaVul C dan C++, macro F1 pada 25 kelas rentan 0,544 sampai
0,570, setara VulExplainer (0,578) dalam satu standard deviation tetapi di bawah
LOSVER (0,613). Graph eksplisit belum melampaui struktur bawaan LM. Baris
penyebab masuk lima peringkat teratas pada 0,583 fungsi rentan data 26 kelas,
masih di bawah model yang dilatih penuh pada label baris. Forgetting terkecil saat
pembaruan dicapai gabungan EWC-DR dan experience replay, yaitu -0,134
berbanding 0,315 pada fine-tuning naif.
Sebagai ganti selisih itu modul menyatukan klasifikasi, lokalisasi, dan
pembelajaran berkelanjutan dalam satu model, sedangkan tiap baseline kehilangan
salah satunya. Modul tetap melayani fungsi panjang serta sepertiga lebih fungsi
rentan uji yang tanpa anotasi, sehingga layak menjadi mesin analisis sistem SAST.
Perpustakaan Digital ITB