因为本身是学习信息安全的,最近开始接触安全的各方面学习,而OWASP是网络web安全学习的一个重要内容,它不仅会提供一些安全工具也有对当下的主要安全威胁进行整理发布,而且这个组织本身是不盈利组织,这也是我今天写博文的原因,互联网的安全是需要每个人的力量的,而不能将这些安全隐患作为自己谋财之道。
OWASP,全称是:Open Web Application Security Project,翻译为中文就是:开放式Web应用程序安全项目,是一个非营利组织,不附属于任何企业或财团,这也是该组织可以不受商业控制地进行安全开发及安全普及的重要原因,详细的介绍可以参见下方Wikipedia中的内容。
这是一个应用于web扫描和攻击的安全工具,同时也是开源的,在截断代理以及扫描攻击上是比较强大的,下面是一段来自Wikipedia的介绍。
OWASP ZAP (short for Zed Attack Proxy) is an open-source web application security scanner. It is intended to be used by both those new to application security as well as professional penetration testers.
It is one of the most active OWASP projects[1] and has been given Flagship status.[2] It is also fully internationalized and is being translated into over 25 languages.
这是每年的一份关于web应用的十大威胁安全报告,会在经过安全专家的测验之后确定十大类对当前web应用威胁最大和被应用最广的漏洞,同时也会对其进行详细的分析威胁所在。
虽然已经官网有说出了一份2016最新版本的OWASP Top 10的报告,但是由于一些原因暂时又不公开了,想了解的同学可以自行访问下方的链接,鉴于已有的OWASP Top 10的2010和2013版本,本篇博文就主要介绍这两个版本发布的十大漏洞并进行比较介绍。
A1—注入
A2—跨站脚本、XSS
A3—失效的身份认证会话管理
A4—不安全的直接对象引用
A5—跨站请求伪造(CSRF)
A6—安全配置错误
A7—不安全的加密存储
A8—没有限制的URL访问
A9—传输层保护不足
A10—未验证的重定向和转发
A1—注入
A2—失效的身份认证会话管理
A3—跨站脚本、XSS
A4—不安全的直接对象引用
A5—安全配置错误
A6—敏感信息泄漏
A7—功能级访问控制缺失
A8—跨站请求伪造(CSRF)
A9—使用含有已知漏洞的组件
A10—未验证的重定向和转发
从上面做展示的两份报告的类型进行比较,可以得知,2013年的报告在2010版本上进一步涵盖了一些高危漏洞,例如2010的A7和A9合并为2013的A6,2010的A8扩展为2013的A7,而其他没有明显改变的漏洞可见仍然是当下web应用中的常见的威胁。
在介绍了十大威胁类型之后,刚开始接触这些漏洞,出于好奇和求学,自然想知道这些漏洞是怎么来的,又如何造成威胁,应该怎么去防范,而在今天的博文中是对一些威胁进行阐述。
对安全漏洞有一定接触的同学或者对Windows系统电脑使用较多的朋友应该都知道漏洞分有low、middle和high三个主要等级,这便是根据漏洞对系统或者应用产生的威胁程度进行判定的,而一个0day漏洞一般被视作可以获得攻击系统或者服务器最高权限的法宝,而没有比这更让系统主人感到害怕的了,因为你一切都暴露在攻击者面前了。
- 注入:注入攻击漏洞,例如SQL,OS以及 LDAP注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。
- 失效的身份认证和会话管理:与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏密码、密匙、会话令牌或攻击其他的漏洞去冒充其他用户的身份。
- 跨站脚本:当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。
- 不安全的直接对象引用:当开发人员暴露一个对内部实现对象的引用时,例如,一个文件、目录或者数据库密匙,就会产生一个不安全的直接对象引用。在没有访问控制检测或其他保护时,攻击者会操控这些引用去访问未授权数据。
- 安全配置错误:好的安全需要对应用程序、框架、应用程序服务器、web服务器、数据库服务器和平台定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护这些设置。这包含了对所有的软件保持及时地更新,包括所有应用程序的库文件。
- 敏感信息泄漏:许多Web应用程序没有正确保护敏感数据,如信用卡,税务ID和身份验证凭据。攻击者可能会窃取或篡改这些弱保护的数据以进行信用卡诈骗、身份窃取,或其他犯罪。敏感数据值需额外的保护,比如在存放或在传输过程中的加密,以及在与浏览器交换时进行特殊的预防措施。
- 功能级访问控制缺失:大多数Web应用程序在功能在UI中可见以前,验证功能级别的访问权限。但是,应用程序需要在每个功能被访问时在服务器端执行相同的访问控制检查。如果请求没有被验证,攻击者能够伪造请求以在未经适当授权时访问功能。
- 跨站请求伪造:一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括该用户的会话cookie和其他认证信息,发送到一个存在漏洞的web应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。
- 使用含有已知漏洞的组件:组件,比如:库文件、框架和其它软件模块,几乎总是以全部的权限运行。如果一个带有漏洞的组件被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带有已知漏洞的组件会破坏应用程序防御系统,并使一系列可能的攻击和影响成为可能。
- 未验证的重定向和转发:Web应用程序经常将用户重定向和转发到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以重定向受害用户到钓鱼软件或恶意网站,或者使用转发去访问未授权的页面。
对于OWASP Top 10的内容还有很多需要深入去学习和实践测试渗透,而这是一名安全工作者需要的,当然在一个互联网络时代,安全有时就在自己看不到的地方,所以永远不要认为自己做一件事一定是安全而且隐秘的,不过也不要有攻击危害他人行为的想法,一个良好的互联时代是由每一位网络使用者共同构建的。