沙箱逃逸
沙箱逃逸 是什么?
沙箱逃逸一种漏洞或漏洞利用链,使代码能从隔离的沙箱(浏览器、VM 或 hypervisor)中逃出,在宿主环境获得代码执行能力。
沙箱逃逸指攻破原本用来限制不可信代码的安全边界。最为人所知的例子包括浏览器沙箱(Chromium 的渲染进程到 broker 边界、WebKit 的 WebContent 进程)、语言运行时(V8、JavaScriptCore)、应用沙箱(macOS Seatbelt、Windows AppContainer)、容器引擎(CVE-2019-5736 的 runc、Docker 逃逸)以及完整的 hypervisor 逃逸(QEMU 的 VENOM CVE-2015-3456,2017 与 2021 年 Pwn2Own 上 Team Sniper、Synacktiv 演示的 VMware ESXi 逃逸)。这些利用链通常将沙箱内进程的内存损坏漏洞与沙箱 API 意外暴露的内核或 hypervisor 漏洞组合起来。Pwn2Own、Project Zero 与 Microsoft MSRC 推动了大量公开研究,催生了 Site Isolation、V8 沙箱、Hyper-V VBS 等缓解措施。
● 示例
- 01
Pwn2Own 上的 Chrome 0day 利用链,从渲染进程沙箱逃到 broker 中执行代码。
- 02
VENOM(CVE-2015-3456)从 QEMU 软驱控制器逃逸到宿主内核。
● 常见问题
沙箱逃逸 是什么?
一种漏洞或漏洞利用链,使代码能从隔离的沙箱(浏览器、VM 或 hypervisor)中逃出,在宿主环境获得代码执行能力。 它属于网络安全的 防御与运营 分类。
沙箱逃逸 是什么意思?
一种漏洞或漏洞利用链,使代码能从隔离的沙箱(浏览器、VM 或 hypervisor)中逃出,在宿主环境获得代码执行能力。
沙箱逃逸 是如何工作的?
沙箱逃逸指攻破原本用来限制不可信代码的安全边界。最为人所知的例子包括浏览器沙箱(Chromium 的渲染进程到 broker 边界、WebKit 的 WebContent 进程)、语言运行时(V8、JavaScriptCore)、应用沙箱(macOS Seatbelt、Windows AppContainer)、容器引擎(CVE-2019-5736 的 runc、Docker 逃逸)以及完整的 hypervisor 逃逸(QEMU 的 VENOM CVE-2015-3456,2017 与 2021 年 Pwn2Own 上 Team Sniper、Synacktiv 演示的 VMware ESXi 逃逸)。这些利用链通常将沙箱内进程的内存损坏漏洞与沙箱 API 意外暴露的内核或 hypervisor 漏洞组合起来。Pwn2Own、Project Zero 与 Microsoft MSRC 推动了大量公开研究,催生了 Site Isolation、V8 沙箱、Hyper-V VBS 等缓解措施。
如何防御 沙箱逃逸?
针对 沙箱逃逸 的防御通常结合技术控制与运营实践,详见上方完整定义。
沙箱逃逸 还有哪些其他名称?
常见的别称包括: 虚拟机逃逸, Hypervisor 逃逸, 浏览器沙箱逃逸。
● 相关术语
- appsec№ 129
浏览器沙箱
操作系统层的隔离机制,限制浏览器的渲染进程和辅助进程,防止被攻陷的网页代码读取文件系统或其他应用。
- cloud-security№ 211
容器逃逸
一种突破容器与宿主机隔离边界的攻击,使攻击者在底层节点或内核上执行代码。
- vulnerabilities№ 399
漏洞利用
利用某个漏洞、引发代码执行、权限提升或信息泄露等非预期行为的代码、数据或技术。
- defense-ops№ 963
沙箱 / 模拟器检测
恶意软件用于识别自身是否运行在分析沙箱、模拟器或虚拟机中,从而拒绝触发,以规避分析的反分析技术。
- attacks№ 862
进程注入
一类规避检测的技术,攻击者在合法进程的地址空间内执行恶意代码,以借用其信任与身份。
- defense-ops№ 298
防御规避
MITRE ATT&CK 战术 TA0005,涵盖攻击者用来规避检测、禁用安全工具并隐藏自身活动的各种技术。
● 参见
- № 1051站点隔离