OWASP API SECURITY TOP 10

news2025/8/1 22:01:05

目录

1. API 安全风险

2. 细说TOP10

1. Broken Object Level Authorization

2. Broken User Authentication

3 Excessive Data Exposure

4 Lack of Resources & Rate Limiting

5 Broken Function Level Authorization 

6 Mass Assignment

7 security misconfiguration

8 injection

9 Improper Assets Management

10 Insufficient Logging & Monitoring



1. API 安全风险

api 安全风险从几个方面综合评估,包括可利用行,技术影响,业务硬,发现可能性。。。

2. 细说TOP10

1. Broken Object Level Authorization

简单来说,就是用户只能访问被授权的对象,否则呢。。就是这个漏洞了。。

例子:

  1. /shops/{shopName}/revenue_data.json.- 如果没有正确实施访问控制机制 如果user替换了shopname,试图访问别的shop,甚至可能访问成千上万个shop的数据

  2. 一个可穿戴设备,head中有 HTTP request header X-User-Id: 54796., 如果攻击者可以更改id并且成功访问,那就iu可以访问更改别人的数据了。 X-User-Id value with 54795

如何预防呢?

  • 基于用户政策实施正确的授权机制

  • 使用鉴权机制来检查login的用户是否有权限来执行请求中的action

  • 对于record id 使用随机数GUID

  • 测试

2. Broken User Authentication

对于认证,忘记密码,重置密码实施合理的认证,保护。否则就有这个问题了

  • 允许攻击者对同一个用户暴力破解,没有lockout机制

  • 允许弱密码

  • 在url中发送认证细节,例如 token,key,密码

  • 没有验证token的真实性

  • 使用明文,弱哈希密码

  • 弱加密key

就是说如果认证需要sms的六位验证码,攻击者大量重放,遍历,暴力之后成功认证了,就是这么个情况。

如何预防呢:

1 了解认证机制如何工作如何使用

2 不要重造轮子,自己去搞认证,token生成,密码存储。使用标准的东西

3 忘记密码,重置密码跟认证是一样的,要防止暴力破解,实施lockout 机制

4 MFA

5 实现反暴力破解机制,以减少凭据填充、字典攻击和暴力破解对身份验证端点的攻击。这个机制应该比常规更严格API上的限制机制。

6  实施账户lockout /captcha 

3 Excessive Data Exposure

说明 :The API returns sensitive data to the client by design. This data is usually filtered on the client side before being presented to the user. An attacker can easily sniff the traffic and see the sensitive data.

简单来说就是:返回了过多的信息,

例如 /api/articles/{articleId}/comments/{commentId} 返回了评论者的敏感信息,这个就是PII ,

如何预防

  • 不要依赖client端来过滤敏感信息

  • review response 确保只含有必须的信息

  • 避免使用 generic methods such as to_json() and to_string(). Instead, cherry-pick specific properties you really want to return.

  • 识别敏感信息PII, review所有返回,看是否存在问题

  • 4 Lack of Resources & Rate Limiting

没有实施rate limit限制可能导致dos攻击,导致没反应,影响可用性。

以下item不加限制均可导致此类漏洞

  1. 执行超时

  2. 最大可分配内存

  3. 进程数量

  4. payload size

  5. 每个client的请求数

  6. 每个request 每页的最大record数量

例子:

  1. 攻击者通过向/api/v1/images发出POST请求上传大图片。当上传是完成后,API会创建多个不同大小的缩略图。由于上传图片的大小,可用的内存在创建缩略图期间耗尽,API变得无响应。

  2. 我们有一个应用程序,它在每个页面限制200个用户的UI上包含用户列表。用户列表为

  3. 使用以下查询从服务器检索:/api/users?page=1&size=200。攻击者将size参数更改为200000,导致数据库出现性能问题。同时,API变得无响应,无法处理来自此或任何其他客户端(也称为DoS)的进一步请求。同样的场景也可能引发Integer Overflow或Buffer Overflow错误。

预防

  1. docker 容易限制 memory,CPU,重启数量,

  2. 实施client在固定时间内访问的次数限制

  3. 访问超过limit的时候通知用户,

  4. server端validation 查询字符串和请求body参数,尤其是控制record数量的参数

  5. 定义并强制所有传入参数和有效负载(如maximum)上的数据的最大值,字符串的长度和数组中元素的最大数量

Broken Function Level Authorization 

跟object level的区别是 :a用户有权限访问这个资源,但是没有权限删除,或者edit,
普通用户可以访问admin的endpoint。明明这个endpoint是只对admin可见的。a组的用户访问了B组用户才有的功能
例子:  GET /api/admin/v1/users/all. 本来仅对admin可见的,而且没做访问控制,就把敏感信息暴露了
Broken function level authorization (BFLA) is somewhat similar to broken object level authorization (BOLA), but it differs from BOLA as it targets API’s function instead of the objects that APIs interact with as in the case of BOLA.
影响:信息泄露,攻击者违法执行delete操作
预防:

deny by default

admin的功能实施鉴权

6 Mass Assignment

