写点什么

Amazon 和 Eucalyptus 中的安全漏洞

  • 2011-11-09
  • 本文字数:1688 字

    阅读完需:约 6 分钟

德国研究员 Juraj Somorovsky、Mario Heiderich、Meiko Jensen、Jörg Schwenk、Nils Gruschka 和 Luigi Lo Iacono 在合著的一篇名为《你的云真的由你掌控吗——云管理界面的安全分析》的文章中讨论了 Amazon AWS 和 Eucalyptus 存在的安全漏洞,攻击者可以利用这些漏洞来完全控制受害者账户以及与之相关的存储数据。文章重点讨论了一种通过 SOAP 接口进行的 XML 签名攻击,并且揭露了额外两种跨站脚本(XSS)技术,攻击者可以利用这些技术从 web 管理界面侵入用户账户。Amazon 和 Eucalyptus 在这些漏洞被利用前对其进行了修复。

在传统的 XML 签名攻击中:

原始 SOAP 消息体元素会被转移到 SOAP 安全消息头的一个新添加的伪造包装器元素中。请注意,利用消息签名中的标记符属性 Id=“body”,签名还是指向此前被移动的消息体。因为消息体元素本身没有被修改(只是简单转移了位置),所以从密码学角度签名任然有效。其后,为了使 SOAP 消息的 XML 模式兼容,攻击者会更改本来指向原始 SOAP 消息体的标识号(比如,他修改为 Id=“attack”)。这样就可以开始向空 SOAP 消息体里填充伪造的消息内容了,由于签名验证无误,那攻击者定义的任何一个操作都可以被有效地执行了。

传统的 XML 签名攻击至少可以有两种方式来对付 AWS 和 Eucalyptus,其中一种对时间不敏感。这种攻击尤其在对时间戳不敏感的情况下几乎不需要满足什么前提条件,所有攻击者唯一要做的就是提供一个有效、经过签名的 SOAP 请求消息,而这可以通过 AWS 开发者在 AWS 支持论坛发布帮助请求直接获取。文章的几位作者抱怨造成这种安全漏洞的原因是 SOAP 处理框架中对任务模块的拆分。由于任务模块化,相同的 XML 消息将以不同的方式在不同的模块中访问,消息的完整性从没有得到过验证。作者们建议:

最好的对策办法就是增强签名验证功能和业务逻辑之间的接口。使用这种方法,签名验证可以紧跟在返回的布尔值后再加一些已签名数据的位置信息。业务逻辑再决定将要处理的数据是否已被签名。

作者们还揭露了两种脚本注入攻击,其中一种的目标直指 AWS 管理控制台用户,而另一种则利用了 amazon 商城界面和 AWS 之间的共享证书。前者利用了证书下载链接中的 GET 参数——用户用此链接下载 Amazon 签署的 X.509 证书。尽管如此,这种攻击的前提条件要求相当高,不仅包括使用 UTF-7 对注入的脚本进行编码,使其能够避开服务器逻辑从而对标准的 HTML 字符编码,还需要特定 IE 版本中某些特性的支持。第二种脚本注入攻击使用一种持续的跨站脚本攻击,利用了 AWS 为首次登录到 Amazones hop 界面的用户创建的登陆会话。这种攻击简单而有效:

攻击者必须要在某个商城物品、用户自创标签或其他实体上创建一个讨论主题。一旦主题创建成功,讨论主题的标题就会立刻显示而不会做任何特定编码,这样就给注入恶意 HTML 代码留出了空间。这使得我们能够加入一些脚本标签或其他活动标记来迫使用户代理在 www.amazon.com 域上执行 JavaScript。

文章研究人员与 Eucalyptus 和 Amazon 的安全工作人员一起合作,在文章发表前就修复了这些漏洞。但就 Eucalyptus 或任何其他私有云部署的情况来看,任然存在不利因素:

修复该安全漏洞存在的难题在于:Eucalyptus 部署在数不胜数的私有化托管服务器上。因此,每个 Eucalyptus 管理员都必须手动更新其服务器版本。假设存在大量的设施(Eucalyptus 声称其客户超过 25000 个),那我们真的怀疑能否在短期内修复每台服务器上的攻击。理论上这是依赖私有云基础设施最大的不利因素之一。

