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

专栏·供应链安全

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

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

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

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

前言

北京时间3月29日,php官方发布其 git.php.net 服务器遭攻陷,攻击者仿冒PHP编程语言作者Rasmus lerdorf和软件开发者 Nikita Popov 的账号发起了两次恶意代码提交,并留下了远程代码执行后门。本文将从技术角度分析这起事件,并探讨它所折射出的软件供应链安全问题。

源码分析

拉取被植入恶意代码版本的源码后,定位到函数php_zlib_output_compression_start() 。

攻击者仿冒开发者身份,将恶意后门代码插入于 zlib 扩展的php_zlib_output_compression_start() 函数中。

触发 php_zlib_output_compression_start() 函数后,会进行两个判断:

第一个判断全局变量TRACK_VARS_SERVER 类型是否为ARRAY,以及参数_SERVER是否存在。

在第二个判断中,zend_hash_str_find() 把第二个参数作为 KEY值,在第一个数组参数中查找并返回一个指针结果。

当同时满足这两个判断时,将enc参数转换为字符串类型:

通过Z_STRVAL_P(enc)引用指针地址,使用strstr()函数判断字串 zerodium 是否存在。

当攻击者留下的请求判断被通过后,就可以进入代码执行函数:

Zend_eval_string() 函数通过第一个参数以指针移动8位跳过“zerodium”字符,引用“zerodium”后面的代码内容进行命令执行,第三个参数作为执行描述进行标识。

可以在http头部构造类似的payload:

User-Agent:zerodiumsystem(“touch /tmp/php-evil/evil”);

触发此代码执行后门。

zlib_output_compression功能会根据用户请求对页面返回信息进行压缩,以提高反应速度,默认情况下为关闭状态。

修改配置信息后,

可以开启此功能。

在源代码分析阶段,误以为需要开启output_compression才可以触发此漏洞,但经过实际环境复现,发现并不需要,而是可以直接触发。

漏洞复现

1、 环境配置

  • 编译安装被植入恶意代码的php源码;

  • 安装nginx,并配置连接php;

  • 创建简单测试php文件:

<?php echo “hello world”;?>

2、通过 burpsuite 添加恶意 header 头

User-Agentt: zerodiumsystem("touch /tmp/php-evil/evil");

漏洞触发如下图所示:

此次恶意提交因过于明显,已被官方及时发现删除。PHP 官方发布公告称,为避免不必要的安全风险,目前已停用git.php.net服务器 ,且已经在最新版本中删除了此次植入的代码。另外,之后的更新将直接发布在 GitHub 平台上,不再推送到服务器。

供应链安全事件应对建议

使用越来越广泛的开源项目已成为软件基础设施的核心组成部分,开源项目自身的开发安全也愈发重要。代码托管服务器、Git账户、社区账户、制成品仓库等各个开发环节都有可能成为不法黑客的攻击目标。这次PHP官方 Git 服务器被攻陷就是一个典型的案例。

为此,只有整个开源生态在供应链的各个环节建立一系列的安全准则和最佳实践,才能切实保障整个网络空间的安全。例如,在代码最终交付之前,采用应用安全的静态、动态分析方案,尽可能避免造成后门或漏洞;在供应链的各个环节中,引入完整性校验技术及流程,避免遭意外或恶意篡改。


目前,奇安信代码卫士和开源卫士已支持对PHP相关漏洞的检测。

奇安信代码卫士

基于奇安信代码安全实验室多年的技术积累,奇安信在国内率先推出了自主可控的源代码安全分析系统——奇安信代码卫士和奇安信开源卫士。奇安信代码卫士是一套静态应用程序安全测试系统,可检测1300多种源代码安全缺陷,支持C、C++、C#、Objective-C、Swift、Java、JavaScript、PHP、Python、Cobol、Go等20多种编程语言。奇安信开源卫士是一套集开源软件识别与安全管控于一体的软件成分分析系统,通过智能化数据收集引擎在全球范围内获取开源软件信息和漏洞信息,帮助客户掌握开源软件资产状况, 及时获取开源软件漏洞情报,降低由开源软件带来的安全风险,奇安信开源卫士目前可识别4000多万个开源软件版本,兼容NVD、CNNVD、CNVD等多个漏洞库。

推荐阅读

微软“照片”应用Raw 格式图像编码器漏洞 (CVE-2021-24091)的技术分析

速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年

SolarWinds 供应链事件后,美国考虑实施软件安全评级和标准机制

找到软件供应链的薄弱链条

GitHub谈软件供应链安全及其重要性

揭秘新的供应链攻击:一研究员靠它成功入侵微软、苹果等 35 家科技公司

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

Linus Torvalds 警告:勿用 Linux 5.12 rc1,担心供应链攻击?

微软和火眼又分别发现SolarWinds 供应链攻击的新后门

找到恶意软件包:Go 语言生态系统中的供应链攻击是怎样的?

拜登签署行政令,要求保护美国关键供应链(含信息技术)的安全

坐火车太无聊,我溜入微软 VS Code官方GitHub仓库,但没敢发动供应链攻击

SolarWinds 供应链攻击中的第四款恶意软件及其它动态

OpenWRT开源项目论坛遭未授权访问,可被用于供应链攻击

FireEye事件新动态:APT 攻击 SolarWinds 全球供应链(详解)

FireEye 红队失窃工具大揭秘之:分析复现SolarWinds RCE 0day (CVE-2020-10148)

FireEye红队失窃工具大揭秘之:分析复现Zoho ManageEngine RCE (CVE-2020-10189)

