BinDiff

构建数据相似系统

。_饼干妹妹 提交于 2020-11-06 08:36:54
一、基于共享码片构建(难度高)   经调研,没有开源工具可以做共享代码构建,如Bindiff可以分析两个样本之间相似阈值和代码可视化,接口可以批量对样本进行相似分析,但仍是两个样本之间关联,无法做到多样本关联。   共享代码定义:完整的反汇编(过滤系统API汇编代码),意图只保留病毒本身汇编(跟系统和其它无关),使用算法切割(类似于Minhash这种切割)。 应用价值:   用法一:提取不同家族共享代码,通过算法产出代码聚类和结论,关联不同组织代码共性,完善情报分析(目前很多国外情报和安全公司使用的方法之一)。   用法二:以不同家族为主节点,通过代码片段构建共享代码相似系统(匹配搜索系统)。   用法三:共享代码数据可以提供给算法团队(如果他们有需求),用于数据建模和数据挖掘。   二、基于MInhash构建(难度折中)    先尝试PE格式,如sys,dll,exe计算不同类型的Minhash,或直接构建样本集总Minhash。 应用价值:    用法一:设置阈值大于0.8为相似样本,借助BinDiff批量对比筛选或人工根据文件类型对比,分析共享代码,完善情报分析。 emsp; Hellsing和APT15之间效果图(100以内样本): Hellsing样本集生成数据库:   输入APT15样本集计算相似阈值,如果出现下述意味着没有命中:   以APT1为列子生成数据库

漏洞挖掘的艺术-面向二进制的静态漏洞挖掘

馋奶兔 提交于 2020-10-08 02:49:06
亲爱的,关注我吧 8/31 文章共计3165个词 今天的内容有一些图,流量用户注意哦 和我一起阅读吧 0 本文是本系列的第二篇,将对面向二进制程序的静态漏洞挖掘技术进行介绍与分析。 面向二进制程序的静态漏洞的挖掘技术由于缺少源代码中的结构化信息,面临着值集分析(vaule-set analysis,VSA)与控制流恢复不精确的问题,但是二进制程序相对于源码而言更容易获得,所以这方面的研究工作一直都有新的研究动态,并且会在第2部分介绍目前流程的两种技术。在进一步分析之前,我们首先来具体解释前文提出的两个问题。 1 1.1 值集分析是一种结合数值分析和指针分析的静态分析算法。VSA是一种基于抽象解释的、流敏感、上下文敏感、支持过程间分析的方法。VSA首先建立抽象内存模型,恢复可执行程序中的变量并用抽象地址表示,然后对每条指令静态计算抽象地址可能包含的值的集合。 典型的值集分析算法的伪码表示如下 上图的集合W被称为word-list,其操作包括add,removeNext,分别用于添加和移除项。Word-list按照拓扑顺序进行排序,初始化时包含着基本块的入口点,用于指示从此处开始正向分析。while循环的每次迭代里,Analysis函数都会在第6行被调用来分析选中的基本块。Analysis会基于输入状态产生大量的输出状态,那些变化的输出状态会被添加到word-list中

干货|微软远程桌面服务蠕虫漏洞(CVE-2019-1182)分析

元气小坏坏 提交于 2019-12-24 14:40:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 2019年8月,微软发布了一套针对远程桌面服务的修复程序,其中包括两个关键的远程执行代码(RCE)漏洞,CVE-2019-1181和CVE-2019-1182。与之前修复的“BlueKeep”漏洞(CVE-2019-0708)类似,也具有蠕虫特性,即利用这些漏洞的恶意软件可能会在无需用户交互的情况下在易受攻击的机器间进行传播。 本文主要通过对CVE-2019-1182漏洞进行分析,让大家对于漏洞的成因及漏洞修复有一个更加全面的认识。 系统版本: Windows 10 1903 补丁: windows10.0-kb4512508-x64_1893edc9a11d760be11e49d2500170ceee8026d7 漏洞危害 公网开放RDP服务的主机数量巨大,影响面极大。危险等级:严重,请用户尽快升级更新。 成因分析 分别提取补丁前和补丁后rds(Remote Desktop Service)进程相关bin文件及相关驱动模块,经过ida和bindiff分析后定位到rdpbase.dll。该模块改动很少(只有一处函数差异),可以很快定位到问题函数,如下图所示。 分析差异函数DecompressUnchopper::Decompress发现存在一处整型溢出漏洞。 上图左边是patch之后的代码