
漏洞
文章平均质量分 90
阿航的博客
一切都是最好的安排!
展开
-
一些静态代码分析工具汇总
总结了几款针对源代码漏洞检测的传统静态分析工具,包括一些开源和不开源的工具。原创 2024-12-16 11:41:10 · 1308 阅读 · 0 评论 -
DeepDFA: 受控制流分析驱动的有效深度漏洞检测
文中提出了用于漏洞检测的高效图学习框架和嵌入技术 DeepDFA。通过抽象数据流嵌入利用数据流分析中的位向量思想,并整合了语义特征中的数据使用模式:常用的 API 调用、操作、常量和数据类型,这些都有可能捕捉到漏洞的成因。DeepDFA 使用类似的消息传递算法模拟数据流分析的 Kildall 方法。实验结果表明,DeepDFA 非常高效。它只用了 9 分钟就完成了训练,只用了 50 个漏洞示例就实现了最高性能。同时,它的性能仍然优于所有非 Transformer 基线,并且在所有模型中泛化效果最好。原创 2024-09-05 16:53:43 · 1570 阅读 · 1 评论 -
LineVul实验复现及相关问题
最近在复现 LineVul 这篇文章的实验,本文主要用于简化文章复现流程和记录复现过程中出现的问题。原创 2024-05-07 12:32:19 · 854 阅读 · 5 评论 -
LineVul: 基于Transformer的行号级漏洞预测
给定一个被 LineVul 预测为易受攻击的函数,利用 Transformer 架构内的自注意力机制来定位易受攻击的代码行,从而执行号级的漏洞定位。对预测贡献最大的令牌(token)很可能就是易受攻击的令牌,对于函数中的每个子词令牌,总结 12 个 Transformer 编码器块中其对应的自注意力得分。Initial False Alarm(IFA):安全分析人员需要检查的错误预测行(即,错误地预测为易受攻击或错误警报的非易受攻击行)的数量,直到找到给定函数的第一个实际易受攻击行。原创 2024-04-17 23:06:56 · 1758 阅读 · 1 评论 -
基于汇编代码和源代码融合的漏洞检测系统
基本定义:定义1(源代码切片)。源代码切片Si是一个语义相关的多行源代码的片段,表示为Si=(si1si2si3,…,sin),其中sij(1 ≤j≤n)是Si中的第j行。定义2(汇编代码切片)。汇编代码切片Di是一个语义相关的多行汇编代码片段,表示为Di=(di1di2di3,…,din),其中dij(1 ≤ j ≤ n)是Di中的第j行。该系统分为训练和测试两个阶段。源代码处理。根据漏洞候选特征提取源代码切片,添加标签。原创 2024-04-17 15:16:59 · 1114 阅读 · 2 评论 -
AMPLE: 基于图简化和增强图表征学习的漏洞检测
文中提出了一种新颖的漏洞检测框架 AMPLE,它具有图简化和增强图表征学习功能。AMPLE 可以缩小代码结构图的节点数量,从而减少节点之间的距离。同时结合边缘类型来增强局部节点的表示,以应对节点表示中更多的异构关系。通过捕捉远处图节点之间的关系来获取图的全局信息。与最先进的基于深度学习的方法相比,AMPLE 在所有数据集上的漏洞检测性能都有显著提高,F1 分数提高了 7.64%-199.81%。原创 2024-04-17 14:51:35 · 1678 阅读 · 6 评论 -
VulBG: 构建行为图加强基于深度学习的漏洞检测模型
文中提出了一种新方法,它可以提取函数的行为,然后构建行为图来表示不同函数之间的联系。设计并实现了 VulBG,通过将行为图与其他基于 DL 的 VD 方法相结合来提高漏洞检测性能。在两个真实世界数据集上的评估结果表明,行为图本身就足以胜任漏洞检测工作,且 可以进一步有效提高不同类型基于 DL 的 VD 方法(即 TextCNN、ASTGRU、CodeBERT、Devign 和 VulCNN)的整体性能。原创 2024-04-16 20:30:30 · 1597 阅读 · 2 评论 -
从汇编代码理解数组越界访问漏洞
根据上述示例可以发现,通过数组越界来覆盖函数的返回地址可以更改程序的执行流程。同样地,攻击者可以填写存放恶意代码的地址,从而引导函数func1去执行该恶意代码。因此,在编写代码中对数组做边界检查尤为重要。原创 2024-04-16 15:39:06 · 1811 阅读 · 0 评论 -
Sharing More and Checking Less:SaTC
文章提出了一个新的静态污点检测解决方案SaTC,用于有效检测嵌入式设备提供的网络服务中的安全漏洞。原创 2022-11-10 14:10:39 · 1494 阅读 · 2 评论 -
VulDeeLocator: 基于深度学习的细粒度漏洞检测器
这篇文章提出了一种可以同时实现高检测能力和高定位精度的漏洞检测器VulDeeLocator原创 2022-11-04 22:10:06 · 2147 阅读 · 0 评论 -
Devign:通过学习综合程序语义有效识别漏洞
这篇文章提出了一种基于图神经网络的通用模型Devign,通过学习丰富的代码语义集以进行图级分类原创 2022-11-04 22:01:22 · 2367 阅读 · 1 评论 -
BVDetector: 基于程序切片的二进制代码漏洞智能检测系统
提出了BVDetector和二进制程序的细粒度表示,并引入深度学习技术来智能检测漏洞。原创 2022-09-18 21:12:56 · 1845 阅读 · 1 评论 -
基于语义学习的物联网设备跨平台二进制漏洞搜索
物联网的快速发展引发了比以往更多的安全需求,尤其是在物联网设备的漏洞检测方面。原创 2022-09-13 09:28:25 · 2832 阅读 · 0 评论 -
HyVulDect: 基于图神经网络的混合语义漏洞挖掘系统
软件程序趋于庞大和复杂,软件漏洞成为计算机安全的主要威胁之一。开源软件的发展使得源代码漏洞检测变得越来越关键。传统的漏洞检测方法由于假阳率和假阴率较高,无法满足复杂软件的分析需求。提出了一个基于混合语义的图神经网络漏洞挖掘系统HyVulDect。该系统构建了一个复合语义的代码属性图来表示代码,使用门控图神经网络提取深层语义信息。利用污点分析提取污点传播链,并使用BiLSTM模型获取上下文的token级别的特征,最后使用分类器对融合特征进行分类。同时,加入双重注意力机制,使得模型能够关注与漏洞相关的代码。原创 2022-09-07 13:45:48 · 1690 阅读 · 2 评论 -
基于代码属性图和Bi-GRU的软件脆弱性检测方法
一.摘要提出了一种基于代码属性图和Bi-GRU的软件脆弱性检测方法。该方法通过从函数的代码属性图中提取出抽象语法树序列、控制流图序列作为函数表征的表征方式,减少代码表征过程中的信息的损失,并通过选取Bi-GRU来构建特征提取模型,提高对脆弱性代码的特征提取能力。实验结果表明,与以抽象语法树为表征方式的方法相比,该方法最大可提高35%的精确率和22%的召回率,可改善面向多个软件源代码混合的真实数据集的脆弱性检测效果,有效降低误报率和漏报率。二.本文贡献提出了一种基于代码属性图的软件脆弱性智能检测方法原创 2021-11-22 16:06:25 · 5880 阅读 · 2 评论 -
基于BiLSTM 模型的漏洞检测
基于BiLSTM 模型的漏洞检测一.摘要 首先从源代码中提取方法体,形成方法集;为方法集中的每个方法构建抽象语法树,借助抽象语法树抽取方法中的语句,形成语句集;替换语句集中程序员自定义的变量名、方法名及字符串,并为每条语句分配一个独立的节点编号,形成节点集。其次,运用数据流和控制流分析提取节点间的数据依赖和控制依赖关系。然后,将从方法体中提取的节点集、节点间的数据依赖关系以及控制依赖关系组合成方法对应的特征表示,并运用one-hot编码进一步将其处理为特征矩阵。最后,为每个矩阵贴上是否含有漏洞的标签原创 2021-11-19 21:17:58 · 4784 阅读 · 0 评论 -
缓冲区溢出漏洞分析技术研究进展
缓冲区溢出漏洞分析技术研究进展一.缓冲区溢出攻击步骤:注入攻击代码跳转到攻击代码(核心环节)执行攻击代码二.缓冲区溢出按照所攻击对象的不同可分为 3 类破坏栈数据 改变 RETADDR 的值,使其存放已经注入到栈中的攻击代码的地址或者是代码区中某些具有特权的系统函数地址(比如 system)。破坏堆数据更改类函数指针三.缓冲区溢出漏洞分析技术漏洞自动检测技术静态检测按照对模型节点的遍历方法分类正向分析:指从可能发生缓冲区溢出漏洞的源节点出发,正向遍历模原创 2021-09-29 10:36:36 · 1946 阅读 · 0 评论 -
缓冲区溢出分类
基于应用视角的缓冲区溢出检测技术一.缓冲区分类: 按照缓冲区所在内存区域位置分类: 栈溢出 堆溢出 数据段溢出 按照导致溢出的内存操作函数分类: 字符串操作函数(strcpy) 格式化输出函数(sprintf) 按照溢出数据修改的关键值分类: 修改返回地址 修改函数指针 修改指针变量 二.栈溢出 基于栈溢出的攻击Stack Smashing:原创 2021-09-24 09:05:00 · 2496 阅读 · 0 评论 -
SEED(2)-缓冲区溢出攻击(Buffer-Overflow Attack)
1. 漏洞原理漏洞代码示例:#include<string.h>void foo(char *str){ char buffer[12]; strcpy(buffer, str);}int main(){ char *str = "This is definitely longer than 12"; foo(str); return 1;}当把str的内容copy到buffer中,由于str的长度大于12,就会造成缓冲区b..原创 2021-06-29 14:28:29 · 4555 阅读 · 1 评论