论文部分内容阅读
在过去的半个多世纪里,云计算因创新的商业模式,使用户对计算和服务可以自由、按量付费,极大地增强了给用户带来的可选择性和便利性,愈发成为工业界与研究界的热点。尽管具有一系列的优势,现有云计算平台中的关键数据依然面临着诸多威胁。云平台客户虚拟机中的任何一个组件出现了漏洞,都有可能影响到整个系统的安全,从而导致应用的安全敏感数据与关键数据的泄露。例如,CVE-2014-0160(Heartbleed)是应用程序使用的SSL库中的一个缓冲区溢出漏洞,该溢出漏洞会导致SSL连接的私钥通过网络泄露出去,从而对服务安全造成严重后果。同样,客户虚拟机的操作系统若存在安全风险,也可能会导致内存中关键数据的泄露。本文对现有系统存在的内存泄露等问题进行了深入的分析,提出了一种基于内存隔离的云平台关键数据保护方法,使得即使云客户的软件栈存在安全漏洞,攻击者也无法利用漏洞窃取用户的关键数据。本文设计并实现了基于数据流的自动化分析工具来跟踪用户的关键数据传播,并设计实现了内存隔离系统,通过实验证明了方案的有效性和高效性。同时,本文也关注该方案在大型系统中部署的难易程度以及与原有系统的兼容性,相比同类型的其余方案,当考虑实际生产环境时,需要降低方案部署难度,本方案在这方面会优于其他方案。本论文的主要贡献与创新点可以概括为以下三点:·本文实现了一种新的基于数据流的分析算法来跟踪关键数据的传播。关键数据在程序运行中可能以赋值、拷贝、I/O等方式进行传播,因此仅仅保护关键数据的所在内存是不全面的。本文将所提出的数据跟踪分析算法实际应用在对大型程序(如OpenSSL)的分析中,证明了该算法能够有效地分析出关键数据的传播,从而为后续关键数据的隔离提供了重要支撑。·本文实现了自动化工具辅助用户在程序编译时期进行关键数据的自动隔离和保护,从而避免了手动修改应用程序代码的巨大工作量。使得方案具备更佳的可部署性。·本文设计并实现了一种基于操作系统内核的轻量级内存隔离方案来保护关键数据。该方案能够自动、完整地保护程序中的关键数据。测试表示,本方案能够防止大型程序中的内存泄露攻击,相比同类其他系统,本方案具备容易部署、兼容原有系统的优势,可以做到不用修改源代码和自动部署;同时编译期开销低于1%,运行时开销与同类型系统持平。