2021的OWASP TOP 10

OWASP(开放Web应用安全项目)是一个非营利性组织,旨在提高软件安全性。

每四年一个更新,2025年就会再次更新,到时候这篇文章也会实时更新。

我主要从定义,场景,原因,影响,防护措施进行介绍。

2021  OWASP TOP 10

前10名

  1. Broken Access Control(访问控制缺失)
  2. Cryptographic Failures(加密失败)
  3. Injection(注入漏洞)
  4. Insecure Design(不安全的设计)
  5. Security Misconfiguration(安全配置错误)
  6. Vulnerable and Outdated Components(漏洞和过时组件)
  7. Identification and Authentication Failures(身份识别与认证失败)
  8. Software and Data Integrity Failures(软件与数据完整性失败)
  9. Security Logging and Monitoring Failures(安全日志与监控失败)
  10. Server-Side Request Forgery (SSRF)(服务器端请求伪造)

 一.Broken Access Control(访问控制缺失)

(1)定义

应用程序未能正确限制用户对资源的访问,导致未授权的用户可以访问或修改敏感数据。这种漏洞可能导致数据泄露、篡改或其他安全问题。

(2)常见情景

1.用户可以访问其他用户的私人信息(如账户详情、财务信息)。

2.未授权的用户可以执行管理员操作(如删除数据、修改权限)。

3.API接口没有适当的身份验证,允许任意用户进行操作。

(3)漏洞原因

1.缺乏授权检查应用程序未在敏感操作前验证用户是否具有相应的权限。

2.错误的URL访问:通过直接访问URL,攻击者可以绕过前端界面的访问控制。

3.不安全的默认设置:某些框架或组件的默认配置可能导致安全性不足。

(4)影响

1.敏感数据被未授权用户访问。

2.违反数据保护法规。

3.用户信任度下降,影响声誉。

(5)防护措施

1.强制访问控制:在每个敏感操作中实施严格的访问控制检查。

2.使用最小权限原则:确保用户只能访问其所需的资源和操作。

3.安全编码实践:在开发阶段进行代码审查,确保安全逻辑的正确性。

4.定期安全测试:通过渗透测试和代码审计发现潜在的访问控制缺失。

5.利用角色和权限:合理设计用户角色和权限,确保细粒度的访问控制。

6.监控与日志记录:记录访问请求,监控异常活动以便及时响应。

 二.Cryptographic Failures(加密失败)

(1)定义

Cryptographic Failures指的是在加密过程中使用不安全的算法、配置或实施方式,导致敏感数据被攻击者获取或篡改。

(2)常见情景

1.使用过时的加密算法,比如:MD5、SHA-1。

2.密钥管理不当,导致密钥泄露。

3.传输中的数据未加密,易受中间人攻击。

(3)漏洞原因

1.不当的算法选择:未使用行业标准的强加密算法。

2.弱密钥生成:使用容易被猜测或暴力破解的密钥。

3.缺乏数据保护在存储或传输敏感信息时未采取适当加密措施。

(4)影响

1.数据泄露:敏感信息(如密码、信用卡信息)被攻击者窃取。

2.系统完整性受损:数据被篡改,导致信任危机。

3.法律责任:可能违反数据保护法规,面临罚款。

(5)防护措施

1.使用强加密算法选择AES、RSA等当前被广泛认可的加密标准。

2.安全密钥管理:使用安全的密钥存储解决方案,并定期更换密钥。

3.加密敏感数据:确保所有敏感数据在存储和传输过程中都经过加密。

4.实施安全协议:使用TLS等安全协议来保护数据传输。

5.定期安全审计:对加密实施进行定期检查和审计,确保符合最佳实践。

三.Injection(注入漏洞) 

(1)定义

注入漏洞是指攻击者通过将恶意代码或数据注入到应用程序中,导致应用程序执行非预期的操作。这类漏洞通常出现在Web应用程序中,最常见的包括SQL注入、命令注入、XML注入等。

