当前位置: 首页 > 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线程需…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...