HTTP无处不在。电视使用HTTP,手机、平板电脑和汽车也是如此。只要设备具备联网功能,它很可能就能像您使用母语一样熟练地使用HTTP。

HTTP非常灵活。与网络协议中的TCP和IP不同,它从A点向B点传输的信息几乎不受限制。IP和TCP必须遵循非常严格且固定的标准,甚至逐位规定可使用的值;而HTTP对其承载的数据则较为宽松。文本。二进制。JSON。XML。加密数据。纯文本。
HTTP就像蜜獾一样,什么都不在乎。它什么都能传输,甚至还能传输更多内容。
HTTP不断展现其灵活性的方式之一,就体现在用户很少看到的标头中。这些标头是每个HTTP请求和响应所携带的元数据,其中包含从内容类型、内容长度、授权令牌,到暴露身份和访问轨迹的各种线索,无论您是否愿意。
这一点值得注意,因为正如我们在容器领域所看到的,HTTP标头的用途正在不断扩展:它不仅用于在客户端与服务之间传输数据,还可用于共享元数据,使这些快速变化的环境能够高效扩展。
服务网格这一概念日益受到关注,随之而来的还有用于承载运维信息的自定义HTTP标头。Buoyant的这篇博客(Buoyant是两种主流开源服务网格实现之一的开发公司)说明了如何依靠HTTP标头共享遥测数据,以实现必要的跟踪关联,从而帮助简化构成单个HTTP请求和响应对的高度复杂的跨服务事务。
如果不想阅读全文,以下是其中最相关的内容,重点标记由我添加:
虽然Buoyant喜欢将linkerd提供的所有额外跟踪数据称为“微服务的神奇遥测调料”,但实际上,我们需要少量请求上下文来将各条跟踪记录关联起来。linkerd收到请求时会建立该请求上下文。对于HTTP请求,当linkerd将请求代理到应用程序时,会通过HTTP标头传递该上下文。为使应用程序保留请求上下文,应用程序发出的任何出站请求都必须原样包含所有入站l5d-ctx-* HTTP标头。
需要注意的是,上述自定义HTTP标头只是这些高度分布式系统中用于共享遥测数据的多种标头之一。正如博客中所述,l5d-sample标头可用于调整跟踪采样率。因此,它不仅用于共享信息,还用于实现对系统的运行控制。
请花一点时间理解这一点。HTTP标头用于控制运行中系统的行为。请记住这一点,后文几段将会用到。
在这种情况下,控制平面与数据平面并未分离,而是同时传输,并由端点区分形式与功能。由于此解决方案采用服务网格概念,即服务的每个入站和出站请求都要经过代理,因此很容易实现这种区分。代理可以筛选出用于控制操作的HTTP标头并据此执行操作,然后再将请求(或响应)转发给预期接收方。代理还可以添加操作指令并插入遥测数据,以便后续关联追踪记录。
应用网络在容器环境中也日益普及。虽然它一直存在(至少对我们这些从事可编程代理工作的人来说是如此),但随着灵活性需求不断增长,其应用也越来越广泛。Ingress Controller本质上是可编程代理,不仅可以根据IP地址或FQDN进行路由,还可以根据通常由HTTP标头承载的应用特定数据进行路由。版本控制、流量导向、扩缩容,Ingress Controller的这些功能都得益于HTTP对标头内容不作限制的特性。
遗憾的是,HTTP标头本身也可能成为攻击途径。因此,我们必须慎重考虑依赖HTTP标头来共享运维数据乃至控制运维行为可能造成的影响。HTTP标头具有很大的不确定性(说真的,请阅读BNF),并且全部采用文本形式。这不仅使其易于修改,也容易被操纵以携带恶意命令,而越来越多的中间设备、端点设备和系统会处理这些命令。
如果这还不能让您感到恐惧,那说明您还没有真正意识到问题的严重性。
所幸,将HTTP标头同时用作控制平面和数据平面的做法主要局限于容器化系统。这意味着它们通常隐藏在多个面向公众的控制点之后,组织可借助这些控制点缓解HTTP标头权限过于宽松所带来的威胁。采用包含安全入站路径(南北向)的架构方法,可以提供防范漏洞利用所需的保护。确实,我们尚未发现有人尝试过这种攻击,至少目前还没有。但HTTP标头已经导致了太多安全事件,因此谨慎防范总比事后补救更好。
HTTP正日益成为应用、服务和设备的主要协议,也越来越多地用于遥测、跟踪和传输运维命令。这是一个令人振奋的时代,但如果要避免运维灾难,就需要在“无所不能”的热情中保持克制,始终坚持“以安全的方式实现”。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。