案例分享:阿里巴巴全球化电商核心系统架构实战,点击学习>>> 了解详情
写点什么

开源软件的供应链安全吗?黑客利用源代码传播恶意软件

2019 年 9 月 09 日

开源软件的供应链安全吗?黑客利用源代码传播恶意软件

过去一年,发生了一连串开源软件遭受供应链攻击的事件,并且态势愈演愈烈。就在最近,甚至发现 2 个独立的后门漏洞进入数十万服务器管理员下载的库中。



第一个曝光的后门来自 Webmin,这是一个安装量超过 100 万,基于 Web 的管理工具。根据 Webmin 开发人员 Jamie Cameron 称,去年 4 月左右,攻击者破坏了用于开发新版本程序的服务器。然后,恶意使用访问权分发了一个后门,导致这个后门被下载超过 900,000 次,并且可能已被数万个服务器主动使用。


未知的攻击者对名为 password_change.cgi 的 webmin 脚本进行了细微更改,此更改让攻击者能够通过特殊 URL 发送命令。


随后,受感染的 Webmin 服务器将以 root 权限执行该 URL。从 2018 年 6 月到上周末,1.890 版本下载次数超过 421,000 次,并在默认情况下启用后门。在 1.90、1.91、和 1.92 版本上,则有超过 942,000 多次下载,只有当管理员改了“允许更改过期密码”的默认设置时,后门才处于活动状态。而 sourceforge 是此次的主要分发源。


从 Shodan 搜索引擎收集的统计数据显示,成千上万的联网服务器运行了这些版本的 Webmin,尽管不排除其中一些服务器运行的 Webmin 是由 Github 或其他版本未经修改的代码构建的,不包括后门的来源,但造成的影响依旧巨大。


RubyGems 后门置入

RubyGems 存储库的十一个库中出现了第二个后门。


根据开发人员 Jan Dintel 的分析,该后门允许攻击者使用预先选择的凭据在受感染的服务器上远程执行命令。


该恶意软件包括各种其他功能,包括将环境变量(包含用于访问数据库、服务提供商和其他敏感资源的凭据)上传到位于 mironanoru.zzz.com.ua 服务器的代码里。并且,Rubygems 的工作人员还发现其中含有加密货币挖掘代码。


总而言之,Rubygems 数据显示,后门库的下载次数已经接近 3600 次。


目前,尚不清楚其余的 RubyGems 库是如何被感染的。RubyGems 工作人员也没有公开回复。


利用信任

Webmin 和 RubyGems 库的结果都是最新供应链攻击针对开源软件的表现。大多数人从已知开发人员的官方网站安装软件或更新的时候,不会深思。


因此,在过去几年,黑客越来越多地利用这种信任,通过源代码来传播恶意软件。


去年 10 月,发生了一连串的攻击事件,仅在一周之内就发生了 2 起针对开源项目的供应链攻击。第一个是 vestapp 控制面板接口,另一个是名为“Colourama”的软件包,它被放入了官方 Python 存储库。


一个月后,又出现了一个旨在从比特币钱包窃取资金的恶意代码,拥有 200 万下载量,被财富 500 强企业和小型初创企业使用。


负责后台软件的开源项目经理说,该恶意代码是针对使用 Copay 开发的比特币钱包的人而设计的,而 Copay 只是该恶意软件的受害者之一。


去年三月,研究人员发现另一个叫做 bootstrap-sasswa 的的 RubyGems 库也被置入后门。历史总是惊人地相似,上个月初,一个叫做 strong_password.的 RubyGems 库也发生类似感染。就像最近发现的感染 11 个 RubyGem 项目的事件一样,bootstrap-sass,strong_password 后门使用浏览器 cookie 功能,让攻击者能在受感染的服务器上执行代码。strong_password 后门还与 smiley.zzz.com.ua 域名进行了互动,而这个域名又与最近攻击中使用的 mironanoru.zzz.com.ua 非常相似。


供应链攻击变得更“容易”

事实上,除了开源软件,闭源软件也属于供应链攻击的牺牲品。


华硕两次被入侵,恶意更新税务会计软件 M.E.Doc 导致 2017 年 NotPetya 爆发,以及同年感染了 CCleaner 的另一个后门,这些事件都可以证明。为什么针对开源软件/项目的供应链攻击似乎更容易?因为很多公司不会在其庞大的贡献者群体中进行多因素身份验证和代码签名。


Atredis Partners 研发副总裁 HD Moore 表示:“最近的发现表明,这些问题越来越频繁,围绕软件包发布和管理的安全生态系统没有得到足够的改善。可怕的是,这些实例中的每一个都可能导致更多的开发人员帐户受到攻击(通过捕获的密码、授权令牌、API 密钥和 SSH 密钥)。攻击者可能有足够的凭据可以反复执行此操作,直到所有凭据都重置并放置了适当的 MFA 和签名。”


