针对开发人员的供应链攻击可说是日益泛滥,而且黑客的手法不断推陈出新。以往攻击者主要是直接窃取用户帐密或是凭证,进而取得程序代码共享平台账号的控制权,但现在有研究人员发现新的攻击渠道,攻击者锁定开发人员的计算机下手,让他们于上传程序代码时,无意间就帮自己在GitHub上架设后门,攻击者再将这些后门用于与C&C中继站通信。最近,GitHub公布了上述攻击手法细节,希望开发人员能够加以防范。
今年3月,一个署名为JJ的安全人员,向GitHub安全事件因应团队通报,他发现一波新的攻击事件,黑客锁定采用NetBeans集成开发环境的计算机发动攻击,导致这些开发者提交到GitHub的程序代码带有后门。该团队获报后,随即展开调查,发现有26个开源项目,被恶意软件借壳上架后门。GitHub安全事件因应团队表示,他们经常获报有人刻意利用GitHub,将其作为C&C中继站运行的一部分,但这次研究人员提出的情报相当不同,程序代码数据库的所有人完全不晓得自己遭黑,持续在自己的GitHub账号提交带有后门的程序代码。
研究人员将这次发现黑客作案的恶意软件,命名为Octopus Scanner。黑客攻击的方式,是先将这款恶意软件植入到开发用的计算机,接着Octopus Scanner会在计算机里扫描,找出所有的NetBeans项目文件与文件夹,并且将恶意负载(Payload)文件植入指定的文件夹,然后修改编译的XML组态文件内容,使得开发者每次编译程序时,恶意软件就会一并加载所有类别,而且还会感染编译好的JAR文件。
GitHub指出,他们在调查过程中,Octopus Scanner的C&C中继站似乎还没有上线,但这不代表遭感染的项目就安全,黑客还是很有可能借此复制项目的内容。基于前述用户应该不知情的前提,GitHub认为不应该直接封锁用户的账号来处置,取而代之的是,他们会充分了解恶意软件散播的途径,再从这些项目妥善移除相关程序代码。
不过,根据GitHub的调查,与获报信息有所不同的是,Octopus Scanner不光是会感染编译过程产生的JAR文件,而是整个项目文件夹里的所有的JAR文件。该公司清查受害项目后进一步发现,Octopus Scanner至少有4种版本,其中一种还会感染下游系统,也就是说,假如其他GitHub用户复制了受害项目来进行开发,也可能会一并继承了这个恶意软件。至于其他3种Octopus Scanner,则是以开发者本机计算机为主要感染目标。
GitHub也将其中一个Octopus Scanner上传到VirusTotal,所有的60个杀毒引擎中,竟然只有4个发现是恶意软件,这样的结果很可能会被当作是误判。
值得注意的是,NetBeans并非Java程序语言最常见的辅助开发工具,但为何黑客要针对使用这款集成开发环境的开发者下手?GitHub认为,假如此次攻击并非特定目标攻击,就是黑客已经同时对其他开发环境悄悄下手,像是使用Make、MsBuild,以及Gradle等开发工具的计算机,也可能会出现类似Octopus Scanner的恶意软件攻击。