本文是转载。
http://www.iadus.com/archives/699
苹果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的安全顾问服务中(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漏洞的情况下,这种方法才能有效。
另外一些更加不唐突的避免XSRF的方法包括使用“Captchas”、对重要操作重新授权、或使用独立授权密码。这些方法很有效,但也会给用 户带来额外负担。从用户界面角度来看,这些方法并不常用。
密码重置功能
密码重置功能的推荐方法是:
1. 这种方法需要用户输入用户名。把下面信息传递给终端用户,“如果用户名与系统中的现有账户吻合,一封写有下一步说明的电子邮件将发至账户所有者的注册电子 邮件地址。”
2. 这封电子邮件必须含有唯一的、带有时间限制的链接(比如,24小时内有效),而且只能由用户点击一次。
3. 点击链接后,用户将看到几个问题。
4. 成功回答问题后,用户将被允许修改其密码,同时对应用程序进行授权。
SQL注入
防止SQL注入攻击需要采取“深层防御”策略。第一步是使用阻止XSS攻击中提到的白名单方法进行输入验证。
除此之外,还需要使用与动态SQL相反的参数查询用。参数查询可以将查询与数据分离,支持数据库引擎在数据缺失情况下决定运行查询的最佳方法。 数据将由查询执行计划在运行时间内使用,保证查询执行计划不会被恶意数据修改。
结束语
我猜这个应用程序漏洞之所以得到如此关注,是因为,毕竟我们所谈论的是苹果。围绕苹果产品的炒作,比如对iPhone和iPad的炒作,令人震 惊。然而事实是,这种漏洞其实并不是什么新闻,而是每天都在我们身边发生。
现在,很多应用程序并没有经过全面测试便推向市场。考虑到很多企业目前面临的市场压力,这种现象就变得一点都不奇怪。所以,尽管我认为这个漏洞 并不像媒体渲染的那样严重,但是它还是让我们看到一个好的安全程序和生命周期研发操作是成功的关键。
在上面提到的最常见的5种Web应用程序漏洞中,很多都可以通过计划和安全测试来消除。你所面临的最大挑战就是说服你的老板,让他相信这些漏洞 确实存在。不过我想现在你又多了一种有力武器来达到目的。
文/PCPOP
http://www.iadus.com/archives/699
分享到:
相关推荐
5. **Web安全工具**:介绍了一些常用的Web安全测试工具,如Burp Suite、Nessus和OWASP ZAP,以及如何运用这些工具进行安全测试。 《Web前端黑客技术揭秘》则主要聚焦于Web前端的安全问题,包含以下内容: 1. **...
Linux是Web服务器常用的操作系统之一,网络攻防和安全学则是逆向工程和Web安全中不可或缺的技术手段。社会工程学是利用人的心理漏洞进行攻击,这在安全领域尤其重要。Kali是信息安全领域常用的一款Linux发行版,被...
在IT行业中,Web安全是至关重要的领域,尤其是在我们日常生活中,网页应用无处不在。网易推出的《Web基础知识》课程涵盖了Web开发的基础技术,包括HTML、CSS、JavaScript、PHP和MySQL,这些都是构建Web应用不可或缺...
### Web安全测试笔记 在本篇笔记中,我们将探讨与Web安全测试相关的多个知识点,包括但不限于常见的测试方法、工具和技术等。这些知识点旨在帮助安全测试人员更好地理解和掌握如何有效地进行Web应用的安全评估。 #...
Web应用安全的防御措施包括多个层面,如: 1. 分析攻击模式,了解攻击者的策略和手段。 2. 实施Gongjiweb平台,这可能是指一个用于监控和防护Web攻击的系统。 3. 强化Web认证机制,防止凭证泄露。 4. 防御Web授权...
此外,实验中还可以通过SQL注入练习平台(如RedTigersHackit)进行实战演练,通过利用SQL注入漏洞的方式,尝试登录目标网站,从而加深对Web安全的理解和应对措施的掌握。 ### 学习目标与课程目标 学习Web安全技术...
### WEB常用的功能测试方法 在软件开发过程中,功能测试是一项重要的质量保证措施,尤其是在Web应用领域,其复杂性和多样性对测试提出了更高的要求。本文将基于提供的部分信息,深入探讨常用的Web功能测试方法,并...
- **统一性**:确保所有安全措施遵循一致的标准和协议。 - **灵活性**:支持不同的安全需求和应用场景。 - **可扩展性**:随着技术的发展和技术进步,安全框架应易于升级和完善。 - **互操作性**:支持不同平台...
- **掌握常用的Web安全工具**,例如Burp Suite用于拦截和修改HTTP/HTTPS流量,SQLMap用于自动化SQL注入攻击,Nmap则用于网络探测和漏洞扫描等。 - **具备扎实的信息安全理论基础**,能够理解常见的攻击模式和技术...
同时,对用户输入进行验证和过滤,防止SQL注入和跨站脚本攻击(XSS),是保护Web应用安全的基本措施。 综上所述,"常用web开发元素7"涵盖了从HTML基础到Java服务器端编程,再到Web设计和安全等多个方面。这些知识...
通过对Apache、Tomcat、IIS等常用WEB服务器以及PHP、phpMyAdmin等服务端环境进行细致的安全加固工作,可以有效地提升整个WEB应用的安全防护能力,减少因安全漏洞导致的风险。以上介绍的方法和措施虽然涵盖了大部分...
- **修改密码测试**:评估修改密码功能的安全措施。 - **不安全的数据传输**:检测是否使用了HTTPS等安全协议来保护敏感数据。 - **强口令策略测试**:确保系统强制用户设置复杂的密码。 - **会话管理测试** - *...
该文档旨在帮助开发人员和安全研究人员了解和掌握Web应用中常见的安全漏洞,并采取措施进行防护。在深入探讨Web应用安全漏洞分析之前,需要对以下几个方面进行详细阐述: 首先,Web应用安全漏洞按照风险程度分为高...
- **防御建议**:基于实验结果,提出防止SQL注入攻击的安全措施建议。 **2. 实验总结** 在实验总结部分,重点强调以下几点: - **理论与实践结合**:讨论理论知识与实践操作之间的联系,强调两者结合的重要性。 - *...
书中涵盖了黑客的常用手段、防御策略以及最新的攻防技术,对于Web开发人员、网络安全从业者以及对网络攻防感兴趣的读者来说,是一本不可多得的参考书籍。 在Web安全领域,黑客通常利用各种漏洞进行攻击,包括但不...
初级的 SQL 注入实验过程是 Web 安全技术中的一部分,该实验旨在掌握 MySQL 数据库的相关表格的基本操作和常用函数,熟悉 SQL 注入的基本流程,掌握 MySQL 中 UNION 的使用规则,并能够进行 PHP+MySQL 环境注入攻击...