Using Software Metrics for Predicting Vulnerable Code-Components: A Study on Java']Java and Python']Python Open Source Projects

被引:2
|
作者
Chong, Tai-Yin [1 ]
Anu, Vaibhav [1 ]
Sultana, Kazi Zakia [1 ]
机构
[1] Montclair State Univ, Dept Comp Sci, Montclair, NJ 07043 USA
关键词
software security; software metrics; vulnerability prediction; software reliability; machine learning;
D O I
10.1109/CSE/EUC.2019.00028
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Software vulnerabilities often remain hidden until an attacker exploits the weak/insecure code. Therefore, testing the software from a vulnerability discovery perspective becomes challenging for developers if they do not inspect their code thoroughly (which is time-consuming). We propose that vulnerability prediction using certain software metrics can support the testing process by identifying vulnerable code-components (e.g., functions, classes, etc.). Once a code-component is predicted as vulnerable, the developers can focus their testing efforts on it, thereby avoiding the time/effort required for testing the entire application. The current paper presents a study that compares how software metrics perform as vulnerability predictors for software projects developed in two different languages (Java vs Python). The goal of this research is to analyze the vulnerability prediction performance of software metrics for different programming languages. We designed and conducted experiments on security vulnerabilities reported for three Java projects (Apache Tomcat 6, Tomcat 7, Apache CXF) and two Python projects (Django and Keystone). In this paper, we focus on a specific type of code component: Functions. We apply Machine Learning models for predicting vulnerable functions. Overall results show that software metrics-based vulnerability prediction is more useful for Java projects than Python projects (i.e., software metrics when used as features were able to predict Java vulnerable functions with a higher recall and precision compared to Python vulnerable functions prediction).
引用
收藏
页码:98 / 103
页数:6
相关论文
共 50 条
  • [21] An Empirical Study of Unused Design Decisions in Open Source Java']Java Software
    Tempero, Ewan
    APSEC 2008:15TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 33 - 40
  • [22] Is Open Source Eating the World's Software? Measuring the Proportion of Open Source in Proprietary Software Using Java']Java Binaries
    Musseau, Julius
    Meyers, John Speed
    Sieniawski, George P.
    Thompson, C. Albert
    German, Daniel
    2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 561 - 565
  • [23] Empirical Study on the Usage of Graph Query Languages in Open Source Java']Java Projects
    Seifer, Philipp
    Haertel, Johannes
    Leinberger, Martin
    Laemmel, Ralf
    Staab, Steffen
    PROCEEDINGS OF THE 12TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING (SLE '19), 2019, : 152 - 166
  • [24] ERSN-OpenMC-Py: A python']python-based open-source software for OpenMC Monte Carlo code
    Lahdour, M.
    El Bardouni, T.
    El Hajjaji, O.
    EL Bakkali, J.
    Al-Zain, J.
    Oulad-Belayachi, S.
    Ziani, H.
    Idrissi, Abdelghani
    Hlaibi, S. El Maliki El
    COMPUTER PHYSICS COMMUNICATIONS, 2024, 299
  • [25] Using the uniqueness of global identifiers to determine the provenance of Python software source code
    Yiming Sun
    Daniel German
    Stefano Zacchiroli
    Empirical Software Engineering, 2023, 28
  • [26] A Lightweight DFT-Based Approach to the Optical Measurement of Displacements Using an Open-Source Python']Python Code
    Nezerka, V
    Havlasek, P.
    EXPERIMENTAL TECHNIQUES, 2022, 46 (03) : 485 - 496
  • [27] Clustering data retrieved from Java']Java source code to support software maintenance: A case study
    Rousidis, D
    Tjortjis, C
    NINTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2005, : 276 - 279
  • [28] Using Dynamic and Static Techniques to Establish Traceability Links Between Production Code and Test Code on Python']Python Projects: A Replication Study
    Chen, Zhifei
    Jia, Chiheng
    Li, Yanhui
    Chen, Lin
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2025, 37 (03)
  • [29] Mining Reusable Software Components from Object-Oriented Source Code using Discrete PSO and Modeling Them as Java']Java Beans
    Rathee, Amit
    Chhabra, Jitender Kumar
    INFORMATION SYSTEMS FRONTIERS, 2020, 22 (06) : 1519 - 1537
  • [30] Characterizing logging practices in Java-based open source software projects – a replication study in Apache Software Foundation
    Boyuan Chen
    Zhen Ming (Jack) Jiang
    Empirical Software Engineering, 2017, 22 : 330 - 374