关于Segugio
Segugio是一款功能强大的恶意软件安全分析工具,该工具允许我们轻松分析恶意软件执行的关键步骤,并对其进行跟踪分析和安全审计。
Segugio允许执行和跟踪恶意软件感染过程中的关键步骤,其中包括从点击第一阶段到提取恶意软件的最终阶段配置。Segugio的创建是为了满足在分析环境中加快从恶意工件中提取 IoC 的需求。
恶意软件分析通常涉及静态和动态分析等耗时活动,这需要丰富的逆向工程和代码分析知识。而Segugio是完全自动化的,旨在简化从事网络事件响应 (DFIR) 的安全分析师和专家的工作,使他们能够快速识别恶意工件,而无需执行复杂的静态和动态分析,而是专注于行为分析。
工具机制
通过与airbus-cert的 yara.dll 库的集成,可以使用 YARA 规则在进程的私有内存中搜索与已知恶意软件家族相关的指标。该功能可归纳为三个关键步骤:
1、用户选择要执行的文件,可能定义诸如命令行或要创建的命令行的父进程等选项。
2、单击 Segugio 按钮后,Segugio 开始扫描与所选文件执行相关的进程及其父进程(本例中为 explorer.exe)。请注意,某些系统可能有多个 explorer.exe 实例。
3、一旦 Segugio 识别出与 YARA 规则匹配的进程,如果存在针对所识别的 YARA 规则的专用 Python 脚本(例如 AgentTesla),它就会开始转储与该规则匹配的进程,以自动从私有内存中提取恶意软件的配置(例如 AgentTesla)。
工具要求
dnYara
Python 3
.NET Framework 4.72
工具安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/reecdeep/segugio.git
工具使用
首次运行Segugio之前,需要在 settings.ini 文件中完成配置。配置需要以下参数,这些参数对于程序正常运行是必不可少的:
YaraRulesDirectory:包含 YARA 规则的文件夹的绝对路径;
PythonExecutablePath:Python(python.exe)所在文件夹的绝对路径;
ConfigExtractorsDirectory:包含用于配置提取的 Python 脚本的文件夹的绝对路径;
DumpFolder:符合 YARA 规则的进程的内存转储将保存到的文件夹的绝对路径;
此外,还可以修改以下参数:
DefaultCommandlines特定文件类型常用的命令行列表。可以定义多个默认命令行,以竖线 (|) 字符分隔;
PreferredParentProcess:执行文件时所创建进程的首选父进程。某些恶意软件会检查父进程。在 MS Windows 中,如果用户执行文件,则相关进程将成为 Explorer.exe 的子进程;
MonitorInterval:后台进程监控更新的间隔(以毫秒为单位)(建议值:100);
ScanInterval:扫描进程内存的间隔(以毫秒为单位)(建议值:1000);
isEnabledParentScan:您可以选择是否扫描创建的子进程的父进程;
从本质上讲,Segugio 依赖于 YARA 和自动配置提取器,它们位于程序的配置文件夹中。
YARA 和配置提取器
Segugio 需要 YARA 规则包含定义明确的元字段,其结构如下:
meta: name = "YARA_Rule_Name" description = "YARA_Rule_Description"
类似地,Python脚本在代码开头必须有以下标头:
# -*- coding: utf-8 -*- __author__ = "author" __version__ = "1.0" __script_name__ = "YARA_Rule_Name"
工具运行演示
注意事项
1、Segugio 不提供任何针对执行恶意软件的保护。
2、在进行新的分析之前,必须始终将分析环境重置为其初始状态。
3、正确识别恶意软件家族的能力取决于分析环境的性能(可用的 CPU 和 RAM)以及所使用的 YARA 规则的有效性。
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Segugio:【GitHub传送门】
参考资料
Antelox (@Antelox) · GitHub
GitHub - airbus-cert/dnYara: A multi-platform .Net wrapper library for the native Yara library.