论文部分内容阅读
随着web技术的发展和HTML5的发布,web应用的需求正逐年提升。web应用(web app)是一种通过网络访问的应用程序,采用浏览器支持语言(如JavaScript)并依赖于web runtime(web应用运行时环境、web引擎)提供的渲染和运行支撑。作为web应用的载体,web runtime以web应用为单位,对内利用web技术为每个应用提供基础的运行环境和管理各类应用的全生命周期,对外则为用户提供一系列比拟本地应用的web应用服务。 随着web应用需求的增多,许多嵌入式设备厂商纷纷研发web runtime,在相应的设备上搭建自己的应用商城,以web应用为单位为人们提供种类多样的服务,因而带来的安全问题也日益明显。因而人们采用了多种技术为web runtime提供安全策略。其中,在web runtime架构下采用基于Docker技术的容器级虚拟化技术这一方案,能够在多方面为web应用提供安全的运行环境。然而在该架构下,还有一些问题亟待解决:容器架构为应用提供安全的同时,也使得应用变成“孤立”的应用,无法做到彼此交流,不适用于多应用协同为用户提供服务的场景;容器提供的保护较为单一,如果容器中安装了不可信应用,则容器的防护较为单一,无法在应用安装前检查其安全性;此外,如今的恶意应用,在危害较大的同时还存在着较强的变异能力,而容器机制是一种被动防御机制,无法预先对应用的未知行为数据进行及时的响应和分析。 围绕上述问题,本文对基于容器的web runtime安全支撑技术展开研究,主要研究成果和贡献总结如下: 首先,针对基于容器的嵌入式Web Runtime安全架构下应用之间无法通信的问题,在第3章中提出了一种该架构下的基于基于命名管道的IPC方式,解决了在容器架构下,原有的基于匿名管道的IPC机制无法让容器中应用进行通信的不足,以适应多应用协同场景下的Web应用间的通信需求; 其次,针对Web应用本身的安全以及前述通信机制建立下可能对原有的隔离机制所带来的影响,本文在第4章提出了一种基于容器的嵌入式web runtime的权限审计策略,它包括如下两个方面:一是在基于容器的嵌入式web runtime中实现了一种权限检测功能,实验结果表明,提出的权限检测机制能够适应容器架构下的web runtime场景;二是在前述基于命名管道的IPC通信机制和权限检测功能的基础上,在应用之间提出并建立了一种权限协同机制。在这种机制下,应用双方通信之前,首先由web runtime对应用进行权限协同审核,向用户提示权限缺失的一方,从而改善了多应用协同通信对容器隔离机制所带来的影响。 最后,针对从web应用当中产生的数据,本文在第5章提出了几种面向web runtime的异常行为检测方法。本章从数据层面入手,主要采用基于聚类(Clustering)的算法对应用所获得的数据进行异常检测。在本章中,5.3节提出了一种基于非对称Mutual k-Nearest Neighbour图的聚类算法(AMKNG)来针对数据进行异常检测;5.4节中,提出了一种新的基于聚类的离群点检测算法E-rROCF来针对数据进行异常检测,它使用5.3节提出AMKNG算法,对基于聚类的离群点检测算法ROCF进行了优化;5.5节中提出了一种基于扩展的Jarvis-Patrick(JP)图聚类的异常数据检测算法LD-EJP,相较于5.3和5.4中的算法对于较小规模的数据集效果良好(更加适应数据规模的增长)而言,LD-EJP算法能够适应较大规模数据集的情况,以满足嵌入式数据处理能力有限的场景。此外,与目前已知的基于聚类的异常检测算法相比(例如k-Means、LGCCB),检测率和误报率都有一定的改善。