通过最常见的通讯工具联系本作者,作者为NateIT
针对企业信息系统源代码中可能存在的安全漏洞,可以运用基于历史漏洞信息的智能学习技术进行检测。通过采集海量开源代码并提取其中漏洞代码的方法构建样本集,提取漏洞比对特征进行模型训练,形成原型系统,实现对系统源代码进行安全性检测,并辅助工程人员快速进行源代码漏洞的定位与修复,大幅提高代码安全检测与维护的工作效率。总体目标如下:
(1)使用多渠道、多版本、多来源的软件模块代码采集技术,对企业信息系统开发代码、开源代码和第三方代码分别进行爬取;针对开源代码各个模块的不同历史版本,采集完整历史版本代码形成开源代码库;针对API及库函数等不同调用方式对第三方代码进行处理,形成第三方代码库。
(2)基于采集到的代码库,利用git、svn等版本控制工具提供的历史提交信息检索方法,结合栈溢出和堆溢出等漏洞关键词,检索代码库中各个模块代码的实现性漏洞,对漏洞成因、代码位置、修补信息等进行存储,依据漏洞类型分别形成相应类型的漏洞库,获得完整漏洞代码库。
(3)基于生成的漏洞代码库,实现从语法相似性、语义相似性、变量相似性、代码结构相似性等比对结果中进行特征提取;进一步通过将单独特征进行相乘或计算笛卡尔积的方式,形成高质量的能更好表征代码安全性的合成特征。
(4)利用决策树、神经网络、SVM等机器学习算法对比对结果进行判别,得到目标网络密码模块代码的漏洞信息;提取软件模块的漏洞信息,并形成安全性比对报告,最