恶意软件是攻击者向失陷主机中植入,并通过它最终达成攻击目标所使用的工具(并不是所有的攻击者都需要恶意软件,有些攻击者会利用系统中本身存在的软件达到目的)。恶意软件或多或少都存在一些可以提取的特征,我们可以提炼出这些特征并作为检测规则和追踪攻击组织的线索。
需要我们注意的是,很多情报社区都是以恶意软件分析报告作为情报进行共享的,这其实并不准确,很容易误导缺少情报使用经验的防守团队。因为真正造成威胁的是人,而恶意软件也不一定是满足情报需求的最终结果。但是不可否认,恶意软件情报是情报社区提供的重要资源,正如 Joe Slowik 的文章中所提到的,我们要始终谨慎地使用并且不要过度依赖恶意软件类情报,
我们从恶意软件情报应该获取到的信息:
1、恶意软件情报需要点亮钻石模型的全部顶点
2、恶意软件情报包含样本提取出的人类特征
3、我们能够通过这些情报对恶意样本进行快速聚类
参考链接:https://www.dragos.com/wp-content/uploads/Threat-Intelligence-and-the-Limits-of-Malware-Analysis.pdf
软件在编译时,编译器都会在文件头中填充一些数据,例如PDB路径和编译器版本,有时这些数据是程序运行时需要的。而有时候则是处于OPSEC的考虑,故意暴露出的虚假信息。
PE文件头信息包含了PE文件的编译链接环境信息,我们可以根据PE头生成RichPV哈希值,RichPV哈希可以帮助我们识别特殊的编译环境和以此来查找同类型的恶意样本。例如下图中我们得到不同的恶意样本,但通过提取RichPV哈希值,我们发现他们的编译环境都是一样的。详细信息可参考论文:https://www.sans.org/white-papers/39045/
代码重用是将恶意软件样本和潜在入侵链接在一起的非常有效的工具。攻击者很少会为某个功能重新编写完全独特的代码。通常,您会发现恶意软件开发人员编写在多个恶意软件样本中利用的模块和代码库。代码重用可以帮助揭示钻石模型的攻击者顶点特征中的链接,但要小心这种聚类类型。它可以创建非常有效和漂亮的集群:但是,根据您的要求,它也可能会产生令人难以置信的误导。
恶意软件开发人员使用的软件供应链,可能会在开源论坛或犯罪论坛上获取代码,也可能会利用雇佣兵和外部公司,也可能是政府机构内部的一个开发商店,与各个团队或政府机构共享, 甚至可以从盟友那里分享。
下图来自FireEye的博客,他们使用了一种import哈希的算法,对恶意软件的导入表提取特征。这个特征也可以用于关联其他样本。
Mandiant 公司规定import哈希的范围包括以下内容:
当序数出现时将其解析为函数名称
将 DLL 名称和函数名称全部转换为小写
从导入的模块名称中删除文件扩展名
在有序列表中构建和存储小写字符串
生成有序列表的 MD5 哈希值
参考链接:
https://www.sans.org/white-papers/39275/
https://www.mandiant.com/resources/blog/tracking-malware-import-hashing
https://www.mandiant.com/sites/default/files/2021-09/rpt-malware-supply-chain.pdf
恶意软件的配置数据是一项非常重要的特征,它往往包含大量的人为习惯。例如互斥体变量名称、C2通信相关配置等。详细可以参考公众号发布的案例文章。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...