OWASP Top 10 2022 介绍

  • 1.失效的访问控制
  • 2.加密机制失效
  • 3.注入
  • 4.不安全的设计
  • 5.安全配置错误
  • 6.易受攻击和过时的组件
  • 7.识别和认证失败
  • 8.软件和数据完整性故障
  • 9.安全日志记录和监控失败
  • 10.服务器端请求伪造(SSRF)

每年 OWASP(开放 Web 应用程序安全项目)都会发布十大安全漏洞。它代表了对 Web 应用程序最关键的安全风险的广泛共识。

1.失效的访问控制

访问控制实施策略以防止用户超出其指定权限范围进行操作。由于访问漏洞,未经身份验证或不受欢迎的用户可能会访问机密数据和进程以及用户权限设置。 元数据操作,包括篡改或重放 JSON Web 令牌 (JWT) 访问控制令牌,或修改 cookie 或隐藏字段以提高权限或利用 JWT 失效,都是访问控制漏洞的一个示例。第二个例子是违反默认拒绝原则。必须仅向特定角色、能力或用户授予访问权限,但每个人都可以访问。此类错误可能使攻击者可以轻松访问他们想要的一切。 但是,可以通过应用安全编码方法并采取预防措施(例如禁用管理员帐户和限制以及安装多因素身份验证)来避免访问安全机制不足以及身份或密码管理问题。

其他预防技术包括:

  • 仅强制执行一次访问控制机制,并在应用程序期间重复使用它们,以减少跨域资源共享 (CORS)。
  • 领域模型应该施加不同的应用程序业务限制约束。
  • 限制对应用程序编程接口 (API) 和控制器的访问,以减轻自动攻击工具的影响。
  • 在访问控制中记录故障并根据需要向管理员发出警报。
  • 模型访问控制必须强制执行记录所有权,而不是授予用户创建、查看、修改或删除任何信息的权限。

2.加密机制失效

这里的重点在于经常暴露敏感数据的密码错误或缺少密码错误。以下是敏感信息泄露的典型例子

  • 会话令牌
  • 登录 ID 和密码
  • 网上交易
  • 个人信息(交换服务网络或SSN、健康记录等)

例如,应用程序可以使用自动数据库加密来安全地加密信用卡数据。不幸的是,当访问此信息时,它会立即未加密,从而导致 SQL 注入错误以明文形式提取信用卡信息,入侵者可能会利用这些信息。可以使用以下预防技术来避免这些故障:

  • 您应该使用具有延迟因子的稳健、加盐和自适应哈希算法来存储密码,例如 scrypt、Argon2、PBKDF2 或 bcrypt
  • 传输敏感数据时应避免使用文件传输协议 (FTP)和简单邮件传输协议 (SMTP)等旧协议
  • 建议实施经过身份验证的加密,而不是仅仅使用加密
  • 必须生成加密随机密钥并将其存储为字节数组。如果使用密码,则必须使用基于密码的密钥创建算法将其更改为类似于密钥的东西

3.注入

注入(或SQL 注入)是针对网站的数据库攻击,该网站使用结构化查询语言 (SQL) 来获取信息或执行通常需要经过身份验证的用户帐户的活动。程序很难从自己的代码中解释这些代码,从而允许攻击者进行注入攻击以访问受保护区域和伪装成受信任用户的敏感数据。注入包括SQL注入、命令注入、CRLF注入、LDAP注入等。

一些预防技术包括:

  • 一个更可取的替代方案是使用完全避开解释器、提供参数化 API 或易位到对象关系映射 (ORM) 工具的 API。
  • 建议使用积极的服务器端验证输入。许多应用程序,包括用于移动应用程序的文本字段和 API,都需要特殊字符。
  • 在查询中使用 LIMIT 和其他 SQL 约束是避免 SQL 注入情况下大量数据暴露的好方法。

4.不安全的设计

