OWASP top10 的介绍

news2024/11/28 20:47:03

OWASP top10 的介绍

2021年版TOP 10产生三个新类别,且进行了一些整合
​​在这里插入图片描述

A01:失效的访问控制

从第五位上升称为Web应用程序安全风险最严重的类别,常见的CWE包括:将敏感信息泄露给未经授权的参与者、通过发送的数据泄露敏感信息、跨站请求伪造(csrf)

风险说明:
​ 访问强制实施策略,使用户无法在其预期权限之外操作。失败的访问控制通常导致未经授权的信息泄露,修改或者销毁所有数据,或在用户权限之外执行业务功能。

常见的访问控制脆弱点:

违法最小权限原则或默认拒绝原则,即访问权限应只授予特定能力、角色或用户,但实际上任何人都可以访问
通过修改URL(参数修改或强制浏览),内部应用程序状态或者HTML页面,或者使用修改API请求的攻击工具绕过访问控制检查
通过提供唯一的标识符允许查看或编辑他人账户
API没有对POST、PUT和DELETE强制执行访问控制
特权提升,在未登陆的情况下假扮用户或以用户身份登入时充当管理员

预防措施
开发人员和QA人员应进行访问控制功能的单元测试和集成测试

访问控制只在受信服务器端代码或者无服务器API中有效,这样攻击者才无法修改访问控制检查或元数据

除公有资源外,默认访问拒绝

使用一次性的访问控制机制,并在整个应用程序中不断重用它们,包括最小化跨资源共享(CORS)的使用

建立访问控制模型以强制执行所有权记录,而不是简单接受用户创建、读取、更新或删除的任何记录

在日志中记录失败的访问控制,并在适当时向管理员告警(例如:重复故障)

A02:加密机制失效

​ 上升一位到第二位,以前称为“敏感数据泄露”。敏感数据泄露更像是一种常见的表象问题而不是根本原因,这项风险重点是与加密机制相关的故障(或缺乏加密机制)

风险说明
​ 首先要确认:对传输中的数据和存储数据都有哪些保护需求。例如:密码、信用卡号、医疗记录、个人信息和商业秘密需要额外保护。

对于数据,要确认:

在传输数据过程中是否使用明文传输?这和传输协议有关:HTTP、SMTP、经过TLS升级的FTP。外部网络流量是有害的,需要验证所有的内部通信

无论是在默认情况还是在旧的代码中,是否还在使用任何旧或者脆弱的加密算法或传输协议

是否默认使用加密密钥、生成或重复使用脆弱的加密密钥,或者是否缺少适当的密钥管理或密钥回转

接收到的服务器证书和信任链是否经过正确验证

预防措施
对应用程序处理、存储或者传输的数据分类,并根据相关要求确认哪些数据敏感
对于没有必要存储的敏感数据,应当尽快清除
确保加密存储所有的敏感数据
确保使用了最新的,强大的标准算法、协议和密钥,并且密钥管理到位
禁用缓存对包含敏感数据的响应
不要使用传统协议HTTP、FTP等来传输敏感数据

A03:注入

注入降至第三,常见的CWE:跨站点脚本、SQL注入、文件名或路径的外部控制

风险说明
源代码审查是检查应用程序是否易受注入攻击的最佳方法。

强烈鼓励针对所有参数、标题、URL、cookie、JSON、SOAP和XML数据输入的自动测试

风险产生情况:

应用程序不会验证、过滤或清洗用户提供的数据
动态查询或无上下文感知转义的非参数化调用之间在解释器中使用
恶意数据被直接使用或连接。SQL或命令包含动态查询、命令或存储过程中的结构和恶意数据
预防措施
防止注入需要将数据与命令和查询分开:

推荐的选择是使用安全的API
使用肯定或者白名单服务器端输入验证
对于任何残余的动态查询,使用该解释器的特定转义语法转义特殊字符
在查询中使用LIMIT和其他SQL控件,以防止在SQL注入的情况下大量披露记录

A04:不安全设计

​ 这是2021的一个新类别,侧重于设计和体系结构缺陷相关的风险,呼吁更多的使用威胁建模、安全设计模式和参考体系结构

风险说明
​ 不安全设计和不安全实现直接存在差异,我们区别设计缺陷和实现缺陷是有原因的,安全设计仍然可能存在实现缺陷,从而导致可能被利用的漏洞。

一个不安全设计不能通过一个完美的实现来修复。

预防措施
与应用安全专业人员建立并使用安全的开发生命周期,以帮助评估和设计与安全和隐私相关的控制

限制用户或服务的资源消耗

通过设计咋所有层中严格隔离租户

根据暴露和保护需要,对系统层和网络层进行分层

A05:安全配置错误

从上一版的第六名提升,90%都进行了某种形式的配置错误测试。

风险说明
​ 缺少一个体系的、可重复的应用程序安全配置过程,系统将处于高风险中

你的应用程序可能受到攻击,如果应用程序是:

应用程序栈的任何部分缺少适当的安全加固,或者云服务的权限配置错误

