当前位置: 首页 > news >正文

API 的安全性

大家好。今天聊一个很重要但是大部分人不重视的API安全问题。

api固有的范围和风险意味着它们需要一种不同的安全方法。

应用程序编程接口(api)是现代应用程序的构建模块,它们的使用正在以惊人的速度增长。然而,随着使用的增加,风险也会增加。。

应用程序编程接口(api)是连接当今新型数字化服务所需的所有关键数据的粘合剂,是我们在线和移动生活中不可避免的一个方面。更重要的是,API的使用正在以惊人的速度增长。过去12个月,API流量总体增长了168%。然而,随着使用的增加,风险也会增加。该报告还发现,恶意API流量现在占整个API流量的2.1%。

为什么传统的安全性对api来说不够?

api固有的范围和风险意味着它们需要一种不同的安全方法,一种不同于所有其他形式的网络安全的方法。传统的安全方法在保护api方面的能力不足,原因有很多,包括:

API的快速变化和发展:API环境在不断变化。要跟上新的和变化的api几乎是不可能的。组织在获得api的完整清单方面面临挑战,正如谚语所说,你不能保护你不知道的东西。API安全性必须从一个准确的清单开始,而传统的工具(如waf和API网关)无法提供任何可见性来支持API发现。

API攻击的低速度特性:传统的攻击技术(如SQL注入或跨站脚本)在API上启动,但通常会失败。像这样的“一次性”攻击利用了已知的漏洞——一种不会转移到api的技术。每个API都是唯一的,并且有自己独特的业务逻辑。网络犯罪分子必须反复探测API,以找到他们可以利用的业务逻辑缺口——因此,API攻击具有低速度和慢速度的特性。

左移的缺点:总的来说,虽然左移是有价值的,但这些策略并不一定适用于api。预生产测试提供了价值,但并不是所有东西都可以在代码中得到保护。左移只能发现开发中的安全漏洞。运行时监视和保护功能必须到位,以保护环境中已经运行的内容。运行时行为分析总是为快速攻击检测和响应提供最大的价值。

没有API安全性的世界

既然我们已经更好地理解了为什么api需要自己特定的安全方法,我们可以看看没有它们的世界会是什么样子。

想象一下,你正在购物,站在柜台前,直到所有东西都被扫描,然后等待付款。你插入信用卡,输入密码,但屏幕显示资金不足。收银员尴尬地看着你,而你听到身后的购物者不耐烦地抱怨声。

你觉得很奇怪,今天早上账户里还有钱。你打开你的网上银行应用程序,登录,你的世界崩溃了。账户空了,丢的不只是你的工资包。你的积蓄已经耗尽;你的退休金没了——你彻底破产了。

这对所有人来说都是噩梦。如果没有专用的API安全性,这种情况也会以惊人的速度发生。

让我们再深入一点。金融科技平台是网络罪犯无法抗拒的目标。不仅潜在的回报是天文数字,而且这些平台拥有令人难以置信的丰富和复杂的API环境。

还记得左移的缺点吗?这在这里很重要。最近的威胁研究发现,在一家大型美国金融科技平台上发现的安全错误配置和服务器端请求伪造(SSRF)(没有人每次都能写出完美的代码)可能导致:

攻击者获得对银行系统的管理访问权

攻击者泄露用户的个人数据

攻击者可以访问用户的银行详细信息和金融机构

攻击者在自己的账户中进行未经授权的资金转移

这是一个令人震惊的、真实的例子,说明了特定于api的安全性为何如此重要。如果这个金融科技平台仅仅依靠左移平台策略,我们就不会在威胁报告中读到它,它将作为一场历史性的网络灾难登上全球头条。

Coinbase中的API漏洞

然而,存在API安全问题的不仅仅是传统财务部门。今年2月,在加密货币交易平台Coinbase上发现了一个潜在的灾难性API漏洞。如果该漏洞被利用,攻击者将能够在账户之间进行无限的加密货币交易。它的发现对Coinbase至关重要,以至于Twitter用户“Tree_Of_Alpha”获得了25万美元的漏洞赏金。

所以,在一个没有api的世界里,你的支付宝和微信里的钱都不安全。

但让我们更深入地了解一下Coinbase的漏洞。根据他的推文,“Tree_Of_Alpha”正在检查Coinbase新的“高级交易”功能,该功能允许用户下订单出售一种加密货币,并使用资金购买另一种加密货币。