这是 2021 年的一个全新类别,专注于设计和架构缺陷,需要更多地使用威胁建模、设计安全建议和参考架构。不安全的设计是一个广泛的类别,包含各种问题,例如“缺失或不充分的控制设计”。这并不意味着不安全的设计是所有其他十大风险类别的根源。

不安全的设计与不安全的实现不同。即使设计是安全的,实施缺陷也可能导致漏洞。另一方面,有缺陷的设计不能通过完美的实现来弥补,因为不存在必要的安全保护措施来防御特定的威胁。

可以通过采用以下预防技术来避免这些威胁:

  • 在 AppSec 专家的协助下设置和使用安全的开发生命周期,以评估和构建安全和隐私保护措施。
  • 建议对关键验证、访问控制、应用程序逻辑和基本流程进行威胁建模。
  • 在用户故事中包含安全术语和控制。
  • 所有层级的租户隔离设计也被视为一种实用的预防方法。

5.安全配置错误

一般的安全设置问题,就像配置错误的访问控制一样,通过为攻击者提供对关键数据和站点区域的快速和轻松的访问而造成重大危险。

常见解决方案:

  • 系统化的强化过程允许快速轻松地部署安全环境。开发、质量控制和操作环境的配置应该是相似的,具有不同的用户权限。
  • 它非常适合自动化流程以建立新的安全环境,以节省必要的时间和精力。应删除或不安装未使用的功能和框架。没有不必要的功能、组件、文档或演示的主要平台会降低配置漏洞的可能性。

6.易受攻击和过时的组件

大多数在线应用程序都是在第三方框架的帮助下创建的。未知的应用程序代码可能会导致不良结果和不良情况,例如违反口音控制、SQL 注入等。

如果程序不安全、不受支持或过时,则可能存在与漏洞相关的危害。该软件包包括应用程序/Web 服务器、操作系统、应用程序、数据库管理系统 (DBMS)、API、其他元素、库和运行时环境。

自动化方法可帮助攻击者找到配置不当或未打补丁的机器。例如,Shodan IoT 搜索引擎可以帮助用户发现易受 Heartbleed 威胁的设备,该威胁已于 2014 年 4 月修复。某些预防技术包括:

  • 最好通过安全渠道从官方来源购买组件。
  • 留意那些不起作用或不为旧版本提供安全更新的模块和元素。如果无法进行修补,请考虑开发虚拟补丁来观察、识别或防范观察到的漏洞。
  • 删除任何过多的要求、功能、元素、文件夹或文档。

7.识别和认证失败

现在包含与识别问题相关的 CWE。当攻击者获取用户信息、密码恢复、ID 会话和其他登录凭据时,就会产生安全问题。顾名思义,身份和身份验证失败包括黑客利用此类漏洞利用身份验证不足。

如果应用程序允许自动攻击,例如凭证填充(当攻击者可以访问真实用户和密码列表)或预定义的、较弱的和常见的密码(例如“Password1”或“admin/admin”),这些可能是身份验证缺陷的迹象

为避免此类缺陷,必须考虑以下预防措施:

  • 必须在可行的情况下使用多因素身份验证,以避免自动凭证填充、暴力攻击和被盗凭证的重复使用。
  • 通过对照包含 10,000 个最差密码的数据库检查新密码或修改密码,可以提高密码安全性。
  • 对每个结果使用相同的消息有助于防止对密码恢复、注册和 API 路径的帐户枚举攻击。
  • 不要安装任何默认凭据,尤其是对于管理用户。

8.软件和数据完整性故障

随着越来越多的敏感信息存储在数据库中,容易受到安全漏洞的影响,数据完整性问题对于软件来说变得至关重要。

这是一个新类别,它侧重于假设软件更新、重要数据和 CI/CD 程序的完整性,而无需对其进行验证。一个例子是当应用程序使用来自内容交付网络 (CDN) 或未经授权的来源的扩展、模块或存储库时。未受保护的持续集成/持续交付 ( CI/CD ) 流程可能会增加恶意代码、系统受损或未经授权访问的风险。

