你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

为什么需要考虑 API 的安全性?

2019 年 10 月 12 日

为什么需要考虑API的安全性?

各类企业在智能手机的应用程序中,越来越多地依赖 API 与客户端进行交互,但这种方式也有一些弱点。



随着网络攻击者继续利用易受攻击的人、过程和技术,他们的行动也瞄向了常规目标之外;似乎没有任何事情不在他们的目标范围之内,没有人能百分之百地免受他们的恶意攻击。


尽管组织机构在保护自己方面取得了进展,但是一旦一个组织被击破,其他的很快也就暴露了。


今天的攻击者尤其关注 API,它们正迅速成为新的攻击前沿阵地。最近的报告表明,到 2022 年,API 滥用将成为企业 web 应用程序中数据泄露的罪魁祸首。因此,保护 API 变得越来越重要。


虽然 API 安全这些概念还有些新,但是通过 API 执行攻击的行为并非最近才出现。多年来,大多数组织机构都遇到过类似的威胁,这些威胁正是针对其网络和面向 Internet 的应用程序。


现在,他们必须把精力集中在移动应用程序、API 和后端服务器上,因为网络攻击者过去采用了类似方法,把这些应用程序、API 和后端服务器作为了攻击目标。在讨论与今天的 API 相关风险之前,我们必须首先准确地理解是什么使它们显得独特和易受攻击。


基于 API 的应用程序与传统应用程序的对比

基于 API 的应用程序与传统应用程序有很大的不同。例如,在过去,用户/访问者会通过浏览器访问 web 服务器,而大多数“数据处理”是在服务器上执行的。但随着客户端设备变得越来越多样化,变得越来越强大——即有了更快的 CPU、更大内存、更多带宽等等——很多逻辑从后端服务器转移到了前端(即客户端设备本身),如下图所示。



在现代应用程序中,下游服务器更像是基于 API 的应用程序所使用数据的一个网关代理。在此实例中,渲染组件就是使用原始数据的客户端,而不是服务器本身。


例如,还记得在早些年,人们使用智能手机和传统网站预订机票。人们会在手机上打开浏览器,尝试使用航空公司网站,这些网站是专为大型电脑显示器而非小型智能手机屏幕设计的。


但这并没有带来很好的用户体验,所以公司开始更新他们的网站,使其对智能手机用户更加友好。尽管这改善了用户体验,但浏览网站和完成机票预订仍然相当麻烦。


因此,航空公司、酒店、汽车租赁公司等都开始开发自己的移动应用程序。人们预订航班时,不再试图从手机上的浏览器里打开该航空公司移动版网站,而是下载并安装该公司的移动应用程序,并直接从智能手机上使用该应用程序进行预订。那么,这带来了什么变化呢?


当使用航空公司的移动应用程序预订航班时,该应用程序使用 API 调用与后端服务器交互,主要用于获取航班时间表、可乘坐航班、价格和座位等数据。该应用程序还与用户进行交互,允许用户指定旅行日期、出发和到达城市、座位选择和购买选项。


在这种情况下,智能手机可以不使用浏览器,而是在移动应用程序内部执行了几乎所有的机票预订处理负载。尽管这极大地改善了使用智能手机时的机票预订体验,但也带来了一个问题:


API 是否也像基于浏览器的应用程序一样容易受到网络攻击?


与 API 相关的风险

不幸的是,API 也暴露在攻击之下,并且类似于基于浏览器的应用程序,基于 API 的应用程序在很大的程度上也存在着类似的安全问题。


但是,由于 API 暴露了移动应用程序的底层实现,并且用户的状态通常由客户端应用程序维护和监视,每个 HTTP 请求(对象 ID、过滤器等)中会发送更多的参数,所以有一些 API 的安全问题具有其独特性。在大多数情况下,这些问题导致的漏洞可以从以下三个方面来考虑:


  • 泄露敏感数据

  • 被拦截的通讯

  • 对后端服务器发起拒绝服务攻击(DoSS)