FireEye 红队失窃工具大揭秘之:分析复现 Zoho 任意文件上传漏洞(CVE-2020-8394)

FireEye 红队失窃工具大揭秘之:分析复现 Confluence路径穿越漏洞 (CVE-2019-3398)

FireEye 红队失窃工具大揭秘之:分析复现 Atlassian RCE (CVE-2019-11580)

Ripple 20:严重漏洞影响全球数十亿IoT设备,复杂软件供应链使修复难上加难

被后爹坑:开源 JavaScript 库沦为摇钱树

速修复!开源企业自动化软件 Apache OFBiz 出现严重的 RCE 漏洞

谷歌提出治理开源软件漏洞的新框架:知悉、预防、修复

开源软件漏洞安全风险分析

开源OS FreeBSD 中 ftpd chroot 本地提权漏洞 (CVE-2020-7468) 的技术分析

集结30+漏洞 exploit,Gitpaste-12 蠕虫影响 Linux 和开源组件等

题图:Pixabay License

奇安信代码卫士原创出品。转载请注明 “转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

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

产品线。

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

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

  1. 详细分析开源软件 ExifTool 的任意代码执行漏洞 (CVE-2021-22204)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 本文作者详述了自己如何从 ExifTool 发现漏洞的过程. 背景 在查看我最喜欢的漏洞奖励计划时,我发现他们使用ExifTool 从所上 ...

  2. 详细分析 Chrome V8 JIT 漏洞 CVE-2021-21220

     聚焦源代码安全,网罗国内外最新资讯! 前言 CVE-2021-21220 是4月13号在 github 上公开的一个半 0day v8 引擎 JIT 模块漏洞.由于当时最新stable版本 (89. ...

  3. PHP源代码后门事件后续:用户数据库遭泄露或是元凶

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

  4. lapsus盗取微软bing源代码的详细分析过程

    说明 本文是在搜集lapsus案例过程中无意发现,感觉微软对此事件分析的比较全面,因此参考微软官方博客,进行翻译了修订而形成,希望对各位在分析类似事件有所帮助 微软介绍lapsus$事件 随着 Mic ...

  5. linux操作系统源码分析,linux操作系统源代码详细分析.doc

    linux操作系统源代码详细分析.doc LINUX操作系统源代码详细分析内容简介LINUX拥有现代操作系统所有的功能,如真正的抢先式多任务处理.支持多用户,内存保护,虚拟内存,支持SMP.UP,符合 ...

  6. Media Player Classic - HC 源代码分析 9:CFGManager类详细分析(CFGManager)

    上一篇文章分析了Media Player Classic - HC(mpc-hc)的源代码中的CFGManager类的RenderFile函数: Media Player Classic - HC 源 ...

  7. 详细分析开源软件项目 Ajax.NET Professional 中的RCE 漏洞(CVE-2021-23758)

     聚焦源代码安全,网罗国内外最新资讯! 作者:Hans-Martin Münch 编译:代码卫士 2021年秋,MOGWAI LABS 实验室在为客户进行渗透测试过程中发现了开源组件 "Aj ...

  8. 详细分析微软“照片”应用图像编码器漏洞 (CVE-2020-17113)

     聚焦源代码安全,网罗国内外最新资讯! 在上一篇<微软"照片"应用Raw 格式图像编码器漏洞 (CVE-2021-24091)的技术分析>中,笔者基于对Olympus ...

  9. 详细分析 Sonlogger 任意文件上传漏洞 (CVE-2021-27964)

     聚焦源代码安全,网罗国内外最新资讯! 概述 Sonlogger 是土耳其SFC 公司 开发的一款应用软件,兼容土耳其<第5651号法>,是一款基于 Web 的 SonicWall 防火墙 ...

最新文章

  1. 进击谷歌:多线程下程序执行顺序怎么稳定不乱?
  2. github 搜索_因为这个工具,我在 GitHub 搜索源码的时间缩短了 50%!
  3. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集的下载(基于python语言根据爬虫技术自动下载MNIST数据集)
  4. php list 转tree,PHP 数组转树形结构
  5. Android常用的开源框架
  6. 桌面图标有阴影怎么去掉
  7. No buffer space available
  8. sql 2008找不到服务器,sql server 2005 数据库迁移问题总结——错误 ‘80004005’ 在 sys.servers 中找不到服务器 ‘XXX’...
  9. MasterPage简介
  10. Unable to process Jar entry
  11. 阿里云宗志刚:云网一体,新一代洛神云网络平台
  12. 《微机原理与应用》题库
  13. python刷课思路_江西干部网络学院-刷课思路
  14. 3dmax:3dmax三维建模中常用的材质、贴图、渲染设置之详细攻略
  15. 奔图打印机显示未连接_打印机无法打印的10种解决方法
  16. C语言课程设计报告-菜单设计
  17. 口碑点餐相关问题FAQ
  18. 【Mac 教程系列第 8 篇】Mac 更换锁屏时的头像
  19. manage run-time environment
  20. win7 快速启动栏 里的快捷方式存放路径

热门文章

  1. 2022安全员-B证考试题模拟考试题库及模拟考试
  2. python笔记打卡
  3. 微信退款关于证书的使用
  4. 【xgboost】XGBoost
  5. nodejs高考志愿填报辅助系统的设计与实现vue
  6. 无符号数与有符号数比较大小
  7. Camera2 打开相机预览界面
  8. 精确Top-K检索及其加速方法探讨
  9. idea回退操作reset、revert
  10. 短视频+电商直播,未来可期!