预防技术包括:

  • 人们可能会使用诸如数字签名之类的措施来确认数据或软件来自预期的来源而没有任何篡改。
  • 软件供应链的安全工具,如 OWASP CycloneDX 或 OWASP Dependency-Check,可用于保证组件不包含设计缺陷。
  • 有必要确保 CI/CD 工作流具有所需的分段、访问控制和参数化,以在整个设置和部署操作过程中保护代码完整性。
  • 未经签名或未加密的编译数据不应发送给不受信任的客户端,除非已进行完整性测试或数字签名以识别数据更改或重复。

9.安全日志记录和监控失败

在存在可疑行为和事件的情况下缺乏跟踪可能会扩大不受监控的时间间隔,从而使安全漏洞被忽视的时间比使用更好的日志记录的时间更长。此 OWASP Top 10 2021 部分旨在帮助识别、升级和解决最近的违规行为。如果没有记录和监控,就不可能检测到安全漏洞。

  • 确认所有身份验证、访问安全系统和服务器端数据验证问题都记录有足够的用户信息,以检测可疑或欺诈帐户,并存储足够长的时间以进行延迟的全面调查。
  • 确保以日志管理系统可使用的格式创建日志。
  • 创建或应用用于事件恢复和响应工作的策略,例如 NIST 800-61r2 或更高版本。
  • 确保对日志数据进行适当编码,以避免对监控系统的入侵或网络威胁。

10.服务器端请求伪造(SSRF)

该类别的结果显示了高于平均水平的测试覆盖率、合理的低发生率以及高于平均水平的影响和利用评级。SSRF 是在服务器端查询未验证用户提供的 URL 的情况下开发的。这允许攻击者诱使应用程序将伪造请求传输到不希望的位置,即使该位置受到虚拟专用网络 (VPN)、防火墙或网络访问控制列表 (ACL) 的保护。

随着新的在线应用程序为最终用户提供方便的功能,获取 URL 已成为一种典型情况。因此,SSRF 患病率正在增加。此外,由于云服务和设计复杂性,SSRF 的强度正在增加。考虑到这一点,可以通过采用以下预防技术来避免此类攻击:

  • 为了限制 SSRF 的影响,应该将远程资源访问功能分离到不同的网络中。
  • 安装“默认拒绝”防火墙设置或网络访问控制规则,以阻止除必需的内部流量外的所有 Web 流量。
  • 在 (TOCTOU) 情况下,为了防止 DNS 重新映射和“检查时间、使用时间”等攻击,最好注意 URL 的准确性。

