
#+代码漏洞检测
文章平均质量分 77
定时发布一些深度学习在漏洞检测上的应用的一些文章
代码搬运工易辰
这个作者很懒,什么都没留下…
展开
-
SySeVR源码漏洞的系统框架
首先将程序切片中的属于同一函数的所有语句按照在源代码中出现的顺序存入一个集合,对于不同的函数的语句而言,调用者的语句在被调用者的语句之前。调整好顺序后,该集合就是SyVC对应的SeVC,对SyVCs中的每一个SyVC这样处理,就可以生成SeVCs。首先生成SyVC的前向切片和后向切片,然后融合前向切片和被该函数调用的函数的前向切片,得到过程间前向切片;融合后向切片、被该函数调用的函数的后向切片,以及调用该函数的函数的后向切片,得到过程间后向切片;融合过程间前向切片和过程间后向切片得到程序切片。原创 2024-09-05 09:05:44 · 1263 阅读 · 0 评论 -
DIVERSEVUL: A New Vulnerable Source Code Dataset for Deep Learning Based Vulnerability Detection
本篇论文提出了一种新的漏洞源代码数据集——DIVERSEVUL,并通过爬取安全问题网站、提取修复漏洞的提交和源代码等方法进行构建。该数据集包含18,945个脆弱函数,覆盖了150个CWE(软件漏洞分类)和330,492个非脆弱函数,来自7,514个提交。与之前的数据集相比,该数据集涵盖了更多的项目。此外,作者还分析了使用深度学习检测软件漏洞所面临的挑战和有前途的研究方向。他们评估了11种模型架构,属于4个家族,结果表明深度学习在检测漏洞时仍存在高误报率、低F1分数和难以检测硬CWE等问题。原创 2024-09-24 09:07:25 · 1364 阅读 · 0 评论 -
DeepWUkong
DeepWukong利用先进的图神经网络技术将代码片段嵌入到紧凑、低维的表示中,并产生一种新的代码表示方式,保留了高级编程逻辑(如控制流和数据流)以及程序的自然语言信息。在第一步中,通过对程序依赖关系图进行割集算法处理,得到程序中的所有可能子程序,然后将每个子程序看作一个节点,并将其加入到程序片断选取阶段的候选集合中。在第二步中,对于每个节点,先对其进行符号化,即将其变量名和函数名替换为统一的标识符,再通过Doc2Vec模型将其转换为向量表示。原创 2024-08-17 20:21:20 · 1240 阅读 · 9 评论 -
安装与cuda版本对应的torch-geometric文件的shell
import loggingimport subprocess from setuptools import setup import torch cuda_v = f"cu{torch.version.cuda.replace('.', '')}"torch_v = torch.__version__.split('.')torch_v = '.'.join(torch_v[:-1] + ['0']) def system(command: str): output =原创 2024-08-27 22:41:25 · 225 阅读 · 0 评论 -
Deepwukong项目joern安装使用教程
在将joern的源码下载后,复制到wukong项目的根目录下。该项目使用老版本的joern,用来解析c和c++语言,构建程序的程序依赖图PDG。该工具生成的是nodes.csv和edges.csv 文件。至此,如果一切顺利的话,那么你将成功解析项目中data下面的c和cpp文件。edges.csv是这样的:主要包含边的类型以及起始和结束位置。joern 是直接在 README.md 中给出的地址下载的源码。其中nodes.csv是这样的:主要包含节点的一些属性。原创 2024-09-03 16:13:09 · 734 阅读 · 5 评论 -
基于动态切片与预训练模型的代码漏洞检测
该论文提出了一种基于动态切片与预训练模型的代码漏洞检测方法,旨在解决传统基于深度学习的漏洞检测模型存在的问题,如准确性低、可扩展性差等。该方法通过动态切片获取包含路径特征的语句块,并利用预训练模型的语义提取能力将其表示为二维张量。然后,将代码结构和语义特征编码成灰度图像中的像素值,并借助Swin Transformer的特征提取能力,实现更准确的漏洞检测。实验结果表明,该方法能够有效降低误报率和漏报率,提高漏洞检测的准确性和可靠性。原创 2024-09-23 16:28:06 · 714 阅读 · 0 评论