代码签名漏洞影响自2005年以来的所有Mac OS版本

  • A+
所属分类:网络安全新闻
阿里


推广者专属福利,新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得。

Okta Rex(研究与开发)研究员Josh Pitts发现了一种在MacOS中利用代码签名机制的方法。如果被利用,该漏洞可能允许恶意的不可信代码伪装成合法的可信代码并绕过其他安全软件的检查。

代码签名漏洞影响自2005年以来的所有Mac OS版本

代码签名攻击并不新鲜。但是,Pitts在今天发布的公开披露中写道,“与以前的一些工作不同,这个当前的漏洞不需要管理员访问,不需要JIT代码或内存损坏来绕过代码签名检查。所需要的只是正确格式化胖/通用文件和代码签名检查返回有效。“ 自2005年推出OS X Leopard以来,任何Mac操作系统都容易受到这个缺陷的影响。

代码签名通过加密确认新代码是真实的,而不是由扮演原始开发人员的坏角色创作的恶意代码。虽然几乎所有内容(从二进制文件到PowerShell脚本)都可以在Windows上进行签名,但MacOS代码签名主要关注Mach-O二进制文件和应用程序包,以确保只有受信任的代码在内存中执行。

“安全,事件响应以及取证过程和人员使用代码签名来清除不可信代码中的可信代码,”Pitts解释说。“通过验证签署的代码,检测和响应人员可以通过将可信代码与不可信代码分开来加速调查。”

然而,Pitts发现MacOS中的代码签名机制可以被操纵。它只需要访问真正签名的Fat / Universal文件。其他条件要求文件中的第一个Mach-O必须由Apple有效签名; 所添加的恶意代码必须特别签署,并针对x86_64位目标macOS进行i386编译; 并且Fat头中的CPU_TYPE必须设置为非主机芯片组本身的无效类型或CPU类型。

Okta Rex向安全周刊表示,这项技术似乎被苹果公司自己的根证书签名,绕过了白名单,事件响应和流程检测解决方案。

简单的解释是该机制接受Apple签名,但跳过此代码并执行恶意代码。“通过将CPU_Type设置为无效类型或非本机CPU类型(例如:PPC),Mach-O加载程序将跳过有效签名的Mach-O二进制文件并执行恶意(非Apple签名)代码,”将研究人员。

实际上,由于CPU_TYPE错误,所以跳过了正确的代码; 但因为代码签名API对代码签名检查具有本机CPU体系结构(x86_64)的首选项,并且将默认检查未签名的代码(如果它是x86_64),所以会运行后续恶意代码。

Okta Rex于2018年2月22日联系了Apple,并提供了能够绕过第三方安全工具的报告和概念验证示例。苹果在3月份回应说,它并未将此问题视为应该直接解决的安全问题。

Okta Rex不同意,并通知苹果,它会通知第三方开发者本身,以便他们可以在最后解决问题。到4月初,它已通过CERT / CC通知所有已知受影响的第三方开发人员。其中包括VirusTotal,Google,Facebook,Objective Development,F-Secure,Objective-See,Yelp和Carbon Black。

研究人员还在4月18日向CERT / CC建议“公开的博客文章是接触以私人方式使用代码签名API的第三方的最佳方法。”

研究人员没有意识到任何先前滥用这种技术的不良行为者。尽管如此,利用此漏洞,威胁演员可能会欺骗第三方安全工具,使其相信他们的代码已获得Apple许可,并允许恶意代码在macOS机器上运行,直到其被修补。

CE安全网

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: