今天为大家推荐的是来自USENIX Security 2021的论文——“ALPACA: Application Layer Protocol Confusion - Analyzing and Mitigating Cracks in TLS Authentication”。
TLS被广泛的用于应用层协议(HTTP,SMTP,IMAP,POP3,FTP)来保证数据的机密性,完整性和身份认证。然而TLS不能将TCP连接和期望的应用程序绑定,这就使得中间人可以重定向TLS流量到另一个IP地址或端口的服务点。这种跨协议的攻击使得一个服务可能会影响给另一个应用层服务的安全性。本文对TLS的跨协议攻击进行了调查,并对现实世界的服务器进行了大规模的扫描和评估。
在跨协议攻击中,客户端C用协议A来连接目标服务器S1,替代服务器S2使用协议B,并且S1和S2使用的证书是兼容的,攻击者的目的是让S2接受来自C的数据,或者让C接受来自S2的数据。
-
攻击者作为中间人拦截C与S1的TCP连接,并将所有数据转发给S2。
-
服务器S2和C进行TLS握手,并展示证书。
-
由于S2的证书和S1证书兼容,所以握手可以成功,随后C的数据被发送给S2。
-
由于客户端发送符合A协议的数据,但是S2期望的是B协议格式的数据,从而导致安全问题。
-
S2以B协议发送给客户端C的数据也可能被错误解析。
该攻击需要具备三个条件
-
TLS兼容性。例如两个服务器证书的SAN和CN需要匹配,考虑TLS握手参数等。
-
Protocol Embedding的容忍性。由于协议的不同,S2需要容忍一定数量的来自协议A的流量。
-
应用服务器的可利用性。服务器S2需要具备一些特性和机制。
作者只考虑客户端C使用HTTPS的情况。攻击者的目标是在目标服务器执行JS代码或者窃取用户cookie。攻击者攻击HTTPS会话的三种方法:
-
Upload Attack。假设攻击者有能力上传数据到S2服务器并随后获取数据,那么攻击者可以存储cookie header到S2,并随后获取cookie。
-
Download Attack-Store XSS。假设攻击者有能力在S2上存储数据,并且下载它,攻击者可以让C下载精心构造的数据。
-
Reflection Attack – Reflected XSS。攻击者尝试反射部分C的请求到给C的响应中,这样攻击者可以在请求中发送恶意的JavaScript。
作者评估了主流浏览器对HTTP响应中错误的容忍:
评估了25个不同应用服务器的错误容忍性和可利用性:
作者利用SMTP,IMAP,POP3和FTP协议,实验证明了在HTTPS上的跨协议攻击,并且对现实中的服务器进行了大规模的扫描,发现1.4M的web服务器可能会受到跨协议攻击,通过利用证书兼容的SMTP、IMAP、POP3或FTP服务器,114,197个独特的web server hostname可以被攻击。
论文PDF:
https://alpaca-attack.com/ALPACA.pdf
网站链接:
https://alpaca-attack.com/
原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 学术论文推荐 2021-07-26
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论