OWASP TOP10 2017

开源Web应用安全项目(OWASP)是一个开放的社区, 致力于帮助各企业组织开发、购买和维护可信任的应用程序。Top 10项目的目标,是通过识别出企业组织所面对最严重的风险来提高人们对应用程序安全的意识。

TOP 10 内容如下:

  • 注入
  • 失效的身份认证和会话管理
  • 跨站脚本(XSS)
  • 失效的访问控制
  • 安全配置错误
  • 敏感信息泄露
  • 攻击检测与防护不足
  • 跨站请求伪造(CSRF)
  • 使用含有已知漏洞的组件
  • 未受有效保护的API

注入

注入攻击漏洞, 例如SQL,OS以及LDAP注入。这些攻击发生在当不可信的数据作为命 令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。

注入有很多种,其核心原理都是因为将用户的输入作为可信内容,随业务逻辑一同运行,导致恶意代码写入,造成意想不到的危害

常见的注入有SQL注入XSS注入XPATH注入XML注入代码注入命令注入模板注入

以SQL注入为例,这里做了详细的阐述。,其余注入可以在文章中搜到,在这里不一一列出。

失效的身份认证和会话管理

与身份认证和回话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击 者攻击者破坏密码、密钥、会话令牌或攻击其他的漏洞去冒充其他用户的身份(暂时或永久的)。

跨站脚本(XSS)

当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它 发送给一个网页浏览器,或者使用可以创建javaScript脚本的浏览器API利用用户提供的数据 更新现有网页,这就会产生跨站脚本攻击。XSS允许攻击者在受害者的浏览器上执行脚本, 从而劫持用户会话、危害网站或者将用户重定向到恶意网站。

这里对xss做了详细的阐述。

失效的访问控制

对于通过认证的用户所能够执行的操作,缺乏有效的限制。攻击者就可以利用这些缺 陷来访问未经授权的功能和/或数据,例如访问其他用户的账户,查看敏感文件,修改其他 用户的数据,更改访问权限等。

安全配置错误

好的安全需要对应用程序、框架、应用程序服务器、web服务器、数据库服务器和平 台定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和 维护这些设置。此外,所有的软件应该保持及时更新。

敏感信息泄露

许多web应用程序和API没有正确保护敏感数据,如财务、医疗保健和PII。攻击者可能 会窃取或篡改此类弱保护的数据,进行信用卡欺骗、身份窃取或其他犯罪行为。敏感数据 应该具有额外的保护,例如在存放或在传输过程中的加密,以及与浏览器交换时进行特殊 的预防措施。

攻击检测与防护不足

大多数应用和API缺乏检测、预防和响应手动或自动化攻击的能力。攻击保护措施不限 于基本输入验证,还应具备自动检测、记录和响应,甚至阻止攻击的能力。应用所有者还 应能够快速部署安全补丁以防御攻击。

跨站请求伪造(CSRF)

一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括受害者的会话 cookie和所有其他自动填充的身份认证信息,发送到一个存在漏洞的web应用程序。这种攻 击允许攻击迫使受害者的浏览器生成让存在漏洞的应用程序认为是受害者的合法请求的请求。

这里对CSRF做了详细的阐述。

使用含有已知漏洞的组件

组件,比如:库文件、框架和其他软件模块,具有与应用程序相同的权限。如果一个 带有漏洞的组件被利用,这种攻击可以促成严重的数据丢失或服务器接管。应用程序和API 使用带有已知漏洞的组件可能会破坏应用程序的防御系统,并使一系列可能的攻击和影响 成为可能。

未受有效保护的API

现代应用程序通常涉及丰富的客户端应用程序和API,如:浏览器和移动APP中的 JavaScript,其与某类API(SOAP/XML、REST/JSON、RPC、GWT等)连接。这些API通常是不 受保护的,并且包含许多漏洞。