【问题标题】:Is AWS Amplify insecure?AWS Amplify 不安全吗?
【发布时间】:2020-03-05 05:56:27
【问题描述】:

我的任务是在 React Native 应用程序中实现用户登录/注册流程。这个应用程序没有什么特别花哨的。通常的登录、注册(使用短信验证)和密码重置屏幕就足够了。所以我去找身份提供者。 Auth0 和 AWS Cognito 是最合适的发现。我的经理认为 Auth0 太贵了,所以我们放弃了它。这给我留下了 Cognito 选项。

根据docs,可以完全替换默认 UI(这让 UI/UX 团队感到高兴)但仍使用底层基础架构。我们团队非常关心的一件事是安全性。根据thisthis,授权请求只能通过外部代理(移动用户浏览器)进行。所以我深入研究了 aws-amplify 的源代码,发现最终它does(如果我在这里错了,请纠正我)只是对 AWS auth 端点的一个简单 API 请求,它传递了我的 ClientId 和其他属性.

这让我有点担心与 AWS 交互的安全性。由于 AWS 端点是安全的,我知道中间人攻击被丢弃了。

但是是什么让攻击者无法反编译我的移动应用程序、访问 ClientId 并向 AWS 发出直接请求? AWS Amplify 真的那么不安全还是我在这里遗漏了什么?

【问题讨论】:

    标签: react-native amazon-cognito aws-amplify


    【解决方案1】:

    有许多攻击是可能的,但在高 3 级时会脱颖而出
    凭据泄露
    社会工程学
    拒绝服务

    凭据泄露
    您的帐户凭据不应暴露,STS 凭据有时间限制,需要您专门授予池访问 aws 服务的权限
    https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html 您需要授予最低权限,请遵循此处列出的方法
    https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

    社会工程攻击
    我猜可以使用来自反编译源的暴露 ClientId,但需要与其他用户数据结合,以便一般规则锁定链接到您的帐户的所有内容,这些内容可能与社交攻击中的客户端 ID 结合

    Dos
    AWS 在池中提供所谓的“高级安全性” https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html

    在构建全面的 Cognito 应用程序时应该需要这样做

    安全威胁不断演变,AWS做好,使用有安全优势
    云端
    https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/security.html

    CloudTrail
    https://aws.amazon.com/cloudtrail/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2019-09-01
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 2020-05-10
      相关资源
      最近更新 更多