标准的RESTful API用于执行这种性质的请求。它包含一些关键参数,包括:

正在交易的产品-在这种情况下,以太坊到欧元

应从源帐户资金出售

要将转换后的货币转入的目标帐户

这里的问题是,尽管这些参数存在于每个请求中,但它们没有得到正确的验证。更重要的是,这些是基本的正确验证请求。如果这没有被标记出来,这可能会让Coinbase非常尴尬。

具体来说,“Tree_Of_Alpha”能够手动编辑“product”参数,但Coinbase的后端系统无法验证用户是否是产品中定义的钱包的所有者。这意味着任何人都可以从一个不存在的钱包中进行资金转移——从本质上讲,你的加密钱包不属于你。

为了验证他的发现,“Tree_Of_Alpha”发送了相同的请求,但将“ETH-EURO”产品更改为“BTC-USD”。通过这样做,他可以验证他的发现,同时减轻Coinbase用户和整个生态系统面临的巨大风险。爱发牢骚的人吗?他甚至没有比特币钱包。出乎所有人的意料,尤其是Coinbase,平台正确地处理了请求。这些资金从一个神秘的、不存在的、“未知的”比特币账户转移到一个有效的美元钱包。

虽然这种脆弱性令人震惊,但它绝不是罕见的。API威胁研究人员和安全专业人员每天都会遇到这种情况。

这个案例是api特定网络安全如此重要的另一个例子。API开发正以惊人的速度飞速发展。Salt最近的研究甚至发现,每个客户的平均api数量在过去一年中增长了82%,从2021年7月的89个跃升至2022年7月的162个。在这种对创新永不满足的追求中,安全很容易被置于次要地位。其他组织应该将Coinbase的险些失败视为一个可怕的警告,即忽视API安全、为创新让路所带来的危险。这些都不是小事,而是对生存的威胁。

我们在API安全方面哪里做错了?

Salt Security调查发现,尽管行业正在推动向左移位,但只有22%的行业专业人士将向左移位功能视为最重要的需求,相比之下,41%的人将在运行时阻止攻击的能力视为最关键的属性。同一项调查还显示,53%的受访者试图在开发过程中补救API安全漏洞,59%的受访者在测试过程中试图补救API安全漏洞。当然,这些措施是值得的,但94%的受访者报告了最近的API安全事件,很明显,左移策略并没有达到标准。

更令人担忧的是未能实现运行时保护。众所周知,大多数成功的API攻击都是针对逻辑流中的漏洞(在生产前测试中无法识别),那么为什么很少(31%)在运行时或生产期间解决安全漏洞呢?

专用API安全性是业务的必要条件

api为企业提供数字商品和服务所需的基本数据的互连提供了动力。每个在云中运营的公司都依赖于api。API安全性已经成为这些公司保护其关键服务和客户数据的绝对必要条件。

业界必须意识到对特定于api的安全性的需求。api有细微差别和技术上的奇怪之处,这意味着传统的网络安全方法根本无效。随着API攻击的数量和复杂性的增加,是时候以不同的方式处理API安全了。

相关文章:

API 的安全性

大家好。今天聊一个很重要但是大部分人不重视的API安全问题。api固有的范围和风险意味着它们需要一种不同的安全方法。应用程序编程接口(api)是现代应用程序的构建模块,它们的使用正在以惊人的速度增长。然而,随着使用的增加,风险也会增加。。…...

Linux驱动->设备树

1.定义 设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同 2.设备树的文件格式…...

一天一道力扣题

232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek()…...

算法leetcode|36. 有效的数独(rust重拳出击)

文章目录36. 有效的数独:样例 1:样例 2:提示:分析:题解:rustgoccpythonjava36. 有效的数独: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效…...

都说爱有回音,这次情人节驱动人生宠你!

来了来了,它又来了——那个一波人狂欢,一波人孤单的节日。 眼看着身边人在订花订餐厅,选礼物,空气中弥漫着微妙的氛围,驱动哥脑海里只有明天下班的地铁挤不挤得过这群约会的人。 不过根据哥的观察,发现一个…...

npm安装依赖报错 npm code ERESOLVEnpm ERESOLVE unable to resolve dependency tree

在安装npm i vue-router (路由)时出现了这个错误。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue_test@0.1.0 npm ERR! Found: vue@2.6.14 npm ERR! node_modules/vue npm ERR! vue@"^2.6.…...

【项目设计】—— 基于Boost库的搜索引擎

