Forbidden attack:7万台web服务器陷入被攻击的险境

简介:

最近,根据某国际安全小组的研究表明,金融巨头Visa旗下部分受HTTPS保护的网站最近被发现了一种漏洞,它的存在可以让黑客注入恶意代码,访客浏览器将会访问到恶意内容。

加密重用造成的Forbidden Attack

据统计,受影响一共有184台服务器,其中部分属于德国证券交易所(Deutsche B rse)和波兰银行协会(Zwizek Banków Polskich),它们被发现容易受到某加密技术漏洞的攻击,我们称之为“Forbidden Attack”。此外,还有7万台web服务器被发现存在风险,虽然实际执行攻击会比较困难。

这些数据来自于1月份的全网扫描,当时Deutsche B rse就修补了这个漏洞。但是在上周三的时候,研究人员发现Visa和Zwizek Banków Polskich的漏洞似乎仍然存在,而且官方并没有回复安全研究员私下提交的漏洞信息。

该漏洞源于不正确的传输层安全协议,在数据被加密时,错误重用了相同的加密随机数。TLS的规范其实已经写明,这些数据只能使用一次,当多次重用时,则会导致Forbidden Attack。这种攻击能让黑客自行生成密钥去认证网站内容。这个漏洞利用的首次提交,是 以评论的形式写给国家标准技术研究所的。之所以叫这个名字,是因为其正确加密的基本原则,是必须临时而独特的。

在TLS握手中,那184台HTTPS服务重复使用了客户端浏览器首次连接到HTTPS网站的那个随机数,违背了加密的基本原则。因此,黑客只要有能力监控连接传输的内容,比如处于同一个不安全的wifi环境下,他们就可以将恶意内容注入到传输数据流里,而客户端浏览器并不能检查出任何差错。

研究人员在一篇名为《忽视随机数的恶果:TLS GCM实战伪造内容攻击》的paper中写道:“这是可靠性验证的失败,即使只在同一个时间段里重用一个随机数,也能让黑客通过HTTPS进行伪造内容攻击。”这项研究的结果,也将作为8月份拉斯维加斯黑帽的大会某议题的基础材料。

黑客污染HTTPS认证过的内容的中间人攻击,已经击破了TLS的基本保证。黑客可以绕过保护,添加恶意JS代码或者添加能诱惑访客输入密码、社会安全码或者其他敏感数据的WEB内容。虽然这个漏洞让Forbidden Attack很好的文档规范化了,新的研究结果仍值得我们注意如何利用它去对抗HTTPS保护的网站,网上也有相应的POC代码。

下面则是一段演示视频:

https://www.youtube.com/watch?v=qByIrRigmyo

GCM随机数重用攻击visa.dk的POC

这篇paper是由研究人员Hanno B ck、Aaron Zauner、Sean Devlin、 Juraj Somorovsky、and Philipp Jovanovic共同撰写,里面警告我们网上约7万HTTPS服务器,可能会因为伪随机数算法生成的“随机数”而遭受这类攻击。只要有足够多的WEB请求,黑客就有很大可能性去重用其中一个来执行攻击。然而这样所需WEB请求的数量是比较大的,约2的30次方个请求里取得重复随机数的可能性为3%, 2的35次方个请求后能100%成功。正如paper的标题所述,Forbidden Attack针对的是AES-GCM,世界上最广泛的TLS对称加密协议。

在研究人员发现的7万站点中,黑客需要往WEB连接里填充TB级别的数据,从而创建足够多的请求。因此,这种攻击的理论性可能会高于实际意义。但是,这仍然被大多数运用HTTPS保护的组织当作不可接受的风险。研究人员目前确定了几个TLS实例中生成了伪随机数,其中有IBM的DominoWEB服务器,已于3月打上了补丁。还有个Radware的负载均衡器的案例,也 已经修复了。

自研究人员发布扫描结果后,许多漏洞网站已经修复了。但是只有工程师们深刻意识到这个问题,事情才能显著改善,这也是研究人员发布这篇paper的原因。

Zauner 在邮件中写道,“我敢肯定一年以后我再去扫描一遍,还是会有很多的漏洞案例。可能还有更多方法可以利用它,谁知道呢?”

