根据开放网络应用安全项目 (OWASP)维护的统计数据,可以区分十个最常见的安全错误。 下图显示了网络应用安全研究机构 Veracode 在初步风险评估期间检测这些漏洞的频率。
在 Veracode 初始风险评估期间,OWASP 前 10 名列表中的漏洞检测率。 来源: [维拉代码]
根据 OWASP 引用的上述最常见的漏洞是:
- 作为命令或查询的一部分(SQLi、操作系统、XXE、LDAP),将不受信任的数据注入代码解释器的易感性。 攻击者可以比口译员聪明地执行计划外命令或在未经适当授权的情况下访问数据。
- 正确执行的真实性和会话管理机制。 这允许攻击者泄露密码、密钥、会话令牌或劫持其他应用程序用户的身份。
- 跨站点脚本 (XSS)是将 JavaScript 注入 攻击页面内容的攻击。 它可以用来劫持用户的会话、重定向到危险的用户站点或社会工程攻击。
- 关于系统用户有权访问哪些权限和资源的存取控制机制已损坏。 攻击者可以利用此漏洞访问未经授权的功能或敏感数据,并访问其他用户的帐户。
- 不正确的安全设置 – 为了正确保护系统,为应用程序、框架、应用程序服务器、数据库服务器、平台等定义并实施了适当的设置。 此外,软件应定期更新。
- 共享敏感数据 – 许多 Web 应用程序和 API 无法正确保护敏感数据,如财务、医疗或个人数据。 攻击者可以窃取或修改这些保护不力的信息,并用它来欺诈信用卡、窃取身份或犯下其他罪行。 在传输和存储过程中,敏感数据应受到加密的额外保护。
- 对攻击的保护不足 – 许多系统没有基本能力检测、防止和响应手动和自动攻击。 您应该实施超越验证输入的基本机制的机制,包括自动检测、记录甚至阻止攻击尝试。 此外,应用所有者必须能够轻松上传安全修补程序。
- 跨站点请求伪造 (CSRF)– 包括强制用户的浏览器在该用户的上下文中向服务器发送查询。 因此,它允许受害者执行一些未经授权的操作,例如更改密码、进行转移。
- 使用具有已知漏洞的组件(库、框架和软件中使用的其他模块)的组件在与应用程序本身相同的权限下运行。 如果易受攻击的组件受到损害,此类攻击可能会对数据或整个系统构成严重威胁。 使用具有已知漏洞的组件的应用程序可以通过将其打开到各种类型的攻击来删除保护应用程序的层。
- 不安全的API – 今天的应用程序通常提供除基本功能(SOAP/XML、REST/JSON、RPC、GWT等)之外与他们进行通信的API。 这些接口通常不安全,并包含许多漏洞。