alpaca攻击

2021-06-09 21:59:18

羊驼将在黑帽美国2021和Usenix安全研讨会2021上呈现。

TLS是一个互联网标准,用于保护Internet上的服务器和客户端之间的通信,例如Web服务器,FTP服务器和电子邮件服务器的通信。这是可能的,因为TLS被设计为独立于应用层,这允许其在许多不同的通信协议中使用。

alpaca是一个应用层协议内容混淆攻击,利用实现不同协议的TLS服务器,但使用兼容证书,例如多域或通配符证书。攻击者可以将流量从一个子域重定向到另一个子域,从而产生有效的TLS会话。这缓解了TLS的认证和交叉协议攻击可能是可能的,其中一个协议服务的行为可以在应用层处危及另一个。

我们通常调查关于TLS的交叉协议攻击一般,并对Web服务器进行系统案例研究,将HTTPS请求从受害者和#39; WEB浏览器重定向到SMTP,IMAP,POP3和FTP服务器。我们显示,在现实的方案中,攻击者可以在易受攻击的Web服务器的上下文中提取会话cookie和其他私有用户数据或执行任意JavaScript,从而绕过TLS和Web应用程序安全性。

我们在实验室实验中评估了Web浏览器的真实世界攻击表面以及广泛部署的电子邮件和FTP服务器以及互联网范围的扫描。我们发现1.4M Web服务器通常容易受到跨协议攻击的影响,即,TLS应用程序数据混淆是可能的。其中,119K Web服务器可以使用可利用的应用程序服务器攻击。作为对策,我们建议使用应用层协议协商(ALPN)和服务器名称指示(SNI)扩展到TLS以防止这些和其他跨协议攻击。

虽然这种漏洞是非常努力的,可能是挑战的漏洞利用,但也有一些配置即使是纯网络攻击者也可以利用。此外,我们只能分析有限数量的协议,并且可能存在其他攻击方案。因此,我们建议管理员审查其部署以及应用程序开发人员(客户端和服务器)主动实现所有协议的对策。

该图像显示攻击者使用对WebServers的跨协议攻击,利用易受攻击的FTP和电子邮件服务器:在上传攻击中,攻击者exfiltrates身份验证cookie或其他私有数据的攻击方式。在下载攻击中,攻击者执行存储的XSS攻击。在反射攻击中,攻击者在受害者网站的上下文中执行反映的XSS。

Alpaca:应用层协议混淆分析和缓解TLS认证,Marcus Brinkmann,Christian Dresen,Robert Merget,Damian Poddebnnk,JensMüller,Juraj Somorovsky,JörgSchwenk,Sebastian Schinzel。

可能不会。对于羊驼攻击成功,许多前提条件都需要满足。通用攻击需要一个可以在TCP / IP层拦截和转移受害者的MITM攻击者。但是,如果您运行浏览器未阻止的非标准端口等FTP和电子邮件等应用程序服务器,则应确保您不容易受到alpaca的Web攻击者变体,这些alpaca可以影响Internet Explorer的用户。

对于对本文中描述的HTTPS的特定攻击,攻击者可能潜行饼干或执行跨站点脚本攻击。

然而,普通alpaca攻击的潜在后果取决于两个未知协议的相互作用,因此可能可能是任何数量的不良行为。

这很难回答。 Alpaca背后的一般缺陷位于TLS的服务器身份验证范围内,因此潜在的所有TLS服务器都受到了具有其他TLS服务的兼容证书的影响。关于此,所有这些服务器都必须被视为脆弱。但是,出于实际目的,这种定义并不是很有用,因为缺陷在某些情况下只有可利用。因此,我们区分了弱势服务器和可利用的服务。我们的分析仅限于少数协议和少数实施,因此我们只能为这些提供清晰的陈述。从我们的分析中,以下是真实的:

如果攻击者对FTP服务器的写入访问权限,则在Web服务器和FTP服务器之间共享证书几乎总是危险。如果攻击者没有写入访问,有时是危险的。

根据服务器的确切行为,在Web服务器和SMTP / POP3 / IMAP服务器之间共享证书有时是危险的。