api endpoint 自动把client输入转为内部object属性,么有考虑敏感信息泄露的情况,所以攻击者可以利用来update目标属性

说人话就是把不该暴露的给暴露出去了

Examples for sensitive properties:

• Permission-related properties: user.is_admin, user.is_vip should only be set by admins.

• Process-dependent properties: user.cash should only be set internally after payment verification.

• Internal properties: article.created_time should only be set internally by the application.

例子: credit balance不该暴露的,攻击者可以重放并且篡改。。。

A ride sharing application provides a user the option to edit basic information for their profile. During this

process, an API call is sent to PUT /api/v1/users/me with the following legitimate JSON object:

{"user_name":"inons","age":24}

The request GET /api/v1/users/me includes an additional credit_balance property:

{"user_name":"inons","age":24,"credit_balance":10}

The attacker replays the first request with the following payload:

{"user_name":"attacker","age":60,"credit_balance":99999}

Since the endpoint is vulnerable to mass assignment, the attacker receives credits without paying.

预防

  • 避免使用自动的绑定用户输入

  • 属性白名单,只接受应该接受的

  • 明确定义payload

  • 7 security misconfiguration

说明: 包括 unpatched flaws,未加密的文件,未授权的访问。

原因

  • 没有加固,没有正确实施加固

  • 没有升级patch

  • enable没用的feature

  • tls missing

  • cors policy

  • error message 包换stack track

例子:history文件中有运维的api

预防

  • hardening process
  • review configuration, orchestration files,api组件,cloud services
  • 自动化流程持续评估配置有效性
  • 定义api response apyload schemas,包括error response

8 injection

可能导致信息泄露,dos,
  • client数据没有验证,净化,过滤
  • client数据直接到sql,ldap,os,xml解析
  • 外部系统的数据没有经过api验证 
The following command allows the attacker to shut down any device with the same vulnerable firmware:
$ curl -k "https://${deviceIP}:4567/api/CONFIG/restore" -F
'appid=$(/etc/pod/power_down.sh)'
预防
  1. 数据验证,使用值得信任的library
  2. 客户提供的数据要验证,过滤,净化
  3. 参数化输入
  4. 限制返回记录的数量,

Improper Assets Management

旧的api 版本,没有patch,
没有文档,没有退役计划,没有清单,旧的api没patch继续服役。。。
这个是管理的问题
预防:
  • api 清单,在哪个环境,什么网络,什么版本。。。
  • 全面清晰的文档。。。
  • 文档自动化
  • 新的api,执行风险分析,

10 Insufficient Logging & Monitoring

没有log,log level不对,没有足够的信息
log完整性不能保证
没有持续监控log
预防措施
  • log 所有的认证失败,拒绝访问,输入验证失败
  • 格式化的log信息,能够给到log 管理平台来识别恶意的攻击者
  • log也是敏感信息
  • SEIM系统来管理,lo
  • 配置看板,alert,有可疑活动可以报警。。。

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

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

相关文章

redis哨兵系列1

需要配合源码一起康~ 9.1 哨兵基本概念 官网手册yyds:https://redis.io/docs/manual/sentinel/ redis主从模式,如果主挂了,需要人工将从节点提升为主节点,通知应用修改主节点的地址。不是很友好,so Redis 2.8之后开…

同花顺_代码解析_技术指标_EJK

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 EMV ENV EXPMA JF_ZNZX KD KDJ KDJFS EMV 简易波动指标 1.EMV 由下往上穿越0 轴时,视为中期买进参考信号; 2.EMV 由上往下穿越0 轴时,视为中…

根据以下电路图,补全STM32F103RCT6的IO口初始化程序

void KEY_Init(void)//接按键的端口初始化程序 { RCC->APB2ENR|______________; //使能PORTA时钟 JTAG_Set(SWD_ENABLE); GPIOA->CRL&__________________; // PA3设置成下拉输入 GPIOA->CRL|__________________; } void LED_Init(void)//接LED的端…

【Qt】控件探幽——QLineEdit