应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、账户或权限)

默认账户和密码仍然可用且没有更改

错误处理机制向用户纰漏堆栈信息或其他大量错误信息

对于升级的系统,最新的安全特性被禁用或未安全配置

应用程序服务器、应用程序框架(如:Struts、Spring、ASP。net)、库文件、数据库等没有进行安全配置

预防措施
应实施安全的安装过程,包括

一个可以快速且易于部署在另一个锁定环境的可重复的加固过程。开发、质量保证和生产环境都应该进行相同配置,并且在每个环境中使用不同的密码。这个过程应该是自动化的,以尽量减少安装一个新安全环境的消耗

搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和实例。移除或不安装不适用的功能和框架

检查和修复安全配置来适应最新的安全说明、更新和补丁,并将作为更新管理过程的一部分

一个能在组件和用户间提供有效的分离和安全性的分段应用程序架构

A06:自带缺陷和过时的组件

不安全的组件是我们努力测试和评估风险的已知问题

风险说明
​ 如满足下面的某个条件,那么你的应用就易受到此类攻击:

你不知道所使用的组件版本信息(包括:服务端和客户端)。这包括了直接使用的组件或间接依赖的组件
软件易受攻击,不再支持或过时。
没有定期做漏洞扫描和订阅使用组件的安全公告
软件工程师没有对更新的、升级的或者打过补丁的组件进行兼容性测试
没有对组件进行安全配置
预防措施
每个组织都应该制定相应的计划,对整个软件生命周期进行监控、评审、升级或更改配置

制定一个补丁管理流程:

移除不使用的依赖、不需要的功能、组件、文件和文档
仅从官方渠道安全的获取组件,并使用前面机制来降低组件被篡改或加入恶意漏洞的风险
监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,就考虑部署虚拟补丁来监控、检查或保护
A07:身份识别和身份验证错误
之前称为无效的身份认证,此类别从第二名下滑,现在包含了与身份识别失效相关的CWE

风险说明
允许像是攻击者已经拥有有效用户名称和密码列表的撞库自动化攻击

允许暴力或其他自动化攻击

允许预设、脆弱、常见的密码

使用脆弱或无效的认证资讯回复或忘记密码的流程

使用明码,被加密的或使用较脆弱杂凑法的密码

预防措施
实施弱密码的检查,如测试新设定或变更的密码是否存在于前10000个最差密码清单
在可能的情况下,实施多因素认证来防止自动化撞库攻击,暴力破解,以及遭窃认证咨询被重复利用的攻击
不要交付或部署任何预设的认证凭证,特别是管理者
限制或增加登入失败尝试的延迟
A08:软件和数据完整性故障
预防措施

A09:安全日志和监控故障

风险说明
如果不进行日志记录和检测,就无法发现任何违规行为,任何时候都会发现日志记录、检测、监视和主动响应不足的情况:

日志只存储在本地

渗透测试和动态应用安全测试工具的扫描没有触发情报

警告和错误生成的日志或日志记录不充分或日志消息不清晰

预防措施

A10:服务端请求伪造(ssrf)

风险说明
​ 一旦web应用程序在获取远程资源时没有验证用户提供的URL,就会出现ssrf缺陷。它允许攻击者强制应用程序发送一个精心构造的请求到意外的目的地,即使是在有防火墙,VPN获其他类型的网络访问控制列表保护的情况下

预防措施
日志记录不充分或日志消息不清晰

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

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

相关文章

07 CSS04

目标: 1、结构伪类选择器 2、伪元素 3、标准流 4、浮动 5、清除浮动 6、(拓展)BFC介绍 一、结构伪类选择器 1、作用与优势 作用:根据元素在HTML中的结构关系查找元素 优势:减少对于HTML中类的依赖,有…

[附源码]计算机毕业设计springboot家庭整理服务管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【MySQL】 MySQL亿级数据、主从架构,Sharding分片

数据库Mysql 内容管理MySQL填充亿级数据Insert into select存储过程loop insertLoadfile 导入CVS文件MySQL基准测试: sysbench、mysqlslapsysbenchmysqlslapSQL优化分页查询优化慢SQL日志工具mysqldumpslowMySQL主从复制MySQL主从复制 knowledgeMySQL二进制日志log_…

APS生产计划排产降低企业的生产运营成本

企业运营成本是企业管理的关键,也是企业加强管理,提高企业效益的重要途径,在多数企业的发展中,如何更有效地控制企业运营成本将显得极为突出和十分重要。 APS生产计划排产可以从“设备、物料、人力”三方面降低企业的运营成本&…

基于Go语言的网盘开发(GloudDisk)

(记录一下自己做项目的过程) 基于go-zero实现的简易的网盘系统,如果有小伙伴对这个项目感兴趣,可以去网上搜索一些资料。这里推荐一下我学习的来源:【项目实战】基于Go-zero、Xorm的网盘系统_哔哩哔哩_bilibili 确定…

AutoCAD Electrical 2022—项目中新建、添加、删除图纸

