Javascript Fonksiyonlarında Güvenlik Açıklarının Makine Öğrenmesi Yöntemleriyle Tespiti

Yazarlar

DOI:

https://doi.org/10.5281/zenodo.18213689

Anahtar Kelimeler:

Siber güvenlik- Makine öğrenmesi- Javascript güvenliği- Güvenlik açığı tespiti- Kod güvenliği

Özet

JavaScript, modern web uygulamalarında temel bir programlama dili haline gelmiştir. Ancak dinamik ve zayıf tür denetimine sahip yapısı, ciddi güvenlik açıklarının ortaya çıkmasına neden olmaktadır. Bu çalışmada, JavaScript kod parçacıklarındaki güvenlik açıklarını otomatik olarak tespit etmek amacıyla geliştirilen makine öğrenmesi tabanlı yeni bir çerçeve olan JSVULNDETECT önerilmektedir. Geleneksel manuel kod inceleme yöntemlerinin hata yapmaya eğilimli ve zaman açısından verimsiz olması, otomatik ve ölçeklenebilir analiz araçlarına olan ihtiyacı artırmaktadır. Çalışma kapsamında, özenle ön işlenmiş ve denge sağlanmış bir veri kümesi üzerinde Random Forest, XGBoost, LightGBM ve Destek Vektör Makineleri (SVM) gibi toplamda on iki farklı makine öğrenmesi algoritması değerlendirilmiştir. Veri kümesindeki sınıf dengesizliği SMOTE-Tomek yöntemiyle giderilmiş; modellerin performansı ise Bayesyen hiperparametre optimizasyonu ile artırılmıştır. Ayrıca, Topluluk Öğrenmesi (Ensemble Learning) yaklaşımları olan Oylama (Voting) ve Yığınlama (Stacking) stratejileri uygulanmış, en yüksek doğruluk oranı %97,51 ile Stacking Sınıflandırıcısı kullanılarak elde edilmiştir. Önerilen çerçeve, çoklu öğrenme yaklaşımlarını birleştirerek güvenlik açığı tespit performansını artırmakta ve gerçek zamanlı analiz için web tabanlı bir arayüz sunmaktadır. Bu yönüyle çalışma, mevcut literatürde raporlanan sonuçları aşmakta ve geliştiriciler ile güvenlik analistleri için pratik bir analiz aracı olarak değerli bir katkı sunmaktadır.

Referanslar

Breiman, L. (2001). Random forests. Machine Learning, 45(1), 5–32. https://doi.org/10.1023/A:1010933404324

Chen, T., & Guestrin, C. (2016). XGBoost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 785–794). https://doi.org/10.1145/2939672.2939785

Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20(3), 273–297. https://doi.org/10.1007/BF00994018

Dietterich, T. G. (2000). Ensemble methods in machine learning. In J. Kittler & F. Roli (Eds.), Multiple Classifier Systems (pp. 1–15). Springer. https://doi.org/10.1007/3-540-45014-9_1

Ferenc, R., Hegedűs, P., Gyimesi, P., Antal, G., Bán, D., & Gyimóthy, T. (2019). Challenging machine learning algorithms in predicting vulnerable JavaScript functions. In 2019 IEEE/ACM 7th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE) (pp. 8–14). IEEE. https://doi.org/10.1109/RAISE.2019.00010

Friedman, J. H. (2001). Greedy function approximation: A gradient boosting machine. The Annals of Statistics, 29(5), 1189–1232. https://doi.org/10.1214/aos/1013203451

Geurts, P., Ernst, D., & Wehenkel, L. (2006). Extremely randomized trees. Machine Learning, 63(1), 3–42. https://doi.org/10.1007/s10994-006-6226-1

Harzevili, N. S., Belle, A. B., Wang, J., Wang, S., Jiang, Z. M., & Nagappan, N. (2023). A survey on automated software vulnerability detection using machine learning and deep learning (arXiv:2306.11673). arXiv. https://doi.org/10.48550/arXiv.2306.11673

Hosmer, D. W., & Lemeshow, S. (2000). Applied logistic regression (2nd ed.). John Wiley & Sons.

Ke, G., Meng, Q., Finley, T., Wang, T., Chen, W., Ma, W., & Liu, T. Y. (2017). LightGBM: A highly efficient gradient boosting decision tree. Advances in Neural Information Processing Systems, 30, 3146–3154. https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf

Liu, Z., Fang, Y., Huang, C., & Xu, Y. (2023). MFXSS: An effective XSS vulnerability detection method in JavaScript based on multi-feature model. Computers & Security, 124, 103015. https://doi.org/10.1016/j.cose.2022.103015

McCallum, A., & Nigam, K. (1998). A comparison of event models for naive Bayes text classification. In AAAI-98 Workshop on Learning for Text Categorization (pp. 41–48). AAAI Press.

Şahin, M. (2025). Binary logistic regression procedure with an application. Black Sea Journal of Statistics, 1(1), 22–26. https://blackseapublishers.online/index.php/statistics/article/view/21

Snoek, J., Larochelle, H., & Adams, R. P. (2012). Practical Bayesian optimization of machine learning algorithms. Advances in Neural Information Processing Systems, 25, 2951–2959.

Wolpert, D. H. (1992). Stacked generalization. Neural Networks, 5(2), 241–259. https://doi.org/10.1016/S0893-6080(05)80023-1

Yayınlanmış

2025-06-15

Nasıl Atıf Yapılır

ALAV, H. H., TONKAL, Özgür, & CÖMERT, Z. (2025). Javascript Fonksiyonlarında Güvenlik Açıklarının Makine Öğrenmesi Yöntemleriyle Tespiti. Black Sea Journal of Artificial Intelligence, 1(1), 15–24. https://doi.org/10.5281/zenodo.18213689

Sayı

Bölüm

Orjinal Araştırma Makalesi