Mach-O
Mach-O 是什么?
Mach-OMach-O 是 macOS、iOS、watchOS、tvOS 等 Apple 系统使用的原生可执行文件、目标文件及共享库格式,适用于 Apple 工具链生成的二进制。
Mach-O(Mach Object)是 Apple 操作系统(macOS、iOS、watchOS、tvOS)使用的二进制格式。Mach-O 文件包含文件头、描述各段的 load commands、动态链接器信息、符号表以及代码签名块。通用(fat)二进制将多种架构(如 x86_64 和 arm64)的切片打包在一起。从安全角度看,Mach-O 承载由 AMFI 和 Gatekeeper 执行的代码签名要求、Hardened Runtime 权限以及公证元数据;恶意软件分析人员通过查看 load commands、嵌入的 LC_CODE_SIGNATURE 以及 dyld 行为来识别注入、dylib 劫持和篡改。
● 示例
- 01
使用 otool -l 与 codesign --display 检查恶意 .app 包,发现被篡改的 LC_CODE_SIGNATURE。
- 02
攻击者对未签名的 Mach-O 使用 DYLD_INSERT_LIBRARIES 加载恶意 dylib。
● 常见问题
Mach-O 是什么?
Mach-O 是 macOS、iOS、watchOS、tvOS 等 Apple 系统使用的原生可执行文件、目标文件及共享库格式,适用于 Apple 工具链生成的二进制。 它属于网络安全的 应用安全 分类。
Mach-O 是什么意思?
Mach-O 是 macOS、iOS、watchOS、tvOS 等 Apple 系统使用的原生可执行文件、目标文件及共享库格式,适用于 Apple 工具链生成的二进制。
Mach-O 是如何工作的?
Mach-O(Mach Object)是 Apple 操作系统(macOS、iOS、watchOS、tvOS)使用的二进制格式。Mach-O 文件包含文件头、描述各段的 load commands、动态链接器信息、符号表以及代码签名块。通用(fat)二进制将多种架构(如 x86_64 和 arm64)的切片打包在一起。从安全角度看,Mach-O 承载由 AMFI 和 Gatekeeper 执行的代码签名要求、Hardened Runtime 权限以及公证元数据;恶意软件分析人员通过查看 load commands、嵌入的 LC_CODE_SIGNATURE 以及 dyld 行为来识别注入、dylib 劫持和篡改。
如何防御 Mach-O?
针对 Mach-O 的防御通常结合技术控制与运营实践,详见上方完整定义。
Mach-O 还有哪些其他名称?
常见的别称包括: Mach Object, Mach-O 二进制。
● 相关术语
- appsec№ 373
ELF 二进制格式
Executable and Linkable Format,Linux、BSD 及多数 System V Unix 衍生系统使用的可执行文件、目标文件与共享库的标准二进制容器。
- appsec№ 809
PE 可执行文件格式
Portable Executable,即 Windows 用于 .exe、.dll、.sys、.ocx 等文件的二进制格式,源自较旧的 COFF 对象格式。
- attacks№ 331
DLL 劫持
一种滥用 Windows DLL 搜索顺序的攻击,使合法程序加载攻击者控制的库,而不是预期的库。
- forensics-ir№ 650
恶意软件分析
对恶意样本进行结构化研究,以了解其功能、来源、入侵指标以及对受影响系统的影响。
- forensics-ir№ 926
逆向工程
对编译后的软件、固件或硬件进行反汇编与分析,以还原其设计、行为和内部工作原理的过程。