文章最后的结论指出了这种安全隐患将造成的影响规模,它可能出现在任何已有的云服务上,因此至少文章中描述的“黑盒”方法学是很有必要的:

这表明了这类系统本身的复杂性为产生潜在的安全漏洞创建了一个大温床。由此看来,在不远的将来云控制界面很可能成为某些有组织犯罪团伙最感兴趣的攻击目标之一。我们发现的所有安全漏洞,其最重要的威胁不在于会对单个服务器或者公司造成影响,而在于可以立刻影响到整个相关的云用户。另外,针对基于 Web 的云控制界面的跨站脚本攻击会对整个云安全产生严重的影响。

查看英文原文: Security Vulnerabilities in Amazon and Eucalyptus

2011-11-09 07:261651
用户头像

发布了 52 篇内容, 共 21.5 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

从零开发区块链应用(七)--gin框架参数获取

杰哥的技术杂货铺

golang 区块链 gin框架

TiDB Cloud 上线亚马逊云科技 Marketplace,为全球用户提供云端一栈式实时 HTAP 数据库体验

PingCAP

2021总结和2022趋势--《香帅中国财富报告》(7/100)摘录

hackstoic

投资

对管理金字塔游戏的感悟:管理的本质是协作

panda

管理

一线开发人员,你对项目了解多少?

蜜糖的代码注释

Java 程序员 后端技术

干掉 PowerDesigner,这款数据库设计神器真的绝了!!!

沉默王二

有的时候我觉得我不会 Markdown

冴羽

前端 写作 markdown markdown语法 vuepress

IDEA注释模板,惊艳了,动作要快,姿势要帅

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

架构学习【01】——架构图初探

tiger

架构实战营

微信业务架构图与“学生管理系统”毕设架构设计

唐尤华

架构实战营

从零开发区块链应用(六)--gin框架使用

杰哥的技术杂货铺

golang 区块链 gin框架

01uni-app基础教程 环境配置【uniapp专题1】

坚果

uni-app 1月月更

03uniapp的生命周期【uniapp 专题 03】

坚果

小程序 uniapp 1月月更

投稿开奖丨“轻量应用服务器”征文活动(11&12月)大奖公布

阿里云弹性计算

阿里云 轻量应用 征文投稿开奖

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源 社群 合作伙伴

全栈工程师?你知道全流程工程师吗?

蜜糖的代码注释

Java 开发 后端技术

从零开发区块链应用(十)--golang协程使用

杰哥的技术杂货铺

golang 区块链 gotoutine

ReactNative进阶(二十九):BloC 模式

No Silver Bullet

React Native 1月月更 BloC

RocketMQ 源码探究 -- 延迟队列实现

周文童

RocketMQ #java

从零开始学Mysql - 字符集和编码(下)

懒时小窝

微信业务架构图、学生管理系统毕业架构设计

石小天

架构实战营

发布uniapp【uniapp 专题 02】

坚果

1月月更

来自未来的交互设计!当电影中的一切变为现实,设计师要如何进化?

博文视点Broadview

sonic:基于 JIT 技术的开源全场景高性能 JSON 库

火山引擎开发者社区

原生云

基于Calcite的分布式多数据源查询

麒思妙想

MySQL 数据库 Apache Calcite gbase8a

从重大漏洞应急看云原生架构下的安全建设与安全运营(下)

腾讯安全云鼎实验室

云原生 安全漏洞 容器安全 安全服务

Spring Boot Admin 添加报警提醒和登录验证功能!

王磊

【译】什么是测试驱动开发

宇宙之一粟

测试驱动开发 1月月更

【架构训练营-模块一】

默光

微信 架构设计

架构设计图

风中奇缘

架构实战营 「架构实战营」

25 Prometheus最佳实践原则

穿过生命散发芬芳

Prometheus 1月月更

Amazon和Eucalyptus中的安全漏洞_安全_Jeevak Kasarkod_InfoQ精选文章