论文部分内容阅读
为了有效地降低针对Web应用程序的攻击和漏洞利用所带来的危害,对Web应用程序进行特权分离已经成为了软件安全的第二道防线。传统的对Web应用程序进行特权分离的方法是将一个应用程序分成任意数量的部分,每一部分分别执行在不同的域中,不同的部分分别拥有不同的特权,以达到最小特权的目的。但是创建和维护多个域将产生巨大的系统开销,所以,一个应用程序所能创建的域的数量就受到了很大限制。本文通过对现有的浏览器扩展程序平台和现有的特权分离办法进行了深入的了解和研究,发现浏览器扩展程序中存在着严重的特权绑定和越权行为,这对于系统安全来说是非常危险的。然而,只通过当前扩展程序平台的特权分离方法是没办法减轻这种情况的。所以,本文提出了一种新方法:利用Web Worker,一种并行的、相互之间完全隔离的JavaScript线程,来有效地对浏览器扩展程序实施特权分离,并基于此方法设计实现了一个主要针对浏览器扩展程序的特权分离系统。本文的主要研究工作如下:首先,设计实现了此特权分离系统的各个模块;其次,为了确保系统的进一步的安全性,本系统提出了系统必须遵循的五个安全原则;最后,将本系统应用到几个扩展实例中,并从内存增长、时间开销等方面对其进行了性能测试,实验结果表明,本设计在实施特权分离、降低可信计算基(Trusted Computing Base,TCB)方面取得了良好的效果;系统没有用户可察觉的时间滞后。虽然,本方法在内存增长上相对高了一点,但是对于应用本方法所取得的安全性能而言,这些开销是可以被接受的。最后,此种新方法不需要修改浏览器,也不需要学习新的高级语言,更不需要创建和维护多个域,所以方便易用。因为位于Web Worker内的脚本不能访问文档对象模型(Document Object Model,DOM),所以需要访问DOM的jquery库将不能在Web Worker中使用,这也就使得本文的方法只能适用于这些没有使用jquery库的浏览器扩展程序。