freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

    如何开始学习逆向以及分析恶意软件?
    2018-08-02 13:00:04

    许多人都问我是如何开始学习逆向以及成为病毒分析师的,有什么好的学习资料可以推荐等等这样的问题。为了解答大家的疑问,在本文中我将为初学者提供一些自己的学习经验以及一些实用的链接资源。逆向工程涉猎的范围非常的广泛,你可以针对各种平台各种类型的软件进行逆向,也可以对硬件进行逆向。但在本文中,我将主要关注Windows上恶意软件分析所需的技能。

    工具 & 环境

    为了避免感染自己的主机,首先我们需要准备一个安装了所有恶意软件分析所需工具的隔离虚拟环境,你可以在其中部署恶意软件样本并对其进行分析。更多细节请参阅:

    Malware analysis for N00bs – part 1: malware and the tools for its analysis (slides)

    Malware Analysis Virtual Machine – by OALabs

    Creating a Simple Free Malware Analysis Environment – by MalwareTech

    Reviews of various tools for reverse engineering

    工具学习

    在日常的工作中你将会频繁的用到一些调试和反汇编工具,例如IDA,OllyDbg(或其某些衍生产品,如ImmunityDbg),x64dbg,以及非常实用先进的 WinDbg,虽然它的用户界面并不友好,但也非常值得大家去学习,但对于初学者而言我并不建议一开始就去接触它。以下是一些相关工具使用的指导课程:

    Reversing with Lena151  – learn OllyDbg (虽然有点老了,但非常实用)

    TiGa’s course on IDA ProS D 

    Introduction to WinDbg by Anand George

    如何获取恶意软件样本,情报等?

    如果你是一个初学者并且也不是任何社区的成员,那么你可以在这里免费找到精心分类且最新的恶意软件样本:

    https://malwarebreakdown.com/

    https://www.malware-traffic-analysis.net/

    你还可以从一些免费在线沙箱和开放存储库中下载它们,例如:

    http://www.malshare.com/

    https://virusshare.com/

    对于威胁情报,有关爆发的信息,以及新鲜样本的哈希等,我建议你加入twitter并关注你熟悉的一些研究人员。

    随着你变得熟练和上手,我建议你可以加入以下这个社区:

    https://beta.virusbay.io/

    练习

    逆向是一种只有通过多学多练才能掌握的技能,因此我建议你直接开始练习。刚开始你可以按照练习说明逐步进行。

    Beginner Malware Reversing Challenges (by Malware Tech)

    Malwarebytes CrackMe #1 + tutorial

    Malwarebytes CrackMe #2 + list of write-ups

    https://crackmes.one/ – 各种crackmes帮助你练习逆向

    你也可以阅读年度FlareOn挑战赛的文章。其中包含了各种难度层次的逆向工程任务,这对于提高你的能力有极大的帮助。

    底层学习

    逆向本地应用还需要你对一些底层概念有基本的了解。如果你专注于Windows恶意软件(就像我一样),那么你大部分的时间都会在处理PE文件。当你在调试器下观察应用程序时,你会以反汇编的形式看到它 - 转换为汇编语言(汇编程序)。因此,你知道的汇编程序,PE结构和操作系统越多,你就越容易理解。这里这里是有关x86汇编的一些介绍教程。想要更深入的了解并掌握其它平台汇编,请参阅此免费书籍。

    学习PE格式,我建议你阅读Matt Pietrek和Ange Albertini的相关文章(PE101PE102)。使用PE-bear查看各种可执行文件,并将其与你阅读的格式进行比较。

    基本代码理解

    并非所有的恶意软件分析师都是熟练的程序员,但你需要掌握一些基本的技能,至少能够理解代码。你理解的越透彻,对你就越有利。如果你对代码编程足够熟悉,你甚至可以自己来编写一些工具来辅助你的分析任务。

    https://www.malwaretech.com/2018/03/best-programming-languages-to-learn-for-malware-analysis.html

    恶意软件解包

    恶意软件通常都是打包的,为了分析核心,你必须从外部保护层打开它。

    本文解释了这个概念:

    https://blog.malwarebytes.com/threat-analysis/2015/12/malware-crypters-the-deceptive-first-layer/

    我的关于恶意软件解包的视频教程如下:

    看不到?点这里

    恶意软件注入方法

    大多数恶意软件会在其他进程中注入代码。注入的一般目的是:伪装其他应用程序以及hooking。使用的方法各式各样,最流行的是Process Hollowing(又名RunPE)和Reflective DLL注入。

    a walk-through various techniques (by Endgame)

    ready-made demos of various techniques (source code)

    Hooking

    Hooking技术无论对安全软件还是恶意软件都是十分关键的一项技术,其本质就是劫持函数调用。例如:监控应用程序,拦截正在发送的数据等。另一方面,沙箱也使用相同的技术来监控恶意软件

    hooking是如何工作的:

    “Inline Hooking for programmers” (by MalwareTech) – part #1 and  part #2

    一个简单的userland rootkit如何利用hooking:

    https://blog.malwarebytes.com/threat-analysis/2016/12/simple-userland-rootkit-a-case-study/

    内核模式恶意软件

    大多数恶意软件都在userland中运行。但是,你可能也会不时碰到一些内核模式的恶意软件模块。对于这类恶意软件逆向起来非常困难,并且需要不同的环境设置。

    设置用于在内核模式下分析恶意软件的环境,你可以遵循我在Windows内核利用实践中描述的步骤进行:

    hshrzd.wordpress.com/2017/05/28/starting-with-windows-kernel-exploitation-part-1-setting-up-the-lab/

    以下,是一个非常好的关于逆向内核的PDF文档推荐给大家:

    http://www.sekoia.fr/blog/wp-content/uploads/2016/10/Rootkit-analysis-Use-case-on-HIDEDRV-v1.6.pdf

    有关更多信息,请参阅:

    https://resources.infosecinstitute.com/hooking-idt/

    https://www.adlice.com/kernelmode-rootkits-part-1-ssdt-hooks/

    https://www.adlice.com/kernelmode-rootkits-part-2-irp-hooks/

    https://www.adlice.com/kernelmode-rootkits-part-3-kernel-filters/

    课程

    https://www.begin.re/ – Reverse Engineering for beginners

    Reverse Engineering Malware 101 and 102 – by MalwareUnicorn

    http://legend.octopuslabs.io/sample-page.html

    http://opensecuritytraining.info/Training.html

    https://samsclass.info/126/126_S17.shtml – Practical Malware Analysis

    YouTube 频道

    Malware Analysis For Hedgehogs

    OALabs

    Colin’s channel about malware

    my channel

    Tips & ideas

    “How to Become (and Remain) a Malware Researcher” – by Todd Cullum

    “How to become the best Malware Analyst E-V-E-R” – by Hexacorn

    “So You Want To Be A Malware Analyst” – by Adam Kujawa

    如何获得一份恶意软件分析师的工作?

    根据我的经验,最好的方法是在社区中做出贡献。积极主动开始自己的研究,并展现自己的热情,分享你学到的东西。在twitter上有一个非常友好的研究人员社区,它帮助我在这个领域找到了好几份工作。因此,如果你还没有加入,那么我强烈建议你加入到我们的队伍当中。

    感谢大家的信任与支持!谢谢!

     *参考来源:hshrzdFB小编 secist 编译,转载请注明来自FreeBuf.COM

    # 逆向 # 恶意软件分析
    本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
    被以下专辑收录,发现更多精彩内容
    + 收入我的专辑
    + 加入我的收藏
    相关推荐
    • 0 文章数
    • 0 关注者