使用深度神经网络进行漏洞挖掘的方法调研 |
您所在的位置:网站首页 › 漏洞的关键特征 › 使用深度神经网络进行漏洞挖掘的方法调研 |
使用深度神经网络进行漏洞挖掘的方法调研
传统的漏洞挖掘方法
静态方法
基于规则/模板的
代码相似性检测
符号执行
对源代码分析,高假阳性 动态方法 模糊测试 污点分析代码覆盖率低 混合方法结合静态、动态方法,会继承上述的问题,并且实践上难以应用 介绍机器学习方法的优点 人类智慧(经验)起到重要指导作用(基于规则、基于提取的特征的) 困难: 难以将安全专家对漏洞的理解 转换为 可被检测系统学习的特征向量 系统从特征集中学到的东西也可能受到各种因素的影响 例如,模型的表现力、数据过度拟合、数据中的噪声等一些概念: 缺口(GAP):机器学习 要 像人类一样 学习和理解 漏洞代码的语义 (如何将漏洞代码表示为机器可学习的信息) semantic gap: 语义缺口、语义空白 传统机器学习方法依赖手工制作的特征 深度学习、RNN可以自动通过学习揭示代码语义的复杂模式和软件代码的高级表示 安全从业者人工审查漏洞考虑的因素 漏洞语义差距 对软件漏洞一种不同的表达定义:缺陷的实例,由软件的设计、开发或配置中的错误引起,从而可以利用它来违反某些显式或隐式的安全策略 安全相关的 bug ==》 被攻击者利用 ==》 导致安全失败或者违反安全策略 人类检查和检测系统的语义鸿沟对代码语义的高级理解需要: 足够的经验 编程知识 对编程语言本身的理解 理解代码的语义和语法 对代码库有深入认识(一个例子是心脏滴血漏洞中,需要对n2s函数有了解 安全编码的实践 自动检测系统依赖特征集,来自于: 人工提取的(传统机器学习算法 自动提取的(深度学习检测系统无法像从业者那样充分理解易受攻击代码模式的潜在语义。 因此,知识渊博、经验丰富的从业者与基于ML的检测系 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |