攻击者如何绕过macOS内置安全防护机制

news/2025/10/6 19:19:21/文章来源:https://www.cnblogs.com/qife122/p/19127834

攻击者如何适应macOS内置防护机制

macOS安全机制概述

让我们从概述macOS中的安全机制开始,并简要描述每个机制:

  • Keychain - 默认密码管理器
  • TCC - 应用程序访问控制
  • SIP - 确保目录和进程中信息的完整性,防止攻击
  • 文件隔离 - 防止运行从互联网下载的可疑文件
  • Gatekeeper - 确保只允许运行受信任的应用程序
  • XProtect - macOS中基于签名的反恶意软件保护
  • XProtect修复工具 - 自动响应XProtect检测到的威胁的工具

Keychain

早在1999年推出的macOS密码管理器仍然是Apple安全框架中的关键组件。它提供集中安全的各类机密存储:从证书和加密密钥到密码和凭据。默认情况下,所有用户账户和密码都存储在Keychain中。数据访问受主密码保护。

Keychain文件位于目录 ~/Library/Keychains/、/Library/Keychains/ 和 /Network/Library/Keychains/ 中。除了主密码外,每个文件都可以用自己的密钥保护。默认情况下,只有相应Keychain副本的所有者和管理员才能访问这些文件。此外,文件使用可靠的AES-256-GCM算法加密。这保证了即使有人物理访问系统,也能提供高级别的保护。

然而,对macOS密码管理器的攻击仍然存在。有专门的工具,如Chainbreaker,旨在从Keychain文件中提取数据。如果能够访问文件本身及其密码,Chainbreaker允许攻击者进行本地分析和完全数据解密,而无需绑定到受害者的设备。更重要的是,如果系统已被入侵,原生macOS工具(如Keychain Access GUI应用程序或/usr/bin/security命令行实用程序)可能被用于恶意目的。

因此,虽然Keychain架构提供了强大的保护,但控制本地访问、保护主密码并最小化系统外数据泄漏的风险仍然至关重要。以下是Chainbreaker命令的示例:

python -m chainbreaker -pa test_keychain.keychain -o output

如上所述,security实用程序可用于命令行管理,具体是以下命令:

  • security list-keychains - 显示所有可用的Keychain文件
  • security dump-keychain -a -d - 转储所有Keychain文件
  • security dump-keychain ~/Library/Keychains/login.keychain-db - 转储特定的Keychain文件

要检测此类攻击,需要配置进程启动事件日志记录。最好的方法是使用内置的macOS日志记录工具ESF。这允许您收集必要的事件以构建检测逻辑。在卡巴斯基端点检测和响应(KEDR)中已经实现并配置了使用此机制收集必要事件。

检测规则示例(Sigma):

title: Keychain access
description: This rule detects dumping of keychain
tags:- attack.credential-access- attack.t1555.001
logsource:category: process_creationproduct: macos
detection:selection:cmdline: securitycmdline: -list-keychains-dump-keychaincondition: selection
falsepositives:- Unknow
level: medium

SIP

系统完整性保护(SIP)是macOS最重要的安全机制之一,旨在防止未经授权干涉关键系统文件和进程,即使是具有管理员权限的用户也不例外。首次在OS X 10.11 El Capitan中引入,SIP标志着通过限制修改系统组件的能力向加强安全迈出了重要一步,防止潜在的恶意影响。

该机制通过分配特殊属性来保护文件和目录,这些属性阻止除受信任系统进程外的所有人修改内容,这些进程对用户和第三方软件不可访问。特别是,这使得难以向这些文件注入恶意组件。默认情况下,以下目录受SIP保护:

  • /System
  • /sbin
  • /bin
  • /usr(除了/usr/local)
  • /Applications(预安装的应用程序)
  • /Library/Application Support/com.apple.TCC

受保护目录的完整列表在配置文件/System/Library/Sandbox/rootless.conf中。这些主要是系统文件和预安装的应用程序,但SIP允许添加额外路径。

SIP为系统组件提供了高水平的保护,但如果存在物理访问系统或管理员权限被入侵的情况,SIP可以被禁用 - 但只能通过将系统重启到恢复模式,然后在终端中运行csrutil disable命令。要检查SIP的当前状态,请使用csrutil status命令。

要检测此活动,需要监控csrutil status命令。攻击者经常检查SIP状态以找到可用选项。由于他们在任何监控解决方案加载之前在恢复模式下部署csrutil disable,因此该命令不会被记录,因此跟踪其执行没有意义。相反,您可以设置SIP状态监控,如果状态发生变化,则发送安全警报。

检测规则示例(Sigma):

title: SIP status discovery
description: This rule detects SIP status discovery
tags:- attack.discovery- attack.t1518.001
logsource:category: process_creationproduct: macos
detection:selection:cmdline: csrutil statuscondition: selection
falsepositives:- Unknow
level: low

TCC

macOS包括透明度、同意和控制(TCC)框架,通过要求应用程序明确用户同意访问敏感数据和系统功能来确保应用程序的透明度。TCC基于SQLite数据库(TCC.db)构建,位于共享目录(/Library/Application Support/com.apple.TCC/TCC.db)和单个用户目录(/Users//Library/Application Support/com.apple.TCC/TCC.db)中。

这些数据库的完整性和防止未经授权的访问是通过SIP实现的,使得无法直接修改它们。要干扰这些数据库,攻击者必须禁用SIP或获得受信任系统进程的访问权限。这使得TCC高度抵抗干扰和操纵。

TCC的工作方式如下:每当应用程序首次访问敏感功能(摄像头、麦克风、地理位置、完全磁盘访问、输入控制等)时,会出现一个交互式窗口,请求用户确认。这允许用户控制特权的扩展。

绕过此机制的潜在向量是TCC点击劫持 - 一种在权限请求窗口顶部叠加视觉上被更改的窗口的技术,隐藏了请求的真实性质。不知情的用户点击按钮并授予恶意软件权限。虽然此技术本身不利用TCC,但它为攻击者提供了访问敏感系统功能的权限,无论保护级别如何。

攻击者对获得完全磁盘访问或辅助功能权限感兴趣,因为这些权限授予对系统的几乎无限访问。因此,监控TCC.db的变化和管理敏感特权仍然是确保全面macOS安全的关键任务。

文件隔离

文件隔离是内置的macOS安全功能,首次在OS X 10.5 Tiger中引入。它在处理从外部源下载的文件时提高了系统安全性。此机制类似于Windows中的Mark-of-the-Web功能,在运行下载的文件之前警告用户潜在危险。

通过浏览器或其他与文件隔离集成的应用程序下载的文件被分配一个特殊属性(com.apple.quarantine)。首次运行此类文件时,如果它具有有效签名且未引起Gatekeeper的任何怀疑(见下文),则会提示用户确认操作。这有助于防止意外运行恶意软件。

要获取有关com.apple.quarantine属性的详细信息,请使用xattr -p com.apple.quarantine <文件名>命令。

此命令返回的信息存储在位于~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2的数据库中,可以在其中进行审计。

为了避免其文件被隔离,攻击者使用各种技术来绕过文件隔离。例如,通过curl、wget或其他未与文件隔离集成的低级工具下载的文件不会被标记隔离属性。

也可以使用xattr -d com.apple.quarantine <文件名>命令手动删除属性。

如果成功删除隔离属性,运行文件时将不会显示警告,这在社会工程攻击或攻击者更喜欢在用户不知情的情况下执行恶意软件的情况下很有用。

要检测此活动,需要监控与-dcom.apple.quarantine结合的xattr命令的执行,这意味着删除隔离属性。在与macOS入侵相关的事件中,还值得调查文件的来源:如果它在没有隔离标记的情况下进入主机,这是一个额外的风险因素。

检测规则示例(Sigma):

title: Quarantine attribute removal
description: This rule detects removal of the Quarantine attribute, that leads to avoid File Quarantine
tags:- attack.defense-evasion- attack.t1553.001
logsource:category: process_creationproduct: macos
detection:selection:cmdline: xattr -d com.apple.quarantinecondition: selection
falsepositives:- Unknow
level: high

Gatekeeper

Gatekeeper是macOS安全系统的关键部分,旨在保护用户免受运行潜在危险应用程序的影响。首次在OS X Leopard(2012)中引入,Gatekeeper检查应用程序的数字签名,如果存在隔离属性(com.apple.quarantine),则限制运行未签名和未经用户批准的程序,从而降低恶意代码执行的风险。

spctl实用程序用于管理Gatekeeper。以下是调用spctl检查签名有效性以及是否经过Apple验证的示例:

spctl -a -t exec -vvvv <文件路径>

Gatekeeper要求应用程序:

  • 要么使用有效的Apple开发者证书签名,
  • 要么在源代码验证后经过Apple认证。

如果应用程序未能满足这些要求,Gatekeeper默认情况下会阻止双击运行它的尝试。解除阻止是可能的,但这需要用户浏览设置。因此,要进行成功的攻击,威胁行为者不仅必须说服受害者将应用程序标记为受信任,还要向他们解释如何操作。运行软件的复杂过程本身看起来就很可疑。但是,如果从上下文菜单(右键单击→打开)启动,用户会看到一个弹出窗口,允许他们通过确认使用应用程序的意图来单次点击绕过阻止。这个特点被用于社会工程攻击:恶意软件可能附带说明,提示用户从上下文菜单运行文件。

让我们看一下从上下文菜单而不是双击运行程序的方法。如果我们双击带有隔离属性的程序图标,我们会得到以下窗口。

如果我们从上下文菜单(右键单击→打开)运行程序,我们会看到以下内容。

具有本地访问权限和管理员权限的攻击者可以使用spctl --master-disable--global-disable命令禁用Gatekeeper。

要检测此活动,需要监控带有参数--master-disable--global-disablespctl命令的执行,这会禁用Gatekeeper。

检测规则示例(Sigma):

title: Gatekeeper disable
description: This rule detects disabling of Gatekeeper 
tags:- attack.defense-evasion- attack.t1562.001
logsource:category: process_creationproduct: macos
detection:selection:cmdline: spctl cmdline: - '--master-disable'- '--global-disable'condition: selection

要点

内置的macOS保护机制具有高度弹性并提供出色的安全性。也就是说,与任何成熟的操作系统一样,攻击者继续适应并搜索绕过即使是最可靠的保护屏障的方法。在某些情况下,当标准机制被绕过时,可能难以实施额外的安全措施并阻止攻击。因此,为了全面保护免受网络威胁,请使用第三方供应商的高级解决方案。我们的卡巴斯基EDR Expert和卡巴斯基端点安全检测并阻止本文中描述的所有威胁。此外,为防止绕过标准安全措施,请使用我们提供的Sigma规则。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等) - 指南

Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等) - 指南2025-10-06 19:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

做图表的网站做新媒体的小说网站

计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开。今年 ECCV 共收到有效投稿 5025 篇&#xff0c;是 ECCV 2018 论文投稿数量的二倍还要多&#xff0c;接收论文1361 篇&#xff0c;接收率为 27%&#xff0c;相比上届会议下降了约 5%。在接收论文中&#xff0c;oral论文数…

一台主机做两个网站网站建设企业需要准备资料

CORS(Cross-Origin Resource Sharing)"跨域资源共享"&#xff0c;是一个W3C标准&#xff0c;它允许浏览器向跨域服务器发送Ajax请求&#xff0c;打破了Ajax只能访问本站内的资源限制&#xff0c;CORS在很多地方都有被使用&#xff0c;微信支付的JS支付就是通过JS向微…

潍坊网站制作发怎么做免费网站教程

mybatis-plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件&#xff0c; 减少你的开发周期优化动态维护 XML 实体字段&#xff0c;无入侵全方位 ORM 辅助层让您拥有更多时间吃鸡、陪家人、陪朋友。更新日志升级 mybatis 到 3.5.0 版本升级 mybatis-spri…

详细介绍:JVM——从JIT到AOT:JVM编译器的云原生演进之路

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

deep-agents

deep-agents https://docs.langchain.com/labs/deep-agents/overviewhttps://www.bilibili.com/video/BV1ZFYozsEat?spm_id_from=333.788.videopod.sections&vd_source=57e261300f39bf692de396b55bf8c41b https:/…

