论述API安全的重要性

夙愿已清 提交于 2019-12-04 23:04:28

在智能手机APP中,企业越来越多地依靠API与客户交互,实际上,这种交互模式具有其独特的漏洞集。

黑客们一边继续利用容易受到攻击的人、过程和技术,一边还将攻击范围扩大到其他目标。对黑客们来说,似乎没有任何东西是他们不去攻击的;而对于企业来说,没有人能百分百确保不受到黑客恶意攻击的威胁。尽管,企业组织在自我保护方面不断取得进步,但是,攻击载体源源不断,解决了一个,另一个很快又会出现。

API正在迅速成为黑客们新的攻击对象。最新的报告表明,到2022年,API滥用将成为企业web应用程序数据泄露的罪魁祸首。全球API实现的广泛增长,但其尚未被广泛利用,这对黑客们来说,提供了一个新的攻击目标。因此,保护API变得越来越重要。

虽然API安全这个词的概念对大家来说还比较陌生,但是通过API进行的攻击却已经广泛发生。多年来,大多数组织都遇到过针对其网络和面向Internet的应用程序的类似威胁。现在,他们必须将精力集中在过去被攻击过的移动应用程序、API和后端服务器上。在讨论与当今API相关的风险之前,我们必须首先确切地了解使API独特且脆弱的原因。

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

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

1.jpg

上图底部的现代应用程序中,下游服务器的行为更像是基于API的应用程序执行数据的代理。在这种情况下,使用原始数据的客户端呈现组件,而不是使用服务器本身。

例如,早期,大家使用智能手机和传统网站预定机票。人们会在手机上打开浏览,尝试使用专门为传统大型电脑显示器设计的航空公司网。这种客户体验效果很差。然后,航空公司开始更新他们的网站,使其对智能手机更加友好。尽管这改善了客户体验,但导航网站和完成机票预订仍然很麻烦。

因此,航空公司、酒店、汽车租赁公司等都开始开发自己的移动应用程序。人们不再试图通过手机上的浏览器使用该航空公司网站来预订航班,而是下载并安装该公司的移动应用程序,并直接用智能手机使用该移动应用程序来预订航班。那么,跟之前比较而言,这有什么不同呢?

使用航空公司自主开发的移动应用程序预订航班时,该应用程序使用API调用与后端服务器交互,主要检索航班时间表、可用性、价格、座位等数据。该应用程序还与用户进行交互,允许客户指定旅行日期、出发和到达城市、座位选择和购买选项。在这种情况下,智能手机在不使用浏览器的情况下,在移动应用程序本身内,执行几乎所有的机票预订处理负载。尽管这极大地改善了用户使用智能手机预订机票的体验,但也引出了一个问题:API是否也像基于浏览器的应用程序一样容易受到网络攻击?

API涉及的风险

不幸的是,API同样容易受到攻击,与基于浏览器的应用类似,存在很高的安全性问题。当然,由于API公开了移动应用程序的底层实现,并且用户状态通常由客户端应用程序维护和监视,因此在每个HTTP请求中会发送更多的参数(对象id、过滤器等),所以API相关的一些安全问题是独特的。在大多数情况下,这些问题导致的漏洞可以分为三个关注领域。

1、公开敏感数据

2、拦截通讯

3、对后端服务器发起拒绝服务(DOS)攻击

OWASP API安全十大项目

随着威胁范围不断扩大,API使用不断增加,OWASP API安全十大项目能够帮助组织、开发人员和应用程序安全团队更加了解API的风险。

这个项目之所以重要的原因如下:该项目的网站声明,“API是当今应用程序驱动世界中创新的基础。从银行、零售和运输到物联网、自动驾驶汽车和智能城市,API至关重要。API可以在面向客户、面向合作伙伴和内部应用程序中找到,它们是现代移动、SaaS和web应用程序的一部分。从本质上讲,API公开了应用程序逻辑和敏感数据,例如个人身份信息(PII),因此,它已经不断成为攻击者的目标。没有安全的API,快速创新是不可能的。”

OWASP API安全项目能够开发、发布和跟踪组织在使用API时所面临的十大风险,类似于OWASP十大最关键的Web应用程序安全风险。从中断的对象级授权到不充分的日志记录和监视,该列表汇总了企业面临的最关键的API风险,同时还提供了示例攻击场景和缓解这些威胁的建议。建议IT团队、安全专业人员和开发人员都仔细阅读该列表,以便更好地理解API的好处,以及当对手将目光投向这个新兴目标时,其实施带来的潜在风险。

未经同意,本文禁止转载或摘编。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!