journal article·2023-03-09Open access

False Alarm Reduction Method for Weakness Static Analysis Using BERT Model

Dinh Huong Nguyen, Aria Seo, Nnubia Pascal Nnamdi, Yunsik Son

Applied Sciences· Volume 13· Issue 6

Abstract

In the era of the fourth Industrial Revolution, software has recently been applied in many fields. As the size and complexity of software increase, security attack problems continue to arise owing to potential software defects, resulting in significant social losses. To reduce software defects, a secure software development life cycle (SDLC) should be systematically developed and managed. In particular, a software weakness analyzer that uses a static analysis tool to check software weaknesses at the time of development is a very effective tool for solving software weaknesses. However, because numerous false alarms can be reported even when they are not real weaknesses, programmers and reviewers must review them, resulting in a decrease in the productivity of development. In this study, we present a system that uses the BERT model to determine the reliability of the weakness analysis results generated by the static analysis tool and to reduce false alarms by reclassifying the derived results into a decision tree model. Thus, it is possible to maintain the advantages of static analysis tools and increase productivity by reducing the cost of program development and the review process.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Software System Performance and Reliability · Software Engineering Research · Software Reliability and Analysis Research

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Computer Science and Engineering, Dongguk University, Seoul 04620, Republic of Korea

References (44)

