Web 编码安全公司 SALT 的研究人员刚刚发表了一篇引人入胜的描述,描述了他们如何找到一个 身份验证错误 配音 CVE-2023-28131 在一个流行的在线应用程序构建工具包中,称为 Expo。
好消息是, 世博会回应 非常迅速地收到 SALT 的错误报告,在 SALT 负责任地披露后的短短几个小时内就提出了修复。
幸运的是,该修复程序不依赖于客户下载任何内容,因为该补丁是在 Expo 的云服务中实施的,不需要对任何预装应用或客户端代码进行补丁。
世博会 advisory 不仅解释了发生的事情以及公司如何修复它,而且还向其客户提供编程建议,告诉他们如何避免其他在线服务出现此类可能的漏洞。
SALT 然后等了三个月才发布报告,而不是为了宣传目的而尽快发布,从而让 Expo 用户有机会消化 Expo 的反应并采取行动。
保持简单
错误的身份验证过程在中详细说明 SALT的报告,但我们将在此处对 Expo 的 OAUTH 服务中出现的问题进行非常简化的描述。
OAUTH, 短缺 开放授权框架, 是一个允许您访问在线服务中的私人数据(例如编辑您的在线个人资料、添加新博客文章或批准网络服务为您发布社交媒体帖子)的过程,而无需设置密码,或直接登录该服务本身。
当您看到为您提供 使用谷歌或 Facebook 登录 选项,例如,他们几乎总是在后台使用 OAUTH,因此您不需要在另一个网站上创建新用户名和新密码,或者将您的电话号码提供给另一个在线服务。
严格来说,您是间接进行身份验证,只是将您的 Google 或 Facebook 凭据放入其中一个站点。
有些用户不喜欢这样,因为他们不想向 Google 或 Facebook 验证身份只是为了向其他不相关的网站证明他们的身份。 其他人喜欢它是因为他们认为 Facebook 和谷歌等网站在处理登录过程、安全存储密码哈希和执行 2FA 方面比试图编织自己的加密安全过程的精品网站更有经验。
外包认证
大大简化了 OAUTH 式登录,通过您的 Facebook 帐户登录名为 example.com
,是这样的:
- 网站
example.com
对您的应用程序或浏览器说, “你好,X,去从 Facebook 获取这个网站的神奇访问令牌。” - 你访问一个特殊的 Facebook URL,如果你还没有登录, 然后说,“给我一个神奇的访问令牌
example.com
设立的区域办事处外,我们在美国也开设了办事处,以便我们为当地客户提供更多的支持。“ - 如果 Facebook 对您的真实身份感到满意, 它回答说,“你好,X,这是你的魔法访问令牌。”
- 您将访问令牌交给
example.com
, 然后可以联系 Facebook 本身来验证令牌。
请注意,如果需要,只有 Facebook 可以看到您的 Facebook 密码和 2FA 代码,因此 Facebook 服务充当您和您之间的身份验证代理 example.com
.
在幕后,有一个最终的验证,就像这样:
- 网站
example.com
对 Facebook 说, “你发行了这个令牌,它验证了用户 X 吗?” - 如果 Facebook 同意, 它说
example.com
, “是的,我们认为该用户已通过身份验证。”
可逆序列
SALT 研究人员在 Expo 代码中发现的错误可以通过恶意破坏 Expo 对您可能称之为“身份验证代理”过程的处理来触发。
关键点如下:
- Expo 本身在验证过程中添加了一个包装器, 以便它为您处理身份验证和验证,最终为所需网站传递一个神奇的访问令牌(
example.com
在上面的交换中)返回到您正在连接的应用程序或网站。 - 用于处理验证的参数 被打包到一个提交给 Expo 服务的大 URL 中。
- 这些参数之一临时存储在网络 cookie 中 指定最终魔法安全令牌将发送到的 URL 以启用访问。
- 在交付安全令牌之前, 一个弹出窗口要求您验证即将被授权的 URL,这样您就可以发现任何试图在登录过程中替换虚假 URL 的人。
- 如果您批准弹出窗口, Expo 将您重定向到 Facebook 验证过程。
- 如果 Facebook 批准验证, 它向 Expo 服务返回一个神奇的访问令牌,Expo 将它传递给您刚刚在弹出窗口中批准的 URL,称为
returnURL
. - 指定监听的应用程序或网站
returnURL
收到世博会的回调, 获取访问令牌,因此以您的身份进行身份验证。
不幸的是,SALT 研究人员发现他们可以通过使用 JavaScript 代码触发对初始 Expo 登录 URL 的访问来破坏登录过程,然后在您有时间阅读或自己批准之前关闭验证弹出窗口。
然而,此时 Expo 的服务已经设置了一个名为 ru
(短缺 returnURL
) 告诉它在最后用你的魔法访问令牌在哪里回调。
这意味着网络犯罪分子可以诱骗 Expo 的代码“记住”一个 returnURL
如 https://roguesite.example
,您永远不会看到警告您正在进行攻击的对话框,更不用说错误地批准它了。
然后,研究人员使用第二段 JavaScript 代码来模拟 Expo 重定向到 Facebook 的验证过程,如果(像许多人一样)您已经登录到 Facebook 本身,则该过程将自动成功。
反过来,Facebook 的验证会将 Expo 登录过程重定向回 Expo 自己的 JavaScript 代码……
......这会信任但错误地抓住从未实际验证过的 returnURL
因为它从那个魔法中回调 ru
它在开始时设置的 cookie,未经您的同意或不知情。
失败打开还是失败关闭?
从上面的描述可以看出,该漏洞是由 Expo 的代码不当失败引起的。
验证码一般应该 失败关闭,用行话来说,这意味着除非发出某种积极的批准信号,否则该过程不应成功。
我们猜测世博会并不打算让系统 失败打开,鉴于 SALT 的报告显示其弹出批准对话框如下所示:
位于 https://roguesite.example 的应用要求您登录您的 Facebook 帐户。 你是否完全信任 https://roguesite.example 并同意让它:[否] [是]
如您所料,默认答案设置为 [No]
,但如果您虔诚地使用 Expo 自己的客户端代码来控制验证过程,这只会导致系统无法关闭。
通过提供他们自己的 JavaScript 来运行验证请求序列,研究人员能够将批准对话框视为它在说:
如果您没有明确告诉我们阻止 https://roguesite.example 通过您的 Facebook 帐户登录,我们将让它这样做:[允许] [阻止]
除了其他更改之外,解决方案是让 Expo 的初始登录代码设置魔法 ru
饼干 只有在你明确批准了所谓的 returnURL
,这样如果跳过验证弹出窗口,Expo 稍后的 JavaScript 登录代码将无法关闭,而不是盲目地相信您从未见过或批准的 URL。
在很多方面,这个错误类似于 贝尔金 Wemo 智能插头 我们大约两周前写的错误,尽管 Belkin 案例的根本原因是缓冲区溢出,而不是流氓网络回调。
Belkin 的代码在其服务器端代码中分配了一个 68 字节的内存缓冲区,但依赖于检查您没有尝试发送超过 68 字节的客户端代码,因此服务器任由攻击者摆布使用他们自己的绕过验证过程的客户端代码与服务器对话。
怎么办呢?
- 在报告和编写错误时, 考虑遵循 SALT 例子. 负责任地披露,给供应商合理的时间来修复漏洞,加上合理的时间来建议他们自己的用户,然后再发布允许其他任何人创建他们自己的漏洞的详细信息。
- 收到错误报告时, 考虑关注世博会 例子. 快速回复,与漏洞报告者保持联系,尽快修补漏洞,为您的用户提供有用的调查报告,并保持客观。 (不要让你的营销团队表扬自己“认真对待安全问题”,或者将问题视为不重要而不予考虑。这要由你的用户根据你的反应的及时性和针对性以及他们自己对风险的评估来决定。)
- 确保您的身份验证代码失败关闭。 确保您没有可以通过忽略或取消而中和的验证或批准步骤。
- 永远不要假设您自己的客户端代码将控制验证过程。 假设攻击者将对您的协议进行逆向工程并创建他们自己的客户端代码以尽可能多地规避检查。
- 当您不主动使用网络帐户时,请注销它们。 许多人登录 Google、Amazon、Facebook、Apple 等帐户,然后无限期地保持登录状态,因为这很方便。 注销可防止许多您不希望发生的操作(包括身份验证、发帖、点赞、分享等)发生——您会看到登录提示。
不要忘记,通过尽可能退出网络服务,并通过经常清除所有浏览器 cookie 和存储的网络数据,您还可以减少网站在您浏览时收集的关于您的跟踪信息量。
毕竟,如果您没有登录,并且您没有之前留下的任何跟踪 cookie,网站将不再确切知道您是谁,或者您上次访问时做了什么。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图爱流。 Web3 数据智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- 使用 PREIPO® 买卖 PRE-IPO 公司的股票。 访问这里。
- Sumber: https://nakedsecurity.sophos.com/2023/05/30/serious-security-verification-is-vital-examining-an-oauth-login-bug/
- :具有
- :是
- :不是
- :在哪里
- $UP
- 1
- 15%
- 2FA
- a
- Able
- 关于
- 以上
- 绝对
- ACCESS
- 账号管理
- 账户
- 收购
- 法案
- 行动
- 要积极。
- 积极地
- 行为
- 添加
- 添加
- 忠告
- 劝
- 后
- 前
- 所有类型
- 分配
- 让
- 允许
- 单
- 已经
- 还
- 时刻
- Amazon
- 其中
- 量
- an
- 和
- 另一个
- 回答
- 任何
- 任何人
- 什么
- 应用
- Apple
- 批准
- 批准
- 批准
- 应用
- 保健
- 围绕
- 刊文
- AS
- 评定
- At
- 攻击
- 认证
- 认证
- 认证
- 作者
- 合法
- 授权
- 汽车
- 自动
- 避免
- 背部
- 背景
- 背景图像
- 基于
- BE
- 因为
- 很
- before
- 之间
- 大
- 盲目
- 阻止
- 博客
- 边界
- 半身裙/裤
- 经纪人
- 浏览器
- 浏览器cookie
- 缓冲
- 缓冲区溢出
- 问题
- 虫子
- 但是
- by
- 呼叫
- 被称为
- CAN
- 案件
- 摔角
- 原因
- 造成
- Center
- 机会
- 更改
- 检查
- 支票
- 要求
- 清除
- 客户
- 关闭
- 云端技术
- 码
- 编码
- 收集
- 颜色
- 未来
- 公司
- 连接
- 考虑
- CONTACT
- 控制
- 便捷
- 饼干
- 曲奇饼
- 可以
- 外壳
- 创建信息图
- 资历
- 加密
- 合作伙伴
- 网络犯罪
- data
- 决定
- 决定
- 默认
- 提升
- 描述
- 期望
- 细节
- 详情
- 对话框
- DID
- 消化
- 直接
- 透露
- 泄露
- 解除此信息
- 屏 显:
- do
- 不
- 做
- 不
- 别
- 配音
- 编辑
- 其他
- enable
- 结束
- 甚至
- EVER
- 究竟
- 检查
- 例子
- 交换
- 期望
- 体验
- 解释
- 利用
- 世博会
- 失败
- 失败
- 失败
- 迷人
- 少数
- 最后
- 固定
- 固定
- 以下
- 如下
- 针对
- 发现
- 频繁
- 止
- 充分
- 通常
- 得到
- 给
- 特定
- 给予
- Go
- GOES
- 非常好
- 谷歌
- 抢
- 非常
- 民政事务总署
- 手
- 手柄
- 处理
- 发生
- 事件
- 有
- 高度
- 有帮助
- 此处
- HOURS
- 徘徊
- 创新中心
- How To
- 但是
- HTTPS
- 身分
- if
- 实施
- in
- 包含
- 间接
- 信息
- 初始
- 代替
- 打算
- 成
- 研究
- 问题
- IT
- 它的
- 本身
- 行话
- JavaScript的
- 只是
- 保持
- 键
- 针织
- 知道
- 知识
- 已知
- 名:
- 后来
- 离开
- 左
- 喜欢
- 听力
- ll
- 记录
- 记录
- 登录
- 不再
- 看着
- 魔法
- 使
- 许多
- 很多人
- 余量
- 营销
- 最大宽度
- 意
- 意思
- 媒体
- 内存
- 可能
- 错误
- 个月
- 更多
- 许多
- 命名
- 需求
- 打印车票
- 决不要
- 全新
- 消息
- 没有
- 正常
- 数
- OAuth的
- 目标
- of
- 折扣
- 提供
- 最多线路
- on
- 一
- 在线
- 仅由
- 打开
- 附加选项
- or
- 其他名称
- 其它
- 输出
- 超过
- 己
- 包装
- 参数
- 通行证
- 通过
- 密码
- 打补丁
- 补丁
- 保罗
- 员工
- 电话
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 加
- 点
- 点
- 热门
- 位置
- 可能
- 帖子
- 当下
- 防止
- 私立
- 过程
- 过程
- 本人简介
- 代码编程
- 协议
- 证明
- 提供
- 公开
- 出版
- 出版
- 目的
- 把
- 很快
- 宁
- 阅读
- 真
- 合理
- 接收
- 接收
- 重定向
- 减少
- 依靠
- 一个回复
- 报告
- 记者
- 报告
- 业务报告
- 要求
- 要求
- 研究人员
- 响应
- 提供品牌战略规划
- 回报
- 右
- 风险
- 根
- 运行
- 说
- 盐
- 满意
- 对工资盗窃
- 说
- 场景
- 其次
- 安全
- 保安
- 安全令牌
- 看到
- 看到
- 看到
- 看到
- 提交
- 发送
- 序列
- 严重
- 服务
- 特色服务
- 集
- 设置
- 分享
- 短
- 应该
- 作品
- 签署
- 类似
- 简
- 只是
- 网站
- 网站
- 智能
- So
- 社会
- 社会化媒体
- 社交媒体帖子
- 固体
- 方案,
- 一些
- 东西
- 不久
- 发言
- 特别
- 指定
- 开始
- 留
- 步骤
- 存储
- 提交
- 走向成功
- 这样
- 供应
- SVG的
- 系统
- 谈论
- 展示
- 告诉
- 比
- 这
- 其
- 他们
- 然后
- 因此
- 博曼
- 他们
- Free Introduction
- 那些
- 虽然?
- 三
- 次
- 至
- 象征
- 工具箱
- 最佳
- 跟踪
- 过渡
- 透明
- 治疗
- 尝试
- 触发
- 引发
- 信任
- 信任
- 尝试
- 转
- 二
- 最终
- 下
- 上
- 网址
- us
- 用过的
- 用户
- 用户
- 运用
- 验证
- 验证
- 供应商
- 企业验证
- 确认
- 通过
- 参观
- 参观
- 重要
- 漏洞
- 想
- 是
- 方法..
- 方法
- we
- 卷筒纸
- Web服务
- 您的网站
- 周
- 去
- 为
- 什么是
- ,尤其是
- 每当
- 这
- WHO
- 将
- 中
- 也完全不需要
- 将
- 写作
- 错误
- X
- 含
- 但
- 您
- 您一站式解决方案
- 你自己
- 和风网