DrSemu:基于动态行为的恶意软件检测与分类工具
2019-10-09 16:00:40 Author: www.freebuf.com(查看原文) 阅读量:202 收藏

Dr.Semu

Dr.Semu是一款基于动态行为分析的恶意软件检测与分类工具,目前该工具仍处于早起开发阶段。Dr.Semu能够在一个隔离环境中运行目标可执行程序,并监控相关进程的各种行为。除此之外,广大用户还可以根据自己的需求或社区现成的信息来构建Dr.Semu检测规则,并对目标恶意软件或进程进行安全检测。

在Dr.Semu的帮助下,我们可以根据对进程动态行为检测的结果来创建恶意软件检测规则。

通过重定向实现隔离

该工具会在用户模式下运行,Windows项目文件系统(ProjFS)可以给我们提供一个虚拟文件系统,针对注册表重定向,该工具会将所有的注册表键拷贝到一个新的地址,并重定向所有的注册表键访问请求。

监控

Dr.Semu使用了DynamoRIO(动态指令工具平台)来拦截线程,这种操作的效果等同于设置SSDT钩子,但是整个过程是在用户模式下实现的,而且无需设置任何钩子。

在这个阶段,Dr.Semu会生成一个JSON文件,其中包含有工具拦截下的所有数据信息。

检测

进程终止之后,根据Dr.Semu规则,我们将会接受到目标应用程序的检测结果,即目标应用是否是恶意软件。

Dr.Semu规则

Dr.Semu规则采用Python或LUA书写(位于dr_rules),需要使用到拦截过程中的动态信息以及关于待测目标的静态信息。

规则参考样本-Python:【点我获取

规则参考样本-LUA:【点我获取

工具使用

1、使用管理员权限运行PowerShell,并特权PowerShell窗口中启用ProjFS:

Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

2、从该项目的releases页面中下载项目文档并解压缩ZIP文件;

3、下载DynamoRIO,并将文件提取至DrSemu目录中,然后重命名为dynamorio

4、安装Python 3(x64)

DrSemu.exe --target file_path

DrSemu.exe --target files_directory

工具演示

演示视频:【点我观看

代码构建

1、使用管理员权限运行PowerShell,并特权PowerShell窗口中启用ProjFS:

Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

3.png 

2、安装Python 3(x64)

3、下载DynamoRIO,并将项目文件提取至bin目录,然后重命名为dynamorio

4、构建pe-parser-library.lib库:

使用cmake-gui并通过DrSemu\shared_libs\pe_parse中生成VS项目;

在build目录(\shared_libs\pe_parse\build\pe-parser-library\Release\)下构建32位代码,或者在build64目录下构建64位代码;

将运行时库选项设置为Multi-threaded(/MT);

5、将LauncherCLI设置为启动项目;

工具运行限制

唯一支持的Windows平台版本:Windows 10 v1809

项目地址

Dr.Semu:【GitHub传送门

* 参考来源:secrary,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


文章来源: https://www.freebuf.com/sectool/214277.html
如有侵权请联系:admin#unsafe.sh