2021的OWASP TOP 10

news2024/9/21 16:21:04

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.coloradmin.cn/o/2152780.html

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

相关文章

特征工程与交叉验证在机器学习中的应用

数据入口:学生考试表现影响因素数据集 - Heywhale.com 本数据集提供了关于影响学生考试成绩的多种因素的全面概述。数据集包含了有关学习习惯、出勤率、家长参与、资源获取等方面的信息。 数据说明 字段名说明Hours_Studied每周学习的小时数Attendance出勤率&…

【2024研赛】【华为杯E题】2024 年研究生数学建模比赛思路、代码、论文助攻

思路将在名片下群聊分享 高速公路应急车道紧急启用模型 高速公路拥堵现象的原因众多,除了交通事故外,最典型的就是部分路段出现瓶颈现象,主要原因是车辆汇聚,而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0…

2024年华为杯数学建模研赛(B题) 建模解析| 网络吞吐量 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮2000人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决研赛的难关呀。 完整内容可…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引

场景 首先介绍测试的场景,本文schema定义 pdm文档索引,包括nested,扩展字段,文档属性扩展,其中_content字段是组件保留字段,支持文本内容 索引 索引服务索引的操作,包括构建,put …

计算机缺少vcruntime140.dll的解决方法,共有7种简单有效的方法

电脑出现找不到vcruntime140.dll,无法继续执行代码的情况,其实有很多原因。而且解决起来还是比较简单,主要是你要了解这个dll文件,今天小编就来给大家详细的分析一下找不到vcruntime140.dll的多种解决方法。 一、 问题概述 找不到vcruntime…

普元DWS - Linux下安装DWS标准版

1 前言 普元DWS全称是普元数据开发平台。 功能是对不同结构的数据进行转换处理,比如将MySQL的数据转换到达梦数据库中。 本文讲解如何在Linux下安装DWS标准版 2 DWS的版本 普元DWS有两个版本:微服务版和标准版。 微服务版是基于分布式部署的&#x…

linux----进程地址空间

前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、空间分布 二、栈和堆的特点 (1)栈堆相对而生,堆是向上增长的,栈是向下增长的。 验证:堆是向上增长的 这里我们看到申请的堆&#xff…

16_Python的迭代器

在Python中,迭代是一个非常重要的概念。迭代通常指的是按照某种顺序逐个访问容器中的元素的行为。如使用for循环遍历取值的过程。 可迭代对象(Iterable) 可迭代对象是任何可以返回一个迭代器的对象。简单来说,它是可以逐一返回其…

华为云服务综合实验

一、实验需求 本次实验内容基于华为云平台模拟企业web集群的构建,其中涉及的知识点包括Linux系统知识、nginx服务的安装及配置应用、云数据库 RDS(Relational Database Service,简称RDS)、虚拟私有云vpc、安全组、SFS弹性文件服务器以及负载均衡等。要求学生通过本…

UDS诊断-面试题2

bilibili视频推荐: 车载测试面试题UDS诊断协议,你知道什么是UDS诊断?ECU是什么?刷写ECU_哔哩哔哩_bilibili 总结: 1.汽车诊断UDS含义: 一套统一的诊断服务命令。 2.具体操作流程: 使用电脑…

高通欲收购英特尔:半导体行业的地震?

据《华尔街日报》报道,高通(Qualcomm)已经与陷入困境的英特尔(Intel)接洽,讨论潜在的收购事宜。尽管双方已经就此事进行了交流,但交易的成功与否仍存在诸多不确定性,且若真达成协议&…

java -- 枚举和注解

枚举 枚举介绍 (1)枚举:(enumeration,简写 enum) (2)枚举是一组常量的集合 (3)枚举属于一种特殊的类,里面只包含一组有限的特定的对象 枚举的两…

Nginx静态资源优化、压缩、缓存处理

一、静态资源优化配置语法 Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化: sendfile on; tcp_nopush on; tcp_nodeplay on; (1)sendfile,用来开启高效的文件传输模式。 语法sendfile on |off;默认值sendfile …

YOLOv9改进,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…

Linux 磁盘清理重新格式化挂载脚本及问题解决

Linux 磁盘清理重新格式化挂载脚本:diskformat.sh #!/bin/bash for i in {1…8} do umount /data0$i done PIDARRAY() for i in a b c d e f g h do parted -s /dev/sd i m k l a b e l g p t p a r t e d − s / d e v / s d i mklabel gpt parted -s /dev/sd im…

序列化方式二——JSON之fastjson

fastjson&fastjson2(版本:1.2.83_noneautotype) 扩展点 Fastjson通过其丰富的扩展点显著增强了用户定制序列化和反序列化行为的灵活性,完美契合了实际开发中的多样化需求。在SpringBoot与SpringCloud的集成环境中,开发者能够利用Seriali…

Linux top命令详解与重点内容说明

文章目录 重点说明基本信息进程(任务)信息cpu占用信息%Cpu(s)内存信息交换内存信息每列含义说明交互命令多窗口模式颜色配置命令参数 重点说明 top命令非常强大,也非常复杂,很难面面俱到,也没有必要,这篇文章的目的是介绍重点&am…

Apache Doris 实践

Apache Doris 实践 官方使用指南:https://doris.incubator.apache.org/zh-CN/docs/install/source-install/compilation-with-docker/ 手动安装 下载二进制安装包https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.5-bin-x64.tar.gz …

企业搭建VR虚拟展厅,如何选择搭建平台?

选择虚拟展厅搭建平台时,需要综合考虑多个因素以确保平台能够满足您的具体需求并提供高质量的展示效果。以下是一些关键的选择标准: 1. 技术实力与创新能力 技术平台选择:确保平台支持虚拟现实(VR)、增强现实&#xf…

http免费升级https教程

将HTTP免费升级至HTTPS的详细教程涉及获取SSL证书、配置服务器和测试HTTPS连接等关键步骤。 以下是具体介绍: 获取SSL证书:选择提供免费SSL证书的服务,如JoySSL。在证书提供商的网站上申请免费SSL证书注册时填写注册码230920,获取…