理解Web应用安全漏洞 OWASP Top10 2013

      理解Web应用安全漏洞 OWASP Top10 2013有2条评论

大家普遍认同应用层的防守是最难做的。这里的漏洞经常需要基于复杂的用户输入情况,因此很难用入侵检测验证去鉴别应用是否被入侵,同时这一层也是最容易并且最有可能接触到外面世界的。为使应用程序能够运行,它必须能够访问80端口(HTTP)或443端口(HTTPS)。

2014年,遭泄漏的数据中有8.1%是因受到SQL注入攻击,这使得SQL注入成为继恶意软件(Malware)和分布式拒绝服务攻击(DDoS)之后最流行的攻击方式。在本次梳理的排名中你还会发现其他常见的应用程序攻击方式,例如安全配置错误(Security Misconfiguration)、使用已发现漏洞的组件以及跨站脚本攻击(XSS)。攻击者能够控制应用程序的输入并且在不被网络防御系统发现的情况下获取用户的机密数据。

大多在Web应用程序的专有代码中发现的漏洞对安全防御系统来说都是陌生的,因为这些针对特定应用程序的漏洞在之前并未出现过,技艺高超的攻击者可以轻松地找到这些漏洞并加以利用而不会被发现。

针对攻击最好的防御就是——开发安全的应用程序。开发人员必须了解针对应用程序的攻击是如何发生的,以及怎样直接在应用程序中构建软件防御系统。

OWASP Web安全风险TOP 10

开放式Web应用程序安全项目(OWASP)是一个开源的、非盈利的全球性安全组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息,致力于协助个人、企业和机构来发现和使用可信赖软件。

OWASP从2010年开始发布“十大常见Web应用安全风险”,每三年更新一次,最近的一次更新是在2013年。

IBM安全团队(Security Ethical Hacking Team)致力于构建安全的互联网,因此他们将OWASP列表中不同的攻击类型进行了演示并制成视频。视频中介绍了如何抵御这些攻击并且对如何使用自动化工具去检测某种攻击是否在进行作了演示。这批视频最初仅供IBM内部使用。

Web应用安全漏洞 OWASP Top10 2013

第十名:未验证跳转(Unvalidated Redirects and Forwards)

此类安全漏洞常用于网络钓鱼攻击,即受害人被导航骗去一个恶意站点。攻击者可以将一个授信站点的URL重新导向到一个其他的位置。下面我们来看看Jonathan Fitz-Gerald进行的攻击演示。

第九名:使用一发现漏洞的组件(Using Components With Known Vulnerabilities)

几乎每个程序都有这个问题,因为大多数人不会关心自己引用的库文件是否存在已知安全漏洞,而且一旦部署成功就不会再有人关心是否有组件需要升级。攻击者可以轻松攻破未安装补丁程序的第三方组件,因为该漏洞之前已经被曝出,而各种工具和POC也让攻击者有机可乘。任何一个刚开始接触脚本的懵懂少年都可以利用它来进行攻击。在本视频中,你将会看到鼎鼎大名的心脏滴血(Heartbleed)和破壳(Shellshock)漏洞攻击。

第八名:跨站点请求伪造(Cross-Site Request Forgery,CSRF)

CSRF允许攻击者诱使用户在不知情的情况下执行操作。在下面的视频中,Brennan Brazeau演示了如何通过社交媒体甚至是猫猫图片,就可以从受害者的银行账户偷钱。

第七名:功能级别访问控制缺失(Missing Function Level Access Control)

功能级别权限控制一般是写在代码中或者通过程序的配置文件来完成,但是可惜的是开发者经常忘记添加一些功能的权限控制代码。这里John Zuccato将演示一个低权限的用户如何通过攻击获得管理界面或者Web应用程序的更高权限。

    

第六名:暴露敏感数据(Sensitive Data Exposure)

这种漏洞就是导致知名网站用户信息泄露的关键,通过明文存储敏感数据。如果你的Web应用程序没有恰当地保护如信用卡或身份验证凭据等敏感数据,攻击者便能够通过窃取或者修改数据来进行信用卡诈骗、盗用身份以及其他犯罪。

    

第五名:安全配置错误(Security Misconfiguration)

终于进入前五名了,安全配置可能在各个级别(platform/web server/application server/database/framework/custom code)出错,开发人员需要同系统管理合作来确保合理进行配置。

    

第四名:不安全的直接对象引用(Insecure Direct Object References)

这个问题在动态网页中也相当普遍,指的是页面存在对数据对象的键/名字的直接引用 ,而网站程序没有验证用户是否有访问目标对象的权限。你将通过视频看到Fitz-Gerald如何耐心地下载一个又一个的文件直到获取整个数据库。

    

第三名:跨站脚本(Cross-Site Scripting,XSS)

允许跨站脚本是Web 2.0时代网站最普遍的问题。如果网站没有对用户提交的数据加以验证而直接输出至网页,那么恶意用户就可以在网页中注入脚本来窃取用户数据。下面为我们做演示的是Warren Moynihan,来看一下吧。

    

第二名:失效的身份认证和会话管理(Broken Authentication and Session Management)

本节Brazeau讨论了几种编程缺陷,这些缺陷允许攻击者绕过应用程序的身份验证,从而造成安全隐患。

    

第一名:注入漏洞(Injection)

注入是指输入中包含恶意代码(在解释器中会被作为语句执行而非纯文本),直接被传递给给解释器并执行,那么攻击者就可以窃取、修改或者破坏数据。最常见的如SQL注入、LDAP注入、OS命令注入等。Moynihan通过几个实例向我们演示了什么是SQL注入,在视频的结尾,他通过注入获得了该应用程序的全部用户名单和密码。

2 comments on “理解Web应用安全漏洞 OWASP Top10 2013

  1. bjpsd

    好文!部分视频可以用作安全培训案例讲解,但Demo部分演示过快并且较模糊缺乏画面感,需要与个人讲解相结合才能产生更好的培训效果!

发表评论