以下是对其漏洞的分析实现列表(参见论文中的表3):Sendmail SMTP允许在STARTTLS上使用Internet Explorer中工作的反射攻击。 Cyrus,Kerio Connect和Zimbra IMAP服务器允许下载和反射攻击在Internet Explorer中工作。 Courier,Cyrus,Kerio Connect和Zimbra允许下载在Internet Explorer中使用的攻击。 Microsoft IIS,VSFTPD,FileZilla Server和Serv-U FTP服务器允许反射攻击在Internet Explorer中工作。相同的FTP服务器允许上传和下载在所有浏览器中工作的攻击。

但是,即使那么有与分析的互动且尚未分析的协议,这使得风险估计变得困难,因为我们认为这方面有大量尚未发现的漏洞。

浏览器通常受到漏洞的影响,但它们不对缺陷负责。我们发现一些浏览器比其他浏览器更容易受到其他浏览器,因为它们是如何对非HTTP响应的反应。

大多数攻击需要一个活跃的中间攻击者,这意味着攻击者拦截和修改从受害者浏览器发送到Web服务器的数据的某种方式。这很难在互联网上,但可以是本地网络上的合理攻击者模型。此外,一些攻击变化不需要浏览器,因此更危险。特别是,如果您仍然使用Internet Explorer,我们建议您从2021年6月8日的最新版本更新到最新版本。

有可能。如果您在同一主机名上托管了多个启用TLS的应用程序服务器,或者如果使用多域证书,或者使用野卡证书,您可能会易于群体攻击普通混乱攻击。如果您托管的应用程序服务器之一具有可利用的上传,下载或反射向量,则可能对Web服务器的安全性产生负面影响。

Internet Explorer和边缘遗留(即,那些不是基于Chrome的人)是"更多"易于其他浏览器,因为它们阻止了更少的端口并执行内容嗅探。 Content-Sniffing是危险的,因为它在服务器响应中启用JavaScript代码在噪声中执行,这是由于应用程序服务器的错误消息,该协议与HTTP不同的协议。这意味着羊驼的纯网络攻击者变体对这种浏览器的用户来说比其他用户更危险。

但是,没有浏览器保护用户免受所有可能的Alpaca攻击。特别地,所有浏览器都可以由中间人攻击者损害,该攻击者具有对呈现与攻击的目标Web服务器兼容的证书的可替换性FTP服务器的写入访问。虽然FTP服务器可以在理论上可以通过检测HTTP发布请求和/或在少量错误之后终止连接来保护此特定攻击,但这种攻击变体显示这不是浏览器中的错误,Web服务器或应用程序服务器,但TLS景观的紧急属性。

羊驼攻击并非从根本上实现。 Jochen Topf(2001)首先描述了对HTTP上的跨协议攻击,Jann Horn在2014年介绍了Proftpd的TLS安全HTTP连接的第一次攻击。我们对跨协议攻击的第一个系统研究对浏览器进行了利用流行的SMTP,IMAP,POP3和FTP服务器,执行了Internet范围的扫描来估计受影响的Web服务器的数量,并将攻击从浏览器概括 - 错误配置TLS服务器的常规属性的特定问题。我们认为,这种新的视角对于在有限数量的有效选项上聚焦的对策,而不是在找到更多的利用时将应用程序服务器进行修补。

alpaca攻击才是可能的,因为TLS不保护TCP连接的源或目标IP和端口地址。如TLS RFC中所述,TLS都是独立的应用层。但是,保护的这种差距使攻击者能够灵活地将流量从一个服务器重定向到另一台服务器。如果替代服务器的所呈现的证书与预期服务器的证书兼容,则可能是可能的一般内容混淆攻击(尽管它取决于服务器和客户端行为,但如果它实际上可以被剥削)。

TLS的两个扩展可以为应用层协议提供一些保护:SNI和ALPN。使用SNI,客户端可以让服务器了解它想要连接到的主机名,这在虚拟托管配置中很有用。可悲的是,SNI经常与默认服务器的不安全的回退,允许内容混淆攻击(对于HTTP,这些是由Delignat等人分析的。2015年,张等人。在2020年)。但是,如果主机名与服务器的预期主机名不匹配,则SNI标准允许服务器终止连接,这将阻止某些alpaca在实践中攻击。不幸的是,即使在Web服务器中也很少实现这种严格的行为。

对于应用程序服务器,在特征完整性的Web服务器后面延迟,对于TLS,情况更为严重。使用ALPN,客户端可以让服务器了解预期的协议,该协议用于将HTTP / 1.x和HTTP / 2连接到Web服务器之间的解复用,而无需额外的往返。在这里,标准要求严格的行为,因此如果客户端不请求支持的协议,则支持ALPN的服务器应终止连接。不幸的是,这种严格的行为通常不实现,并且许多应用程序服务器甚至都不支持ALPN扩展。

