本文的目的是使用真实示例介绍恶意软件分析。我们将从静态和动态分析的基础知识开始。
注意:本文的恶意软件示例取自此处 https://github.com/HuskyHacks/PMAT-labs/tree/main/labs/1-1.BasicStaticAnalysis/Malware.PackedAndNotPacked.exe.malz。
目录
· 什么是恶意软件
· 为什么分析恶意软件很重要
· 实验室设置
· 恶意软件分析的类型
· 基本恶意软件分析
§ 对恶意软件进行哈希处理
§ 分析字符串
§ 分析导入地址表 (IAT)
§ 确定恶意软件是打包的还是解压缩的
· 动态恶意软件分析
§ 搜寻基于主机的指示器
§ 寻找基于网络的指标
· 结论
· 什么是恶意软件:
恶意软件,也称为恶意软件,包含各种具有潜在破坏性的计算机程序和代码行。
恶意软件是一种恶意软件,旨在通过夺取计算机、计算机系统、网络、平板电脑或移动设备的部分或全部资源的控制权,使其渗透、损坏或禁用。
· 为什么分析恶意软件很重要
恶意软件分析是弄清楚恶意文件如何运作以及为什么会这样做的过程。此程序将识别和应对每种可能的危险。通过遵循此程序,研究人员可以了解恶意软件的能力、动机和可能的影响。恶意软件分析工具可帮助安全团队做到这一点。他们检查和分析选定的恶意软件样本,通常是在沙坑中。
分析师和响应者使用恶意软件分析来:
§ 查明攻击的来源
§ 按严重性程度对事件进行排序
§ 提高事件处理方式的有效性。
§ 评估安全漏洞可能导致的危害级别。
§ 促进威胁识别程序
· 实验室设置:
为此,我们将需要 2 个 VM:
·Flare Vm (它包含所有用于分析的工具) — https://github.com/mandiant/flare-vm
·Remnux(这将用于模拟虚假互联网)— https://docs.remnux.org/install-distro/get-virtual-appliance
按照提供的说明安装每个 VM,然后将这两个 VM 连接到仅主机配置。
· 恶意软件分析的类型:
· 类型 1 — 静态恶意软件分析
使用静态分析检查代码,而不实际执行代码。在静态分析中,研究人员通过解构恶意软件来对其进行逆向工程。
静态分析还利用其他方法,包括病毒检测、指纹分析和内存转储。尽管未识别的恶意软件菌株可能会对静态分析构成挑战,但它们的使用并非没有争议。
§ 对恶意软件进行哈希处理:
§ 让我们从获取恶意软件的“哈希值”开始
§ Hash 是对象的唯一标识符
§ 为此,请使用以下命令:
§ 分析字符串:
§ 字符串分析在揭开恶意软件的秘密方面发挥着重要作用
§ 某种类型的 IOC 可能会反映在字符串分析中(如 IP、目录、WinAPI 等)。
§ 分析导入地址表 (IAT):
§ 导入地址表是 Windows 模块(可执行或动态链接库)的一部分,用于跟踪从其他 DLL 导入的函数的地址。
§ 分析 IAT 可以给我们带来什么胜利。使用 API 功能。
§ 我们将使用 “PEView” 来分析 IAT:
§ 在上面的 ss 中,可以看到使用了 “GetProcAddress” 函数。
§ GetProcAddress (Must read) 用于获取 DLL 中函数的内存地址。恶意软件通常将其用于混淆和规避目的,以避免必须直接调用该函数。
§ 确定恶意软件是打包的还是解压缩的
§ 打包程序是混淆程序的子集。在打包的程序中,有害软件被压缩,无法检查。打包程序是混淆程序的一个示例。
§ PEView 可用于发现恶意软件是打包还是解压缩:
· 动态恶意软件分析:
动态恶意软件分析会在文件真正被使用时进行扫描。为了遏制病毒,它在沙坑中运行,这是一个安全、隔离的环境。然后可以通过逆向工程推断恶意软件的行为和功能。
API 调用、内存写入和注册表修改只是动态恶意软件调查中采用的一些方法。由于它通常是基于行为的,因此它可能有助于确定未识别的文件是否有害。
§ 寻找基于网络的指标:
§ 我们将在 Remnux 中打开 InetSim(假互联网模拟器)和 wireshark
§ 在此之后,我们将执行我们的恶意软件,让我们看看结果:
§ 在上面的 ss 中我们可以看到,当恶意软件执行时,它会弹出“calc.exe”(也可以在字符串分析中看到)
§ 让我们看看使用 wireshark 捕获流量时的结果是什么:
§ 我们可以看到,我们得到了一个 Malware 试图与之通信的 URL,它为我们提供了额外的 IOC,因为它没有在静态分析阶段被捕获。
§ 搜寻基于主机的指示器:
§ 我们将使用 “Procmon” 工具来执行此操作,让我们启动它:
§ 从这个繁忙的屏幕中阅读或分析任何内容都非常困难,因此我们将提供所需的信息:
§ 现在,我们只能看到进程名称 = 恶意软件的结果。Packed.exe
§ 现在,我们希望看到的只是与文件、其路径等相关的操作:
§ 从下面的 ss 中可以看出,当恶意软件被执行时,会创建一个 .dll 文件:
· 结论:
恶意软件分析的好处:
§ 威胁检测:恶意软件分析可检测以前未发现的风险,帮助公司防止攻击。
§ 提高安全性:了解恶意软件行为有助于企业增强安全性并最大限度地降低感染风险。
§ 了解攻击技术:恶意软件分析揭示了攻击者的方法,帮助企业规划和应对未来的攻击。
§ 早期检测:组织可以通过在恶意软件生命周期的早期评估来减轻攻击的影响并更快地恢复。
§ 取证:恶意软件分析可能有助于起诉攻击者。
作者:Ankit Sinha 是一名安全研究员,在渗透测试、威胁搜寻和红队方面拥有专业知识。此外,喜欢在进攻性安全学科中从事无数事情。点击此处联系
您还可以找到更多必须查看 这里 和 这里 了解更多信息。
其它课程
linux恶意软件开发对抗与进程安全管理视频教程
linux文件系统存储与文件过滤安全开发视频教程(2024最新)
linux高级usb安全开发与源码分析视频教程
linux程序设计与安全开发
-
windows恶意软件开发与对抗视频教程
-
windows网络安全防火墙与虚拟网卡(更新完成)
-
windows文件过滤(更新完成)
-
USB过滤(更新完成)
-
游戏安全(更新中)
-
ios逆向
-
windbg
-
还有很多免费教程(限学员)
-
更多详细内容添加作者微信
原文始发于微信公众号(安全狗的自我修养):恶意软件分析入门
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论