什么鬼?我能通过依赖混淆攻击在 Halo 游戏服务器中执行命令,微软不 care?!...

 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士

研究员可以利用依赖混淆攻击在 Halo Microsoft 服务器中执行命令,但微软安全响应中心 (MSRC) 表示并非问题。

神秘依赖关系 “swift-search”遭劫持

研究员 Ricardo Iramar dos Santos在 https://github.com/symphonyoss/SymphonyElectron (开源包 SymphonyElectron)上查找 bug 时,发现文件 https://github.com/symphonyoss/SymphonyElectron/blob/main/package.json 上npm 包使用了一个名神秘依赖关系 “swift-search”。但是该包并未出现在公开的 npmjs.com 注册表上,而是发布在 https://www.npmjs.com 上,因此研究员在多个版本下发布了一个包并提供了一个很不错的预安装。这样,当有人安装了该包时作者就会知道。

该攻击即“依赖混淆”攻击。“混淆攻击”表示的是检索某软件包的依赖关系时,多种开源库管理器中存在继承弱点。如果项目使用了私有的、内部创建的依赖关系且公开库中存在具有相同名称的依赖关系时,它将为开发工具在关于指向哪个依赖关系方面制造“混淆”。具有相同名称的公开依赖关系将被拉取到开发环境中而不是意向的私有仓库。因此,“依赖混淆”或劫持攻击可使攻击者在自动化的供应链攻击中将恶意代码注入内部应用程序中。今年3月,攻击者利用“依赖混淆“技术利用恶意代码成功攻击35家著名企业。

目前,dos Santos创建的伪造版本已被从 npm 公共库中永久删除。

dos Santos 所创建的包中包含的代码评估易受依赖关系混淆攻击的系统中的敏感参数,并更新至研究员的 PoC 服务器中。

 这些字段和文件包括:

1、系统主机名和账户用户名

2、环境变量 (env)

3、OS 名称和版本信息

4、系统的公共 IP 地址(IPv4 或 IPv6)

5、/etc/hosts 文件

6、/etc/passwd 文件

7、/etc/shadow 文件

被黑的微软 Halo 游戏服务器响应

向 npm 注册表发布该包的几小时后,dos Santos在 Burp Collaborator 实例中得到了微软服务器的响应。DNS 查询源自 13.66.137.90(它是微软的一个 DNS 服务器),之后是来自51.141.173.203的POST请求,它也是微软的一个 IP 地址(英国)。

inetnum: 51.140.0.0–51.145.255.255
org: ORG-MA42-RIPE
netname: MICROSOFT
descr: Microsoft Limited UK
country: GB

访问https://51.141.173.203时,dos Santos注意到证书的 CN 字段指向 “*.test.svc.halowaypoint.com”,说明它是微软提供的一种服务。dos Santos通过预安装脚本执行的其中一个命令是 “env”。如下可看到可从服务器提取的env 输出的某些行。

DEPLOYMENT_BASEPATH=/opt/runner


USER=runner


npm_config_user_agent=npm/6.14.12 node/v12.22.1 linux x64 ci/github-actions


GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_73c3242d-3ebe-4fef-b35e-4c01f044ff0b


PIPX_HOME=/opt/pipx


GRAALVM_11_ROOT=/usr/local/graalvm/graalvm-ce-java11–21.0.0.2


AZURE_EXTENSION_DIR=/opt/az/azcliextensions


npm_package_description=swift-search


ImageVersion=20210412.1


SWIFT_PATH=/usr/share/swift/usr/bin


GITHUB_RUN_ID=773121366


GOROOT_1_16_X64=/opt/hostedtoolcache/go/1.16.3/x64


ANT_HOME=/usr/share/ant


RUNNER_TRACKING_ID=github_ade7a12e-905e-4b34-b09e-b3ddda770183


HOMEBREW_CELLAR=”/home/linuxbrew/.linuxbrew/Cellar”


npm_package_name=swift-search

说明微软服务器遭 dos Santos 的依赖关系劫持攻击。BleepingComputer 证实称,halowaypoint.com 子域名中出现的SSL证书确实将微软公司列为其背后的组织机构,而 51.141.173.203 的 WHOIS 记录也将微软列为所属公司。但无法找到能够将 IP 地址51.141.173.203 和微软域名或 SSL 证书关联在一起的反向查询记录,这说明漏洞报告提交后,该 IP 地址被下线。

MSRC的迷惑行为

微软向BleepingComputer 表示,“我们调查后认为底层问题已经在收到漏洞报告前解决了。”另外微软指出漏洞报告引用了由第三方变更引入的一个问题,且目前并未有证据表明客户受影响。

dos Santos 在博客文章中提到:

于是,我有了一个糟糕的主意:把漏洞告知微软安全响应中心。由于从某种程度上讲我是偶然发现该漏洞的,所以认为不会收到回复。微软的回复如下:“我们评估后认为该问题应该直接报告给 SymphonyElectron 的维护人员。感谢和我们分享该信息。MSRC 不会采取任何措施,我将关闭该案件。”

什么?!这并非MSRC第一次对漏洞置之不理,我相信这次也并非最后一次。让人惊讶的是,一小时后我收到了 MSRC 发送的另一份邮件,内容是“另外,还有一件事。您有通过 PoC 复现这个问题的时间戳吗?”

等等!MSRC 先是表明这个漏洞与它无关,现在又想要复现?

虽然本打算忘掉这个报告,但还是向他们解释了这个漏洞。我写了一份详细的邮件解释为何它是一个严重漏洞,并以如下内容结尾:“我会等待你们证实我所写的内容,时间截止到明天结束之前。如果你们不回复或者不同意我的内容,没关系,这说明你们认为它不是问题,我将在 Medium 上发布我们所讨论所有内容。”

接下来的几天,我收到了回复邮件称,“我将会请工程师审计你所发的内容,我将尽快与你同步消息。”

虽然我不会泄露这个发件人的姓名,但这是我第一次从 MSRC 收到的带姓名的邮件。两天后我要求同步信息但未收到回复。又过了两天,我编写了如下邮件,再次尝试和他们取得联系:“由于我没有收到任何回复,你们也没有提供针对报告任何位置的 ETA,因此我将给你们一个最后期限。如果在6月23日之前未收到任何关于该漏洞的解决方案,我认为你们同意发布该报告的所有内容。”

推荐阅读

给开发者的9个安全建议:既能保护供应链安全,也不会拖慢开发进程

在线阅读版:《2021中国软件供应链安全分析报告》全文

Python 官方软件库 PyPI 遭垃圾软件包洪水攻击

VSCode 扩展中出现严重漏洞,可导致供应链攻击

Rapid7 部分源代码遭泄露,成 Codecov 供应链攻击第四个受害者

库依赖关系和开源供应链带来的噩梦

原文链接

https://ricardoiramar.medium.com/msrc-is-confused-5d86b23c2e88

https://www.bleepingcomputer.com/news/security/microsofts-halo-dev-site-breached-using-dependency-hijacking/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值