应用程序开发中的API使用已成为今年的趋势。采用微服务和无服务器架构只会加速这一趋势。基于与分析师和客户的对话,我们希望API在未来几年内成为大多数Web应用前端。
由于公众曝光率增加和API前端常见使用,API已成为网络犯罪分子的新攻击媒介,可能使您的应用程序和数据库容易受到各种Web应用程序攻击。
随着这种快速增长和风险的增加,API安全性已经成为开发人员和安全专业人员都感兴趣的主题。虽然一些API安全挑战与传统应用程序安全挑战并没有太大差别,但其他挑战却是独一无二的。无论哪种方式,缓解方法都可能有所不同,Web应用程序防火墙(WAF)需要了解和解决API细微差别。
在这篇文章中,我将讨论六个常见的API安全挑战以及WAF应该具备的必要功能。
(另外,根据Gartner的说法,Web应用程序防火墙(WAF)正迅速发展到下一阶段的应用程序安全性,WAAP或Web应用程序和API保护。阅读他们的白皮书,了解Gartner如何定义WAAP以及您的企业和开发人员需要哪些功能。)
API参数篡改
黑客使用的最常见的漏洞利用方法之一是通过篡改输入参数(字段)来探测应用程序安全防御。使用API,此类篡改可用于对API进行反向工程,导致DDoS攻击或仅仅暴露编写不良的API以显示更多数据。
您可以使用能够分析API的WAF以及针对配置的API结构检查任何API调用来防止此类尝试,以确保输入参数(计数,顺序等)与定义一致。与应用程序不同,可以从已知模式自动构建API配置文件,而无需在一段时间内学习。例如,Imperva SecureSphere WAF具有专有的JSON结构和一组API,允许从流行的定义轻松创建配置文件(参见图1)。
图1:Imperva SecureSphere WAF自动构建API配置文件
坏机器人和DDoS攻击
Netflix最近进行了一项实验,他们通过DDoS使用机器人的关键API来减少他们网络的三分之一。面向API的Web应用程序暴露于僵尸程序和DDoS滥用 - 如果开始接收无效输入,编写得很糟糕的API可能会占用大量计算资源。通常,DDoS攻击可能会对API前端的Web应用程序造成相当大的破坏。
您可以通过有效使用速率限制和恶意IP阻止以及反刮策略来防范此类攻击。与API分析一起使用时,这些策略可为您的API提供强大的保护。
会话Cookie篡改
攻击可以尝试篡改cookie以绕过安全性或向应用程序服务器发送错误数据。会话cookie篡改是用于攻击传统Web应用程序的众所周知的渠道,但它与API同样相关。
WAF应该提供扩展到API的会话cookie保护,以及用户只需将相同的策略应用于API的能力。
中间人攻击
API客户端和API服务器之间的未加密连接可能会向黑客暴露大量敏感数据。由于API正在成为使用易于使用的JSON格式进行数据交换的首选工具,因此不安全的传输是对数据窃取的公开邀请。
确保您的WAF可以配置为仅允许HTTPS流量,强制实施传输层安全性(TLS)版本,并允许从API客户端到API服务器的特定密码(图2)。
图2:强制SSL / TLS阻止中间人攻击
内容操作/技术攻击
攻击者可能只是注入可能导致攻击的恶意内容。此类技术攻击可能包括中毒JSON Web令牌,尝试点亮传统的SQL注入或获取恶意JS代码以在其他许多其他方面执行。
需要具有多个签名来阻止此类攻击的WAF。但是,将来自知名来源的某些IP,端口或内容列入白名单的附加功能是避免误报的必要条件。
API用户跟踪
大多数物联网(IoT)设备旨在使用API通道与其相应的企业服务器进行通信。这允许其操作的稳定性和版本化定义。在某些情况下,这些IoT设备使用客户端证书在API服务器上进行身份验证。如果黑客从IoT端点获得对API的控制权,他们可以轻松地重新排序API的顺序并导致数据泄漏或不期望的操作。
要防止此威胁,请查找可基于身份验证参数对API用户行为建模的WAF。对于IoT设备,基于客户端证书对API行为建模的能力允许安全专家快速识别从这些设备发出的正确和不正确的使用。
通过保护API保护应用程序
您不希望绑定DevOps,其任务是创新,及时创建和发布代码。但您也不能忽视用于开发应用程序的不安全API的风险。部署在API资源之前的WAF通过验证和监控API流量来保护核心应用程序。
原文:https://www.imperva.com/blog/six-ways-to-secure-apis/
本文:http://pub.intelligentx.net/node/604/
讨论:请加入知识星球或者小红圈【首席架构师圈】
Tags
最新内容
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 11 hours ago
- 1 day 12 hours ago
- 1 day 12 hours ago
- 1 day 12 hours ago