供应链攻击之 IDEA 插件植入后门

Author Avatar
xF0rk 3月 31, 2020

无意中看到一篇 IDEA 插件开发的推文,联想到之前讲得火热的供应链污染攻击,实操确认了下 IDEA 插件开发及植入后门的可行性。

概述说明

IDEA 作为最好用的 Java 开发 IDE,本身功能已经非常强大,但每个人工具使用需求不一致,部分开发者通过开发插件来完善 IDEA 功能,同时发布于 IDEA 官方插件市场来实现分享。 IDEA 插件根据其功能项可分为:

  • 自定义语言支持,通过编写插件,使 IDEA 支持特定语言开发
  • 框架支持,JavaSpringStruts 等框架支持
  • 工具集成,增强 IDEA 自带功能
  • 用户界面,自定义插件改变用户界面

由于国内直接从 IDEA 插件市场下载插件,网络部分受限,所以攻击者可以篡改或者伪造热门插件,并通过社区、技术分享等来实现后门插件的恶意传播。

笔者将从IDEA 插件开发、插件后门化来进行简单的说明,详细内容如下章节所示

插件开发

通过 Gradle 管理插件项目,IDEA 中默认集成插件开发框架,如下所示,直接使用内置的框架创建 IDEA 插件项目

根据开发者信息,设置项目开发的基本信息,如下所示(项目依赖解析下载需要较长时间,科学上网会更快一点)

项目创建成功后,为插件项目添加 Action,如下图,ActionIDEA 中对事件响应的处理器,属于事件驱动

补充 Action 信息,Groups 表示动作所归属于存在的菜单,Actions 表示当前菜单已有的动作,Anchor 表示动作的位置

Action 中实现弹窗的功能,如下所示,并可通过 runIde 来调试插件

在已加载插件 pluginrce 的项目中,可通过使用 generate 中已注册的功能来测试插件

选择已注册的 PluginRceAction 功能,如下所示

使用 generate 在目标项目中成功触发 pluginrce 弹窗功能,如下所示

IDEA 中已安装的插件中可看到 PluginRce 插件信息

植入后门

上述章节内容介绍了 IDEA 插件开发环境,为在插件中安装后门,只需要在 PluginRce 插件功能代码中添加后门代码即可,例如反弹 SHELL 代码,如下所示

在受害者进行 generate 与前一章节一样的操作时,可成功触发反弹 SHELL,如下所示,在 127.0.0.14444 成功收到受害者的 SHELL

风险说明

供应链污染攻击是近几年比较流行的一种攻击手法,其所包含的攻击面也是非常之多,包括代码依赖库、开发编译工具等等。对于企业团队,应尽量使用正版和官方渠道输出的软件,使用搜索引擎下载软件注意辨别是否是官方链接,防止公司产品被攻击者恶意植入后门,如有资源,在关键系统上线前对系统进行全面安全评估;在公司内部全面安装防病毒软件,打开实时防护,保证病毒库能够及时更新;完善企业内部的资产管理及可持续监控,若发现存在供应链相关的攻击事件时,及时在内部进行资产;在企业内部系统研发、上线、运维过程,遵循最小化原则,缩减攻击面,避免厂商有意或无意植入后门等。

参考链接

  1. IDEA 插件开发入门教程 链接
  2. Getting Started with Gradle (IntelliJ Platform SDK DevGuide) 链接