Webhook listener/receiver 安全

Webhook listener/receiver security

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

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

任何见解或link 最受赞赏的信息。

谢谢。

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

您可以使用附加了 Web Application FirewallAzure Front Door。因此,AFD 和 WAF 可以阻止任何 SQL 注入、DDoS 或类似攻击。

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

您还可以在 Azure Functions 前面使用API Management,您可以创建访问限制策略。您可以限制基于 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。

祝你好运!