LAVA: Large-scale Automated Vulnerability Addition

2023-11-02 08:32

本文主要是介绍LAVA: Large-scale Automated Vulnerability Addition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

abstract

LAVA:一种基于动态染色的新技术,自动向源程序代码中插入大量的真实的bugs的的语料库。
每个LAVA的bug都可以由一个完整的input触发,而正常的输入是不可能做到这一点的。而且这些漏洞都是人合成的。

motivation

漏洞语料库(Vulnerability corpora)分为两种:historic和synthetic,真实的和人造的。real word的漏洞库包含的例子太少,用处不是很大。但是他们最接近我们真实想要的,因为他们嵌入到真实的代码中。相比人工漏洞库就好很多。

在漏洞语料库中bugs必须满足以下要求才能对研究,发展,评价是有用的:
(1)cheap和plentiful(丰富的)
(2)Span the execution lifetime of a program
(3)Be embedded in representative control and data flow(嵌入到有代表性的控制流和数据流中)
(4)提供一个可以作为存在性证明的输入
(5)一小部分可能的输入的清单

作者想要做的:通过向真实程序的源码中进行一些明智的和自动化的编辑来插入人工的漏洞——LAVA((Large-scale Automated Vulnerability Addition)),

scope

LAVA的作用:可以评估和发展漏洞发现技术和系统。
当前关注于:插入代码可以导致由攻击者控制的输入造成的越界读写,还会有其他扩展,也可以有输入导致其他的bug。

LAVA overview

lava向程序中添加bugs按照以下步骤,需要满足以下要求,给定程序在特定输入上的程序执行跟踪:
(1)识别可用字节的执行跟踪位置,这些位置不用于决定控制流,而且没有进行太多的修改。称这些为DUAs:死去的,简单的,可利用的数据。
(2)在程序跟踪中找到DUA之后可能的攻击点。
(3)在程序中添加代码使得DUA的值在攻击点可获得,并用它触发漏洞。

DUA

因为他们确信攻击者可控制的数据是可以影响程序的执行的,DUA是我们构造bugs的原材料。在程序中通过对特定的输入用动态染色分析运行程序来识别DUA。染色分析包含以下几个很重要的特征:
(1)输入的每个字节都有自己的标签,因此,如果一个内部的程序数量被打标签了,我们可以将这个数量映射回输入的特定部分。
(2)染色分析尽可能的完整和正确,所有的程序代码(包括library和kernel)都会受到染色分析。多线程和进程也会正确的处理,所以染色流不会丢失。
(3)染色分析跟踪程序数据的每个字节的一组标签,意味着它可以表示
混合输入的计算。

每个被染色过的程序变量是输入字节的一些函数。我们通过新的测量值TCN(Taint Compute Number)来估计这个函数的复杂程度。TCN仅跟踪从输入字节获得数量所需的计算树的深度。较小的TCN用于程序数量越接近计算输入。如果TCN是0,则数量是输入字节的直接副本。这个测量背后的直觉是我们需要在计算上接近输入的DUA。以便能够以可预测的结果使用它们。

值得一提的是TCN不是一个理想的测量值,显然,在计算树很深的情况下,结

这篇关于LAVA: Large-scale Automated Vulnerability Addition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329396

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

高精度打表-Factoring Large Numbers

求斐波那契数,不打表的话会超时,打表的话普通的高精度开不出来那么大的数组,不如一个int存8位,特殊处理一下,具体看代码 #include<stdio.h>#include<string.h>#define MAX_SIZE 5005#define LEN 150#define to 100000000/*一个int存8位*/int num[MAX_SIZE][LEN];void

android xml之动画篇 alpha、scale、translate、rotate、set的属性及用法 和

1.简介 Android的补间动画TweenAnimation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》 逐帧动画 FrameAnimation(也称 Drawable Animation  ):animation-list alpha 渐变透明度动画效果 scale 渐变

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Android AnimationDrawable资源 set[translate,alpha,scale,rotate]

本文内容摘自《疯狂Android讲义 第三版-李刚著作》 xml <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true"android:f

Segmentation简记-Multi-stream CNN based Video Semantic Segmentation for Automated Driving

创新点 1.RFCN & MSFCN 总结 网络结构如图所示。输入视频得到图像分割结果。 简单粗暴

Segmentation简记5-AuxNet: Auxiliary tasks enhanced Semantic Segmentation for Automated Driving

创新点 1.分割网络为主任务,深度估计网络为辅任务 2.loss的设计 总结如图所示 网络结构如图所示 其实很容易理解。 backbone是基于ResNet50 分割网络是基于FCN8 深度估计网络与分割网络类似,最后一层是回归深度层。 最有意思的是两种任务的loss的合并。 分割的loss很常见:cross entropy 深度loss:mean absolute error 算法一:

DS简记1-Real-time Joint Object Detection and Semantic Segmentation Network for Automated Driving

创新点 1.更小的网络,更多的类别,更复杂的实验 2. 一体化 总结 终于看到一篇检测跟踪一体化的文章 网络结构如下: ResNet10是共享的Encoder,yolov2 是检测的Deconder,FCN8 是分割的Deconder。 其实很简单,论文作者也指出:Our work is closest to the recent MultiNet. We differ by focus

CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000错误解决方案

[[UIImage imageNamed:@""] 当后面的字符串为空时,会出现题目中的错误 if (imagstr != nil) {         cell.imageView.image =[UIImage imageNamed:imagstr];     }