Show source-provided references
1. (2022, November 07). CS Hub Mid-Year Market Report 2022|Cyber Security Hub. Available online: https://www.cshub.com/executive-decisions/reports/cs-hub-mid-year-market-report-2022.
2. A Study on the Secure Coding Rules for Developing Secure Smart Contract on Ethereum Environments10.33832/ijast.2019.133.05 ↗
3. A Study on the Security Weakness Analysis of Chaincode on Hyperledger Fawbric and Etheum Blockchain Framework
4. Secure Cloud Storage Service Using Bloom Filters for the Internet of Things10.1109/ACCESS.2019.2915576 ↗
5. A Survey of Emerging Threats in Cybersecurity10.1016/j.jcss.2014.02.005 ↗
6. Zaharia, S., Rebedea, T., and Trausan-Matu, S. (2022). Machine Learning-Based Security Pattern Recognition Techniques for Code Developers. Appl. Sci., 12.10.3390/app122312463 ↗
7. Li, X., Wang, L., Xin, Y., Yang, Y., and Chen, Y. (2020). Automated Vulnerability Detection in Source Code Using Minimum Intermediate Representation Learning. Appl. Sci., 10.10.3390/app10051692 ↗
8. A Comparative Study of Deep Learning-Based Vulnerability Detection System10.1109/ACCESS.2019.2930578 ↗
9. Ziems, N., and Wu, S. (2021, January 10–13). Security Vulnerability Detection Using Deep Learning Natural Language Processing. Proceedings of the IEEE INFOCOM 2021—IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Vancouver, BC, Canada.10.1109/INFOCOMWKSHPS51825.2021.9484500 ↗
10. SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilities10.1109/TDSC.2021.3051525 ↗
11. Li, Z., Zou, D., Xu, S., Ou, X., Jin, H., Wang, S., Deng, Z., and Zhong, Y. (2018). VulDeePecker: A Deep Learning-Based System for Vulnerability Detection. arXiv.10.14722/ndss.2018.23158 ↗
12. Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networks
13. (2022, October 16). Most Secure Programming Languages—Mend. Available online: https://www.mend.io/most-secure-programming-languages/.
14. (2022, November 07). Which Industries Use C++?|Snyk. Available online: https://snyk.io/learn/who-uses-cpp/.
15. (2022, November 07). Git. Available online: https://git-scm.com/.
16. (2022, November 07). OpenSSH. Available online: https://www.openssh.com/.
17. (2022, November 07). Download PuTTY—A Free SSH and Telnet Client for Windows. Available online: https://www.putty.org/.
18. (2022, November 07). FileZilla—The Free FTP Solution. Available online: https://filezilla-project.org/.
19. (2022, December 09). CWE—Common Weakness Enumeration. Available online: https://cwe.mitre.org/.
20. (2022, December 09). CAPEC—Common Attack Pattern Enumeration and Classification (CAPECTM). Available online: https://capec.mitre.org/.
21. (2022, December 09). CVE—CVE. Available online: https://cve.mitre.org/.
22. (2022, December 09). CWE—2022 CWE Top 25 Most Dangerous Software Weaknesses. Available online: https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25.html.
23. (2022, December 09). OWASP Top Ten|OWASP Foundation. Available online: https://owasp.org/www-project-top-ten/.
24. (2022, November 07). Cppcheck—A Tool for Static C/C++ Code Analysis. Available online: https://cppcheck.sourceforge.io/.
25. (2022, November 07). Clang Static Analyzer. Available online: https://clang-analyzer.llvm.org/.
26. (2022, November 07). Flawfinder Home Page. Available online: https://dwheeler.com/flawfinder/.
27. (2022, December 09). CodeQL. Available online: https://codeql.github.com/.
28. (2022, November 07). Infer Static Analyzer|Infer|Infer. Available online: https://fbinfer.com/.
29. (2022, December 08). Code Quality and Code Security|SonarQube. Available online: https://www.sonarqube.org/.
30. (2022, November 07). PVS-Studio Is a Solution to Enhance Code Quality, Security (SAST), and Safety. Available online: https://pvs-studio.com/en/.
31. (2022, November 07). Frama-C—Framework for Modular Analysis of C Programs. Available online: https://frama-c.com/.
32. A Data Type Inference Method Based on Long Short-Term Memory by Improved Feature for Weakness Analysis in Binary Code10.1016/j.future.2019.05.013 ↗
33. Attention Is All You Need
34. Devlin, J., Chang, M.W., Lee, K., and Toutanova, K. (2018, January 2–7). BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Minneapolis, MN, USA.
35. Feng, Z., Guo, D., Tang, D., Duan, N., Feng, X., Gong, M., Shou, L., Qin, B., Liu, T., and Jiang, D. (2020). CodeBERT: A Pre-Trained Model for Programming and Natural Languages. arXiv.10.18653/v1/2020.findings-emnlp.139 ↗
36. Guo, D., Ren, S., Lu, S., Feng, Z., Tang, D., Liu, S., Zhou, L., Duan, N., Svyatkovskiy, A., and Fu, S. (2020). GraphCodeBERT: Pre-Training Code Representations with Data Flow. arXiv.
37. Wang, Y., Wang, W., Joty, S., and Hoi, S.C.H. (2021). CodeT5: Identifier-Aware Unified Pre-Trained Encoder-Decoder Models for Code Understanding and Generation. arXiv.10.18653/v1/2021.emnlp-main.685 ↗
38. Black, P.E. (2010). Juliet 1.3 Test Suite: Changes From 1.2.
39. (2022, December 28). Neulab/Code-Bert-Score: CodeBERTScore: An Automatic Metric for Code Generation, Based on BERTScore. Available online: https://github.com/neulab/code-bert-score.
40. Bostrom, K., and Durrett, G. (2004). Byte Pair Encoding Is Suboptimal for Language Model Pretraining. arXiv.
41. Kudo, T., and Richardson, J. (2018). SentencePiece: A Simple and Language Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv.10.18653/v1/D18-2012 ↗
42. Wu, Y., Schuster, M., Chen, Z., Le, Q.V., Norouzi, M., Macherey, W., Krikun, M., Cao, Y., Gao, Q., and Macherey, K. (2016). Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv.
43. (2022, November 07). CWE—CWE-1003: Weaknesses for Simplified Mapping of Published Vulnerabilities (4.9). Available online: https://cwe.mitre.org/data/definitions/1003.html.
44. (2022, December 27). 1.10. Decision Trees—Scikit-Learn 1.2.0 Documentation. Available online: https://scikit-learn.org/stable/modules/tree.html.