美文网首页信息安全
建立病毒搜索引擎

建立病毒搜索引擎

作者: 童童学2828 | 来源:发表于2016-11-25 11:01 被阅读0次

1.背景

病毒分析的过程中,对于机器上捕获到的病毒,想要知道是否有病毒的变种还遗留在受害主机上,这些变种是否过了免杀。在沙箱网站deepviz上,提供了相似病毒搜索的功能。我已经下载了一些病毒样本,利用cuckoo开源沙箱建立了病毒数据库, 将样本转换为数据。因此也想搞一个病毒相似度搜索。
之前阅读《数学之美》,里面有如何构建一个简单的搜索引擎。病毒搜索也可以按照相同的思路去做。选取病毒中的一些内容作为关键词,将这些关键词排序,存在则标记为1,不存在则标记为0。 最后对比两个样本标记的比特位计算相似度。

2. 选取特征

cuckoo中的样本扫描结果中有很多病毒描述数据,比如访问了网站,文件创建,注册表创建等,但是这些数据都不好量化。 而动态调用的API能够很好的反应病毒的行为,并且易于量化。
不停的增加样本数量,提取API进行统计,最后常用的API稳定在280左右。

3. 计算样本描述向量

比如API排序为
<pre>
GetUserNameExW
RtlCompressBuffer
NtOpenSection
GetVolumePathNameW
GetForegroundWindow
RtlDecompressFragment
</pre>

样本1中出现API GetUserNameExW,GetVolumePathNameW 则描述向量为100100
样本2中出现API RtlCompressBuffer,GetVolumePathNameW 描述向量为010100

4. 计算相似度

如上样本1,样本2的相似度计算如下

  • 将两个值进行异或: bxor = 100100 xor 010100 = 110000
  • 将两个值按位或: bor = 100100 or 010100 = 110100
  • 计算bxor中出现1的个数 nxor = 2
  • 计算bor中出现1的个数 nor = 3
  • 计算相似度 = 1-xnxor/nor = 33.33%

即计算两个样本api出现的总个数(去重),然后计算不同API的个数。计算不同api占比。

5. 逐个对比,排序取出前几个

结果类似如下
<pre>
(u'6b446db3949e46bd72774b28cf258287', 1.0)
(u'2faba1514a830a7b69acd0b7faed33e2', 1.0)
(u'9ffced7a445a7417994040cc071ece83', 1.0)
(u'5c87fb7c80335b6e21b8f47d7a6f3709', 1.0)
(u'0beb86a027950cbacf7bc41e2c03fd34', 1.0)
(u'ed67681da5338620c30ed2a38c5f4746', 0.9811320754716981)
(u'ee712781d9badcb958a9b745214a196b', 0.9811320754716981)
</pre>

相关文章

  • 建立病毒搜索引擎

    1.背景 病毒分析的过程中,对于机器上捕获到的病毒,想要知道是否有病毒的变种还遗留在受害主机上,这些变种是否过了免...

  • 【SEO】优化技巧一:导航条当前菜单,不带参数,高亮显示

    1. 搜索引擎工作原理 搜索引擎分为四个部分:抓取,过滤,建立索引,输出结果。搜索引擎通过个称之为Spider...

  • 安装WP后基本设置

    禁止搜索引擎抓取 因为刚新建,还没有完成网站建立,不适合搜索引擎抓取。 后台->设置->阅读->对搜索引擎的可见性...

  • ElasticSearch入门

    ElasticSearch笔记 前言 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 ...

  • 百度已死?百度做错了什么?

    百度已死?百度做错了什么? 百度产品比较多,先从搜索引擎说起。 百度建立的初衷,是建立最大的汉语搜索引擎。方便,快...

  • Elasticsearch中文搜索环境搭建

    Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近...

  • Elasticsearch 深入搜索

    前言 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基...

  • 【Elasticsearch系列】1. Elasticsearc

    一、 概念 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene...

  • 搭建elk服务

    一、搜索引擎 1、搜索引擎是由索引组件、搜索组件和用户接口组成: 流程: 索引组件:获取数据-->建立文档-->文...

  • Spark实现PageRank算法

    搜索引擎的几个技术要点 最近浏览了搜索引擎的发展历程,简单总结下。搜索引擎需要解决的主要问题包含但不限于:建立资料...

网友评论

    本文标题:建立病毒搜索引擎

    本文链接:https://www.haomeiwen.com/subject/lfwipttx.html