Least-privilege separation decomposes applications into compartments limited to accessing only what they need. When compartmentalizing existing software, many approaches neglect securing the new inter-compartment interfaces, although what used to be a function call from/to a trusted component is now potentially a targeted attack from a malicious compartment. This results in an entire class of security bugs: Compartment Interface Vulnerabilities (CIVs). This paper provides an in-depth study of CIVs. We taxonomize these issues and show that they affect all known compartmentalization approaches. We propose ConfFuzz, an in-memory fuzzer specialized to detect CIVs at possible compartment boundaries. We apply ConfFuzz to a set of 25 popular applications and 36 possible compartment APIs, to uncover a wide data-set of 629 vulnerabilities. We systematically study these issues, and extract numerous insights on the prevalence of CIVs, their causes, impact, and the complexity to address them. We stress the critical importance of CIVs in compartmentalization approaches, demonstrating an attack to extract isolated keys in OpenSSL and uncovering a decade-old vulnerability in sudo. We show, among others, that not all interfaces are affected in the same way, that API size is uncorrelated with CIV prevalence, and that addressing interface vulnerabilities goes beyond writing simple checks. We conclude the paper with guidelines for CIV-aware compartment interface design, and appeal for more research towards systematic CIV detection and mitigation.
翻译:在将现有软件分割开来时,许多方法都忽略了确保新的分解界面,尽管以前是一个来自或来自一个值得信任的组件的函数,现在有可能是来自一个恶意的隔间进行有针对性的攻击。这导致了一系列安全漏洞:Comparment 界面脆弱性(CIVs),本文对CIVs的普遍性、其原因、影响和解决这些问题的复杂性进行了深入研究。我们强调CIVs在分解方法中的至关重要性,表明CFFuzz是一个专门用来在可能的隔间边界探测CIVs的隐含型界面。我们把CFFuzz应用到一套25个流行应用程序和36个可能的APIs中,以发现一套629个弱点的广泛数据。我们系统地研究这些问题,并获得关于CIVs的流行程度、其原因、影响和解决这些问题的复杂性的无数见解。我们强调CIVs在分解方法中的至关重要性,我们提议在OFIVSL中演示一个孤立的界面,以在可能的隔开式 CIVSIVSVservicserence进行攻击,并发现一个与我们十年内的脆弱性分析系统化的界面。