右键点击项目—选择新建图纸; 点击快捷图标,新建图形; 弹出对话框,在名称中输入图纸名称; 模板为图框的样式,位置代号,图纸保存的位置; 其他根据需要填写; 填写完点击…

JavaScript -- 02. 变量和数据类型

文章目录变量和数据类型1 数值(Number)1.1 普通数值1.2 其他进制的数字2 大整数(BigInt)3 字符串(String)3.1 基础表示3.2 转义字符3.3 模板字符串4 布尔值(Boolean)5 空值(Null)6 未定义(Undefined)7 符号(Symbol&…

6-2 装载问题(分支限界)

6-2 装载问题(分支限界) 一、问题描述 有一批共个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为Wi,且 采用下面的策略可得到最优装载方案: (1)将第一艘轮船尽可能装满; (2)将剩余集装箱装上第二艘轮…

基于rsync daemon 实现 sersync——sersync实现实时数据同步

1 sersync 介绍 sersync类似于inotify,同样用于监控,但它克服了inotify的缺点. inotify最大的不足是会产生重复事件,或者同一个目录下多个文件的操作会产生多个事件,例如,当监控目录中有5个文件时,删除目录…

[附源码]计算机毕业设计springboot考试系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

学习C语言的优质网站

1. 初衷 C语言是最原始的操作操作数据结构和算法的一门编程语言,没有高级语言的封装,最能锻炼个人的算法思维和能力。 2. 编程网站推荐 2.1 javatpoint https://www.javatpoint.com/static-in-c 2.2 includehelp https://www.includehelp.com/c/ 2.…

Hadoop学习笔记——HDFS

文章目录一、HDFS概述1.1、HDFS产出背景及定义1.1.1 HDFS产生背景1.1.2 HDFS定义1.2、HDFS优缺点1.2.1、HDFS优点1.2.2、HDFS缺点1.3、HDFS组成架构1.4、HDFS文件块大小1.5、限制二、HDFS的Shell操作2.1、基本语法2.2、命令大全2.3、常用命令实操2.3.1 准备工作2.3.2 上传一、H…

快速复现 实现 facenet-retinaface-pytorch 人脸识别 windows上 使用cpu实现

目录0 前言1 搭建环境与项目2 人脸预测与结果展示0 前言 这一次要复现的是人脸识别中的 facenet-retinaface-pytorch 是在上一次博客的内容上更进一步 快速复现 实现 facenet-pytorch 人脸识别 windows上 使用cpu实现 人脸对比 参考了: Pytorch 利用Facenet和Reti…

10 Deployment:让应用永不宕机

文章目录1. 前言2. 为什么要有deployment 对象?3. 如何使用 YAML 描述 Deployment?3.1 查看 Deployment 的基本信息3.2 命令式创建Deployment 的YAML模板3.2.1 Deployment 的关键字段3.2.1.1 replicas 副本字段3.2.1.2 selector 标签筛选字段3.2.1.3 为什么在 YAML…

JAVA学习-java基础讲义02

java基础讲义02一 进制1.1 进制介绍1.2 二进制1.3 任意进制到十进制转换1.4 十进制到任意进制之间的转换1.5 快速转换法1.6 有符号数据表示法二 Java变量和数据类型1.1 变量概述1.2 数据类型1.3 变量定义三 Java数据类型转换3.1 数据类型转换概述3.2 数据类型转换之自动类型转换…

使用自己的数据集测试Unbiased Mean Teacher for Cross-domain Object Detection

要复现Unbiased Mean Teacher for Cross-domain Object Detection(UMT),首先要正确运行CycleGAN。 1. CycleGAN CycleGAN的github链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 1.1 CycleGAN环境配置 git cl…

低代码助力生产管理:车间管理系统

在当前制造业全球化、网络化、敏捷化的背景下,制造业信息化是目前生产的主要趋势。其中车间是制造企业的核心单元,是企业生产计划的具体实施环节,同时负责反馈实时生产信息。因此车间层的信息资源集成和生产管理控制是整个企业生产供应链控制…

[Power Query] 快速计算列

对两列或者多列的计算,在Power Query中除了通过自定义列来实现以外,我们也可以通过利用功能区的【添加列】|【标准】运算功能进行列的计算 数据源 将数据源导入到Power BI Desktop,单击【转换数据】选项,进入Power Query查询编辑…

python对异常的处理

了解异常当检测到一个错误时,解释器就无法继续执行了,反而出现一些错误的提示,这就是异常。测试:f open(test.txt,r) #以读模式打开文件,文件不存在则报错 运行了解释器报错避免出现异常提示的写法 #需求:…

串口通信及串口转蓝牙相关知识

之前没有接触过硬件相关的工作, 因此对硬件的知识一知半解。 最近由于项目需要, 用到了串口通信以及串口跟蓝牙之间通信相关的东西。记录下来, 希望对新手有所帮助。 如有疏漏之处, 欢迎指正。 1 串口通信 https://www.jishulin…