(2)常见类型

  1. SQL注入

    • 攻击者通过输入恶意SQL语句,操控数据库执行未授权的查询或操作。
    • 例如,通过在登录表单中输入特制的SQL代码,绕过身份验证。
  2. 命令注入:

    • 攻击者将命令插入到应用程序可以执行的系统命令中,导致系统执行未授权的操作。
    • 例如,在Web应用中执行系统命令来获取敏感信息。
  3. XML注入:

    • 攻击者向XML输入中插入恶意内容,可能导致信息泄露或服务拒绝(DoS)。
    • 例如,篡改XML数据以改变处理逻辑。
  4. 脚本注入(如XSS):

    • 攻击者将恶意脚本注入到网页中,导致其他用户的浏览器执行该脚本。
    • 这可以用来窃取Cookies、会话信息等。

(3)漏洞原因

1.缺乏输入验证应用程序未对用户输入进行充分的验证和清理。

2.拼接SQL查询:直接将用户输入拼接到SQL查询中,而不使用参数化查询。

3.不安全的API调用:在构造系统命令时直接使用用户输入。

(4)影响

1.数据泄露攻击者可以获取敏感信息。

2.数据篡改:未授权的修改数据库或其他数据。

3.系统损害:执行系统命令可能导致服务中断或数据丢失。

4.信任丧失:用户对应用程序的信任度降低,可能导致用户流失。

(5)防护措施

1.输入验证对所有用户输入进行严格的验证,确保符合预期格式。

2.参数化查询:在数据库查询中使用参数化或预编译语句,避免直接拼接SQL。

3.使用安全API:调用系统命令时,避免直接使用用户输入,使用安全的API接口。

4.编码输出:在向用户输出数据前,进行适当的编码,防止脚本注入。

5.定期安全审计:对应用程序进行安全测试,识别和修复潜在的注入漏洞。

四. Insecure Design(不安全的设计)

(1)定义

不安全的设计指的是在软件或系统的架构和设计阶段未考虑安全性,导致最终产品容易受到攻击。这类设计缺陷可能使得系统脆弱,无法有效抵御威胁。

(2)常见特征

1.缺乏安全原则:未遵循安全设计原则,如最小权限、默认拒绝等。

2.不充分的身份验证和授权:设计中未有效区分用户权限,导致未授权访问。

3.未考虑数据保护:敏感数据在存储或传输时未加密,增加泄露风险。

4.脆弱的用户界面:设计的用户界面容易导致用户误操作或输入错误。

(3)影响

1.数据泄露攻击者利用设计缺陷获取敏感信息。

2.系统破坏:不当设计可能导致服务拒绝(DoS)或系统崩溃。

3.信任丧失:用户对应用程序的信任度降低,影响业务声誉。

(4)防护措施

1.安全设计原则:在设计阶段引入安全性考虑,确保遵循最佳实践。

2.风险评估:定期进行风险评估,识别潜在的安全问题。

3.用户教育:通过培训和文档帮助用户理解安全实践,降低误操作风险。

4.持续安全测试:在开发过程中进行安全测试,以便及时发现并修复设计缺陷。

五.Security Misconfiguration(安全配置错误)

(1)定义

安全配置错误指的是在应用程序、服务器或网络设备配置时,未遵循安全最佳实践,导致系统易受攻击。这种错误常发生在部署、升级或维护过程中。

(2)常见类型默认设置未更改:使用厂商默认用户名和密码,未更改初始配置。

不必要的功能启用:启用不必要的服务、端口或功能,增加潜在攻击面。

错误的权限设置:文件、目录或数据库权限配置不当,导致未授权访问。

不充分的错误信息:系统错误信息过于详细,可能泄露敏感信息。

(3)影响

1.数据泄露:攻击者可利用配置错误获取敏感数据。

2.服务中断:不当配置可能导致服务拒绝(DoS)或系统崩溃。

3.信任问题:用户对系统的信任度降低,影响企业声誉。

(4)防护措施

1.安全基线配置:制定并实施安全基线,确保所有系统遵循相同的安全配置标准。

2.定期审计:定期检查和审核系统配置,及时发现并修复安全漏洞。

3.最小化权限:仅为用户和服务提供必要的权限,遵循最小权限原则。

4.更新与补丁管理:定期更新软件和应用,修复已知的安全漏洞。

 六.Vulnerable and Outdated Components(漏洞和过时组件)

(1)定义

漏洞和过时组件指的是在软件或系统中使用了已知存在安全漏洞或不再维护的第三方库和框架。这类组件增加了攻击面,容易被利用。

(2)常见问题

1.已知漏洞:使用的组件存在公开的安全漏洞,未及时修复。

2.过时版本:使用不再更新的组件,缺乏安全补丁和支持。

