部署API驱动的应用程序应注意哪些事项
2022-07-19陈言胜
陈言胜
在过去几年中,API驱动的应用程序在企业级云平台上部署以扩展规模,它们能够根据用户需求进行扩展,彻底改变了应用程序的编写和部署方式。通常,这些分布式应用程序都部署在Kubernetes平台上,以便更轻松地进行管理、编排和部署微服务容器。
DevOps团队投入了大量资源,以确保他们在Kubernetes基础设施平台上运行的应用程序安全可靠,不会被利用。包括强化操作系统,通过跨集群的微分段防止横向移动,以及通过严格的RBAC控制来限制访问,防止未经授权的访问。
然而,这只是成功的一半。从Kubernetes平台上部署的API驱动的应用程序有自己的安全问题,需要不同的方法来实现适当级别的安全保护。API驱动应用程序的兴起助长了一类新的API漏洞,这些漏洞无法被现有的安全产品保护。
隐藏在底层API中的漏洞可能会暴露并被利用,从而影响关键业务数据。网络犯罪分子已经注意到并正在开发新的攻击向量,以便在企业向API经济发展时利用它们。
以下是企业在评估API安全解决方案时应考虑的一些关键标准。
尽管API使用量呈爆炸式增长,但许多安全和开发团队仍无法回答有关API程序的基本问题———例如我们有多少、谁拥有它们以及它们做什么。在当今复杂的网络环境中,这给企业带来了巨大的安全风险。
为了防范安全风险,企业了解API程序的所有方面及其相关的安全挑战至关重要。这可以更好地帮助领导者通过适当的策略改善其组织的安全状况。
大多数企业都公开了许多内置的API,并为客户和合作伙伴开源。它们由不同的团队发布,使用不同的应用程序堆栈和不同的程序。因此,很难跟踪和了解潜在风险在哪里。以下是企业应该考虑的一些关键API可见性挑战。
未知API:影子、已弃用或隐藏的API可能会超出安全团队的可见范围,这通常会导致它们不受保护,这些API可能会传输敏感数据并危及组织的合规地位。
API參数:API漏洞(例如批量分配)允许攻击者将用户配置文件更改为管理员,从而导致权限提升,这可能导致欺诈、数据丢失。
敏感数据暴露:在响应代码或错误消息中暴露机密或敏感数据可用于窃取数据或作为大规模攻击的侦察形式。
业务逻辑缺陷:应用程序业务逻辑缺陷可以使不良行为者通过帐户接管、抓取、虚假帐户创建和其他形式的API滥用进行欺诈。
在寻求解决这些常见的API安全挑战时,提出问题以评估和降低风险程度会有所帮助。有许多问题需要考虑:我们拥有的API有什么作用?API所有者是谁?哪些API需要遵守法律或法规?如何监控API中的漏洞?我们的API是否会暴露敏感数据或PII,这是否会导致不合规?如何测试和衡量API监控的有效性?
大多数拥有Web应用程序的企业都拥有Web应用程序防火墙(WAF)以进行安全保护。然而,随着企业继续扩大其API驱动的应用程序,他们发现传统的WAF无法很好地适应单体应用程序的需求,无法满足现代API驱动的应用程序的需求。
由于API驱动的应用程序的编写方式非常独特,使其成为一个单独的可利用漏洞类别,这些漏洞与OWASP前10名Web兄弟非常不同。有效保护单体Web应用程序漏洞免受OWASP的10大Web漏洞攻击的安全方法在API世界中并不能很好地转化。
使用传统的Web安全方法很难防御损坏的对象级授权(BOLA)和批量分配等关键API漏洞。越来越多的客户逐渐意识到,部署WAF来保护他们的API就像在枪战中拿刀一样,是低级且错误的武器。
现在出现了一种新的API安全产品类别,它取代了Web应用程序防火墙,更符合保护API驱动的应用程序免受利用的特定要求。这些API安全解决方案是围绕应用程序的日常行为方式构建的,并由机器学习(ML)提供支持,专注于学习应用程序行为和发现异常活动。
构建应用程序机器学习模型可以为发现嵌入在数百个微服务中的内在业务逻辑缺陷和API漏洞奠定基础。用户驱动的流量为机器学习模型的开发提供动力,并捕捉应用程序的微服务如何协同工作以交付应用程序业务逻辑。如果企业正在寻找API安全解决方案,应该考虑以下3个标准。
发现:识别企业环境中的所有API,理想情况下,API安全工具应该知道定义允许请求的API参数。例如,API应该只允许用户响应255个字符串字符,通常,未经验证的API响应可用于利用应用程序漏洞。
学习:API安全工具应该能够从用户驱动的流量中学习API行为,这允许API安全解决方案的机器模型了解定义正常应用程序行为的所有细微差别。用户行为的轻微和突然偏差会通过警报向安全运营团队显示。
适应:在敏捷环境中开发的大多数现代应用程序都在迅速变化。API安全解决方案应该能够自动调整其安全模型以不断适应所有新变化,确保应用程序安全始终与DevOps保持同步。
当网络犯罪分子从应用程序中泄露敏感数据时,他们会采取必要的预防措施来逃避检测。为了对抗它们,需要威胁分析来检测访问应用程序的用户之间的恶意活动。
从应用程序中获得的数据的质量和广度将决定企业的安全保护级别,并影响其在多长时间内检测到即将发生的网络攻击。随着应用程序变得更加复杂和分布式,更多地了解应用程序的内部工作原理、工作方式、业务逻辑以及与其他第三方技术合作伙伴的交互变得更加重要。
收集应用程序内所有点的数据交互可确保其全面了解所有用户与应用程序的交互。数据集越丰富,就越容易将恶意与合法用户交易区分开来,并使企业的安全团队能够尽快发现数据泄露。
API安全平台应使安全团队能够执行以下操作:
威胁搜寻:安全分析师可以通过数据湖搜索正在进行的活动。
跟踪攻击者:当攻击者深入挖掘应用程序时,可以跟踪杀伤链活动,例如侦察或扫描活动。
事后分析:安全分析师可以获得事后取证,以了解网络攻击如何利用应用程序的业务逻辑或漏洞。
快速变化的API驱动应用程序有助于加快产品上市速度,但也释放了可被网络犯罪分子快速利用的API漏洞。
可以很好地保护单体Web应用程序的应用程序安全产品在保护API驱动的应用程序方面无法很好地扩展。
由于分布式应用架构的快速变化,API安全的要求与市场上现有的应用安全产品有着根本的不同。在评估API安全解决方案时,一定要关注解决方案如何提供可见性、以及它对应用程序的理解程度和威胁分析的质量与深度。