模块2 – 恶意软件开发简介 ●

模块2 – 恶意软件开发简介

什么是恶意软件?

恶意软件是一种专门设计用于执行恶意操作的软件,例如未经授权访问机器或从机器中窃取敏感数据。术语“恶意软件”通常与非法或犯罪行为相关联,但它也可以被道德黑客(如渗透测试人员和红色团队)用于组织的授权安全评估。

MalDev Academy假定参加本课程的用户将仅将所学知识用于道德和法律的目的。任何其他用途都可能导致刑事指控,MalDev Academy对此不承担任何责任。

为什么要学习恶意软件开发?

有几个原因为什么有人想学习恶意软件开发。从攻击性安全的角度来看,测试人员通常需要对客户端环境执行某些恶意任务。测试人员通常有三个主要的选择,当涉及到在一个约定中使用的工具类型:

  1. 开源工具(OST)-这些工具通常由安全供应商签名,并在任何受到适当保护或成熟的组织中检测到。在进行进攻性安全评估时,它们并不总是可靠的。
  2. 购买工具-预算较大的团队通常会选择购买工具,以便在参与过程中节省宝贵的时间。与自定义工具类似,这些工具通常是封闭源代码的,并且有更好的机会逃避安全解决方案。
  3. 开发自定义工具-因为这些工具是自定义构建的,所以它们没有被安全供应商分析或签名,这使得攻击团队在检测方面具有优势。这就是恶意软件开发知识对于更成功的攻击性安全评估至关重要的地方。

应该使用什么编程语言?

从技术上讲,任何编程语言都可以用来构建恶意软件,如Python,PowerShell,C#,C,C++和Go。话虽如此,在恶意软件开发方面,一些编程语言优于其他编程语言有几个原因,通常可以归结为以下几点:

  • 某些编程语言更难进行逆向工程。它应该始终是攻击者目标的一部分,以确保防御者对恶意软件的行为有有限的了解
  • 某些编程语言需要目标系统上的先决条件。例如,执行Python脚本需要目标机器上存在解释器。如果机器上没有Python解释器,就不可能执行基于Python的恶意软件。
  • 根据编程语言的不同,生成的文件大小会有所不同。

高级与低级编程语言

编程语言可以分为两类,高级和低级。

  • 高级别-通常从操作系统中抽象出来,内存效率较低,并且由于抽象了几个复杂的功能,因此为开发人员提供的总体控制较少。高级编程语言的一个例子是Python。
  • 低级别-提供一种与操作系统进行亲密级别交互的方法,并在与系统交互时为开发人员提供更多的自由。低级编程语言的一个例子是C。

鉴于前面的解释,应该很清楚为什么低级编程语言一直是恶意软件开发的首选,特别是在针对Windows机器时。

Windows恶意软件开发

Windows恶意软件开发场景在过去几年中发生了变化,现在高度关注规避基于主机的安全解决方案,如防病毒(AV)和端点检测和响应(EDR)。随着技术的进步,构建执行可疑命令或执行“类似恶意软件”操作的恶意软件已经不够了。

MalDev Academy将教你构建可以在真实的交战中使用的规避恶意软件。这些模块还将调用非opsec操作或可能会让安全解决方案或蓝队检测到您的恶意软件的操作。

恶意软件开发生命周期

从根本上说,恶意软件是一种旨在执行某些操作的软件。成功的软件实现需要一个被称为软件开发生命周期(SDLC)的过程。同样,一个构建良好且复杂的恶意软件将需要一个定制版本的SDLC,称为恶意软件开发生命周期(MDLC)。

虽然MDLC不一定是一个正式的过程,但它在MalDev Academy中使用,为读者提供了一种简单的方法来理解开发过程。MDLC由5个主要阶段组成:

  1. 开发 – 开始开发或改进恶意软件中的功能。
  2. 测试 – 执行测试以发现迄今为止开发的代码中隐藏的错误。
  3. 离线AV/EDR测试-针对尽可能多的安全产品运行开发的恶意软件。重要的是,测试是离线进行的,以确保没有样本被发送到安全供应商。使用Microsoft Defender,这是通过禁用自动样本提交和云交付保护选项来实现的。
  4. 在线AV/EDR测试 – 通过互联网连接对安全产品运行开发的恶意软件。云引擎通常是AV/EDR中的关键组件,因此针对这些组件测试恶意软件对于获得更准确的结果至关重要。请小心,因为此步骤可能会导致样本被发送到安全解决方案的云引擎。
  5. IoC(指标妥协)分析 – 在这个阶段,你成为威胁猎人或恶意软件分析师。分析恶意软件并提取出可用于检测或签名恶意软件的IoC。
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容