YARA-规则匹配神器-简单使用篇 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

YARA-规则匹配神器-简单使用篇

嘶吼用户18904 安全工具 2021-04-01 09:00:00
2151335
收藏

导语:YARA 是一个旨在(但不限于)帮助恶意软件研究人员识别和分类恶意软件样本的开源工具。目前使用YARA 的知名软件有赛门铁克、火眼、卡巴斯基、VirusTotal、安天等。

当前默认实验环境、工具:

Windows 10

yara v4.0.2 64

Visual Studio 2015

1、简单介绍

YARA 是一个旨在(但不限于)帮助恶意软件研究人员识别和分类恶意软件样本的开源工具。目前使用YARA 的知名软件有赛门铁克、火眼、卡巴斯基、VirusTotal、安天等。

YARA的每一条描述、规则都由一系列字符串和一个布尔型表达式构成,并阐述其逻辑。YARA规则可以与文件或在运行的进程,以帮助研究人员识别其是否属于某个已进行规则描述的恶意软件等。

YARA 支持在Windows、Linux 和 Mac OS X 平台上运行。

项目地址:

https://github.com/VirusTotal/yara

官方文档:https://yara.readthedocs.io/

2、下载安装

在windows环境下,可直接下载编译好的exe文件使用,也可以下载源代码自行编译后使用。当前最新版本v4.0.2 (20201201),下载地址:

https://github.com/VirusTotal/yara/releases/

其他平台上安装使用也很方便,可查看官方提供的安装文档:

https://yara.readthedocs.io/en/stable/gettingstarted.html

(1)关于文件

下载完成之后解压看到两个文件:yara64.exe , yarac64.exe ,以下内容分别统称为yara[.exe] 和yarac[.exe]

yara 为yara使用程序

yarac 为编译yara规则工具,使用编译后的yara规则可以加快速度,正常使用yara会先编译规则之后再加载,所以预编译可以节省时间。

(2)测试-快速开始

图片

运行之后可看到:

(3)使用参数参考

yara --help 可查看yara的使用参数:

图片

简略翻译:

图片

图片

3、简单使用

(1)官方示例demo

在yara官方项目可以看到如下规则:

图片图片

将内容保存到一个文件里banker.yar (后缀名都可以,内容是规则就行,但是严谨统一常用还是yar吧),然后找个测试的文件直接测试就可以。

代码解释:

首行的rule silent_banker : banker 是声明当前规则名称,编写人员习惯和要求等不同,这个名称可以解释为检测banker类型的样本,silent_banker样本解释可查看链接:https://www.microsoft.com/

en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:Win32/Silentbanker.B。

meta后面的是一些描述信息,比如可以有规则说明、作者信息、威胁等级、在野情况、文件MD5、来源等内容;strings后面是检测规则,有字符串、字节序列等内容;condition为判断条件。在本例检测规则处定义的字节序列和字符串,判断条件是or ,所以只要匹配到

$a $b $c三个字符串或字节序列中的任意一个,那么样本就会被识别成silent_banker 。因为没有找到样本,所以直接创建文件测试:

创建含有

{6A 40 68 00 30 00 00 6A 14 8D 91} 字节序列文件测试,之后运行命令扫描即可,其他参数可按需添加,执行:

yara silent_banker.yar testfile

图片

创建"UVODFRYSIHLNWPEJXQZAKCBGMT"字符串文件测试:

图片

修改一下,判断不是该样本:

(2)webshell扫描

一个收集yara规则的github项目:https://github.com/Yara-Rules/rules,里面有挺多webshell、恶意软件的yara规则。

以/webshells/WShell_THOR_Webshells.yar 文件的规则为示例,规则名:

webshell_h4ntu_shell_powered_by_tsoi_ : webshell ,在里面有对应样本的文件hash:

去沙箱平台查样本hash可以看到样本被检测过了,可下载样本回来本地检测:

图片

最后可以本地使用检测

/webshells/WShell_THOR_Webshells.yar 规则去检测该样本:

图片

规则解释:

当样本都存在以上四个字符串,则表示是

