网络空间安全论文笔记1——漏洞

发布于:2023-01-08 ⋅ 阅读:(553) ⋅ 点赞:(0)

基于深度学习的软件安全漏洞挖掘

早期安全漏洞挖掘:静态分析技术、动态分析技术、混合分析技术

静态分析技术:不运行程序,高效快速,但构造成本高、误报漏报率高

基于规则分析、二进制对比、静态符号执行、静态污点分析

动态分析技术:运行程序,路径覆盖率低,路径爆炸问题,消耗大量计算资源

模糊测试、动态符号执行、动态污点分析

基于机器学习:基于软件代码度量、代码属性、代码相似性、代码模式

软件代码度量:使用量化指标,检测速度快,但与漏洞本身关联不强,高误报漏报率

开发者活动、复杂度、代码变化、继承深度、耦合度、内聚度

基于代码属性:检测SQL注入、XSS、RCE、缓冲区溢出CWE-119等漏洞

基于代码相似性:提取定义好的特征,然后比较相似性,判断是否同一类型的漏洞

需要手工定义特征,且只能发现已知漏洞

基于代码模式:词法分析(文本挖掘)/语法分析(静态分析技术)

基于传统机器学习的方法存在问题:依赖专家的定义,只能检测已知漏洞,难以定位漏洞

基于深度学习:构建神经网络以提取特征

会议:IEEE S&P,USENIX Security,CCS,NDSS

数据集:美国国家计算机通用漏洞数据库(National Vulnerability Database,NVD),通用ll偶东披露数据库(Common Vulnerabilities and Exposures,CVE),中国国家信息安全漏洞库(China National Vulnerability Database of Information Security,CNNVD)

数据收集➡学习(数据预处理,数据表征,模型学习)➡检测

现有研究工作多从数据表征方法和学习模型两方面进行改进

数据表征:基于序列、抽象语法树、图、文本、混合提取特征,随后编码为特征向量

模型学习:MLP,CNN,RNN,LSTM,GRU,GNN,DBN,AE,GAN

基于序列的表征:基于序列表征的漏洞挖掘模型能够直接对代码进行词法分析,并对字符流相关的关键特征信息、执行路径和调用序列等信息进行统计得到序列表征,映射到向量空间作为神经模型的输入

基于AST:基于AST表征的漏洞挖掘模型能够实现对程序源代码的抽象表示,完整地保留程序的语法语义信息,删除了一些与实际语法结构不相关的细节,如程序的注释和分界符号等,适合对程序进行分析

基于图:基于图表征的漏洞挖掘模型通过使用图数据结构对源代码特征进行表示,使得能够抽象出深层次的代码特征信息

基于文本:基于文本表征的漏洞挖掘模型采用DNN直接将源代码作为文本进行输入,能抽象出隐藏在代码中的语法语义信息

Automatic feature learning for predicting vulnerable software components

提出了一种基于LSTM的软件漏洞预测框架


 


网站公告

今日签到

点亮在社区的每一天
去签到