一个具有高尚动机的好项目

随着威胁范围的扩大和 API 使用的增加,我和 Inon Shkedy(Traceable.ai 的安全研究主管)带头领导了OWASP API十大安全项目。该项目旨在帮助组织、开发人员和应用程序安全团队更加了解 API 的风险。


这个项目之所以重要,是因为:“在当今应用程序驱动的世界中,创新的一个基本元素就是 API。从银行、零售、运输到物联网、自动驾驶汽车和智慧城市,API 是现代移动端、SaaS 和 web 应用程序的关键部分,我们可以在面向客户、面向合作伙伴和机构内部的应用程序中随处可见 API 的使用。从本质上讲,API 暴露了应用程序的逻辑和敏感数据,如个人身份信息(Personally Identifiable Information,简称 PII),正因为如此,它越来越多地成为攻击者的目标。没有安全的 API,快速创新将是不可能的。”


OWASP API 安全项目旨在开发、发布和跟踪组织在使用 API 时所面临的十大风险,类似于OWASP十大最关键的Web应用程序安全风险项目。从中断的对象级授权到不充分的日志记录和监视,这个列表汇总了企业面临的最关键的 API 风险,同时还提供了示例攻击场景和减轻这些威胁的建议。


所以,IT 团队、安全专业人员和开发人员都应该仔细阅读这个列表,以便更好地理解 API 带来的好处,同时了解在攻击者将目光投向这个新兴目标时,API 的实现所带来的潜在风险。


英文原文:


Why You Need to Think About API Security


2019 年 10 月 12 日 16:131794

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

面向对象设计原则--开放关闭原则(OCP)

张荣召

面向对象设计原则----里氏替换原则(LSP)

张荣召

架构师训练营第二周作业

文智

极客大学架构师训练营

第二周学习框架设计总结

三板斧

极客大学架构师训练营

国内首个区块链村正式落地:数字经济的裂变之路

CECBC区块链专委会

区块链 数字经济

从四个问题透析Linux下C++编译&链接

华为云开发者社区

c++ Linux 编程

第二周总结

等燕归

MySQL是如何实现可重复读的?

超超不会飞

MySQL

华为:与全球180万云与计算开发者共成长,共创行业新价值

华为云开发者社区

graylog日志分析系统上手教程

MySQL从删库到跑路

Apache Linux 运维 日志分析 实时 Web 日志分析器

架构师训练营 1 期 - 第二周总结(vaik)

行之

第二周

scorpion

架构师训练营 - 第 2 周课后作业(1 期)

Pudding

面向对象设计原则----单一职责原则(SRP)

张荣召

面向对象设计原则----接口分离原则(ISP)

张荣召

案例分析--反应式编程框架Flower的设计

张荣召

作业-2020-09-27

芝麻酱

深入理解JVM垃圾回收算法 - 标记整理算法

WANDEFOUR

标记整理 双指针算法 Lisp2 引线整理算法

金融科技推进数字金融“新基建”,着力建设三种类型数字金融基础设施

CECBC区块链专委会

金融 科技 科技革命

第二周

等燕归

OOA-OOD:面向对象分析/设计练习

张荣召

Java中的遍历(遍历集合或数组的几种方式)

keaper

Java List 遍历

#第二周作业

vitaminc

[架构师训练营第1期]第二周学习总结

猫切切切切切

极客大学架构师训练营

为什么区块链巨头企业一定会诞生在中国的原因分析

CECBC区块链专委会

区块链 科技

架构师训练营—第二周学习总结

Geek_shu1988

面向对象设计原则----依赖倒置原则(DIP)

张荣召

架构训练营-week2-作业

于成龙

作业 架构训练营

架构训练营 - 第 2周课后作业 - 学习总结

Pudding

第二周课后练习

薛凯

架构师训练营第二周学习总结

薛凯

PingCAP DevCon 现场直播

PingCAP DevCon 现场直播

为什么需要考虑API的安全性?-InfoQ