文章总结: 本文介绍了使用熵识别技术检测无文件恶意软件的方法,特别是针对隐藏在注册表中的恶意代码。文章解释了无文件恶意软件的三种主要入侵方式:在内存中运行、通过脚本感染主机以及藏身于注册表。作者介绍了一个名为reg-entropy-scanner的工具,可以扫描注册表并分析熵值来识别潜在的恶意代码。虽然这种方法无法做到100%精准,但能缩小排查范围,在安全检测中具有实用价值。 综合评分: 83 文章分类: 恶意软件,漏洞分析,安全工具,应急响应,威胁情报

工具:熵识别Fileless Malware之注册表检测
原创
MicroPest
MicroPest
2020年5月22日 00:02
“Fileless Malware”:无文件恶意程序,意味着这是个不在你硬盘上落地文件的恶意程序,也是当今最为主流的恶意程序使用的技术。因为不留文件在硬盘上,没有痕迹,所以很难发现,更谈不上识别出来。
今天,我们利用熵来进一步阐述下这个话题。
熵的特性,使我在实测过程中(可能是我用得少、实验数据少)无法对它的检测识别程度的正确率做到精准,只能缩小排查范围;实际效果是:和正常程序混搭,它的检出率很高;但如果是一堆精心安排的文件,检出率就差强人意了。
一、Fileless的方式
Filelsss malware 通过 2 种方式入侵系统:
· 恶意软件代码在 RAM内存 或系统注册表中;
· 恶意软件通过脚本感染主机。
①在内存中运行,会创建一个注册表,通过启动注册表 BLOB 中保存的“混淆过的、含有反射 PE 加载器、可加载从注册表中加载 Base64 编码的 PE 文件”的一行PowerShell脚本。
我们通常会dump出内存,但现在的具备反取证功能的恶意程序会破坏内存,主要有两种破坏方式:A、在写shellcode的位置填充数据进行抹除操作;B、禁用转储功能 ,制造蓝屏BSOD。
②通过脚本感染主机,主要是利用powershell脚本来下载shellcode,利用反射的方式载入到内存中,最后注入到进程中,全程无文件落地。
③最后一种:藏身于注册表的shellcode,这也是我们本篇的内容,如何识别?
二、信息熵
百度百科:熵定律是科学定律之最,这是爱因斯坦的观点。我们知道能源与材料、信息一样,是物质世界的三个基本要素之一,而在物理定律中,能量守恒定律是最重要的定律,它表明了各种形式的能量在相互转换时,总是不生不灭保持平衡的。熵,即为衡量混乱程度的度量,熵定律也被称为热力学定律。热力学第二定律,又称“熵增定律”,表明了在自然过程中,一个孤立系统的总混乱度、总稳定度(即“熵”)不会减小。
在信息论中,熵被用来衡量一个随机变量出现的期望值。它代表了在被接收之前,信号传输过程中损失的信息量,又被称为信息熵。信息熵也称信源熵、平均自信息量。在1948年,克劳德·艾尔伍德·香农将热力学的熵,引入到信息论,因此它又被称为香农熵。
三、程序的使用
在Github中有个熵扫描器(https://github.com/woanware/reg-entropy-scanner),就是针对Fileless malware藏身注册表的扫描,官方描述如下:

我将它编译成Exe,放在百度网盘中。
·链接:https://pan.baidu.com/s/1t1b16JoiHo8Y9_Fbbfsirw
·提取码:ft1q
用法:reg-entropy-scanner.exe -i 1.hive -o c:\ls
1.hive是你生成的注册表项目,这个应该会吧。
在c:\ls目录下生成一个TSV格式的清单列表和一堆Bin文件,如下图:

整理后,成这样:

四、熵值的认定
至于哪个键值下藏了shellcode,哪个熵值可以认定,我这里借用一篇老外文章来回答:

虽然无法做到很精准,但作为一种新应用提了出来,还是有它的用武之地的,希望能在这块有更加深入地研究。

版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论