如何根据IOC脚本编写YARA规则?

时间:2013-08-17 10:18:14

标签: python rules malware

任何人都可以帮助将一小部分IOC脚本转换为YARA规则以识别恶意软件吗?

我将尝试学习如何根据任何人为我写的例子来编写YARA规则。

这是IOC脚本的一小部分:

<IndicatorItem id="50455b63-35bf-4efa-9f06-aeba2980f80a" condition="contains">
<Context document="ProcessItem" search="ProcessItem/name" type="mir"/>
<Content type="string">winlogon.exe</Content>
</IndicatorItem>

<IndicatorItem id="b05d9b40-0528-461f-9721-e31d5651abdc" condition="contains">
<Context document="ProcessItem" search="ProcessItem/HandleList/Handle/Type"         type="mir"/><Content type="string">File</Content>
</IndicatorItem>

任何人都可以向我解释如何将其转换为YARA并且我可以使用Python来做到这一点吗?感谢很多!!

1 个答案:

答案 0 :(得分:2)

根据该IOC脚本片段中显示的信息,您无法创建YARA规则。 YARA规则基于文件内容,因此,您必须查找与文件内容相关的指标,如下所示:

<IndicatorItem id="09cd0494-702c-4fe2-bbd4-29538cb3b685" condition="contains">
        <Context document="FileItem" search="FileItem/StringList/string" type="mir" />
        <Content type="string">http://%s/record.asp?device_t=%s</Content>
        <Comment>unique strings found in most samples in family</Comment>
</IndicatorItem>

此指示器告诉您受感染的文件包含字符串http://%s/record.asp?device_t=%s。 YARA表达的相同想法如下:

rule <a name for your rule here> {
  strings:
     $a = "http://%s/record.asp?device_t=%s"
  condition:
     $a
}

这里有一个自动执行IOC到YARA翻译的工具:

https://github.com/mandiant/ioc_writer/tree/master/examples/openioc_to_yara

这里有一些对你有用的幻灯片:

https://media.blackhat.com/us-13/Arsenal/us-13-Gibb-IOCWriter_11-Slides.pdf