近期 PHP 官方发布紧急安全补丁,披露两项高危安全漏洞,漏洞等级达到严重级别,攻击者在无需身份验证的前提下,就可以构造恶意请求实现远程代码执行,直接接管 Web 服务器,窃取业务数据、植入后门、横向渗透内网,影响范围覆盖全球大量基于 PHP 开发的网站、管理后台、电商系统、内容管理平台。海外网络安全机构同步发布预警,提醒政府机构、企业、云服务商立刻开展资产排查、升级补丁,国内网信、工信、安全厂商同步启动应急响应,面向政企、互联网、中小企业推送漏洞处置指引,这场漏洞事件,再次让软件供应链安全、开源组件风险管理的议题摆在整个软件行业面前。
PHP 作为诞生多年的服务端脚本语言,凭借开发门槛低、部署便捷、生态组件丰富的特点,长期被广泛用于中小型网站、商城、论坛、后台管理系统开发,全球存量部署体量巨大,大量传统政企官网、地方业务平台、中小企业电商系统都基于 PHP 搭建。很多系统上线时间较早,多年没有迭代维护,服务器版本老旧,运维人员流动性大,长期没有跟进组件版本更新,成为安全薄弱点。本次漏洞影响主流稳定版本,攻击利用门槛低,POC 公开速度快,漏洞披露之后短时间内,全球就已经观测到批量扫描、尝试利用的攻击流量,黑客团伙通过自动化脚本全网探测存在漏洞的服务器,一旦发现未打补丁资产立刻实施入侵。
从攻击危害来看,远程代码执行漏洞属于最高危的漏洞类型。攻击者拿到服务器权限之后,可以篡改网站页面投放黑链、钓鱼内容,窃取数据库内用户手机号、账号密码、订单信息,植入挖矿程序占用服务器算力,把服务器纳入僵尸网络发起 DDoS 攻击,还可以以此为跳板,向内网其他服务器、业务系统渗透。对于政企单位,网站被入侵会造成政务信息泄露、公信力受损;对于电商、服务类企业,客户数据泄露会触发数据安全法、个人信息保护法相关合规责任,面临监管处罚与用户索赔风险。尤其很多中小企业缺乏专职安全团队,网站由外包团队开发交付,外包结束之后没有持续安全运维机制,补丁升级、漏洞巡检长期缺位,是本次事件当中风险最高的群体。
应急处置流程当中,也暴露出国内软件行业长期存在的共性短板。大量业务系统依赖开源组件、开源框架搭建,开发阶段只关注功能是否实现,缺少软件物料清单梳理,开发人员说不清系统内部引用哪些开源库、具体版本号、许可证信息,漏洞爆发之后,很难快速定位哪些业务系统受到影响,只能全网逐一扫描排查,处置效率大打折扣。很多企业的安全管控停留在上线前一次渗透测试,缺少常态化开源组件扫描、版本监控机制,对开源项目漏洞公告、安全预警信息接收不及时。还有部分系统因为业务改造复杂、担心升级之后出现兼容性故障,运维人员抱有侥幸心理,延迟补丁更新,给攻击窗口留出充足时间。
国内网络安全厂商快速推出自动化扫描工具、漏洞检测脚本,面向政企、云租户提供免费检测服务,安全专家梳理处置方案,区分直接升级补丁、临时防护规则、流量侧拦截等多种方案,给无法立刻停机升级的业务提供临时缓解措施。云服务商同步在 WAF、云防火墙侧增加特征规则,拦截已知攻击载荷,为用户争取补丁修复时间。各地网信部门也面向辖区单位下发通知,要求全面摸排 PHP 资产,建立台账,限期完成修复,同步做好访问日志留存、入侵痕迹排查,一旦发现被入侵资产,及时隔离溯源,排查是否存在数据外泄情况。
跳出本次单一漏洞事件,开源软件供应链风险已经是全球软件行业共同面对的长期挑战。现代软件开发很少从零手写全部代码,绝大多数项目都会引入大量开源语言库、框架、工具组件,开发效率大幅提升的同时,安全责任边界变得模糊。开源项目由全球社区志愿者维护,维护团队规模参差不齐,部分项目维护者精力有限,漏洞发现、修复周期不可控,漏洞信息公开之后,攻击者和防护方同步获取信息,防御方必须和黑客竞速。过往已经出现多起知名开源组件漏洞事件,波及金融、能源、政务、互联网,充分证明供应链攻击已经成为网络攻击的主流方向。
行业层面正在逐步完善管控体系,软件物料清单 SBOM、开源治理平台、持续软件成分分析 SCA 工具开始在大中型软件企业普及,在开发流水线当中嵌入自动化扫描,在代码提交环节识别存在漏洞、许可证不合规的组件,从源头管控风险。监管层面也在持续强化要求,关键信息基础设施运营者、大型软件服务商需要建立开源组件管理制度,梳理供应链清单,跟踪漏洞预警,制定应急响应预案。但中小企业的治理短板依然突出,成本、技术、人员限制,导致开源安全治理很难落地,是后续行业治理需要重点覆盖的群体。
开发者的安全意识提升同样重要。很多开发人员更侧重业务功能实现,对开源组件版本风险、漏洞影响认知不足,习惯于直接复制网上开源代码、直接拉取最新版本组件,缺少版本锁定、安全验证习惯。行业协会、安全厂商持续开展科普培训,引导开发者建立 “开源不等于免费、开源不等于安全” 的认知,在选型时优先选择维护活跃、安全记录良好的开源项目,控制引入组件数量,减少不必要依赖,降低攻击面。
本次 PHP 高危漏洞事件是一次鲜活的行业安全演练。漏洞的快速爆发、攻击自动化扩散的态势,提醒所有软件从业者,软件上线不是安全工作的终点,而是持续运维、持续监测、持续修复的起点。对于软件企业、系统集成商而言,在交付项目时,除交付功能代码,还应当同步交付 SBOM 清单、运维安全指引、漏洞响应联系方式,建立交付后的持续安全服务机制,而不是交付之后不再跟进。
随着数字化深入推进,各行各业业务系统持续上云、互联互通,软件供应链攻击的连锁影响会持续放大。整个软件行业需要共同完善开源治理体系,补齐中小企业安全能力短板,把安全内嵌入需求、开发、测试、运维全生命周期,建立常态化预警、检测、修复闭环,才能持续抵御层出不穷的供应链安全威胁,守护数字业务稳定运行。