从版本 125 开始,Chrome 使用应用绑定( App-Bound)技术来加强对用户 Cookie 的保护。早先版本的 Chrome 虽然也用了诸如 DPAPI、数据库文件独占打开等技术,但仍然不能阻止同一用户账号下运行的其它程序在 Chrome 未启动时从数据文件中取得用户 Cookie。
而使用了应用绑定后,对 Cookie 数据的解密操作由系统服务完成,系统服务会验证发起解密请求的应用是不是 Chrome。这有点类似 macOS 的 Keychain。Google 的安全团队认为,在这种情况下,恶意程序如果要获得 Chrome 的 Cookie,就必须使用权限提升、进程注入之类比较容易被安全软件发现的手段。
详见 Google 安全团队 2024 年 7 月 30 日发布的 Blog《Improving the security of Chrome cookies on Windows》,以及相关 chromium 源码:网页链接
Chrome 开启了这一安全特性后,Edge 也跟进了。这确实给恶意软件带来了一些困扰,也给 yt-dlp 等下载软件的用户带来了困扰。yt-dlp 在使用 --cookies-from-browser chrome 参数时,会得到 Failed to decrypt with DPAPI 错误。当然,精通技术的用户可以通过创建注册表键值 Software\Policies\Google\Chrome\ApplicationBoundEncryptionEnabled 来关闭这个特性,也可以自己手工取得 Cookie 传递给下载软件,但估计大部分人遇到这个情况是不知所措的。
虽然用户被困扰了,但恶意软件并没被困扰多久。Stealc、Vidar、LummaC2、Meduza、Remcos RAT 等恶意软件家族很快发现完全可以利用 Chrome 的远程调试机制来绕过这一安全机制。这些恶意软件通过在创建 Chrome 进程时候加上 --remote-debugging-port 参数,打开调试端口,然后连接上去,就很容易获得 Chrome 能获得的一切。
接下来 Chrome 会做什么呢?不再支持远程调试吗?
而使用了应用绑定后,对 Cookie 数据的解密操作由系统服务完成,系统服务会验证发起解密请求的应用是不是 Chrome。这有点类似 macOS 的 Keychain。Google 的安全团队认为,在这种情况下,恶意程序如果要获得 Chrome 的 Cookie,就必须使用权限提升、进程注入之类比较容易被安全软件发现的手段。
详见 Google 安全团队 2024 年 7 月 30 日发布的 Blog《Improving the security of Chrome cookies on Windows》,以及相关 chromium 源码:网页链接
Chrome 开启了这一安全特性后,Edge 也跟进了。这确实给恶意软件带来了一些困扰,也给 yt-dlp 等下载软件的用户带来了困扰。yt-dlp 在使用 --cookies-from-browser chrome 参数时,会得到 Failed to decrypt with DPAPI 错误。当然,精通技术的用户可以通过创建注册表键值 Software\Policies\Google\Chrome\ApplicationBoundEncryptionEnabled 来关闭这个特性,也可以自己手工取得 Cookie 传递给下载软件,但估计大部分人遇到这个情况是不知所措的。
虽然用户被困扰了,但恶意软件并没被困扰多久。Stealc、Vidar、LummaC2、Meduza、Remcos RAT 等恶意软件家族很快发现完全可以利用 Chrome 的远程调试机制来绕过这一安全机制。这些恶意软件通过在创建 Chrome 进程时候加上 --remote-debugging-port 参数,打开调试端口,然后连接上去,就很容易获得 Chrome 能获得的一切。
接下来 Chrome 会做什么呢?不再支持远程调试吗?