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

编译:奇安信代码卫士

专栏·供应链安全

数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。

随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。

为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。

注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。

本文作者说明了受 RCE 和供应链影响的 Linux 应用市场,全文编译如下。

概要

  • 基于 Pling 平台的 Linux 市场易受可蠕虫 XSS 漏洞影响,可能会引发供应链攻击

  • 原生的 PlingStore 应用程序受一个 RCE 漏洞影响;当该 app 运行时,任意网站均可触发该漏洞

  • 由于无法联系到Pling 团队本文中提到的多个漏洞均未修复,目的是告警用户

  • KDE Discover 和 Gnome Shell Extension 团队快速修复了我们报告的其它低危漏洞

KDE Discover

今年年初,我们分析了流行的桌面应用程序如何处理由用户提供的 URI 并从多个URI 中找到多个代码执行漏洞。我检查的其中一个应用程序是 KDE Discover App Store,它以不安全的方式处理了不可信的 URI(CVE-2021-28117)。

在这个过程中我找到了其它 FOSS 市场中的多个其它严重漏洞。

截至目前,可能用于在基于 Pling 市场上发动供应链攻击的可蠕虫 XSS 以及可影响 PlingStore 应用程序用户的路过式 RCE 仍然是可利用的。

影响多个市场的可蠕虫 XSS

KDE Discover 从 https://store.kde.org 检索并展示数据。在创建自己的清单(listing)以测试 Discover 的 URI 处理时,我偶然发现设计上很像 XSS的字段:

虽然一个简单的XSS payload 不起作用,但足以先添加一个嵌入式框架然后在另一行添加一个恶意 JavaScript payload:

(在 HTML 代码部分添加 XSS payload)

(访问恶意清单,触发 XSS)

这个存储型 XSS 可用于修改活跃清单,或者在其它用户上下文中在 Pling 商店中发布新的清单,从而导致可蠕虫 XSS。除了典型的 XSS 危害外,还可使用执行如下两个步骤的 JavaScript payload 实施供应链攻击 XSS 蠕虫:

1、上传软件新(后门)版本

2、 将受害者清单的元数据更改为包含该恶意 payload

耐人寻味的是,KED Store 仅仅是基于 Pling 平台的众多商店之一,它们不仅共享这个漏洞,而且还共享用户账户和会话数据。

如下是互联且易受攻击的基于 Pling 的 FOSS App Store清单:

  • appimagehub.com

  • store.kde.org

  • gnome-look.org

  • xfce-look.org

  • pling.com

PlingStore RCE

所有基于 Pling 的应用商店都在推广使用原生的 PlingStore app。该 app 是 Electron 应用程序,能够展示不同网站并支持点击一次的 app 轻松安装。

该 XSS 也可在 PlingStore 内触发,而且在和 Electron 沙箱绕过结合时可能提升至 RCE。

然而,由于 PlingStore 可安装其它应用程序,因此它具有在操作系统级别执行代码的内置机制。结果显示,当 PlingStore 在后台打开时,任意网站均可利用该机制运行任意原生代码。

设计上的 RCE

启动 PlingStore app 时,它还会启动 WebSocket 本地服务器 ocs-manager,监听来自 PlingStore app 的信息。ocs-manager 执行多个函数,PlingStore app 可调用这些函数来检索信息或触发多种操作。

组合如下三个函数调用,就可以执行任意代码:

1、调用 ItemHandler::getItem:从任意 URL 下载 AppImage 作为类型 bin

2、调用 ConfigHandler::getAppConfigInstallTypes,泄露完整的 bin 目录路径(默认在 home 目录,因此取决于用户名)

3、调用 SystemHandler::openUrl,参数 AppImage 路径(执行对AppImage 文件的特殊处理以执行文件而非通过默认应用程序启动)

在 PlingStore app 内触发 XSS 时,该 payload 能够建立与 WebSocket 本地服务器的连接并发送信息以执行任意原生代码(通过下载并执行 .AppImage 文件)。

从任意浏览器进行利用

浏览器不对 WebSocket 连接执行同源策略。因此,很有必要验证源服务器段或对 WebSocket 连接实现额外的认证。对于 ocs-manager 而言,事实并非如此,这意味着任意浏览器中的任意网站均可启动对 WebSocket 服务器的连接,而 ocs-manager 将愉快地接受发过来的任意命令。

利用演示视频如下:

当PlingStore 在后台运行时,通过任意浏览器访问恶意网站就会触发利用。该 PoC payload 下载 AppImage 文件启动 xmessage,其中自定义字符串为参数,以此演示任意代码执行。

漏洞披露

遗憾的是,我无法通过任何联系地址和通信渠道(如电话或论坛帖子)联系到 Pling/OpenDesktop/hive01 GmbH 的任何人。因此我无法得到关于这些漏洞的证实或修复它们。我发布这篇文章的目的是和告警用户以及该平台的总体维护状况(实际上我还报告了另外一个漏洞,不过不会直接影响用户)。

时间线

  • 2021-02-24:通过向contact@opendesktop.org发送邮件,首次披露

  • 2021-02-26:创建了一条论坛帖子(现已被锁定),尝试联系所属公司/CEO,并向@goerke-partner.com 发送邮件

  • 2021-03-03:邮件跟进

  • 2021-03-03:向security@kde.org 披露问题,立即获得回复

  • 2021-03-08:KDE Discover 漏洞补丁发布,向 Pling 团队联系人发送了其它问题

  • 2021-03-10:KDE Discover 补丁和安全公告发布

  • 2021-03-16:Pling邮件跟进

  • 2021-04-12:Pling 邮件跟进并尝试通过聊天联系

  • 2021-04-28:通过 KDE Discover 团队联系到 Pling 团队

  • 2021-04-28:邮件发送给新的联系人,提到如果无法和团队获得联系则会公开漏洞

  • 2021-05-27:跟进新联系人

  • 2021-06-18:向所有之前联系过的人员宣布将公开漏洞

  • 2021-06-22:漏洞公开

Gnome Shell 扩展 XSS

作为 Gnome 用户,我发现另外一个市场并未连接至 Plingiverse(https://extensions.gnome.org)。该扩展商店同时通过浏览器扩展(Chrome 和 Firefox)以及原生的 “connector” 应用程序提供原生集成。这次,来源已验证,阻止其它网站和原生连接器通信。

chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse) {if (sender.url.startsWith(EXTENSIONS_WEBSITE)) // EXTENSIONS_WEBSITE = "https://extensions.gnome.org/"
}

然而,通过 https://extensions.gnome.org 上的 XSS,可通过该检查收集信息、启用扩展或触发新扩展的安装。

将一个 javascript:URI 指定为 “Extension Homepage” 即可找到基础的 XSS(只需点击):

和基于 Pling 的应用商店不同,Gnome Extension 提交经过了审计。虽然这可能会提升质量并捕捉到恶意扩展,但也意味着已登录审计人员(可能拥有高权限)将会查看带有恶意 payload 的审计页面。除此之外,审计页面本身在提交之后会立即公开,链接可被发送给其它潜在受害者。

和 Pling XSS 类似,它可用于劫持用户/审计人员账户实施供应链攻击(为已发布扩展做后门),或者通过向 Gnome Shell Integration 浏览器扩展发送命令来直接攻击受害者计算机。

该漏洞已在2021年2月24日报告给 Gnome,且在24小时内修复。

结论

应用市场位于两个世界的相交处:

1、用户提供的内容,多数通过web技术展现给用户

2、 管理并安装原生应用程序

虽然第1点被认为是高度不受信任的,且被严重沙箱化。但 App Store 集成创建了通向第2点的桥梁,第2点要求更高级别的信任。

本文说明的多个漏洞表明和这类市场相关联的额外风险。在这种环境下,即使是相对微小的漏洞(如来源检查缺失)都可能造成严重后果(易受攻击应用程序在后台运行,任意浏览器即可造成路过式 RCE)。这类应用程序的开发人员必须严格审计以确保安全性。

对于以上提到的 Pling 市场用户而言,建议:

  • 不要运行 PlingStore Electron 应用程序(最好删除 AppImage),直至 RCE 被修复。

  • 注意 appimagehub.com/store.kde.org/gnome-look.org/xfce-look.org/pling.com 上的任意清单均可通过 XSS 劫持该平台上的账户,而且任何可下载资产可能会被攻陷(最好在问题修复前,登出账户且不要使用这些网站)。

推荐阅读

谷歌Linux基金会等联合推出开源软件签名服务 sigstore,提振软件供应链安全

详解ThroughTek P2P 供应链漏洞对数百万物联网设备的安全新风险

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

奇安信专家:近八成软件存开源漏洞 供应链需全生命周期安全防护