3.依赖性风险:某些组件依赖于其他库,可能间接引入安全风险。

(3)影响

1.数据泄露:攻击者可能利用已知漏洞获取敏感信息。

2.系统入侵:过时组件的漏洞可能被利用,导致系统被攻陷。

3.合规问题:使用不安全组件可能导致违反行业合规要求。

(4)防护措施

1.定期更新:及时更新和修补所有组件,确保使用最新版本。

2.使用工具扫描:利用自动化工具扫描项目中的依赖,识别潜在漏洞。

3.维护清单:保持组件使用的详细清单,便于管理和审计。

4.选择可信赖来源:仅从信誉良好的源获取组件,降低安全风险。

七. Identification and Authentication Failures(身份识别与认证失败)

(1)定义

身份识别与认证失败是指在用户身份验证和访问控制过程中存在的漏洞,导致未授权用户可以访问系统、应用程序或数据。这些问题通常源于设计缺陷、实现错误或不当配置。

(2)常见问题

1.弱密码策略:允许用户选择简单或常见的密码,容易被猜测或破解。

2.缺乏多因素认证(MFA):未实施多因素认证,使得单一密码成为系统的唯一防线,增加了账户被攻陷的风险。

3.会话管理不足:会话在用户注销后未及时失效,或会话令牌易被窃取,从而导致会话劫持。

4.错误的身份验证流程:身份验证过程不够严格,如未验证电子邮件或手机号码,可能允许冒名顶替。

5.过于宽松的权限控制:用户被赋予不必要的权限,导致敏感信息泄露或被篡改。

(3)影响 

1.未授权访问:攻击者可以获得敏感数据或功能,可能造成数据泄露。

2.账户劫持:用户账户被恶意用户控制,导致信息滥用或破坏。

3.财务损失:企业可能遭受直接财务损失及后续的法律责任。

(4)防护措施

1.强密码政策:要求用户设置复杂密码,包含字母、数字和特殊字符,定期强制更换密码。

2.启用多因素认证:增加额外的身份验证步骤,如短信验证码、身份验证应用程序或生物识别。

3.安全的会话管理:确保会话在用户注销后立即失效,并在一定时间不活动后自动注销。

4.定期审计和监控:定期检查和监控身份验证流程,及时识别并修复潜在的安全漏洞。

5.用户教育: 提高用户的安全意识,指导其如何创建强密码及识别钓鱼攻击等威胁。

八. Software and Data Integrity Failures(软件与数据完整性失败)

(1)定义

软件与数据完整性失败指的是在应用程序或数据处理过程中,未能确保软件和数据的准确性、完整性和一致性。这种失败可能导致数据损坏、篡改或不可信。

(2)常见问题

1.缺乏验证机制:未对输入数据进行验证,导致恶意数据被接受。

2.不安全的数据存储:数据未加密存储,易受到篡改或泄露。

3.软件更新不及时:未及时应用安全更新,可能导致已知漏洞被利用。

4.使用过时的库或组件:使用包含漏洞的第三方组件,增加风险。

(3)影响

1.数据损坏:篡改或错误的数据可能导致应用程序崩溃或输出错误结果。

2.信任问题:用户对系统的信任度降低,可能影响企业声誉。

3.合规性风险:未满足行业标准或法律要求,可能导致法律责任。

(4)防护措施

1.输入验证:强制执行数据输入的验证和清理,确保数据有效性。

2.数据加密:对存储和传输的数据进行加密,保护数据的完整性和机密性。

3.定期更新:定期检查和更新软件及其依赖,修复已知漏洞。

4.使用完整性检查:实施哈希校验或数字签名,以确保软件和数据在传输和存储过程中未被篡改。

九. Security Logging and Monitoring Failures(安全日志与监控失败)

(1)定义

安全日志与监控失败是指在系统中缺乏有效的日志记录和监控机制,未能及时捕捉和响应安全事件,导致潜在威胁未被发现或及时处理。

(2)常见问题

1.日志记录不足:关键事件或操作未被记录,导致难以追踪和分析安全事件。

2.日志安全性差:日志未加密或未妥善存储,容易被篡改或删除。

3.监控机制缺失:缺乏实时监控,无法及时发现异常行为或攻击迹象。

4.日志分析能力不足:未部署有效的分析工具,无法从日志中提取有价值的信息。

