随着计算机软件复杂度的持续增长,软件架构的安全性不断下降.由于软件各模块耦合性过高,导致软件漏洞数量急剧增加,安全漏洞的检测和防护技术逐渐成为网络安全领域的重点研究方向.现有的漏洞静态检测方法检测效果较差,而模糊测试技术需要消耗大量时间,业内缺乏能够快速对大规模二进制程序进行漏洞扫描的方法.文章基于机器学习方法,使用一种随机探测算法对反编译后的程序进行轻量级静态特征提取,并在动态特征提取过程中对参数进行信息聚合,对提取到的动态特征和静态特征分别运用Text-CNN、Logistic、随机森林等算法进行模型训练.实验表明,文章方法可以有效对二进制程序进行漏洞检测.%As the complexity of computer software continues to grow, the security of software architectures continues to decline. Due to the high coupling of software modules, the number of software vulnerabilities has increased dramatically. The detection and protection technologies of security vulnerabilities have gradually become key research directions in the field of network security. However, the existing vulnerability detection methods have many shortcomings. Fuzzy testing technology consumes a lot of time, and there is no fast vulnerability scanning method for large-scale binary programs in the industry. Based on machine learning method, this paper uses a random detection algorithm to extract lightweight static features of decompiled programs, and aggregates parameters in the process of extracting dynamic features. Text-CNN, Logistic and random forest algorithms are used to train dynamic and static features respectively. Experiments show that this method can effectively detect vulnerabilities in binary programs.
展开▼