在A列连续且相等行的最后插入空行,并求和

Sub 第一步插入空行() Set ws = ActiveSheetlastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).RowFor i = lastRow To 3 Step -1If ws.Cells(i, 1).Value <> ws.Cells(i - 1, 1).Value Thenws.Ro…

10.6集训改错

P10312 [SHUPC 2024] 栅栏密码 可以暴力模拟,由于不管怎么变化,在密文中的位置都是不变的所以得到长度之后可以预处理密文在图中的位置,反推得到明文

@Prometheus 监控-MySQL (Mysqld Exporter) - 教程

@Prometheus 监控-MySQL (Mysqld Exporter) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

月熊志网站wordpress当下载站

1-线性回归&#xff08;Linear Regression&#xff09; 场景&#xff1a;预测商品销售额 优点&#xff1a;简单易用&#xff0c;结果易于解释缺点&#xff1a;假设线性关系&#xff0c;容易受到异常值影响概念&#xff1a;建立自变量和因变量之间线性关系的模型。公式&#x…

详细介绍:基于开源AI大模型与AI智能名片的S2B2C商城小程序源码优化:企业成本管理与获客留存的新范式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

服务型网站建设的主题搜索引擎优化通常要注意的问题有( )

目录 概念 区别 概念 宕机和脱机是两个不同的概念 宕机:一般指计算机系统或网络突然停止正常运行&#xff0c;无法继续提供服务。宕机可能是由硬件故障、软件问题、电源中断等原因导致的系统失效。 脱机:通常指设备与网络断开连接或无法直接访问在线资源。例如&#xff0c;…

定制家具如何选择江门网站seo关键词排名优化

很明显的状态压缩思想了。把全集分组&#xff0c;枚举每个集合的子集&#xff0c;看一个子集是否能覆盖所有的点&#xff0c;若能&#xff0c;则f[s]max(f[s],f[s^s0]1)。即与差集1比较。 这种枚举集合的思想还是第一次遇到&#xff0c;果然太弱了。。。。~~~~ 其中枚举集合 fo…

常见的网站推广方式有哪些网站建设百灵鸟

1、根据体系结构不同&#xff0c;服务器可以分成两大重要的类别&#xff1a;IA架构服务器和RISC架构服务器。   这种分类标准得主要依据是两种服务器采用得处理器体系结构不同。RISC架构服务器采用得CPU是所谓的精简指令集的处理器&#xff0c;精简指令集CPU的主要特点是采用…

详细介绍:第7章 :面向对象

详细介绍:第7章 :面向对象pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

AI元人文:走向人机价值共生的文明新范式

AI元人文:走向人机价值共生的文明新范式 序言:超越“价值对齐”的必然之路 在人工智能发展的当前阶段,我们正面临一个根本性困境:如何让高度理性的AI系统理解并适应人类复杂、模糊且时常自相矛盾的价值体系?传统的…

实用指南:【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)

实用指南:【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

推荐黄石网站建设整合资源加强全市网站建设

【Sklearn】基于朴素贝叶斯算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 模型原理: 朴素贝叶斯分类是基于贝叶斯定理的一种分类方法。它假设特征之间相互独立(朴素性),从而简化计算过…

html5搭建手机网站开发一个saas平台要多少钱

jeecg自定义datagrid查询 为什么要写这篇文章&#xff1f; 我们了解&#xff0c;使用 jeecg 提供的 CriteriaQuery 查询方式&#xff0c;确实能满足绝大数的需求&#xff0c;但是往往有那么个比较复杂的情况&#xff0c;需要我们直接去写 sql&#xff0c;比如多表查询呀等等等…

CSP-J 第二轮集训 :总结 + 专题细分精讲_from_黄老师

CSP-J 第二轮集训资料 总结 + 专题细分精讲。 为方便查阅,采用「总-分」结构:先用一张 思维导图级总表 让你 30 秒看清全局; 对专题资料做 “三维”剖析:知识脉络(思维导图) 典型题目(含算法/陷阱/复杂度) 可迁…