webshell_h4ntu_shell_powered_by_tsoi_ : webshell样本。

(3)恶意软件扫描

同样从https://github.com/Yara-Rules/rules项目找规则,到找样本,再到本地检测。这里选取/malware/APT_HackingTeam.yar 文件规则,规则名为Hackingteam_Elevator_DLL ,可以看到样本的hash:

图片

同样去沙箱下载样本:

图片

最后可以本地使用检测

/malware/APT_HackingTeam.yar 规则去检测该样本:

规则解释:

图片

当样本文件大小小于1000KB

当样本文件文件头为0x5a4d,即mz 头(window的PE文件标志)

当样本都涵盖了以上至少6个字符串

则表示是Hackingteam_Elevator_DLL 样本。

(4)火眼红队工具泄露分享规则

12月8日,美国顶级安全公司FireEye(中文名:火眼)发布一则通告称其内部网络被某个“拥有一流网络攻击能力的国家”所攻击,攻击者“拿走”了一些内部红队工具。FireEye 称不确定攻击者是否打算使用这些Red Team工具或公开披露它们,但是,出于谨慎考虑,为了协助防范这些工具被公开的风险,FireEye已发布识别这些工具的OpenIOC,Yara,Snort和ClamAV检测规则,以尽量减少丢失这些工具的潜在影响。

检测规则项目:

https://github.com/fireeye/red_team_tool_countermeasures,这里直接看allyara.yar就可以了,其他的规则可以慢慢查看研究。可以看到第一个检测规则名HackTool_MSIL_Rubeus_1 :

在meta字段里有两个重要信息:描述和样本的md5。按照描述可以知道这是针对https://github.com/GhostPack/Rubeus 项目编译出来的样本检测规则(一个针对域攻击的工具),同样可以通过md5直接在沙箱下载样本回来检测:

规则解释:

同样是检测是pe文件,之后当

658C8B7F-3664-4A95-9572-A3E5871DFC06 字符串(修饰符表明忽略大小写、ascii、宽字节字符串匹配中了都可以)存在样本里则说明是HackTool_MSIL_Rubeus_1 样本。

(5)其他

扫描进程:yara rules\rules.yar pid

文件夹扫描:yara rules\rules.yar folder

4、提取编译后的yara规则

用官方的yarac 编译yara规则, yarac 的使用很简单,直接yara --help 可看到:

Usage: yarac [OPTION]... [NAMESPACE:]SOURCE_FILE... OUTPUT_FILE

直接拿一个规则测试:

图片

遇到一个错误可在官方项目issue里面找到解决方案,使用编译后的规则加个参数-C 。可见编译后的字节码规则检测出了样本,可以看到字节码文件的文件头有YARA 标识:

提取YARA编译后的规则字节码文件看到的文章不多,在youtube看到有人在研究,应该是有工具了但是没公开。

一种方法:基于源码改造实现反编译YARA规则,文章链接:

https://www.anquanke.com/post/id/170938,里面介绍了yara的一些流程和作者分享的思路,这里我直接按照作者思路提取规则信息。想要的信息都保存在YR_RULE类似的结构体中,只不过官方把这些信息全部都封装起来了,它并没有提供输出反编译后的信息,这个就需要自己手动调试,修改一些处理逻辑,将这些所谓“隐藏“的信息全部打印出来即可。匹配中规则,和不中规则的全部打印出来,下载yara源码进行修改,之后重新编译生成可执行文件即可:

这里准备一个空文件,让规则不匹配,达到打印字节码文件全部规则的效果。运行:yara_diy.exe -C

rules\APT_HackingTeam_.yar simples\blankfile -nms

图片

yara_diy.exe 为修改重新编译生成的yara,参数-n 、-m 、-s

图片

规则编写思考(话痨):

规则要经过误报测试,不能匹配白文件或其他类型木马,只能匹配同一类木马家族,规则要通用性,不能只单独匹配到一个文件,正则最好不能出现"扫描速度慢",写的时候可以写多些字符串(除非敢打包票一定对,可以写少点)或者字符串跟16进制结合,也可以思考攻击队使用的一些手法来拓展检测思

路。


如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务