|
迈克菲CTO谈iPad泄密:AT&T漏洞可避免
http://www.cww.net.cn 2010年6月12日 10:21 通信世界网
作 者:迈克菲首席技术官 George Kurtz
日前iPad爆出由于AT&T网站的安全漏洞问题,导致11.4万iPad用户的电子邮件账户泄露。 迈克菲首席技术官 George Kurtz昨日在迈克菲官方博客上发表文章对此事进行评论,认为本次泄密主要是 AT&T网站的安全漏洞造成的。 同时这个漏洞还是常见的安全问题,完全可以避免,全文如下: 我有一台 iPad ,实际上是两台,对此我感到很自豪。我的电子邮件地址也有很多人知道,而且经常有人向我发出请求,想要知道我的邮件地址。我猜他们一定发现像这样得到我的邮件地址不费吹灰之力。所以,前两天 iPad 泄露现有 11.4 万用户信息时,为什么会引起那么大的骚动? 让我们来看看到底发生了什么。一个名为 Goatse Security 的黑客团伙发现了 AT&T 网站的一个安全漏洞,窃取了用户的 ICC-ID(Integrated Circuit Card ID , IC 卡识别码 ) 并取得了与之相连的电子邮件地址。接下来,他们利用一段 PHP 代码反复向 AT&T 网站提供大量 ICC-ID ,然后取得相关电子邮件地址。就这样,他们得到了预计 11.4 万 ICC-ID 及其相关电子邮件地址。 我觉得大家都会觉得这是个问题,而且是个普遍存在的问题。在我们 Foundstone 的安全顾问服务中 ( www.foundstone.com ) ,经常会遇到我们称之为“信息公开”漏洞的问题。通过搜集用户或企业的这些信息,可以全面了解其正在使用的技术或用户行为。同时借助社会工程技术,就可以有效的获取一些原本无法得到的企业资源。 然而,这样的漏洞根本不算是最严重的漏洞。我们发现主要问题在于在 Web 应用程序的身份认证系统存在故障。也就是说,用户会话需要避免横向权限升级,因为横向权限升级将允许攻击者得到另一用户信息。所以,与其说这是 iPad 的漏洞问题,不如说是我们在进行应用安全评估时经常遇到的普通问题。 鉴于这个漏洞利用了一个 Web 应用程序缺陷,我认为应该总结一下在应用安全评估时最常见的 5 个问题。 授权失败 恶意认证用户可以接触它本无权接触的信息。通常这样会导致权限升级。如果权限升级发生在同级别的用户中,则被称为 “ 横向权限升级 ” 。如果用户可以将权限升级至更高级别用户,即为 “ 纵向权限升级 ” 。在 AT&T 事件里,结果只是信息泄露,而没有权限升级。 跨站点脚本 (XSS) 跨站点脚本攻击需要攻击者在应用程序的数据领域中输入恶意代码(通常是 Java 脚本),而这些数据领域对该应用程序的其他用户而言也是可见的。当受害用户浏览该数据领域时,该 Java 脚本就在该用户浏览器中运行,并执行一些对攻击者有用的功能。反向 XSS 攻击通常用来进行钓鱼攻击。 跨站点请求伪造 (XSRF) 跨站点请求伪造攻击(也叫 XSRF , CSRF ,或者会话控制)允许恶意用户执行对攻击者选定的用户会话的操作,从而泄露用户信息。这类攻击利用了 HTTP 无状态的弱点。 密码重置功能 通常来说,应用程序允许用户在忘记密码的情况下重置密码。密码提醒 / 重置程序通常很容易成为被攻击的对象。很多情况下,攻击者首先列出所有具有同样特征的有效用户名。一旦这些用户名中有一个被辨认出来,那么密码问题的答案都可以猜出来。一般情况下,在密码重设页面没有输入次数的限制。而且用户在社交网站上设置的一些问题的答案也可能被攻击者猜中。 SQL 注入 SQL 注入允许攻击者在关系数据库里执行任意 SQL 语句。通常,漏洞出现通常都是源于应用程序 SQL 查询的不安全构造。即使在数据验证很少或没有的情况下,应用程序也会信任攻击者提供输入的信息,执行任意的恶意 SQL 语句。成功的 SQL 注入攻击可以泄露基础操作系统信息。 建议 尽管现在是 “ 应用程序 101” ,我们仍然可以在每一份应用程序安全测评报告中看到几乎所有的 5 个问题。下面是几条建议: 授权失败 会话应该使用基础框架提供的会话容器。为了避免横向权限升级,应用程序需要对以下三点进行三次确认: 需确认的授权内容: 主体:例如用户或群组 操作:例如 CRUD —— 创建、读取、更新、删除 客体:例如数据因素(账号、购物卡 ID 等) 跨站点脚本 (XSS) 为了避免诸如跨站点脚本等数据验证攻击,我们建议采取 “ 深层防御 ” 策略,包括输入验证和输出消毒。 阻止数据验证攻击的第一步就是要验证输入来防止接受任何在该应用程序中或数据终端(也就是浏览器)中有特殊意义的语句。我们推荐的输入验证方式是 “ 默认拒绝 ” ,只接受含有预期值(也就是白名单)的输入。日常输入验证必须始终检查数据长度、范围、类型和格式。 消毒应用程序 HTML 中的恶意语句与防止跨站点脚本攻击( XSS )同等重要。比如, “<” 应编码为 “<” ;尽管对于用户来说,这是 “ 少于 ” 的意思,但是它不会被用户浏览器解释为 HTML 标签的起始点。 跨站点请求伪造 (XSRF) 要防止 XSRF 攻击,一种有效而又不唐突的方法就是在每一个可以改变某些外在状态的表格中引入一个 “ 随机数 ” ,或者一次性口令。每次用户加载表格,一个不同的 “ 随机数 ” 就被插入表格中的一个隐藏区域内。当表格提交后,应用程序检查该随机数是否有效,然后再运行所请求的操作。 “ 随机数 ” 可以是现有会话的标识信息,这种信息一般都会附加在每个请求之后。不过,只有当目标应用程序不存在任何 XSS 漏洞的情况下,这种方法才能有效。 [1] [2]
编 辑:石美君 联系电话:010-67110006-818
文章评论【评论()】
|
重要新闻推荐 每日新闻排行 企业黄页 会议活动 |