PHP多个版本爆出远程DoS漏洞深入分析及防护方案-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

PHP多个版本爆出远程DoS漏洞深入分析及防护方案

中国好人 2015-05-22 16:27:26 7687

5月22日消息,近日,php多个版本爆出远程DoS漏洞(官方编号69364),利用该漏洞构造poc发起链接,很容易导致目标主机cpu的100%占用率,绿盟科技威胁响应中心随即启动应急机制, 启动应急响应工作,总结PHP漏洞要点,并制定了一系列防护方案。
   受此漏洞影响的软件及系统包括PHP的版本有:
  • PHP 5.0.0 - 5.0.5
  • PHP 5.1.0 - 5.1.6
  • PHP 5.2.0 - 5.2.17
  • PHP 5.3.0 - 5.3.29
  • PHP 5.4.0 - 5.4.40
  • PHP 5.5.0 - 5.5.24
  • PHP 5.6.0 - 5.6.8
  此次漏洞具备的特性有:
  1. 一旦被利用成功,可以在迅速消耗被攻击主机的CPU资源,从而达到DoS的目的;
  2. PHP在全球的部署量相当大,为攻击者提供了相当多可以攻击的目标;
  3. PHP官方目前仅给出了5.4及5.5版本的补丁。
  有关PHP远程DoS漏洞
  4月3日,有人在PHP官网提交PHP 远程DoS漏洞(PHP Multipart/form-data remote dos Vulnerability),代号69364。该漏洞涉及PHP的所有版本,影响面较大,所以发布后迅速引发多方面关注。14日,各种PoC已经在网络上流传。
  Boundary中的键值对分隔
  PHP是一种流行的Web服务器端编程语言,它功能强大,简单易用,利用它编写网络应用程序,可以应对大规模的Http请求,所以很多业务环境中都部署了PHP。考虑规范性,PHP在设计之初就遵循rfc规范,进行各个协议模块的封装及过程处理。PHP与其他同样遵循rfc规范的语言及环境相比,不过是处理方式不同。
  而从rfc1867开始,http协议开始支持"multipart/form-data"请求,以便接受多种数据格式,包括多种变量甚至是文件上传。multipart/form-data中可以包含多个报文,每一个报文boundary(分隔符)分隔开来,而每个报文中都包含了多行键值对,键值对用冒号分隔,这样的设计是为了让程序可以清晰的区分这些数据。
  

  如果您使用了PHP的其它版本,请随时关注PHP官方的最新通告。
   业务安全加固
  在一些大型的企业或组织中,PHP远程DoS漏洞的防护或许并不能快速执行,其原因在于:1需要考虑业务系统的可用性;2需要考虑整体实施方案制定;3需要尽可能降低加固动作对业务环境的二次伤害。这就需要企业自身、漏洞相关厂商、安全厂商一起协作才能形成快速、安全、有效的行动方案,避免业务系统在获得安全加固之前遭受攻击。在此次应急响应过程中,绿盟科技的服务人员向客户建议行动方案应该且至少包含如下环节:
  • 首先,应该第一时间获取漏洞通告及相关信息,了解此次漏洞的影响范围及深度。
  • 再者,需要将通告和解读与自身实际IT业务系统状况相结合,全面判断出影响范围和程度(这包括对自身业务及对其客户的影响程度),这个判断过程,需要数据作为准确方案制定的事实依据,建议用户使用安全可靠的漏洞扫描工具,升级最新发布的插件或规则库,对全网进行安全扫描,拿到第一手数据后以便作为决策依据;
  • 再次,IT人员需要从业务稳定性、危害程度和范围及重要性等多个维度综合考虑,制定整改时间计划表,权重由高到低依次对局部网络及主机设备或某业务系统设备展开整改和加固工作(建议邀请漏洞相关厂商及安全厂商一同参与)。
  • 这个阶段需要安全厂商提供专业技术协助,比如漏洞加固咨询、验证加固是否成功;同时需要了解安全厂商的哪些设备已经发布或即将发布防护规则,升级后即可进行防护;
  • 如果还没有采用任何一款安全设备,就需要采取临时防护措施,包括采用漏洞相关厂商及安全厂商的相关方案,为整体加固争取时间,避免在未加固整改成功之前这个窗口时间遭到攻击并受到损失,这样的情况在相当多的0day事件中屡见不鲜;
  • 另外,还需要漏洞相关厂商与安全厂商通力协作,互相沟通漏洞原理和利用过程,进行较深层次的解读,才能够促进漏洞相关厂商的开发人员深入了解这个漏洞并根据其自身情况进行代码层面的整改;
  • 然后,在加固阶段性或整体完成后,需要再次进行完整扫描和人工验证整改加固结果,在技术投入允许的条件下,建议您再次进行各方面日志分析,观察整改加固期间有没有成功的攻击到其系统造成其他损失;
  • 最后,在整体响应工作完成后,进行总结和备案记录。
  内容提供:绿盟科技
监控 安全 PHP 数据格式
分享到
取消 提交回答
全部回答(1)
  • kideny
    2015-06-03 17:11:42
    刚升级到5.6.9,这个版本修复了漏洞?
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题