Moore 认为,开源供应链感染的影响通常难以衡量,因为后门应用程序可以被另一个软件包作为上游依赖项包含在内。而默认情况下,依赖管理工具推送最新软件包的方式,使得在后端依赖的情况下成功进行攻击的可能性更大。而开源攻击也会造成很大的损失,因为它们会影响用于执行电子邮件和提供网页等功能的服务器。


一旦服务器安装了一个后门应用程序,唯一办法就是执行一个完整的重建,但是这个任务非常繁琐艰巨, 在收到恶意篡改包的 100000 个或更多系统中肯定会有很多部分被忽略,从而导致重建困难。“如果不彻底重装操作系统和应用程序,以及轮换密钥和凭证,系统将有很大的风险并且继续受到威胁,但是运营商认为他们可以通过文件差异手动检查系统,并自己进行有效评估。”Open Crypto Audit 项目主管 Kenn White 表示,“但不得不说,这太天真了!”(本文转自freebuf.com


原文链接:


https://arstechnica.com/information-technology/2019/08/the-year-long-rash-of-supply-chain-attacks-against-open-source-is-getting-worse/


https://www.freebuf.com/articles/network/212434.html


2019 年 9 月 09 日 12:042377

评论 1 条评论

发布
用户头像
写的真好,交流一下
2019 年 09 月 09 日 13:52
回复
没有更多了
发现更多内容

moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解

老猿Python

Python 编程语言 音视频 Moviepy

渣硕试水字节跳动,本以为简历都过不了,123+HR面直接拿到意向书

云流

Java 程序员 架构 面试

《Redis 核心技术与实战》学习笔记 07

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

js逐步教你实现原生古诗匹配系统(html逻辑 css逻辑 js逻辑)

js

DCGM:监控Kubernetes集群的GPU资源

DCOS

kubernetest

Three.js杂记(八)—— 文本几何体

空城机

前端 WebGL 3D渲染 3D可视化 three.js

Three.js杂记(九)—— 练习:地球

空城机

前端 WebGL 3D可视化 three.js

Three.js杂记(十一)—— 精灵与粒子(绘制中国地图)

空城机

前端 WebGL 3D渲染 3D可视化 three.js

moviepy音视频剪辑:moviepy中的剪辑基类Clip的属性和方法详解

老猿Python

教你如何用霍夫变换完成扭曲车牌识别

程序媛观澜

机器学习 图像识别

域名和服务器的购买和配置

空城机

阿里云 轻量级服务器 云翼计划

JS逐步教你做(自己版本)的视频播放器(html逻辑 css逻辑 js逻辑)

js

Three.js杂记(十一)—— 精灵与粒子(绘制中国地图)

空城机

前端 WebGL 3D渲染 3D可视化 three.js

Three.js杂记(五)——坐标轴、光源

空城机

前端 WebGL 3D渲染 3D可视化 three.js

h5逐步实现 <<canvas系统>>(html逻辑 css逻辑 js逻辑)

js

从一道美团春招笔试题目出发,揭开树DP的神秘面纱

面鲸

面试 数据结构与算法 笔试题

Three.js杂记(十)——贴图

空城机

前端 WebGL 3D渲染 3D可视化 three.js

moviepy简介及安装

老猿Python

Python 编程语言 音视频 Moviepy PyQt

去了解一下区块链

空城机

区块链 笔记 区块链发展

「产品经理训练营」作业 06:用户路径地图与漏斗模型

狷介

产品经理训练营

时间复杂度总结

我是程序员小贱

3月日更

js逐步教实现表单系统(html逻辑 css逻辑 js逻辑)

go训练营毕业总结

伊灵

Three.js杂记(六)——3D模型

空城机

前端 WebGL 3D模型 3D可视化 three.js

真香!Github一夜爆火,阿里性能优化不传之秘终于开源

互联网架构师小马

Java 性能优化 JVM 性能调优 调优

js逐步教实现音乐系统(html逻辑 css逻辑 js逻辑)

js

如何减少加班导致的离职?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

工程方法事例实战

风翱

软件工程 3月日更

js逐步实现原生flex系统(html逻辑 css逻辑 js逻辑)

js

Three.js杂记(七)—— 全景效果制作·上(含python爬虫偷碎图,canvas重组图片)

空城机

前端 WebGL 3D渲染 3D可视化 three.js

js逐步实现原生控制系统(html逻辑 css逻辑 js逻辑)

js

数据库运维技术发展与展望

数据库运维技术发展与展望

开源软件的供应链安全吗?黑客利用源代码传播恶意软件-InfoQ