云端原生和微服务架构等技术的普及让API受到越来越大的重视。
那么当应用程式开始上云,各项需求都可以透过云端服务满足的情况下,应用程序,尤其基于云端API的应用程式的安全问题该如何解决?
表现层状态转移(REST,Representational State Transfer)这种软体架构风格最早可追溯到电脑科学家Roy Fielding于2000年发布的一篇博士论文。 在此后多年里,REST API(有时也称为RESTful API)逐渐发展成为一种非常流行的API架构模型,多用于Web和行动应用,以及企业对企业应用和企业内部系统。
虽然许多实作也用了其他API方法(如SOAP、GraphQL和gRPC),但REST API因为易于实现而获得了最广泛的使用。 REST API设计非常便于现代前端框架使用,因此成为Web应用、行动应用以及许多内部和企业间API实现的热门选择。
REST API安全性五大原则
儘管REST API能以高度安全和弹性的方式实施,但有些基本的API安全标準对任何实施都至关重要。
在REST API设计中构建安全性的五大原则是:
始终使用TLS加密
实施完善且可扩展的身份验证和授权模型
不要在URL中包含敏感资讯
严格定义允许的RESTful API请求和回应
实施持续的API发现功能
始终使用TLS加密
与其他类型的敏感HTTP流量一样,对RESTful API使用TLS可以确保API消费者与API端点间的所有通信都经过加密。 这对于REST API安全和Web应用程式安全同样重要,因为由此产生的HTTP流量包括敏感的身份验证详细资讯,如密码、API密钥或令牌。
实施完善且可扩展的身份验证和授权模型
可以使用许多不同技术来管理对REST API的存取。 最常用的技术是API密钥和安全令牌。
但密钥和令牌的管理可能是一种相当複杂的工作。
这往往会导致无意中出现REST API安全漏洞。 通过与相容OAuth 2.0的身份管理供应商集成来进行身份验证和发放存取令牌,可降低这种风险。
集中式API闸道也可用于规範和保护REST API安全方法。
不要在URL中包含敏感资讯
在URL中包含敏感资讯(包括使用者凭证、金钥或令牌),这是一种常见的REST API设计缺陷。 即便在使用TLS的情况下,攻击者也很容易发现这些资讯。
API请求资料路径上的各种伺服器和网路设备也会经常记录URL,如果URL包含敏感资讯,就会导致进一步的资料外洩。
严格定义允许的RESTful API请求和回应
我们需要假定攻击者会试图以恶意或无意的方式使用API。 因此,切勿预设信任RESTful API请求。 要採取的最重要步骤之一是:验证任何参数或物件的格式、长度和类型等属性。
我们还应该严格管理REST API可提供的回应类型。
例如,回应应仅限于明确允许的内容类型,如GET、PUT和POST。
实施持续的API发现功能
即便是遵守REST API安全最佳实践的企业,也可能会被正常流程之外实施的影子API或尚未退役的遗留基础设施中被遗忘的殭尸API打个措手不及。
因此,实施持续的企业级API发现功能至关重要。
保障为所有API维持完整清单的最佳方法是从所有可用的API活动资讯源收集数据,这些资讯源包括:
API闸道
内容交付网路
云提供者日誌
日誌管理系统
编排工具
分析这些数据以获取API活动的证据,可确保安全团队了解整个企业使用的所有API。
发现任何意外的REST API后,都可以通过应用适当的REST API最佳实践来停止使用,或将其纳入正式清单。
四大高级REST API安全最佳实践
在REST API设计中实施一套基础安全标準是不可或缺的第一步,但仅靠这些步骤并不能保证应用程式完全安全。
许多攻击者已经开发出了规避REST API基本安全措施的高级技术。 毕竟,并不是每次REST API安全攻击都以攻破Web应用程式基础架构为目。
在许多情况下,攻击者只是希望以非故意的方式使用API功能来存取敏感资料并获得竞争优势。
这些活动可能来自可信任来源,如已获準存取REST API的客户或合作伙伴。
凭证、金钥和令牌也可能被窃取或劫持,从而使攻击者在我们的基线REST API安全标準之外推进类似活动。
为了获得更完善的保护,防止这些更複杂的API滥用方式,我们可以使用以下四种高级REST API安全性最佳实践:
使用云收集大量REST API安全数据集
将行为分析应用于REST API数据
为开发和运营团队提供有关REST API使用方式的见解
开展积极主动的REST API威胁猎捕活动
使用云收集大量REST API安全数据集
许多第一代API安全技术都是在企业内部运作的。
因此它们的作用仅限于分析非常短的活动窗口,之后API资料就会被丢弃。
这种方式的效果极为有限,因为许多类型的API滥用活动都是在数週甚至数月内以低速缓慢的方式进行的。
将API活动数据发送到云端,就能累积获得API详细资讯所需规模的数据,储存时间跨度可达一个月或更长。
这为更複杂的分析技术打开了大门。
将行为分析应用于REST API数据
一旦掌握了大量有意义的RESTAPI活动信息,我们还可以利用云计算的计算规模来执行行为分析。 增强REST API安全策略的第一种方法是识别相关实体,从而获得更多背景资讯。
实体可能包括使用者以及有意义的业务流程。
有了这些上下文,我们就可以确定API的正常使用模式。
在此基础上,可以进一步分析以检测异常。
这种类型的异常检测是发现滥用的最佳方法,尤其是当滥用来自经过验证的使用者时。
为开发和运营团队提供有关REST API使用方式的见解
保护企业免受REST API安全漏洞侵害的最佳方法之一是完全避免这些漏洞。
与开发人员和运营人员共用有关RESTful API使用和滥用情况的资讯,将有助于企业在开发和实施流程的早期就採用更好的REST API安全实践,实现“向左转”。
开展积极主动的REST API威胁猎捕活动
不要等到REST API滥用升级为严重安全事件时才採取行动。 积极主动地调查REST API使用方式并查找滥用企图(即使没有成功),这有助于我们发现REST API安全实践中的薄弱环节。
检查API使用活动也是发现REST API安全漏洞的有效方法。
在攻击者利用这些漏洞之前找到并消除它们,是增强REST API安全态势的最有效方法之一。
总结
Akamai已説明大量全球知名的企业实施了基础和高级REST API安全最佳实践。
从API发现到行为分析,再到託管的威胁猎捕服务,我们的方法将帮您加快REST API安全工作的步伐。
欢迎关注Akamai,进一步了解Akamai的API安全性解决方案,以及如何将其与Akamai的其他服务相互配合,在云时代打造安全、可靠、高性能的在线数字体验。