注1:本系列文章使用的Qt版本为Qt 6.3.1 注2:本系列文章常规情况下不会直接贴出源码供复制,都以图片形式展示。所有代码,自己动手写一写,记忆更深刻。 本文目录QLineEdit探幽1、设置数据/获取数据2、只读(re…

【15-项目中服务的远程调用之OpenFeign订单模块与商品模块集成使用OpenFeign的案例】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

【面试题】圣杯布局和双飞翼布局

圣杯布局和双飞翼布局的特点: 三栏布局,中间一栏最先加载和渲染(内容最重要)两侧内容固定,中间内容随着宽度自适应一般用于PC页面 圣杯布局和双飞翼布局的实现方式: 使用float布局两侧使用margin负值&am…

git 、gitLub 提交后查看显示全部删除又全部新增

问题: git提交后删除的行数与增加的行数一样,没有修改git也会去全部删除又全部新增 大概是下面你这个样子: 原因: 换行符的原因,win、mac、linux/Unix 换行符是不一样的,提交的文件换行符和git服务器的不…

【Unity300个技巧】牛顿的学问!如何优雅地使用力?

Unity 提供了一个完备且强大物理引擎。但在刚接触的时候,你可能会对它与现实物理规律对应有一些疑惑。 比如: 现实中 1N 的力在 Unity 中怎么表现?Unity 中物体的质量是计算的?Unity 中给物体添加力的方法是 rb.AddForce()&#x…

ICME 论文Latex模版要求

2023年模版获取链接: 链接: https://pan.baidu.com/s/1Hjk4nnybQN6LE23SGfbxKQ 提取码: 27dj --来自百度网盘超级会员v4的分享 论文写作要求: 所有手稿必须是英文的; 论文长度不应超过6页,包括所有文本、图形和参考文献&#…

Qt 设置CPU亲缘性,把进程和线程绑定到CPU核心上(Linux)

Qt 设置CPU亲缘性,把进程和线程绑定到CPU核心上(Linux) 文章目录Qt 设置CPU亲缘性,把进程和线程绑定到CPU核心上(Linux)摘要1 什么是CPU亲缘性2 目的3 API 介绍3.1 进程绑定到CPU3.2 线程绑定到CPU4 实际操作4.1 实操代码主进程串口线程USB线程程序运行资…

iOS开发M1芯片遇到的问题

pod失败执行: sudo arch -x86_64 gem install ffi Then arch -x86_64 pod install M1芯片的Mac无法在模拟器上运行项目building for iOS Simulator或could not find module for target.. 真机上可运行,模拟器上不行,并出现以下错误&#xf…

高级UI之贝塞尔曲线

前言 相信很多同学都知道“贝塞尔曲线”这个词,我们在很多地方都能经常看到。但是,可能并不是每位同学都清楚地知道,到底什么是“贝塞尔曲线”,又是什么特点让它有这么高的知名度。 贝塞尔曲线的数学基础是早在 1912 年就广为人…

八款流行无线黑客工具,非常实用

1、Aircrack Aircrack是最受欢迎的无线密码破解工具之一,可用于802.11a / b / g WEP和WPA破解。Aircrack使用的算法是通过捕获数据包来恢复无线密码。收集到足够的数据包后,它会尝试恢复密码。为了使攻击更快,它通过一些优化实现标准的FMS攻…

腾格尔和黑鸭子,演唱《遥远的地方》不同版本,哪首歌更值得期待

说起中国华语乐坛的音乐人,腾格尔老师算比较出名的一位,听说最近他又推出了一首新歌。《遥远的地方》这首歌曲,就是腾格尔老师的新歌,可能很多人会对这个歌名感到有些熟悉。 早在九十年代的时候,中国华语乐坛非常流行组…

【雷神笔记本快捷键】雷神笔记本FN功能快捷键大全以及电脑CPU处于低功耗但电脑风扇高速转动噪音较大解决方案

雷神笔记本FN功能快捷键大全以及电脑CPU处于低功耗但电脑风扇高速转动噪音较大解决方案。 本计算机有16个功能键盘。这些键的功能因应用程序而异。 请参阅软件文档以了解各个键的使用方法。 【FN】键提供便携式电脑的扩展功能,始终与另一按键搭配使用。‘【FNEsc】:启用或禁用…

教你如何使用 Visual Studio IDE 正确的进行 C++ 桌面开发

目录 先决条件 入门 一、演练:使用项目和解决方案 (C) 准备工作 创建项目 在 Visual Studio 中创建项目 组织项目和文件 向项目添加类 向主函数添加测试代码 向项目添加测试代码 生成并运行应用项目 生成并运行此项目 二、演练:生成项目 (C…

改良海量数据存储的若干的手段-转变数据垃圾为黄金

教材篇 直到翻看了后面章节,才注意到封面上面的标语,中文意思是“禁止倾倒数据垃圾,违者务必读此书!” 大致祖师爷对杂乱无序的数据垃圾深恶痛绝,在这点上大凡上了点年头的数据工作者都是深有体会~ 直到翻看了后面章…

三相和单相智能微型断路器功能有区别吗?

安科瑞 华楠 ASCB1系列智能微型断路器是安科瑞电气股份有限公司全新推出的智慧用电产品,产品由智能微型断路器与智能网关两部分组成,可用于对用电线路的关键电气因素,如电压、电流、功率、温度、漏电、能耗等进行实时监测,具有远程…

渗透测试与漏洞扫描的区别

企业通常将漏洞扫描视为渗透测试的替代方法。这种认识是错误的。具有网络安全意识的组织必须在其业务流程中包括这两项活动,并确保它们协同工作。错过其中之一会大大降低 Web 应用程序安全性和网络安全性的安全状况。渗透测试和漏洞扫描也被单独视为合规性要求&…

【TFS-CLUB社区 第6期赠书活动】〖uni-app跨平台开发与应用从入门到实践〗等你来拿,参与评论,即可有机获得

文章目录❤️‍🔥 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》❤️‍🔥 编辑推荐❤️‍🔥 抽奖方式与截止时间❤️‍🔥 赠书活动 → 获奖名单❤️‍🔥 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》 内…