在索诺马14.0上,当我尝试启动JMeter或使用Intellij时,我收到以下消息,OpenJdk@11,@17或@21。我想得到一些帮助来解决这个问题::安全编码是自动启用的可验证状态!但是,并非所有支持此应用程序的macOS版本。通过实现NSApplicationDelegate.applicationSupportsSecureRestorableState:选择加入以显式保护编码。
xienkqul1#
1.如果您没有自定义应用保存/恢复状态的方式,则应实现此方法并返回true。1.如果您正在自定义应用保存/恢复状态的方式(通过NSApplicationDelegate's application(_, willEncodeRestorableState:)和相关方法),您应该验证您使用NSSecureCoding进行所有工作,然后 * 仍然 * 实现此方法并返回true。1.不执行此方法或执行此方法并返回false会使您的应用(和用户的Mac)容易受到攻击。
true
NSApplicationDelegate's application(_, willEncodeRestorableState:)
NSSecureCoding
false
macOS记录和恢复应用程序的“保存状态”的方式存在漏洞。默认情况下,此保存/恢复进程不使用NSSecureCoding,因为该进程是在安全编码存在之前添加到macOS的。由于该过程不使用NSSecureCoding,攻击者可以非常小心地操纵磁盘上保存的状态数据,以劫持恢复过程,升级到完全root用户权限,甚至克服macOS的SIP(系统完整性保护)功能。所有这些都是安全Maven所说的“坏”。苹果不能简单地切换到使用NSSecureCoding的过程,因为第三方开发人员可能会自定义他们的应用程序保存状态的方式,而这些自定义可能不会使用安全编码,所以强制切换会破坏应用程序。苹果能做的最好的就是提供这个新的API:允许开发人员明确告诉AppKit,“您可以使用安全编码来保存和恢复状态;在这个过程中,我不会做任何与NSSecureCoding不兼容的自定义操作。”
https://sector7.computest.nl/post/2022-08-process-injection-breaking-all-macos-security-layers-with-a-single-vulnerability/
作为用户,您无法解决此警告。您需要向受影响应用程序的开发人员提交问题,并向他们指出上述信息。他们需要更新他们的应用程序来解决警告。
1条答案
按热度按时间xienkqul1#
TLDR:
1.如果您没有自定义应用保存/恢复状态的方式,则应实现此方法并返回
true
。1.如果您正在自定义应用保存/恢复状态的方式(通过
NSApplicationDelegate's application(_, willEncodeRestorableState:)
和相关方法),您应该验证您使用NSSecureCoding
进行所有工作,然后 * 仍然 * 实现此方法并返回true
。1.不执行此方法或执行此方法并返回
false
会使您的应用(和用户的Mac)容易受到攻击。总结:
macOS记录和恢复应用程序的“保存状态”的方式存在漏洞。默认情况下,此保存/恢复进程不使用
NSSecureCoding
,因为该进程是在安全编码存在之前添加到macOS的。由于该过程不使用
NSSecureCoding
,攻击者可以非常小心地操纵磁盘上保存的状态数据,以劫持恢复过程,升级到完全root用户权限,甚至克服macOS的SIP(系统完整性保护)功能。所有这些都是安全Maven所说的“坏”。苹果不能简单地切换到使用
NSSecureCoding
的过程,因为第三方开发人员可能会自定义他们的应用程序保存状态的方式,而这些自定义可能不会使用安全编码,所以强制切换会破坏应用程序。苹果能做的最好的就是提供这个新的API:允许开发人员明确告诉AppKit,“您可以使用安全编码来保存和恢复状态;在这个过程中,我不会做任何与
NSSecureCoding
不兼容的自定义操作。”详细信息:
https://sector7.computest.nl/post/2022-08-process-injection-breaking-all-macos-security-layers-with-a-single-vulnerability/
备注:
作为用户,您无法解决此警告。您需要向受影响应用程序的开发人员提交问题,并向他们指出上述信息。他们需要更新他们的应用程序来解决警告。