OWASP Top 10 2022介绍相关推荐

  1. WEB十大安全漏洞(OWASP Top 10)与渗透测试记录

    1. 前言 每年 OWASP(开放 Web 应用程序安全项目)都会发布十大安全漏洞.它代表了对 Web 应用程序最关键的安全风险的广泛共识.了解十大WEB漏洞种类并善于在渗透测试中发现漏洞是安全行业人 ...

  2. decimal转为string sql_SQL注入详解|OWASP Top 10安全风险实践(二)

    本文为一些列连载文章之一,不定期更新,计划目录如下: OWASP介绍 SQL注入 命令注入 XML外部实体注入 XPATH注入 反射式.DOM及存储XSS 失效的身份认证和会话管理 不安全的直接对象引 ...

  3. 安全服务/渗透测试工程师_面试题之OWASP TOP 10

    欢迎关注我的微信公众号:安全攻防渗透 信息安全领域原创公号,专注信安领域人才培养和知识分享,致力于帮助叁年以下信安从业者的学习和成长. 思考了很长时间,最近一直在准备安全服务工程师的面试题,说到底还是 ...

  4. OWASP Top 10 安全漏洞详解

    OWASP或Open Web Security Project是一家非营利性慈善组织,致力于提高软件和Web应用程序的安全性. 该组织根据来自各种安全组织的数据发布顶级Web安全漏洞列表. 根据可利用 ...

  5. 【Microsoft Azure 的1024种玩法】二十四.通过Azure Front Door 的 Web 应用程序防火墙来对 OWASP TOP 10 威胁进行防御

    [简介] 我们都知道像 SQL 注入.跨站点脚本攻击(XSS)之类的恶意攻击以及 OWASP 发现的十大威胁都可能会导致服务中断或数据丢失,让 Web 应用程序所有者受到巨大威胁.那么如何有效的解决O ...

  6. 小白必看!OWASP top 10详解

    今天来学习一下什么是OWASP top 10 目录 今天来学习一下什么是OWASP top 10 A1 注入injection A2 失效的身份认证 A3 敏感数据泄露 A4 XML外部实体(XXE) ...

  7. OWASP top 10漏洞原理及防御(2017版官方)

    文章目录 一.OWASP top 10简介 二.OWASP top 10详解 A1:2017-注入 A2:2017-失效的身份认证 A3:2017-敏感数据泄露 A4:2017-XML外部实体(XXE ...

  8. 【Ruby on Rails】2021 OWASP TOP 10 的安全加固建议

    写在前面 OWASP TOP 10 在去年下半年发布了新版,本文将结合新版 TOP 10 的内容,整理一份 Rails 安全实践,供开发者朋友们参考. 本文适合有一定 Rails 开发经验,期望了解应 ...

  9. 网络安全入门必知的OWASP top 10漏洞详解

    0.OWASP Top10是什么? 首先介绍下OWASP,开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个非营利组织,不附属 ...

  10. OWASP top 10漏洞详解

    一.写在前边   临近毕业,最近在找实习单位,看到好多招聘要求熟悉owasp top 10 安全漏洞,于是在经过一番查资料,终于有了大致的了解,为了加深印象,特意通过博客记录一下,也希望为有同样需求的 ...

最新文章

  1. 【leetcode】581. Shortest Unsorted Continuous Subarray
  2. [算法学习] 线段树,树状数组,数堆,笛卡尔树
  3. pythondocx文档重叠_使用PYTHON实现docx文档的读写
  4. JAVA实验报告九异常处理_JAVA实验报告_Java异常处理
  5. SharePoint学习札记[6] — WebPart之基础
  6. html的技术标准网站,HTML5标准最新技术预览
  7. php如何使用高阶函数
  8. for mew歌词 shell_求shell for mew的中文歌词
  9. python的常量变量_Python基础语法-常量与变量
  10. 规范规约是最左规约吗_Java开发者必须要知道的MySQL规范
  11. 2009年北京第一场雪
  12. 这 4 个远程桌面开源了!
  13. 员工激励机制设计宝典
  14. 程序员数学(17)–勾股定理
  15. Hibernate第四篇【集合映射、一对多和多对一】
  16. 西门子官网下载Eplan部件库
  17. 用于阿尔茨海默症分期早期检测的多模态深度学习模型
  18. 上海怎样盘活闲置房 区县:多种方式支持
  19. 参加ACM经历及总结
  20. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

热门文章

  1. 人工智能数学基础:泰勒(Taylor)公式
  2. 使用D3渲染中国地图
  3. 封装系统时删除pagefile.sys及hiberfil.sys文件
  4. tomcat启动失败:Failed creating java jvm.dll
  5. 【破解】PyCharm2018专业版激活(激活到2100年)
  6. 中国农大计算机保研,中国农业大学2021届保研情况
  7. python慢画炫彩圆圈_pygame绘画与动画
  8. 如何连接工作组计算机win7,如何设置工作组,详细教您如何设置局域网工作组
  9. 艰难困苦,玉汝于成!
  10. vue3 + vite中按需使用ace-builds实现编辑器