索诺玛和 NSApplicationDelegate.applicationSupportsSecureRestorableState

joC*_*Cha 5 macos jmeter intellij-idea java-11 macos-sonoma

在 Sonoma 14.0 上,当我尝试启动 JMeter 或将 Intellij 与 OpenJdk@11、@17 或 @21 一起使用时,我收到以下信息。我需要一些帮助来解决这个问题:警告:安全编码会自动启用以实现可恢复状态!但是,并非在此应用程序的所有受支持的 macOS 版本上。通过实现 NSApplicationDelegate.applicationSupportsSecureRestorableState: 来选择显式保护编码。

Bry*_*yan 5

总而言之:

\n
    \n
  1. 如果您没有自定义应用程序保存/恢复状态的方式,则应该实现此方法并返回true.

    \n
  2. \n
  3. 如果您正在自定义应用程序保存/恢复状态的方式(通过NSApplicationDelegate\'s application(_, willEncodeRestorableState:)和相关方法),您应该验证您是否用于NSSecureCoding所有这些工作,然后仍然实现此方法并返回true.

    \n
  4. \n
  5. 不实现此方法或实现它并返回false会使您的应用程序(和您的用户的 Mac)容易受到攻击。

    \n
  6. \n
\n

概括:

\n

macOS 记录和恢复应用程序的 \xe2\x80\x9csaved 状态\xe2\x80\x9d 的方式存在漏洞。默认情况下,不使用此保存/恢复进程,NSSecureCoding因为该进程是在安全编码存在之前添加到 macOS 的。

\n

由于该进程不使用NSSecureCoding,攻击者可以非常小心地操纵磁盘上保存的状态数据来劫持恢复进程,升级到完全 root 用户权限,甚至克服 macOS 的 SIP(​​系统完整性保护)功能。所有这些就是安全专家所说的 \xe2\x80\x9cbad\xe2\x80\x9d。

\n

Apple 无法简单地切换要使用的进程NSSecureCoding,因为第三方开发人员可能会自定义其应用程序保存状态的方式,而这些自定义可能不使用安全编码,因此强制切换会破坏应用程序。

\n

Apple 能做的最好的事情就是提供这个新的 API:允许开发人员明确告诉 AppKit,\xe2\x80\x9c 你可以使用安全编码来保存和恢复状态;NSSecureCoding我\xe2\x80\x99m 在此过程中没有执行任何与.\xe2\x80\x9d不兼容的自定义内容

\n

完整详情:

\n

https://sector7.computest.nl/post/2022-08-process-injection-breaking-all-macos-security-layers-with-a-single-vulnerability/

\n

笔记:

\n

作为用户,您无法解决此警告。您需要向受影响的应用程序的开发人员提出问题,并向他们指出上述信息。他们需要更新应用程序才能解决警告。

\n