什么是OWASP?
OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。我们的使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有140个分会近四万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
以上是官方定义,我的理解OWASP就是一个国际应用安全的标准化组织。
什么是OWASP Top 10
这是OWASP组织公布的十大安全威胁。目前为止一共有两个版本,2010年版本和2013年版本。
下面按照如下步骤对每个威胁进行介绍:
- 威胁描述
- 有漏洞的例子
- 攻击例子
- 如何避免此类攻击
概览
- A1-注入:注入攻击漏洞,例如SQL、OS以及LDAP注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。
- A2-失效的身份认证和会话管理:与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏密码、密钥、会话令牌或攻击其他的漏洞去冒充其他用户的身份。
- A3-跨站脚本:当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持会话、危害网站、或者将用户转向恶意网站。
- A4-不安全的直接对象引用:当开发人员暴露一个对内部实现对象的引用时,例如,一个文件、目录或者数据库密钥,就会产生一个不安全的直接对象引用。在没有访问控制检测或者其他保护时,攻击者会操控这些引用去访问未授权数据。
- A5-安全配置错误:好的安全需要对应用程序、框架、应用程序服务器、Web服务器、数据库服务器和平台定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护这些设置。这包含了对所有的软件保持及时的更新,包括所有应用程序的库文件。
- A6-敏感信息泄露:许多Web应用程序没有正确保护敏感数据,如信用卡,税务ID和身份验证凭据。攻击者可能会窃取或篡改这些弱保护以进行信用卡诈骗、身份窃取,或其他犯罪。敏感数据值需额外的保护,比如在存放或传输过程中的加密,以及在与浏览器交换时进行特殊的预防措施。
- A7-功能级访问控制缺失:大多数Web应用程序的功能在UI中可见以前,验证功能级别的访问权限。但是,应用程序需要在每个功能被访问时在服务器端执行相同的访问控制检查。如果请求没有被验证,攻击者能够伪造请求以在未经适当授权时访问功能。
- A8-跨站伪造请求:一个跨站伪造请求攻击迫使登陆用户的浏览器将伪造的HTTP请求,包括该用户的会话cookie和其他认证信息,发送到一个存在漏洞的Web应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。
- A9-使用含有已知漏洞的组建:组建,比如:库文件、框架和其他软件模块,几乎总是以全部的权限运行。如果一个带有漏洞的组建被利用,这种攻击可以造成更为严重的数据丢失或服务器接管。应用程序使用带有已知漏洞的组建会破坏应用程序防御系统,并使一系列可能的攻击和影响成为可能。
- A10-未验证的重定向和转发:Web应用程序经常将用户重定向或者转发到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以重定向受害用户到钓鱼软件或恶意网站,或者使用转发去访问未授权的页面。
【版权声明】
本文首发于戚名钰的博客,欢迎转载,但是必须保留本文的署名戚名钰(包含链接)。如您有任何商业合作或者授权方面的协商,请给我留言:qimingyu.security@foxmail.com
欢迎关注我的微信公众号:科技锐新