VirusTotal

VT是一个提供可疑文件分析服务的网站,它与传统杀毒软件的不同之处是它通过多种反病毒引擎扫描文件。所上传的文件会被多种反病毒引擎对进行扫描检测,可以通过结果信息进行参考,判断文件是否被病毒, 蠕虫, 木马, 以及各类恶意软件感染等等。

VirusTotal Hunting

VT Hunting是一项利用VirusTotal数据集的YARA功能服务。通过编写基于文本或二进制模式的恶意样本YARA规则,将其上传到VirusTotal进行实时跟踪。一旦命中规则就可以收到推送通知,即可针对样本进行响应处置。

网址:https://www.virustotal.com/gui/hunting-overview

什么是YARA规则

参考文章:YARA特征规则介绍与编写

YARA规则运营

丰富的YARA规则库能够提高反病毒工程师对恶意样本识别和分类效率。除了在日常人工分析样本的时候,针对样本特征编写YARA规则外。我们还可以通过以下几种方式获取YARA规则进行参考:

  • YARA官方网站发布的公开预置的规则库:https://github.com/Yara-Rules/rules
  • ClamAV特征码转换yara规则:ClamAV_to_yara.py
  • 抓取YARA-Generator上公开规则
  • 使用YARA-Generator自动生成新的YARA规则
  • 对分析报告中公开的YARA规则进行审核收录

根据样本自动生成YARA规则 - yarGen

yarGen是一个自动化提取YARA规则的工具,可以提取strings和opcodes特征,其原理是先解析出样本集中的共同的字符串,然后经过白名单库的过滤,最后通过启发式、机器学习等方式筛选出最优的yara规则。项目地址:https://github.com/Neo23x0/yarGen。

使用方法:

Python yargen.py -m [样本目录]

通过YARA规则实时打捞VT样本

操作步骤:

  1. Hunting
  2. Livehunt rulesets
  3. New Livehunt ruleset
  4. YARA规则 (设置每日通知限制条数、通知邮箱)

比如:《WIRTE组织以“药品信息”为饵,再对中东地区展开攻击》中的“国籍规定.xls”这个恶意文档样本,文章中提及其宏代码中检测了:“AVG”、“Avast”和“360TotalSecurity”三种杀软,这个点就可以作为YARA规则编写的其中一个参考因素。

另外一个参考因素就是恶意文档样本宏代码执行后的下一阶段,攻击使用 VBScript、PowerShell、VBA 作为后门的编写语言,也就是说YARA规则中可以尝试添加这三种脚本语言的执行命令作为规则的一部分。

“stgeorgebankers[.]com"这个C2同样可以加入到规则中,但主要还是看上传的规则用途。因为考虑到后续打捞恶意文档样本的C2未必是这一个,所以下面的规则中没有将其加入其中。并且根据Office文件头的特征,追加了指定偏移处的检测。

rule yara_MacroOffice_ecaaab9e2fc089eefb6accae9750ac60
{strings:$a = "AVG"$b = "Avast"$c = "360TotalSecurity"$d = "powershell.exe"$e = "VBScript"$f = "VBA"$g = {D0 CF 11 E0}condition:(($a and $b and $c and ($g in (0..5))) and $d) or (($a and $b and $c and ($g in (0..5))) and $e) or (($a and $b and $c and ($g in (0..5))) and $f)
}

结合“vt模块”编写YARA规则

vt模块是专门为Livehunt创建的,主要包括扫描目标文件的其他信息。

import "vt"rule infected_pe {condition:vt.metadata.analysis_stats.malicious > 1 and vt.metadata.file_type == vt.FileType.PE_EXE
}
import "vt"rule new_file_from_china {condition:vt.metadata.new_file and vt.metadata.submitter.country == "CN"
}
import "vt"rule zbot {condition:for any engine, signature in vt.metadata.signatures : (signature contains "zbot")
}

部分实例:

Field 类型 描述 例子
vt.metadata.analysis_stats.malicious integer 防病毒引擎将文件检测为恶意的数量。 vt.metadata.analysis_stats.malicious <10
vt.metadata.analysis_stats.undetected integer 未检测到文件的防病毒引擎的数量。 vt.metadata.analysis_stats.undetected> 20
vt.metadata.analysis_stats.failure integer 扫描文件失败的防病毒引擎数。 vt.metadata.analysis_stats.failure> 0
vt.metadata.analysis_stats.type_unsupported integer 不支持文件类型的防病毒引擎的数量。 vt.metadata.analysis_stats.type_unsupported> 0
vt.metadata.first_submission_date integer 第一次将文件提交到VirusTotal的日期(以UNIX时间戳记)。 vt.metadata.first_submission_date <1582934400 // 2020-02-29
vt.metadata.file_name string 提交给VirusTotal的文件名。如果正在重新分析文件,则为空。 vt.metadata.file_name contains “foobar”
vt.metadata.file_size integer 文件大小(以字节为单位)。 vt.metadata.file_size> 100KB
vt.metadata.file_type integer 文件类型表中列出的一种类型。 vt.metadata.file_type == vt.FileType.PE_DLL
vt.metadata.file_type_tags array of strings 与文件类型关联的标签,如文件类型表中所列 for any tag in vt.metadata.file_type_tags : ( tag == “pedll”)
vt.metadata.main_icon.raw_md5 string 与文件关联的图标的MD5。 vt.metadata.main_icon.raw_md5 ==“md5”
vt.metadata.signatures dictionary 杀软名称 & 病毒名称 for any engine, signature in vt.metadata.signatures : ( engine == “Kaspersky” and signature contains “”)

