首页 > 解决方案 > Webhook 侦听器/接收器安全性

问题描述

我们正在考虑使用来自我们网络之外的各种供应商的 webhook。他们会将活动发布给我们。我们将成为 webhook 监听器/接收器,而不是推送事件。我们已经完成了创建 Azure 函数来接收事件的概念证明。根据我们所做的大多数研究,我们可以安全地传递 sha1/sha256/sha512 哈希,以验证他们是我们想要接收事件的人。这一切都与 POC Azure Function 一起按预期工作。

从企业网络安全的角度来看,还有其他可用的吗?上述过程将安全性置于函数中。我确信我们的网络安全小组不希望我们拥有 10 个功能,每个供应商都需要一个来担心安全性。我已经阅读了有关将发送事件的 IP 列入白名单的信息,但我们的大多数供应商都是基于云的,所以我不确定这有多容易获得。也许一个函数可以验证所有进入的事件然后让其通过?这会是一个可以接受的解决方案吗?Azure API 网关或 API 管理能够以某种方式解决吗?任何其他专门处理 webhook 安全性的网络类型的产品?

任何见解或链接到最受赞赏的信息。

谢谢。

标签: securityazure-functionswebhooksazure-api-managementazure-application-gateway

解决方案


哇,这真的是非常开放的对话。

您可以使用Azure Front Door附加Web Application Firewall到它。因此,任何 SQL 注入、DDoS 或类似的攻击都可以通过 AFD 和 WAF 来阻止。

但是,我想说最安全的方法是也设置 IP 限制。因此,您需要强制您的供应商获取他们的 IP 地址。这可能是多个甚至数百个。但这没关系。您可以实施 CIDR IP 地址格式,以便覆盖所有网络。您可以在 CI/CD 管道期间使用 Azure PowerShell 脚本轻松设置这些 IP 地址限制。

您还可以API Management在 Azure Functions 前面使用,并且可以创建访问限制策略。您可以限制基于 IP 或基于 JWT。APIM 可能有点贵。

https://docs.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies

您还可以使用 APIM 创建高级策略

https://docs.microsoft.com/en-us/azure/api-management/api-management-advanced-policies

除此之外,AFD & WAF 和 IP 限制都在网络层。但是您也可以在代码端实现基于令牌的身份验证。

https://docs.microsoft.com/en-us/azure/app-service/overview-authentication-authorization

为此,您可以使用 Azure Active Directory、IdentityServer 或 JWT。

祝你好运!


推荐阅读