OWASP 十大安全风险 | 概述

目录

OWASP Top 10 概述

什么是OWASP?

OWASP 是一个致力于网络应用程序安全教育的非盈利组织。 

OWASP 学习材料可在其网站上访问。 他们的工具可用于提高 Web 应用程序的安全性。 这包括文档、工具、视频和论坛。

OWASP Top 10 是一个列表,突出显示了当今 Web 应用程序的首要安全问题。 他们建议所有公司将此报告纳入其流程以降低安全风险. 以下是 OWASP 10 年 2017 大报告中包含的安全风险列表。

SQL注入

当攻击者向 Web 应用程序发送不适当的数据以破坏应用程序中的程序时,就会发生 SQL 注入.

SQL注入的一个例子:

攻击者可以将 SQL 查询输入到需要用户名明文的输入表单中。 如果输入表单不安全,将导致执行 SQL 查询。 这个 被提及 作为 SQL 注入。

要保护 Web 应用程序免受代码注入,请确保您的开发人员对用户提交的数据使用输入验证. 这里的验证是指拒绝无效输入。 数据库管理员还可以设置控制以减少 信息 这样可以 被披露 在注入攻击中.

为了防止 SQL 注入,OWASP 建议将数据与命令和查询分开。 更好的选择是使用安全的 API 防止使用解释器,或迁移到对象关系映射工具 (ORM).

认证失败

身份验证漏洞可能允许攻击者访问用户帐户并使用管理员帐户破坏系统. 网络罪犯可以使用脚本在系统上尝试数千种密码组合,看看哪些有效. 一旦网络罪犯进入,他们就可以伪造用户的身份,让他们能够访问机密信息.

允许自动登录的 Web 应用程序中存在身份验证失效漏洞。 纠正身份验证漏洞的一种流行方法是使用多因素身份验证。 此外,登录速率限制可能 被包括在内 在网络应用程序中防止暴力攻击。

敏感数据暴露

如果 Web 应用程序不保护敏感的攻击者可以访问和使用它们来获取利益。 路径攻击是窃取敏感信息的一种流行方法。 当所有敏感数据都被加密时,暴露的风险可以降到最低。 Web 开发人员应确保没有敏感数据暴露在浏览器上或被不必要地存储。

XML 外部实体 (XEE)

网络犯罪分子可能能够上传恶意 XML 内容、命令或代码,或将其包含在 XML 文档中. 这允许他们查看应用程序服务器文件系统上的文件。 一旦获得访问权限,他们就可以与服务器交互以执行服务器端请求伪造 (SSRF) 攻击.

XML 外部实体攻击可以 被阻止 允许 Web 应用程序接受不太复杂的数据类型,例如 JSON. 禁用 XML 外部实体处理还可以减少 XEE 攻击的机会。

存取控制中断

访问控制是一种系统协议,用于限制未经授权的用户访问敏感信息。 如果访问控制系统被破坏,攻击者可以绕过身份验证。 这使他们能够像获得授权一样访问敏感信息。 可以通过在用户登录时实施授权令牌来保护访问控制。 对于用户在经过身份验证时发出的每个请求,都会验证用户的授权令牌,表明用户已获得发出该请求的授权。

安全配置错误

安全配置错误是一个常见问题 网络安全 专家观察 Web 应用程序。 发生这种情况的原因是错误配置的 HTTP 标头、损坏的访问控制以及在 Web 应用程序中公开信息的错误显示. 您可以通过删除未使用的功能来更正安全配置错误。 您还应该修补或升级您的软件包。

跨站点脚本(XSS)

当攻击者操纵受信任网站的 DOM API 在用户浏览器中执行恶意代码时,就会出现 XSS 漏洞. 当用户单击看似来自受信任网站的链接时,通常会执行此恶意代码. 如果网站没有针对 XSS 漏洞进行保护,它可以 被妥协. 恶意代码 被执行 让攻击者访问用户的登录会话、信用卡详细信息和其他敏感数据.

为防止跨站点脚本 (XSS),请确保您的 HTML 已得到妥善清理。 这个可以 达到 根据选择的语言选择可信框架. 您可以使用 .Net、Ruby on Rails 和 React JS 等语言,因为它们有助于解析和清理您的 HTML 代码。 将来自经过身份验证或未经身份验证的用户的所有数据视为不受信任可以降低 XSS 攻击的风险.

不安全的反序列化

反序列化是将序列化数据从服务器转换为对象。 数据反序列化在软件开发中很常见。 数据不安全 被反序列化 来自不受信任的来源。 这个可以 可能 让您的应用程序受到攻击。 当来自不受信任来源的反序列化数据导致 DDOS 攻击、远程代码执行攻击或身份验证绕过时,就会发生不安全的反序列化.

为避免不安全的反序列化,经验法则是永远不要信任用户数据。 每个用户输入的数据应该 被处理 as 可能 恶意的。 避免反序列化来自不受信任来源的数据。 确保反序列化函数 使用 在您的 Web 应用程序中是安全的。

使用具有已知漏洞的组件

库和框架使开发 Web 应用程序变得更快,而无需重新发明轮子. 这减少了代码评估中的冗余。 它们为开发人员专注于应用程序更重要的方面铺平了道路。 如果攻击者发现这些框架中的漏洞,使用该框架的每个代码库都会 被妥协.

组件开发人员通常会为组件库提供安全补丁和更新。 为避免组件漏洞,您应该学会使用最新的安全补丁和升级使您的应用程序保持最新状态. 未使用的组件应该 被删除 从应用程序减少攻击向量。

日志记录和监控不足

日志记录和监控对于显示 Web 应用程序中的活动很重要。 日志记录使跟踪错误变得容易, 监控 用户登录和活动。

未记录安全关键事件时,记录和监视不足 正确. 攻击者利用这一点在有任何明显响应之前对您的应用程序进行攻击.

日志记录可以帮助您的公司节省金钱和时间,因为您的开发人员可以 容易 发现错误. 这使他们可以更专注于解决错误而不是搜索错误。 实际上,日志记录可以帮助您的站点和服务器每次都保持正常运行,而不会出现任何停机.

结论

好的代码不是 只是 关于功能,这是为了保证您的用户和应用程序的安全. OWASP Top 10 列出了最关键的应用程序安全风险,是开发人员编写安全 Web 和移动应用程序的绝佳免费资源. 从长远来看,培训您团队中的开发人员评估和记录风险可以节省您的团队时间和金钱。 如果你愿意 了解更多有关如何在 OWASP Top 10 上培训您的团队的信息,请单击此处。