开源软件在助力企业数字化转型的过程中起到了至关重要的作用,然而开源软件的广泛应用却由于安全意识的不足和缺失大大增加了风险暴露面,使用默认配置、允许未授权访问、权限管理疏忽等缺乏安全意识的表现导致黑客可以以极低的门槛和成本造成大范围且严重的危害。
在过去的半年中,就有境外黑客组织利用上述弱点对我国境内发起攻击,导致多家重要单位数据泄露。这提醒我们在享受开源社区和软件带来便利的同时,提高使用开源软件的安全意识刻不容缓。
在本篇文章中,我们将简要介绍AgAInstTheWest(ATW)的攻击活动,并研究他们的入侵攻击链和动机。
自2021年10月以来,一个名为“AgainstTheWest”(ATW)的黑客组织在地下论坛 RaidForums上发布了大量的关于我国多家企事业单位的源代码数据,以及相关网站被破坏的证据。该黑客组织针对中国企事业单位发起了为期数月的名为“Operation Renminbi”的网络战,即使在RaidForums论坛被封禁后,仍然在利用Twitter和Telegram Messenger等社交媒体频繁发布泄露信息。
如下是ATW于3月2日使用Twitter发布的泄露信息:
2021年10月12日,AgainstTheWest(ATW)组织首次出现在 RaidForums泄密市场的帖子中(有些人会认为ATW首次泄露时间是10月14日,实际上是10月12日发布第一贴,在10月14日对贴子进行了修改,所以帖子上会显示10月14日),他们声称正在出售从中国某银行窃取的源代码信息。“我们已经为这项行动工作了至少两个月,它使我们能够接触到其内部资产”,ATW在帖子中表示,并公布了内部截图。随后该黑客组织又持续发布多家重要单位的系统源代码,并宣称泄露事件将持续进行。
从ATW的论坛活动来看,他们从一开始就知道如何使用论坛,知道数据销售是如何运作的,甚至在交流中偶尔透露一些关于论坛历史的知识。10月12日的账户创建日期不太可能是ATW第一次访问该网站,更像是蓄谋已久的活动。ATW展示出来的标签印象包括作为地下论坛的活跃用户、拥有一定的黑客技能、意识形态反对中国等。
研究ATW的入侵手法可以发现其攻击链并不复杂,2021年末对SonarQube代码质量管理平台进行了攻击,在2022年初又陆续攻击了Gitblit、Gogs等代码托管平台。这些攻击及造成的数据泄露具有明显的相似性,主要通过利用代码质量管理或代码托管平台的未授权访问漏洞来进行入侵。这些开源平台在默认配置下,都允许未授权用户直接或间接地访问代码仓库中的源代码,一旦这些服务暴露在外网,不法分子便能轻松窃取其中的源代码,从而构成项目源代码数据的泄露。
通过模拟ATW的攻击入侵手段,以及能获取到的源代码来看,ATW的入侵方式非常成功,他们能轻松进入上万台缺乏权限管控的资产内部,其中不乏有重要基础设施单位的源代码信息。
尽管ATW在活动中不断声称自己“黑客主义”使命,但与其他黑客主义的团体不同的是,ATW会出售一些目标单位的源代码或数据。他们接受比特币和以太坊等作为交易货币,尽管有一些帖子是免费公开的,但不排除贩卖数据给其带来了一定的收益。该组织不仅泄漏企事业单位相关系统源代码,还不断对政府和重要的基础设施发起攻击。
意识形态上,该黑客组织称国际政治立场不同,攻击目标主要针对中国、俄罗斯、朝鲜等国家,这恰恰与其名“反对西方”相悖。过去一些关于黑客行动主义团体的攻击案例最终演变成民族国家执行信息操作的掩护,但是从ATW目前的活动中暂未体现到这一点。
通过对全网设备进行空间测绘(第三方平台),发现上述开源平台在国内使用广泛。对存在风险的资产项目进行进一步分析发现,其中包含涉及我国多家重要单位的系统源代码。如下是SonarQube、Gitblit、Gogs的各平台使用情况:
国内SonarQube、Gitblit、Gogs平台的平台使用情况分布TOP省份如下:
ATW数据泄露事件,一方面给我国在代码托管和供应链安全方面敲响警钟,从RaidForums论坛泄露的事件来看,本次事件中关基单位成为攻击者重点关注的对象,也再次验证了关基单位的网络产品供应链问题在当前日趋严峻的网络安全形势下日显突出,可以说供应链安全一旦出现问题会给关键信息基础设施带来严重危害。
另一方面,商业软件大多都在使用开源软件以节省开发时间、降低公司成本、避免重复造车轮,但使用软件公司对这些代码的品质、来源及应用部署却未必都给予了足够的关注和重视,这大大增加了企业单位的风险暴露面,容易被不法分子乘虚而入,导致严重后果。
在享受开源社区和软件带来便利的同时,也需要企业积极推动建设开源软件安全治理体系,积极开展开源软件源代码检测工程和提高使用开源软件的安全意识,形成开源软件安全治理的长效机制。
(1)SonarQube未授权访问的修复方案
1.升级SonarQube平台至最新版本。(SonarQube版本>8.6即可)
2.登录SonarQube系统,在Administation -> Security -> Force user authentication 设置开启。
(2)Gitblit未授权访问的修复方案
1.修改Gitblit默认配置文件data/default.properties中web.authenticateViewPages的值修改为true,禁止未授权用户访问仓库;以及将
git.defaultAccessRestriction的值修改为VIEW,只允许授权用户进行view、clone、push操作。
2.在创建仓库时,可通过修改访问策略,严格控制仓库的使用权限。默认仓库权限允许未授权用户查看/克隆项目。
同时对关联用户和团队的权限进行控制
4.修改默认用户名密码,可修改用户配置文件data/user.conf中的默认用户名密码,也可在web控制台修改,如图:
(3)Gogs未授权访问的修复方案
1.修改Gogs默认配置文件custom/conf/App.ini中REQUIRE_SIGNIN_VIEW的值修改为true,禁止未授权用户访问仓库。
1.修改SonarQube、Gitblit、Gogs平台的默认配置,包括修改默认账号名、密码、端口号,并且禁止使用弱口令;
2.审计托管在SonarQube、Gitblit、Gogs的项目源码,若源码包含数据库配置信息、内部系统的账号密码、内部API接口等敏感信息,应及时通知相关人员进行更改;
3.禁止SonarQube、Gitblit、Gogs平台的外网访问权限,如若必须开放外网访问,将SonarQube、Gitblit、Gogs平台放置于防火墙等边界安全设备保护范围内,并且定期排查是否存在未授权访问的异常记录。