OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效

news2024/11/24 19:13:38

作者: gentle_zhou

原文链接:OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效-云社区-华为云


Web应用程序安全一直是一个重要的话题,它不但关系到网络用户的隐私,财产,而且关系着用户对程序的新人。随着Web应用程序功能持续增加,复杂性不断提高,这些程序也面临着越来越多的安全威胁和挑战。

为了帮助这些应用程序的开发团队和安全人员了解和防范这些威胁,提高安全意识,编写更安全的代码,OWASP(Open Web Application Security Project,开放式Web应用程序安全项目)发布了一份标准指南,称为OWASP Top 10。

这是一份关于Web应用程序安全风险的标准指南,它基于全球范围内的安全专家和数据提供者的共识,列出了当前最严重、最关键的10种Web应用程序安全风险,并提供了相应的防范措施和建议。OWASP Top10 每隔几年会更新一次(目前已经发布了六个版本,分别是2004年、2007年、2010年、2013年、2017年和2021年),最新的版本是在2021年发布的OWASP Top10:2021。

今天,就来为大家讲解其中的第一条缺陷:Broken Access Control访问控制失效,它从2017年版本的第5位上升到了当前第一位。

image.png

破坏访问控制指的是访问控制策略没有被正确的执行,导致用户可以在他们的预期权限之外进行操作。这种缺陷通常会导致未授权的信息被泄露,修改,销毁,或者让用户执行了超出其权限限制的业务功能。

常见的访问控制失效类型

常见的访问控制失效类型包括:

  • 违反最小权限原则或默认拒绝原则,即访问只应该被授予限定的能力、角色或用户,但却对任何人开放。
  • 权限提升,即用户使用了超过其原先身份的权限,比如在未登录时拿取到了用户权限,或在以用户身份登录时拿取到了管理员权限。
  • 通过参数篡改或强制浏览来修改URL、应用状态、HTML页面,或则使用攻击工具修改API请求,以此绕过访问控制检查。
  • 修改唯一标识符(不安全的直接对象引用),即通过修改应用程序中用户可控的值(如参数)来访问对象,但程序没有进行适当的授权检查,导致其可以去查看或编辑其他人的账户。
  • 元数据操作,例如重放或篡改JSON Web Token(JWT)来访问控制令牌,或则通过修改cookie、隐藏字段来提升权限。
  • CORS配置错误,即跨域资源共享(CORS)的机制没有正确设置,导致浏览器无法访问不同源的资源,导致访问控制检查被绕过,造成服务器信息泄露或数据篡改。
  • API未设置访问控制。

如何防止该缺陷的发生

访问控制仅仅在可信的服务器端代码或则API中生效,因为这可以防止攻击者修改访问控制检查或元数据。同时,需要做到如下几点:

  • 除了公共资源意外,其余访问默认都拒绝
  • 实现一次访问控制机制,并在整个应用程序中重复使用它们,包括尽量减少跨域资源共享(CORS)的使用。
  • 模型访问控制应该强制记录用户的所有权,而不是接受任意用户可以创建、读取、更新或删除任何记录。
  • 一些特殊应用程序业务的限制需求应该由域模型(domain model)强制执行。
  • 禁用web服务器目录列表,并确保文件元数据(例如.git)和备份文件不在web根目录中。
  • 记录访问控制失败的发生,在适当的时候提醒管理员(例如,重复失败X次)。
  • 对API和控制器访问进行速率限制,以最小化自动化攻击工具造成的危害。
  • 用户注销后,有状态会话标识符应该在服务器上失效。无状态JWT令牌应该是短暂的,这样攻击者的机会窗口就会被最小化。对于寿命较长的jwt,强烈建议遵循OAuth标准来撤销访问。

开发人员和安全质量相关人员在日常,应该养成针对访问控制功能模块进行集成测试的习惯。

举个栗子

应用程序在访问账号信息的SQL语句中使用了未被验证的数据:

 pstmt.setString(1, request.getParameter("acct"));
 ResultSet results = pstmt.executeQuery( );

那么攻击者就可以去修改这个参数信息"acct”为任何他们想要的信息,配上任何他们希望了解的账号。如果程序对这信息没有好好验证,那么攻击者就可以借此去了解任何一位用户的账号信息,比如https://example.com/app/accountInfo?acct=notmyacct

参考链接

  1. https://owasp.org/Top10/A01_2021-Broken_Access_Control/

体验华为云CodeArts Check 代码检查服务:代码检查CodeArts Check_精准定位_代码缺陷_安全检查_华为云

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

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

相关文章

Logic Pro X10.7.9(mac乐曲制作软件)

Logic Pro X是由苹果公司开发的一款专业音频制作软件,主要用于音乐制作、录音、混音和母带处理等方面。以下是Logic Pro X的特点: 强大的音频编辑功能:Logic Pro X提供了丰富的音频编辑工具,包括波形编辑器、音频自动化、时间拉伸…

【Linux】——基操指令(一)

个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 LeetCode刷题 算法专栏 目录 前言 基操前的碎碎念 计算机的层状结构 基础指令 查看登录用户指令 查看用户指令 查看当前所处工作目录 清屏指令 基操指令 ls命令 cd命令 makdir指令 rmdir指令 &…

UE学习记录06----根据Actor大小自适应相机位置

背景: staticMesh 会根据业务需要随时变化,然后通过staticMesh的大小自适应相机位置,捕捉画面用来预览该模型,使模型在画布中不会太大导致显示不全,也不会太小 参考: UE实现相机聚焦物体功能_右弦GISer的…

TensorFlow入门(二、基本步骤)