(3)影响

1.事件响应延迟:未能及时发现和响应安全事件,可能导致损失扩大。

2.取证困难:在发生安全事件时,缺乏有效的日志,增加调查难度。

3.合规性问题:未遵循行业标准或法规要求,可能面临法律责任。

(4)防护措施

1.全面的日志记录:记录所有关键操作和事件,包括用户登录、数据访问等。

2.确保日志安全:对日志进行加密存储,并设置适当的访问控制,防止篡改。

3.实时监控:部署实时监控工具,及时发现并响应异常活动。

4.定期审计和分析:定期审计日志记录和监控活动,利用自动化工具进行数据分析,以识别潜在威胁。

十.Server-Side Request Forgery (SSRF)(服务器端请求伪造) 

(1)定义

SSRF是一种网络攻击,攻击者通过向受害服务器发送请求,诱使其访问本地或远程资源。这种攻击通常利用了服务器对外部请求的处理权限,可能导致敏感信息泄露或内部服务被攻击。

(2)攻击方式

利用内部网络:攻击者可以请求本地服务,访问通常无法从外部访问的资源。

绕过防火墙:SSRF可以绕过安全防护措施,直接与内部系统交互。

信息泄露:通过获取响应内容,攻击者可能获取敏感信息,如配置文件或API密钥。

(3)影响

数据泄露:内部系统信息被暴露,增加了后续攻击的风险。

服务中断:可能引发对内部服务的拒绝服务攻击。

权限提升:利用获取的内部信息,攻击者可能获得更高权限。

(4)防护措施

输入验证:对用户输入的URL进行严格验证,限制访问范围。

网络隔离:限制服务器访问内部网络,采用网络分段策略。

访问控制:实施强有力的访问控制,确保服务器仅能访问必要的外部资源。

日志监控: 监控和审计请求活动,及时识别异常行为。 

总得来说,2021年的漏洞名称是真的怪。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541523.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

简单水印通过python去除

简单水印通过python去除 先看效果,如果效果不是你需要的就可以不用浪费时间。 注意:这种主要还是对应的文字在水印上方的情况,同时最好不要有渐变水印否则可能最后输出的图片的水印还会有所残留,不过还是学习使用,相信…

VisionPro - 基础 - 00 模板匹配技术和在VP中的使用 - PMAlign - PatMax - (4)- 控制模板的匹配

前言: 针对PatMax 的高级应用和原理,在这一节继续进行说明:这一节主要考虑的是PatMax模板匹配的原理:如何控制模板的匹配。 本节先介绍了几个模板匹配的衡量标准,比如模板匹配分数,和模板的几种模板匹配的…

二维光场分析

一、单色光波长的复振幅表示 实波函数 复波函数 复振幅 由于时间因子相同,可以用复振幅来描述 光强 1.1 球面波的复振幅(单色点光源发出的光波) 等相位面是同心球面,波矢处处与等相位面垂直,即 是 r = 1 处的振幅 发散球面波: 会聚球面波: <

SOMEIP_ETS_121: SD_Initial_Events_after_SubscribeEventgroup

测试目的&#xff1a; 验证DUT在接收到Tester的SubscribeEventgroup消息后&#xff0c;能够发送SubscribeEventgroupAck确认消息&#xff0c;并立即发送对应的初始化字段给订阅的事件组。 描述 本测试用例旨在确保DUT能够正确响应SubscribeEventgroup消息&#xff0c;通过发…

arthas -- xxljob本地调试

方案一&#xff1a;测试类 package cn.wanda.wic.content.job.xxljob;import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;SpringBootTest public class ShopResourceMigrationJobTest {Reso…

探索人工智能绘制宇宙地图的实现

人工智能 (AI) 已成为了解世界的重要工具。现在&#xff0c;随着人们对太空探索的兴趣重新升温&#xff0c;人工智能也可能对其他世界产生同样的影响。 尽管经过了几十年的研究&#xff0c;科学家们对地球大气层以外的宇宙仍然知之甚少。绘制行星、恒星、星系及其在太空中的运…

CCRC-CDO首席数据官:未成年人首次上网年龄持续降低