详细分析PHP源代码后门事件及其供应链安全启示

原文链接

https://positive.security/blog/hacking-linux-marketplaces

题图:Pixabay License

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

奇安信代码卫士 (codesafe)

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

产品线。

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

Linux 应用市场易受RCE和供应链攻击,多个0day未修复相关推荐

  1. 2011年至2019年制造的 AMD 处理器均易受两种新型攻击

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周,奥地利格拉茨技术大学和法国雷恩大学的六名研究人员表示,2011年至2019年制造的 AMD 处理器易受两种新型攻击的影响.它们影响 ...

  2. 思科称其安全设备易受 SNIcat 数据渗透攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 思科表示该的某些安全产品未能检测并阻止流量进入恶意服务器,导致攻击者滥用 SNIcat 技术从企业网络窃取数据. 受影响设备包括运行 FTD ( ...

  3. Control Web Panel 中两个严重漏洞使Linux 服务器易受RCE攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 研究人员详述了位于 Control Web Panel 中的两个严重漏洞.它们可用于利用链中,在受影响服务器上实现预认证远程代码执行. 第一个漏 ...

  4. 分段显示 linux_ArchAudit:一款在 Arch Linux 上检查易受攻击的软件包的工具 | Linux 中国...

    Arch-audit 是一个类似于 Arch Linux 的 pkg-audit 工具.它使用了令人称赞的 Arch 安全小组收集的数据.-- Prakash Subramanian 我们必须经常更新 ...

  5. 黑客狂野利用零日漏洞:小米三星也中招,安卓手机最易受此漏洞的攻击?

    零日漏洞的另一个启示,这次是在全球使用最广泛的移动操作系统Android中.黑客无处不在,知名网络安全专家,东方联盟创始人郭盛华还发现了Android 0day漏洞的狂野利用,这是臭名昭著的,因为它向 ...

  6. 第三方依赖关系的风险:利用数十个易受攻击的 NuGet包瞄准 .NET 平台

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 研究人员分析NuGet 仓库上托管的现成可用软件包后指出,51个唯一的软件组件易受多个可活跃利用高危漏洞的影响,再次说明了第三方依赖关系对 ...

  7. 探讨:软件厂商Kaseya事件是不是软件供应链攻击?

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  8. Atlassian 域名被曝一次点击账户接管漏洞 可导致供应链攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  9. Intel CPU 易受新型的 SGAxe 和 CrossTalk 侧信道攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 网络安全研究员发现了两种针对当代 Intel 处理器的攻击,可泄露CPU 可新执行环境 (TEE) 中的敏感信息. 第一种攻击名为 & ...

最新文章

  1. Linux操作系统及平台虚拟化技术漫谈
  2. source insight快捷键及使用技巧
  3. 移动应用如何提升登录转化率
  4. 在Java中衡量执行时间– Spring StopWatch示例
  5. 封装出现 用户.计算机,ES4封装WIN7出现[Administrator.计算机名]目录的可能解决方案...
  6. Mac与centos的ip配置
  7. 自学Java第一周的总结
  8. DFA和NFA的区别
  9. [转载] python自定义error_Python 自定义异常处理Error函数
  10. cad中计算机的快捷键,CAD中一些常用的快捷键用法
  11. Ubuntu安装N卡驱动
  12. android降低屏幕分辨率,让游戏更尽兴 手动调低Android手机屏幕分辨率
  13. 数组:s.length()与s.length的区别
  14. wing带你玩转自定义view系列(3)模仿微信下拉眼睛
  15. linkerd1.6 local安装方式文档
  16. 上交大计算机在职研究生学费,交大在职研究生学费
  17. 首都经贸计算机考研怎么样,【考研心路历程】首都经贸大学考研的回忆与感悟...
  18. MATLAB导入EXCEL表格数据画散点图
  19. 如何进行系统安全评估
  20. 读《遥远的救世主》与观看电视剧天道

热门文章

  1. Unity3d + UGUI 的多分辨率适配
  2. 《Spring1之 第一次站立会议(重发)》
  3. JAVA程序获取Tomcat的运行状态
  4. sqlserver监控(备忘)
  5. Android,已知应用名称, 通过应用名称来启动应用
  6. centos 编译内核至2.6.39.4
  7. 结构型模式:Decorator 装饰模式
  8. extract-text-webpack-plugin
  9. 【NOIP2013提高组T3】加分二叉树
  10. 单链表的读取、插入与删除