GCM工作机制浅析

那么,像GCM或者类似CTR模式的CCM,为什么不能在发送的信息中进行随机数重用呢?下面我们将就GCM的工作机制进行解释一番:

当使用AES GCM时,我们并不会运行AES加密的数据。而我们会使用AES去加密标志自增计数器创建的各区块,这就造就了不可预知的比特流(密钥数据流)。然后,我们会用需要加密的数据流与之进行XOR运算。而最初的计数区块,就是用来与其他加密文本一起生成身份验证标记的。

如果我们单独看AES加密算法,可以知道用相同的密钥去加密相同的数据,是会得到相同的加密文本的,这也是我们为啥需要CBC模式下的IV。那么我们在GCM里面重用相同的随机数会发生什么呢?

假设有两个不同的消息A和B,我们如果在其中使用了同一随机数N,这些消息的第一个区块会被这样加密:

C = AES(counter(N,1)) ⊕ A

C = AES(counter(N,1)) ⊕ B

这基本上意味着,我们如果使用相同计数器和相同的随机数去XOR两个加密的区块,会得到XOR的文本:

C ⊕ C = B ⊕ A

如果我们知道其中一个纯文本,我就可以用加密文本与之XOR,从而得到密钥数据流。最后,我们就能解密另一段使用同样的密钥和随机数加密的文本了(这点受限于已知文本长度)。

本文转自d1net(转载)

相关文章
|
1月前
|
存储 缓存 网络协议
Web客户/服务器程序
Web客户/服务器程序
|
1月前
|
编译器 开发工具 C语言
交叉编译器环境配置与boa嵌入式web服务器移植问题
交叉编译器环境配置与boa嵌入式web服务器移植问题
49 0
|
16天前
|
安全 JavaScript Go
【Web】什么是 XSS 攻击,如何避免?
【Web】什么是 XSS 攻击,如何避免?
|
20天前
|
SQL 存储 前端开发
< 今日份知识点:web常见的攻击方式(网络攻击)有哪些?如何预防?如何防御呢 ? >
网络安全威胁日益严重,2017年的永恒之蓝勒索病毒事件揭示了网络攻击的破坏力。为了防御Web攻击,了解攻击类型至关重要。Web攻击包括XSS、CSRF和SQL注入等,其中XSS分为存储型、反射型和DOM型,允许攻击者通过注入恶意代码窃取用户信息。防止XSS攻击的方法包括输入验证、内容转义和避免浏览器执行恶意代码。CSRF攻击则伪装成用户执行操作,防范措施包括同源策略和CSRF Token验证。SQL注入则通过恶意SQL语句获取数据,预防手段包括输入验证和使用预编译语句。面对网络威胁,加强安全意识和实施防御策略是必要的。
|
6天前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
14天前
|
存储 Serverless 网络安全
Serverless 应用引擎产品使用之阿里云函数计算中的Web云函数可以抵抗网站对DDoS攻击如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
23 0
|
15天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
28 1
|
17天前
|
机器学习/深度学习 数据挖掘 Python
使用Python实现简单的Web服务器
使用Python内置的http.server模块,本文演示了创建基本Web服务器的步骤。通过编写简单的代码,实现响应GET请求并返回“Hello, World!”。此外,还展示了如何扩展服务器功能,处理不同URL路径,如根路径和/about路径,并实现404错误页面。这个基础教程为理解HTTP服务器原理和Python网络编程入门提供了帮助。对于复杂Web应用,建议使用Flask或Django等高级框架。
|
18天前
|
安全 前端开发 JavaScript
在Python Web开发过程中:Web框架相关,如何在Web应用中防止CSRF攻击?
在Python Web开发中防范CSRF攻击的关键措施包括:验证HTTP Referer字段、使用CSRF token、自定义HTTP头验证、利用Web框架的防护机制(如Django的`{% csrf_token %}`)、Ajax请求时添加token、设置安全会话cookie及教育用户提高安全意识。定期进行安全审计和测试以应对新威胁。组合运用这些方法能有效提升应用安全性。
22 0