对字节码解释器的攻击隐藏了恶意注入活动

admin 2024年8月4日22:56:21评论5 views字数 1543阅读5分8秒阅读模式

对字节码解释器的攻击隐藏了恶意注入活动

一组日本研究人员将在下周的黑帽美国会议上展示,攻击者可以通过在许多编程语言(如VBScript和Python)使用的软件解释器存储在内存中的机器码中插入命令来隐藏他们执行恶意代码的企图。

解释器读取人类可读的软件代码,并将每一行代码翻译成字节码——即底层(通常是虚拟)机器可以理解的细粒度编程指令。研究小组在执行之前成功地将恶意指令插入内存中保存的字节码中,并且由于大多数安全软件不扫描字节码,因此它们的更改逃过了检测。

这种技术可以让攻击者对大多数端点安全软件隐藏他们的恶意活动。NTT Security的研究科学家Toshinori臼井说,来自NTT Security Holdings Corp.和东京大学的研究人员将在黑帽大会上使用VBScript解释器演示这种能力。研究人员已经证实,该技术也适用于在Python和Lua解释器的内存进程中插入恶意代码

“恶意软件通常通过将恶意代码注入良性进程来隐藏其行为,但现有的注入型攻击具有特征行为……这些都很容易被安全产品检测到。”臼井说。“解释器不关心远程进程的覆盖,所以我们可以很容易地用恶意代码替换生成的字节码——这就是我们利用的特性。”

字节码攻击不一定是新的,但它们相对新颖。2018年,加州大学欧文分校的一组研究人员发表了一篇论文,《字节码破坏攻击是真实的——以及如何防御它们》,介绍了字节码攻击和防御。去年,Python包索引(PyPI)的管理员删除了一个名为fshec2的恶意包,由于其所有恶意代码都被编译为字节码,因此躲过了最初的检测。Python将其字节码编译成PYC文件,这些文件可以由Python解释器执行。

“这可能是第一次利用Python字节码(PYC)文件可以直接执行这一事实的供应链攻击,而且它发生在Python包索引的恶意提交激增之际,”逆向实验室的逆向工程师卡罗·赞基在2023年6月对该事件的分析中表示。“如果是这样,它将带来另一个供应链风险,因为这种类型的攻击可能会被大多数安全工具遗漏,这些工具只扫描Python源代码(PY)文件。”

超越预编译恶意软件

在最初的妥协之后,攻击者有几个选择来扩展他们对目标系统的控制:他们可以执行侦察,尝试使用恶意软件进一步破坏系统,或者运行系统上已经存在的工具-所谓的“依赖土地”策略。

NTT研究人员对字节码攻击技术的变异基本上属于最后一类。他们的攻击——被称为字节码柔术——不是使用预编译的字节码文件,而是将恶意字节码插入正在运行的解释器的内存空间。由于大多数安全工具不查看内存中的字节码,因此攻击能够隐藏恶意命令而不被检查。

Usui说,这种方法允许攻击者跳过其他更明显的恶意步骤,例如调用可疑的api来创建线程、分配可执行内存和修改指令指针。

他说:“虽然本机代码有由CPU直接执行的指令,但字节码只是CPU的数据,由解释器解释和执行。”“因此,与本机代码不同,字节码不需要执行特权,[并且我们的技术]不需要准备具有执行特权的内存区域。”

更好的译员防御

解释器开发人员、安全工具开发人员和操作系统架构师都会对这个问题产生一定的影响。根据加州大学欧文分校的论文,虽然针对字节码的攻击并不利用解释器中的漏洞,而是利用它们执行代码的方式,但某些安全修改(如指针校验和)可以降低风险。

NTT安全研究人员指出,校验和防御不太可能对他们的技术有效,并建议开发人员实施写保护以帮助消除风险。“最终的对策是限制对解释器的内存写入,”臼井说。

他强调,提出一种新的攻击技术的目的是向安全研究人员和防御者展示可能的情况,而不是告知攻击者的战术。他说:“我们的目标不是滥用防御策略,而是最终为全世界的安全研究人员敲响警钟。”

原文始发于微信公众号(HackSee):对字节码解释器的攻击隐藏了恶意注入活动

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月4日22:56:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   对字节码解释器的攻击隐藏了恶意注入活动http://cn-sec.com/archives/3034640.html

发表评论

匿名网友 填写信息