深度学习是机器学习领域中的一个研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。 深度学习的本质其实就是一个拟合函数,通过不断的“喂入”数据(比如图片或者视频)来调节神经网络的参数,从而找到输入数据的特征范…

嵌入式Linux应用开发-Framebuffer 应用编程

嵌入式Linux应用开发-Framebuffer 应用编程 第五章 Framebuffer 应用编程5.1 LCD 操作原理5.2 涉及的 API 函数5.2.1 open 函数5.2.2 ioctl 函数5.2.3 mmap 函数 5.3 Framebuffer 程序分析5.3.1 打开设备5.3.2 获取 LCD 参数5.3.3 映射 Framebuffer5.3.4 描点函数5.3.5 随便画几…

主机安装elasticsearch后无法登陆

问题描述 2023年7月31日11点02分,主机安装elasticsearch后无法登陆,通过后台查看主机宕机状态,CPU达到100%,按业务侧要求执行重启操作后发现主机黑屏无法正常进入系统,系统卡死。 2.原因分析 2.1通过故障…

自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能

自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能 文章目录 [toc] 1.依赖2.Redisson配置2.1单机模式配置2.2主从模式2.3集群模式2.4哨兵模式 3.实现3.1 RedisConfig3.2 自定义注解IdempotentManualCtrlTransLimiterAnno3.3自定义切面Idempote…

「Go框架」gin框架是如何处理panic的?

本文我们介绍下recover在gin框架中的应用。 首先,在golang中,如果在子协程中遇到了panic,那么主协程也会被终止。如下: package mainimport ("github.com/gin-gonic/gin" )func main() {r : gin.Default()// 在子协程中…

Apache DolphinScheduler 在奇富科技的首个调度异地部署实践

奇富科技(原360数科)是人工智能驱动的信贷科技服务平台,致力于凭借智能服务、AI研究及应用、安全科技,赋能金融机构提质增效,助推普惠金融高质量发展,让更多人享受到安全便捷的金融科技服务。作为国内领先的…

【RocketMQ】sendDefaultImpl call timeout 问题及其解决办法

问题描述: org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout解决: 需要开放10911、10909这两个端口 需修改broker.conf,设置公网IP 启动broker时,需用-c conf/broker.…

通俗易懂-OpenCV角点检测算法(Harris、Shi-Tomas算法实现)

目录 1 图像的特征 2,Harris角点检测 2.1 代码实现 2.2结果展示 3,Shi-Tomasi角点检测算法 3.1 , 代码实现 3.2结果展示 1 图像的特征 2,Harris角点检测 、 2.1 代码实现 import cv2 as cv import matplotlib.pyplot as …

RocketMQ —消费者负载均衡

消费者从 Apache RocketMQ 获取消息消费时,通过消费者负载均衡策略,可将主题内的消息分配给指定消费者分组中的多个消费者共同分担,提高消费并发能力和消费者的水平扩展能力。本文介绍 Apache RocketMQ 消费者的负载均衡策略。 背景信息​ …

Magic Battery for Mac:让你的设备电量管理变得轻松简单

Mac电脑用户们,你们是否曾经为了给设备充电而感到烦恼?是否希望能够方便地查看连接设备的电量情况?现在,有了Magic Battery for macOS,这些问题都将成为过去! Magic Battery是一个实用的应用程序&#xff…

Spring Boot事件机制浅析

1、概述 在设计模式中,观察者模式是一个比较常用的设计模式。维基百科解释如下: 观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼…

曲线救国-通过Magisk安装burp证书到系统根目录

0x01前言 需要对某APP做渗透测试,但该APP做了限制:不信任用户证书。因此需要将burp证书导入到存放系统证书目录下。虽然手机装了Magic,但似乎root有点问题。其挂载有问题,导致无法将 最初尝试:mount -o rw,remount -t…

成都优优聚能带给你什么?

美团代运营是美团针对商家提供的一项全方位的代理运营服务,通过专业团队的协助和优质服务,帮助商家提高品牌知名度、在线销售额、客户粘性等多重指标。下面将详细介绍美团代运营的优势。 1. 强大的平台资源: 作为中国最大的外卖平台之一&…

深度学习-学习率调度,正则化,dropout

正如前面我所说的,各种优化函数也依赖于学习率,保持学习率恒定总是有所限制,在执行梯度下降过程中,我们可以使用各种方法来调节训练过程的学习率,这里只是稍微介绍一下,不会写代码实现的。同时,…

python基于轻量级卷积神经网络模型GhostNet开发构建养殖场景下生猪行为识别系统

养殖业的数字化和智能化是一个综合应用了互联网、物联网、人工智能、大数据、云计算、区块链等数字技术的过程,旨在提高养殖效率、提升产品质量以及促进产业升级。在这个过程中,养殖生猪的数字化智能化可以识别并管理猪的行为。通过数字化智能化系统&…

分布式微服务架构中的关键技术解析

分布式微服务架构是构建现代应用的理想选择,它将复杂系统拆分成小而自治的服务,每个服务都能独立开发、测试和部署。在实际的开发过程中,如何实现高效的分布式微服务架构呢?下面笔者根据自己多年的实战经验,浅谈实战过…

Linux shell编程学习笔记3:查询系统中已安装可以使用的shell

〇、更新记录 20230926 编写 一、前言 目前可以在Linux系统上运行的shell有许多种:sh、bash、cshell、tcsh、zsh……但是对一台具体的系统来说,未必包括上面列的所有这些shell,很可能包括其中两三个。 那么我们如何查询系统中已经安装有哪…