更多实例,参考YARA-rules-for-Livehunt:

https://support.virustotal.com/hc/en-us/articles/360007088057-Writing-YARA-rules-for-Livehunt

总结

yarGen能够基于样本自动生成YARA规则,但其规则的生成存在一定程度的误报可能。部分高级威胁事件中的样本对规则的精准度要求较高,不太适用于使用yarGen进行规则生成。VirusTotal Hunting搭配高精准度的YARA规则,能够提升对威胁的感知能力,从而将其转化为情报数据。

情报运营 | VirusTotal Hunting 笔记 - 自动生成YARA规则、通过YARA规则实时打捞VT样本相关推荐

  1. 自动生成web服务器日志解析规则

    2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析 ...

  2. IDEA工作笔记-自动生成POJO或JPA的实体类

    今天要要搞一个小后端,发现有些表有100多个域.就想着有没有自动生产的工具! 后面百度了下,发现有,在此记录下. 首先是要连接数据库: 右上角有Database 选择+号添加一个数据库: 然后进去后输 ...

  3. IDEA使用笔记(八)——自动生成 serialVersionUID 的设置

    Ihttps://www.cnblogs.com/godtrue/p/7674487.html https://www.cnblogs.com/godtrue/p/7674487.html DEA使用 ...

  4. JDBC学习笔记(6)——获取自动生成的主键值处理Blob数据库事务处理

    获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: 1 /** 2 * ...

  5. IFTTT Evernote 自动生成笔记

    为什么80%的码农都做不了架构师?>>> 当我们看到某个博客博文不错,想自动更新到笔记下,以便方便离线随时查看,也不至于等要看的时候却忘记了网址.这个可以通过IFTTT+Everno ...

  6. Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告

    Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告 Polyworks中,3D场景的视图可用标准视角及等轴侧视角.项目视角等方式调用,也可以用txt格式保存下来调用,如果以脚本的形 ...

  7. Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 从网上下载源码导进eclipse后,发现该有的jar包都有以后,就是无法在gen目录下生成R文件. 假如你也遇到这样的问题,你 ...

  8. 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)

    1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...

  9. Java笔记-通过注解和插件自动生成get/set和toString方法,使代码结构清晰

    目录 演示过程 需要的依赖 演示过程 如下注解: 有了这个注解就可以删除类的get/set和toString方法 去掉了后,还是可以使用get和set和toString方法: 关于性能方面,在打包生成 ...

最新文章

  1. 微软旷视人脸识别100%失灵!北京十一学校校友新研究「隐身衣」,帮你保护照片隐私数据...
  2. 我的世界服务器反作弊不起作用,我的世界服务器反作弊怎么搞 | 手游网游页游攻略大全...
  3. 如何保证战略落地_战略如何规划落地?值得借鉴
  4. PostgreSQL日期函数备忘
  5. Python学习(五)列表的简单操作
  6. 你知道吗…我不知道…你知道吗
  7. Java中常用的6种排序算法详细分解
  8. 【Spring第四篇】DI注入以及c、p命名空间
  9. Silverlight像素着色器编写简明指南 附送文字描边效果
  10. expert php and mysql_Expert PHP and Mysql
  11. 持久层框架:Mybatis快速入门
  12. 阿里人工智能实验室AIoT总架构,15 年工龄的资深技术专家职场历程自述
  13. linux、ubuntu如何查看网速
  14. 重磅!腾讯优图20篇论文入选CVPR 2021
  15. Boyd 凸优化课后习题 求共轭函数
  16. c语言中val是什么函数,val(val是什么意思)
  17. 基于STM32的ESP8266使用教程(二)
  18. Netty 实现一对一客户端聊天(由服务器转发)
  19. 现实黑镜:将死去好友复活为AI
  20. mysql高级-4-深入InnoDB

热门文章

  1. mse python_MSE与MAE的区别与选择
  2. 站长们如何优化自已的新网站
  3. Zend引擎探索 之 PHP中前置递增不返回左值
  4. mysql md 123456_mysql/mysql.md · sdbxpjzq/docs - Gitee.com
  5. 设计模式 外观模式 一键电影模式
  6. JavaScript学习笔记|数据类型——Object类型、for in循环
  7. PAT甲级刷题笔记(4)
  8. java系统开发注意事项
  9. 解决方案:indexer -c sphinx.conf --all FATAL: out of memory (unable to allocat
  10. 计算机教师格言座右铭,教师格言座右铭100句