浅谈API安全

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 浅谈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安全了。


相关文章
|
1月前
|
存储 安全 API
如何对 API 进行安全加密?
对API进行安全加密是保障数据安全和系统稳定的重要措施
137 56
|
2月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
241 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
3月前
|
人工智能 安全 API
API应用安全风险倍增,F5助企业赢得关键安全挑战
API应用安全风险倍增,F5助企业赢得关键安全挑战
62 11
|
3月前
|
安全 Java API
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
72 11
|
3月前
|
安全 Java API
【本地与Java无缝对接】JDK 22外部函数和内存API:JNI终结者,性能与安全双提升!
【9月更文挑战第6天】JDK 22的外部函数和内存API无疑是Java编程语言发展史上的一个重要里程碑。它不仅解决了JNI的诸多局限和挑战,还为Java与本地代码的互操作提供了更加高效、安全和简洁的解决方案。随着FFM API的逐渐成熟和完善,我们有理由相信,Java将在更多领域展现出其强大的生命力和竞争力。让我们共同期待Java编程新纪元的到来!
116 11
|
4月前
|
安全 API 数据处理
后端开发中的API设计哲学:简洁、高效与安全
【8月更文挑战第29天】 在后端开发的广阔天地中,API(应用程序编程接口)的设计如同编织一张无形的网,连接着数据的海洋与应用的大陆。本文将深入探讨如何打造一个既简洁又高效的API,同时不忘筑牢安全的防线。我们将从API设计的基本原则出发,逐步剖析如何通过合理的结构设计、有效的数据处理和严格的安全措施来提升API的性能和用户体验。无论你是初学者还是资深开发者,这篇文章都将为你提供宝贵的视角和实用的技巧,帮助你构建出更优秀的后端服务。
|
5月前
|
安全 API 网络架构
Python RESTful API设计新篇章,打造高效、易用、安全的Web服务接口,你准备好了吗?
【7月更文挑战第22天】在数字化转型中,RESTful API借助Python的Flask和Django REST Framework,提供高效、易用和安全的接口设计。Flask示例展示了简洁的CRUD操作,Swagger等工具增进API文档的易用性,而HTTPS、JWT和输入验证确保安全性。Python RESTful API设计涉及效率、可用性和安全,是不断进化的Web服务接口的关键。准备好踏上这一新篇章了吗?一起探索,创造卓越!
69 2
|
5月前
|
安全 API 网络安全
Django RESTful API安全实践
【7月更文挑战第19天】构建安全的Django RESTful API需要综合考虑多个方面,包括身份验证与授权、数据验证与清洗、安全的HTTPS连接、限制请求频率以及审计与日志记录等。通过实施这些安全实践,可以有效地保护API服务免受各种安全威胁的侵害,确保用户数据的安全性和服务的可用性。开发者在开发RESTful API时,应始终将安全性放在首位,确保API服务的安全可靠。
|
5月前
|
存储 JSON 安全
OAuth2与JWT在API安全中的角色:技术深度解析
【7月更文挑战第20天】OAuth2和JWT作为两种重要的安全协议,在API安全中发挥着不可或缺的作用。OAuth2通过提供灵活的授权框架,实现了对资源的细粒度访问控制;而JWT则通过其紧凑性和自包含性,确保了身份验证和信息传输的安全性。在实际应用中,将OAuth2和JWT结合使用,可以构建出既强大又安全的API服务,为用户提供更加安全、可靠和便捷的数字体验。
|
5月前
|
安全 Java API
构建基于Spring Boot的REST API安全机制
构建基于Spring Boot的REST API安全机制
下一篇
DataWorks