Machine Learning-Based Security Pattern Recognition Techniques for Code Developers
Source abstract
Abstract
Software developers represent the bastion of application security against the overwhelming cyber-attacks which target all organizations and affect their resilience. As security weaknesses which may be introduced during the process of code writing are complex and matching different and variate skills, most applications are launched intrinsically vulnerable. We have advanced our research for a security scanner able to use automated learning techniques based on machine learning algorithms to recognize patterns of security weaknesses in source code. To make the scanner independent on the programming language, the source code is converted to a vectorial representation using natural language processing methods, which are able to retain semantical traits of the original code and at the same time to reduce the dependency on the lexical structure of the program. The security flaws detection performance is in the ranges accepted by software security professionals (recall > 0.94) even when vulnerable samples are very low represented in the dataset (e.g., less than 4% vulnerable code for a specific CWE in the dataset). No significant change or adaptation is needed to change the source code language under scrutiny. We apply this approach on detecting Common Weaknesses Enumeration (CWE) vulnerabilities in datasets provided by NIST (Test suites–NIST Software Assurance Reference Dataset).
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Software Engineering Research · Software Reliability and Analysis Research · Advanced Malware Detection Techniques
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Faculty of Automatic Control and Computers, University Politehnica of Bucharest, 060042 Bucharest, Romania
Institute for Artificial Intelligence “Mihai Draganescu” of the Romanian Academy, 050711 Bucharest, Romania
References (17)
Show source-provided references
1. CAST Research Labs (2022, October 24). CRASH Report on Application Security. Available online: https://content.castsoftware.com/hubfs/pdf-files/crash-report-on-application-security_ES.pdf.
2. Ozment, A., and Schechter, S.E. (2006). Milk or Wine: Does Software Security Improve with Age?. USENIX Secur. Symp., Available online: http://usenix.org/events/sec06/tech/full_papers/ozment/ozment.pdf.
3. Reid, D., Eng, K., Bogart, C., and Tutko, A. (2021, January 17–19). Tracing vulnerable code lineage. Proceedings of the 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR), Madrid, Spain.10.1109/MSR52588.2021.00087 ↗
4. Li, Z., Zou, D., Xu, S., Ou, X., Jin, H., Wang, S., Deng, Z., and Zhong, Y. (2018, January 18–21). Vuldeepecker: A deep learning-based system for vulnerability detection. Proceedings of the 2018 Network and Distributed System Security Symposium, San Diego, CA, USA.10.14722/ndss.2018.23158 ↗
5. Yamaguchi, F., Wressnegger, C., Gascon, H., and Rieck, K. (2013, January 26). Chucky. Proceedings of the 2013 ACM SIGSAC Conference on Computer & Communications security—CCS ’13, Berlin, Germany.10.1145/2508859.2516665 ↗
6. Understanding bag-of-words model: A statistical framework10.1007/s13042-010-0001-0 ↗
7. Harer, J., Kim, L., Russell, R., Ozdemir, O., Kosta, L., Rangamani, A., Hamilton, L., Centeno, G., Key, J., and Ellingwood, P. (2018). Automated software vulnerability detection with machine learning. arXiv.
8. Yamaguchi, F., Maier, A., Gascon, H., and Rieck, K. (2015, January 4–8). Automatic inference of search patterns for taint-style vulnerabilities. Proceedings of the 2015 IEEE Symposium on Security and Privacy, Berlin, Germany.10.1109/SP.2015.54 ↗
9. Russell, R., Kim, L., Hamilton, L., Lazovich, T., Harer, J., Ozdemir, O., Ellingwood, P., and McConley, M. (2018, January 17–20). Automated vulnerability detection in source code using deep representation learning. Proceedings of the 2018 17th IEEE International Conference on Machine Learning and Applications (ICMLA), Orlando, FL, USA.10.1109/ICMLA.2018.00120 ↗
10. Sajnani, H., Saini, V., Svajlenko, J., Roy, C.K., and Lopes, C.V. (2016, January 14–22). SOURCERERCC. Proceedings of the 38th International Conference on Software Engineering, Austin, TX, USA.10.1145/2884781.2884877 ↗
11. Zaharia, S., Rebedea, T., and Trausan-Matu, S. (2019, January 4–7). Source code vulnerabilities detection using loosely coupled data and control flows. Proceedings of the 2019 21st International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), Timisoara, Romania.10.1109/SYNASC49474.2019.00016 ↗
12. Zaharia, S., Rebedea, T., and Trausan-Matu, S. (2021, January 26–28). CWE pattern identification using semantical clustering of programming language keywords. Proceedings of the 23rd International Conference on Control Systems and Computer Science (CSCS), Bucharest, Romania.10.1109/CSCS52396.2021.00027 ↗
13. Mikolov, T., Sutskever, I., Chen, K., Corrado, G., and Dean, J. (2013, January 5–10). Distributed representations of words and phrases and their compositionality. Proceedings of the 26th International Conference on Neural Information Processing Systems—Volume 2 (NIPS’13), Lake Tahoe, NV, USA.
14. Suneja, S., Zheng, Y., Zhuang, Y., Laredo, J., and Morari, A. (2020). Learning to map source code to software vulnerability using code-as-a-graph. arXiv.
15. Yamaguchi, F., Golde, N., Arp, D., and Rieck, K. (2014, January 18–21). Modeling and discovering vulnerabilities with code property graphs. Proceedings of the 2014 IEEE Symposium on Security and Privacy, Berkeley, CA, USA.10.1109/SP.2014.44 ↗
16. Automatically detect software security vulnerabilities based on natural language processing techniques and machine learning algorithms10.5614/itbj.ict.res.appl.2022.16.1.5 ↗
17. Code vulnerability detection based on deep sequence and graph models: A survey