浅谈API安全

简介: 浅谈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安全了。


相关文章
|
8天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
28 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
1月前
|
安全 算法 API
API接口安全
API接口安全
463 2
|
3月前
|
运维 监控 安全
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
85 0
|
5月前
|
安全 Java API
互联网并发与安全系列教程(15) - 基于Zuul实现API网关
互联网并发与安全系列教程(15) - 基于Zuul实现API网关
43 0
|
5月前
|
安全 NoSQL API
互联网并发与安全系列教程(08) - API接口幂等设计与实现
互联网并发与安全系列教程(08) - API接口幂等设计与实现
43 0
|
1月前
|
存储 数据采集 安全
|
5月前
|
安全 应用服务中间件 API
互联网并发与安全系列教程(14) - 基于Nginx实现API网关
互联网并发与安全系列教程(14) - 基于Nginx实现API网关
49 0
|
5月前
|
存储 安全 API
互联网并发与安全系列教程(11) -OAuth2.0协议实现API设计
互联网并发与安全系列教程(11) -OAuth2.0协议实现API设计
41 0
|
5月前
|
编解码 安全 Java
互联网并发与安全系列教程(10) -基于URL转码方式实现API设计
互联网并发与安全系列教程(10) -基于URL转码方式实现API设计
32 0