运行HTTP的风险日益增加,但仍可控

F5生态系统 | 2017年11月06日

无论我们是否愿意,HTTP都是当今事实上的应用传输协议,应用无处不在。它与IP和TCP一样普及,作用也大致相同。它的唯一目标是传输当今企业的数字黄金:数据。

这些数据采用JSON、XML还是URL编码并不重要。应用和设备通过HTTP与云端及本地数据中心的服务器和服务进行通信。

不过,与IP和TCP不同,HTTP是一种基于文本的协议。它非常灵活,可以传输从二进制到文本等多种数据。我们使用HTTP来流式传输、检索和收集数据。

攻击者经常利用HTTP,因为如前所述,它是一种基于文本的协议,对标头扩展的规则较为宽松。这些标头可指定各种信息,包括客户端希望服务器执行的操作(HTTP“方法”)、请求的资源(URI),以及可接受的内容类型(“Accept”标头)。这些宽松的规则旨在支持扩展。

例如,引入X-Forwarded-For标头是为了让开发人员能够“看到”原始客户端IP地址。在某些架构中,尤其是中间设备充当全代理时,这些信息可能会丢失。某些应用需要这些数据,因此开发人员(以及网络厂商)通过引入自定义标头扩展了HTTP协议。这是HTTP规范的一部分,允许在不更改协议的情况下进行创新并引入新的行为和功能。这是一项有益的设计。

但有时也并非如此。

如果支持HTTP的服务器开发人员或负责保护依赖HTTP的应用的人员未考虑这种灵活性,就可能带来问题。

以下列举了少量利用HTTP标头漏洞的HTTP相关CVE:

CVE 条目HTTP 标头骇人名称影响
CVE-2017-9798Method“Optionsbleed”数据泄露
CVE-2011-3192Range“Apache Killer”拒绝服务
CVE-2017-9805Content-type 远程访问或执行
CVE-2017-9788[Proxy-]Authorization 数据泄露或拒绝服务
CVE-2017-8219Cookie 拒绝服务
CVE-2017-7679Content-type 数据泄露
CVE-2017-6367Content-Length 拒绝服务

坦率地说,搜索与HTTP漏洞相关的已知CVE会返回一份过长的列表(涉及众多厂商和软件),因此这里不再逐一列出。其中相当一部分通常是通过滥用HTTP标头触发的。

关于Optionsbleed的说明

Optionsbleed是近期出现的漏洞之一。之所以特别指出它,是因为该漏洞存在于Apache HTTP本身。Netcraft目前估计,“超过280万台面向Web的计算机正在运行各种版本及衍生版本的Apache httpd,占所有面向Web的计算机的42.8%”,因此其中的漏洞会带来重大风险。所幸,这个特定漏洞虽然通过HTTP标头触发,但还要求Limits指令在.htaccess文件中配置错误。如果想深入了解复杂的技术细节,可以参阅Sophos的这篇文章,其中提供了清晰的概述。简而言之,如果存在这种错误配置,攻击者就可以通过HTTP方法标头利用Apache中的漏洞,并且(看起来)能够迫使服务器“泄露”其他人的数据。

前面说了这么多,就是为了说明这一点:应用安全是一个技术栈,其中包括应用所依赖的平台(以及相应的协议),例如HTTP。

我们需要更有效地保护HTTP,防止其被滥用而危及安全。无论是数据泄露、DoS还是远程访问,都不是重点。这些都会造成不良影响。我们需要更充分地认识到,HTTP正日益成为常见的攻击面。由于HTTP基于文本,客户端与HTTP服务之间的整个交互都应归类为用户输入。

这进而应促使我们采用包含输入净化措施的安全策略。没错,这意味着要在上游执行协议强制实施和数据清理(即在输入到达可能存在漏洞的HTTP服务器之前)。

这意味着,任何面向公众的HTTP服务前端都应部署Web应用防火墙或可编程代理,并主动清理传入的HTTP请求。

soad17-入站-出站-置信度

其原因在于Web平台处理HTTP标头的方式,也就是说,处理发生在开发人员看到请求之前。因此,对于平台级漏洞,我们不能简单地归咎于开发人员不安全的编码实践。

当然,安装补丁才是最终的解决方案。前提是:(1)您在漏洞披露当天就获知相关信息;(2)补丁也在当天发布;(3)您愿意将可能未经测试的补丁部署到生产系统。

不要误解,补丁必须安装,但从漏洞披露、发现,到补丁发布和应用之间存在时间差。这段时间会带来风险:极易被利用的漏洞可能会被攻击者用来攻击您的系统。

倒数第二种解决方案是确保已有一个系统(平台),可在其上部署即时补救措施,例如脚本或基于特征码的扫描,以防止漏洞遭到利用,同时为修补漏洞做好准备。

清理入站数据并强制执行协议规范应当成为任何企业安全策略不可或缺的一部分。

HTTP带来的风险日益增加,但只要认识到应用安全是一个分层体系,并在每一层部署相应的防护措施,就能有效管理这些风险。

分享
标签: 2017

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。