我们最初对HTTP,FTP和电子邮件协议的特殊属性感兴趣,使交叉协议实用。然而,我们最终意识到羊魄攻击是通用的,并且在交换任何应用层数据之前,TLS连接的真实性已经受到损害。所以,原始的首字母缩写("允许交叉协议攻击&#34的应用层协议)不再适合契合,因为它不是允许攻击的ALP,而是TLS的不足来保护TCP连接端点。仍然是铭记的名字,我们设法以下列方式挤压标题中的字母:"应用层协议混淆 - 分析和减轻TLS认证和#34中的裂缝;折磨,我们知道。但羊驼仍然很可爱。 :)

许多供应商已更新其应用程序服务器以删除应用层和/或TLS实现中的开发向量或添加对策。 TLS库维护者审查了ALPN和SNI实现,并更新了他们的代码和文档,以便轻松实施开发人员的对策。为防止纯浏览器攻击者模型中的攻击,浏览器供应商在更多场景中阻止了更多标准应用端口和禁用内容嗅探。

Microsoft Internet Explorer阻止了更多的非HTTP服务器端口和禁用内容嗅探,以获取对非标准端口的HTTP请求(CVE-2021-31971)。

Alpaca使用与其他TLS攻击相同的攻击者方案,即它假设一个人中间攻击者,他们可以引诱受害者对攻击者控制的网站。但是,在羊驼攻击中,我们不会尝试直接攻击TLS的加密保护。相反,我们在TLS服务配置中利用缺陷,通常共享证书以节省成本,减少管理工作,或启用若干服务共享单个终止TCP端点的反向代理部署。与其他TLS攻击相比,攻击者从未妥协了TLS连接的机密性。然而,由于错误配置,真实性和完整性受到影响,允许攻击者将一些危险的数据注入连接,而受害者仍然对此攻击仍然是令人沮丧的。

alpaca攻击是通用的,即它描述了从客户端到实现一个协议的一个服务器的TLS流量的前提条件可以被重定向到实现不同协议的另一服务器,这可能导致任何数量的不良行为或安全漏洞。我们只查看了一个带有SMTP,IMAP,POP3或FTP应用程序服务器的HTTP客户端的组合。我们没有调查其他数百个可能的横向协议方案,可以使用当前的TLS启用的应用程序和服务器。此外,随着TLS更广泛地部署,将添加更多协议横向,随着协议和应用程序的数量,增加了alpaca攻击的可能性。

如果您在其他协议中找到应用层协议混淆攻击,请告诉我们!我们当然非常有兴趣听取其他受影响的协议和应用程序。

如果我的客户和服务器验证了TLS握手的ALPN和SNI参数,我是否会安全地反对此次攻击?

我们不认为客户或服务器很长时间强制使用ALPN和SNI是可行的,因为这样做会排除尚未更新的传统客户端和服务器,并且不太可能接受这一点由用户或服务提供商。但是,如果客户端和服务器都支持ALPN,并确保协商可接受的协议和主机名,它们将保护与来自几乎所有内容混淆攻击的同一客户端具有兼容证书的所有其他服务器的连接。

但是,即使使用ALPN和SNI,仍有一些内容混淆攻击的空间即使是完全部署的。如果两个服务在同一主机上实现相同的协议,但在不同的端口上,可以通过攻击者重定向到一个服务器的连接。这可以实现与Delignat等人描述的相同协议,同一主体上下文混淆攻击。 (2015)和张等人。 (2020)在非常具体的情景中。

这个漏洞是否真的足以应得名称,徽标和网页?

alpaca不是一个简单的软件错误,可以使用更新到单个库或组件。 相反,需要更新客户端和服务器以保护连接到其他(看似无关)的服务器。 这意味着我们需要提高对所有启用TLS的应用程序和协议的问题的认识,这是一种巨大的努力。 我们预计alpaca攻击将持续多年,所以我们有一个可爱的动物,让我们为我们提供帮助客户和服务器采取建议的对策! 最后更新了2021-07-09。 Alpaca网站可以在CC0许可下免费使用。 莎拉·麦德顿和基督教德森的网页设计。 由Marcus Brinkmann适用于Alpaca。 Alpaca徽标由TNHS_PROJECT设计。 | 印迹