【问题标题】:Webhook listener/receiver securityWebhook 侦听器/接收器安全性
【发布时间】:2020-06-10 17:10:55
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: security azure-functions webhooks azure-api-management azure-application-gateway


    【解决方案1】:

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

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

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

    祝你好运!

    【讨论】:

    • 谢谢!那里似乎有很多。如果可能,绝对希望将安全性排除在代码之外。起初 webhook 事件几乎都使用验证哈希的方法,就像 Github 目前使用的那样。回过头来看看像 paypal、twilio 和 snipcart 这样的几个,它们已经改变了,并且有一个 SDK 或握手类型的模型来验证。其他人也可能会更改为不同的东西。如果您是一家有多个供应商以这种方式来的事件的公司,那么能够在网络层进行验证似乎是最好的方法。 Front Door 和 WAF 对我来说是新的,所以我一定会退出的。
    • 不客气 :) 是的,Azure 前门在 Azure 上相对较新。我们也使用 Twilio,他们使用 AccountSid 和 AuthToken 进行身份验证,并使用 PathServiceSid 来确定您在 Twilio 中使用的服务,例如验证。所以这与我在回答中所说的相似。即使是最大的、对我来说最好的支付网关系统 Stripe,也使用公钥和密钥进行身份验证。如果您觉得自己卡在某个地方,请查看并提出另一个问题:)
    • 感谢有关 Stripe 的信息。对我们来说,我们只关注消费 webhook。大多数使用这里描述的验证签名stripe.com/docs/webhooks/best-practices。他们确实列出了其他有助于了解的项目。 Twilio 类似,请注意他们关于 IP 地址的声明。 twilio.com/docs/usage/webhooks/webhooks-security 最终将由我们的安全小组来寻找最佳方法。在查看解决方案时,您的信息提供了一些很好的知识。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-03-11
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2021-07-02
    相关资源
    最近更新 更多