
笔记
文章平均质量分 84
阿航的博客
一切都是最好的安排!
展开
-
一些静态代码分析工具汇总
总结了几款针对源代码漏洞检测的传统静态分析工具,包括一些开源和不开源的工具。原创 2024-12-16 11:41:10 · 1308 阅读 · 0 评论 -
[论文阅读笔记]-PalmTree: 学习一个用于指令嵌入的汇编语言模型
主要创新:指令对的采样方法、分词的技巧以及消除指令上下文信息噪声的手段。缺陷:文章采用的数据集规模好像不够,难以覆盖所有的指令场景。重要发现:编译器优化选项可能会导致控制流中的指令上下文中存在噪声,这种噪声会导致模型产生误报。研究启示:后续有关汇编代码的嵌入工作可以直接使用该模型进行微调;文章的撰写逻辑和排版十分清晰,可以学习这种写作技巧。原创 2024-12-16 11:32:36 · 1140 阅读 · 0 评论 -
[论文阅读笔记]-用于二进制代码相似性检测的语义感知神经网络
文中提出了一种新的二进制代码图学习框架,其中包含语义感知模块、结构感知模块和顺序感知模块。首先提出用两个原始任务 MLM 和 ANP 以及两个额外的图级任务 BIG 和 GC 对 CFG 块进行预训练,用于捕捉语义特征。然后使用 MPNN 提取图结构信息。最后利用 CNN 模型来捕捉节点顺序信息。文中在四个数据集对两个任务进行了实验,实验结果表明,提出的模型优于目前最先进的方法。原创 2024-10-09 16:46:55 · 1178 阅读 · 1 评论 -
C/C++漏洞检测数据集汇总
漏洞检测这个方向最近几年尤为热门,尤其是与深度学习技术相结合的研究,同时一些公开可用的数据集的出现也进一步推动了这些技术的发展。本篇文章总结归纳了目前在 C/C++ 源代码漏洞检测方向的一些公开数据集以及相关文献。原创 2024-09-13 21:36:15 · 4101 阅读 · 15 评论 -
关于 Embedding 的个人粗略见解
首先举一个简单的例子:我爱吃饭。如何将 “我爱吃饭” 这句话转化为可供神经网络输入的数值向量呢?最终 “我爱吃饭” 这句话就被编码为一个特征矩阵,且这个矩阵唯一表示这句话。为了解决上述问题,Embedding(嵌入层)随之而来。Embedding,在某种程度上可以理解为,就是用来降维的,而降维的原理就是矩阵乘法。原创 2024-09-13 11:00:54 · 773 阅读 · 0 评论 -
DeepDFA: 受控制流分析驱动的有效深度漏洞检测
文中提出了用于漏洞检测的高效图学习框架和嵌入技术 DeepDFA。通过抽象数据流嵌入利用数据流分析中的位向量思想,并整合了语义特征中的数据使用模式:常用的 API 调用、操作、常量和数据类型,这些都有可能捕捉到漏洞的成因。DeepDFA 使用类似的消息传递算法模拟数据流分析的 Kildall 方法。实验结果表明,DeepDFA 非常高效。它只用了 9 分钟就完成了训练,只用了 50 个漏洞示例就实现了最高性能。同时,它的性能仍然优于所有非 Transformer 基线,并且在所有模型中泛化效果最好。原创 2024-09-05 16:53:43 · 1570 阅读 · 1 评论 -
特征向量可视化方法介绍
在最近的研究中,实验需要结合可视化进行解释分析,于是大致上了解了下目前一些特征可视化的工具,主要分为四种类型:热力图、散点图、线性图和雷达图,并将相应的基础绘制方法做一个简单的总结。原创 2024-08-07 09:14:37 · 1965 阅读 · 0 评论 -
深度学习可解释性方法的一些概念
理解和解释深度学习模型的决策过程和原理。原创 2024-06-24 10:48:11 · 1008 阅读 · 0 评论 -
TXL编程语言环境安装
TXL(Tree Transformation Language)是一种专门用于源代码分析和转换的编程语言。它基于树形结构,可以帮助开发人员进行各种代码重构、代码生成、语法转换等操作。TXL具有强大的模式匹配和模式替换功能,因此在软件工程和编程语言研究领域得到广泛应用。例如,可以用TXL来自动化重构工作、实现编程语言之间的转换,或者进行源代码的静态分析等。原创 2024-06-24 10:20:21 · 438 阅读 · 0 评论 -
利用SHAP算法解释BERT模型的输出
从上扒下来代码。原创 2024-06-24 10:17:13 · 1136 阅读 · 0 评论 -
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 · 1598 阅读 · 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 评论 -
神经网络训练中的train loss, test loss问题
**train loss 不断下降,dev(或test) loss不断下降:**说明网络仍在学习。**train loss 不断下降,dev(或test) loss趋于不变:**说明网络过拟合。**train loss 趋于不变,dev(或test) loss不断下降:**说明数据集100%有问题。**train loss 趋于不变,dev(或test) loss趋于不变:**说明学习遇到瓶颈,需要减小学习率或批量数目,或者是数据集有问题(数据集标注错误数据比较多)。**train loss 不断.原创 2022-02-23 12:02:16 · 2299 阅读 · 0 评论 -
深度学习的一些定义
学习率: 将输出误差反向传播给网络参数,以此来拟合样本的输出。本质上是最优化的一个过程,逐步趋向于最优解。但是每一次更新参数利用多少误差,就需要通过一个参数来控制,这个参数就是学习率(Learning rate),也称为步长。<UNK>: 低频词或未在词表中的词<PAD>: 补全字符什么是深度学习里的Embedding? 这个概念在深度学习领域最原初的切入点是所谓的Manifold Hypothesis(流形假设)。流形假设是指“自然的原始数据是低维的流形嵌入于(e原创 2022-02-23 12:03:42 · 1064 阅读 · 1 评论