近日&#xff0c;中国社会科学院新闻与传播研究所联合社会科学文献出版社发布了《青少年蓝皮书&#xff1a;中国未成年人互联网运用报告(2024)》&#xff0c;该报告对中国未成年人的互联网使用情况进行了全面的研究和专项汇报。 调查数据透露&#xff0c;未成年人接触网络的年…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(上)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量和小型系统三方库移植指南…

[python]从零开始的PySide安装配置教程

一、PySide是什么&#xff1f; PySide 是 Qt for Python 项目的一部分&#xff0c;它提供了与 PyQt 类似的功能&#xff0c;使开发者能够使用 Python 编程语言来构建基于 Qt 的图形用户界面 (GUI) 应用程序。PySide 是由 Qt 公司官方维护的&#xff0c;而 PyQt 则是由第三方开发…

化学分子结构检测系统源码分享

化学分子结构检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

day-57 边积分最高的节点

思路 因为节点编号从0到n-1&#xff0c;所有可以创建一个数组用来记录每个节点的边积分&#xff0c;遍历edges数组&#xff0c;并且令ansarr[edges[i]]i&#xff0c;遍历结束后即可得到每个节点的边积分&#xff0c;再遍历ansarr数组&#xff0c;找到值最大的那个索引即为答案&…

硬盘格式化后能恢复数据吗?试试这四款工具吧!

数据丢失&#xff0c;这可能是每个电脑用户都曾遇到过的噩梦。今天&#xff0c;我就来给大家分享一下我使用过的四款数据恢复软件在实际操作中的表现&#xff0c;看看哪款软件能成为你数据恢复的得力助手。 一、福昕数据恢复 网址&#xff1a;https://www.pdf365.cn/foxit-re…

UI自动化测试框架:PO模式+数据驱动详解

1. PO 设计模式简介 什么是 PO 模式&#xff1f; PO&#xff08;PageObject&#xff09;设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类&#xff0c;并以页面为单位来写测试用例&#xff0c;实现页面对象和测试用例的分离。 PO 模式的设计思想与…

[数据结构与算法·C++版] 笔记 1.2 什么是数据结构

1.2 什么是数据结构 结构&#xff1a;实体 关系数据结构&#xff1a; 按照逻辑关系组织起来的一批数据&#xff0c;按一定的存储方法把它存储在计算机中在这些数据上定义了一个运算的集合 数据结构的逻辑组织 线性结构 线性表&#xff08;表&#xff0c;栈&#xff0c;队列&…

11.1 溪降技术:下方保护

目录 11.1 下方(底部)保护概述观看视频课程电子书&#xff1a;底部保护技术要点 11.1 下方(底部)保护 概述 一名峡谷探险者为他的队友提供底部保护 峡谷探险是一项团队运动&#xff0c;作为峡谷探险团队的一员意味着在下降过程中要相互帮助、协作&#xff0c;特别是要关心彼此的…

库函数模块创建

工程创建 创建这个工程模版&#xff0c;是为了我们后面免去我们后面创建工程模版的步骤 创建这个文件&#xff0c;这个文件是用来存放我们编译生成的一些中间文件&#xff0c;C&#xff0c;汇编&#xff0c;链接的一些列表清单&#xff0c;调试信息&#xff0c;以及需要我们下…

Linux命令--05----find 日志

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 find1.语法语法&#xff1a;find 目标目录(路径) <选项> 参数 2.示例3.find 结合 xargs4.案例.* 模糊匹配 绝对路径 find 在 Linux 命令中&#xff0c;fin…

【Python】探索 Graphene:Python 中的 GraphQL 框架

人们常说挣多挣少都要开心&#xff0c;这话我相信&#xff0c;但是请问挣少了怎么开心&#xff1f; 随着现代 Web 应用对数据交互需求的不断增长&#xff0c;GraphQL 作为一种数据查询和操作语言&#xff0c;越来越受到开发者的青睐。Graphene 是 Python 语言中实现 GraphQL 的…

Redis面试真题总结(三)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 什么是缓存雪崩&#xff1f;该如何解决&#xff1f; 缓存雪崩是指…

Unity 高亮插件HighlightPlus介绍

主要是对官方文档进行了翻译(我做了一些补充和一些小的调整) 但是如果你只是想快速入门: Unity 高亮插件Highlight Plus快速入门-CSDN博客 注意:官方文档本身就落后实际,但对入门仍很有帮助,核心并没有较大改变,有的功能有差异,以实际为准.(目前我已校正了大部分差异,后续我…