目录 前言 一、项目的相关背景 1. 什么是Boost库 2. 什么是搜索引擎 3. 为什么要做Boost搜索引擎 二、搜索引擎的宏观原理 三、搜索引擎技术栈和项目环境 四、正排索引 VS 倒排索引 —— 搜索引擎的具体原理 1. 正排索引(forword index) 2. 倒…...

全网详解MyBatis-Plus updateById方法更新不了空字符串或null的解决方法

文章目录1. 文章引言2. 分析问题3. 解决问题3.1 方法1:全局配置方式3.2 方法2:非null字段验证策略3.3 方法3:通过注解的方式4. 总结1. 文章引言 在开发的过程中,我们经常使用MyBatis-Plus的updateById方法更新数据表,…...

联想K14电脑开机全屏变成绿色无法使用怎么U盘重装系统?

联想K14电脑开机全屏变成绿色无法使用怎么U盘重装系统?最近有用户使用联想K14电脑的时候,开机后桌面就变成了绿色的背景显示,无法进行任何的操作。而且通过强制重启之后还是会出现这个问题,那么这个情况如何去进行系统重装呢&…...

Spring Boot HTTP 400排查

背景 前段时间朋友咨询他们公司某个HTTP接口偶现400错误,有没有什么好的分析方法和解决方案,使用的是Spring Cloud体系。最近有时间总结下这个问题的处理过程。 为了分析问题,笔者使用 Spring Boot 3.0.2还原报错场景进行讲解。 问题分析 …...

【手撕源码】vue2.x中keep-alive源码解析

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…...

ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3

书中程序适用于turtlebot、husky等多种机器人,配置相似都可以用的。支持ROS2版本foxy、humble。基础检测效果如下:由于缺¥,所有设备都非常老旧,都是其他实验室淘汰或者拼凑出来的设备。机器人控制笔记本是2010年版本。…...

【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在https://blog.csdn.net/A…...

【Linux】多线程编程 - 同步/条件变量/信号量

目录 一.线程同步 1.什么是线程同步 2.为什么需要线程同步 3.如何实现线程同步 二.条件变量 1.常见接口以及使用 2.wiat/signal中的第二个参数mutex的意义 3.代码验证 三.POSIX信号量 1.概念 2.常见接口以及使用 四.条件变量vsPOSIX信号量 一.线程同步 1.什么是线…...

ES优化方案

ES优化&联合HBASE: 【Elasticsearch】优秀实践-ESHbase的实现_少加点香菜的博客-CSDN博客_sceshbase ES写入性能优化方案 ElasticSearch 调优笔记_index.refresh_interval_六月飞雪的博客-CSDN博客 es如何提升写入性能_婲落ヽ紅顏誶的博客-CSDN博客_es写入性…...

从数据备份保护到完整生命周期管理平台,爱数全新发布 AnyBackup Family 8

编辑 | 宋慧 出品 | CSDN 云计算 从2003年创业,开始做数据备份技术,爱数已经走过了近20年的时间。现在,数据的价值被越来越多的业界与用户看到,数据分析应用赛道近年一直持续火热。而现在的爱数在做的,已经从数据的备…...

Go 微服务开发框架 DMicro 的设计思路

Go 微服务开发框架 DMicro 的设计思路 DMicro 源码地址: Gitee:dmicro: dmicro是一个高效、可扩展且简单易用的微服务框架。包含drpc,dserver等 背景 DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协议都…...

浅谈功能测试

1.功能测试流程 1.1 功能测试流程 # 功能测试大致按照以下流程进行: (1).需求分析与评审(2).测试计划与测试方案(3).测试用例设计(4).测试用例评审(5).执行用例(6).缺陷跟踪及报告产出 1.2 功能测试流程详解 (1).需求分析与评审 功能测试应从需求出发, 功能测试就是尽量覆…...

UDP的详细解析

UDP的详细解析 文章目录UDP的详细解析UDP 概述UDP的首部格式检验和的计算抓包测试参考TCP/IP运输层的两个主要协议都是互联网的正式标准,即:用户数据报协议UDP (User Datagram Protocol)传输控制协议TCP (Transmission Control Protocol) 按照OSI的术语…...

史上最详细JUC教程之Synchronized与锁升级详解

在Java早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的Mutex Lock来实现的,挂起线程和恢复线程都需要转入内核态去完成,阻塞或唤醒一个Java线程需…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...