FBI 于日前发布了一个安全警报称,有黑客正在滥用配置错误的 SonarQube 应用程序,以访问和窃取美国政府机构以及私营企业的源代码库。

FBI 在警报中特别警告了 SonarQube 的所有者。SonarQube 是一个用于管理源码质量的平台,帮助开发者编写干净的代码,其支持的语言包括:Python、Java、PHP、C#、C、Cobol、PL/SQL 与 Flex 等。SonarQube 应用被安装在 web 服务器上并连接到源代码托管系统如 BitBucket、GitHub、GitLab accounts 或 Azure DevOps systems。

警报内容指出,此类攻击事件从今年 4 月开始就已经开始了;受影响的除了有美国的许多政府机构之外,还包括科技、金融、零售、食品、电子商务与制造等领域的私人企业 。黑客通过开采已知的 SonarQube 配置漏洞,以访问 SonarQube 所存放的私有程序代码,并将它们公诸于世。

在初始攻击阶段,黑客先是使用默认端口(9000)和一个可公开访问的 IP 地址在互联网上扫描暴露在开放互联网上的 SonarQube 实例。然后,再使用默认的管理员凭证(用户名:admin,密码:admin)试图访问 SonarQube 实例。目前,FBI 已经发现了多个潜在的计算机入侵行为,均与 SonarQube 配置漏洞相关的泄漏有关。

如 ZDNet 所述,FBI 的这一警报涉及到了软件开发人员和安全研究人员中一个鲜为人知的问题。虽然网络安全行业经常就 MongoDB 或 Elasticsearch 数据库在没有密码的情况下暴露在网上的危险发出警告,但 SonarQube 却成为了漏网之鱼。

事实上,早在 2018 年 5 月,一些安全研究人员就已经针对让 SonarQube 应用在网上暴露默认证书的危险性发出过警告。彼时,数据泄露猎人Bob Diachenko曾警告称,当时在线上提供的所有约 3000 个 SonarQube 实例中,约有 30% 至 40% 没有启用密码或认证机制。

今年,一位名叫 Till Kottmann 的瑞士安全研究人员也提出了同样的问题,即配置错误的 SonarQube 实例。Kottmann 透露,在这一年的时间里,他已经在一个公共门户网站上收集了数十家科技公司的源代码,包括有微软、Adobe、Amd 以及台湾的联发科等,其中很多数据就来自于 SonarQube 应用。

为了防止继续发生此类泄露事件,FBI 在警报中列出了一系列缓解措施,包括有:

  • 更改 SonarQube 的默认设置,包括更改默认的管理员用户名、 密码和端口(9000)。

  • 将 SonarQube 实例置于登录窗口后,并检查是否有未经授权的用户访问该实例。

  • 如果可行的话,撤销所有存放在公开 SonarQube 实例中的各种 API 密钥与凭证。

  • 将 SonarQube 实例配置在组织的防火墙和其他外围防御系统后面,以防止未经认证的访问。

安全警报:https://www.ic3.gov/Media/News/2020/201103-3.pdf