沙盒
现代移动和浏览器平台都利用不同的沙盒技术来隔离应用程序和网站及其内容(参见操作系统和虚拟化CyBOK知识领域[3])[37,38]。这也旨在保护平台免受恶意应用程序和站点的侵害。主要的网络浏览器(例如谷歌浏览器[39])和移动平台(例如Android[40])在操作系统进程级别实现隔离。每个应用程序或网站都在自己的进程中运行2.默认情况下,隔离的进程无法相互交互,也无法共享资源。在浏览器中,站点隔离作为同源策略的扩展的第二道防线(参见第2.4.2节)。
应用程序隔离
现代移动平台为每个应用程序提供在专用进程中运行的沙箱和自己的文件系统存储。移动平台利用底层操作系统进程保护机制进行应用程序资源识别和隔离。例如,Android[40]中的应用程序沙箱是在内核级别设置的。安全性通过标准操作系统设施(包括用户和组ID以及安全上下文)强制实施。默认情况下,沙盒阻止应用程序相互访问,并且仅允许对操作系统资源的有限访问。若要访问受保护的应用和操作系统资源,需要通过受控接口进行应用间通信。
内容隔离
内容隔离是现代浏览器中的主要安全保证之一。主要思想是根据文档的来源隔离文档,以便它们不会相互干扰。同源策略(SOP)[41]于1995年引入,影响JAVAScript及其与文档的DOM的交互,网络请求和本地存储(例如,饼干)。SOP背后的核心思想是,如果文档主机之间完全匹配,则只允许两个单独的JavaScript执行上下文操作文档的DOM。以及协议、DNS名称和端口号3。不允许跨源操作请求。表2说明了示例SOP验证结果。与JavaScript-DOM交互类似,SOP将JavaScript XMLHttpRequest 功能限制为仅向宿主文档的来源发出HTTP请求。
SOP的一个主要缺陷是它依赖于DNS而不是IP地址。因此,可以故意更改DNS条目的IP地址的攻击者可以绕过SOP安全保证。
由于执行同源策略的代码偶尔会包含安全漏洞,因此现代浏览器引入了第二道防线:网站以自己的方式呈现。在沙盒中运行的进程。沙盒网站旨在防止诸如窃取跨站点cookie和保存的密码之类的攻击[42]。
实施同源策略和提高Web应用程序安全性的另一个附加防御层是内容安全策略(CSP)机制[43]。CSP主要用于防止代码注入攻击,例如XSS(参见第4.1节),这些攻击利用浏览器对Web服务器发送的内容的信任。这允许在客户端的浏览器中执行恶意脚本。CSP允许Web开发人员和服务器运营商限制浏览器应被视为可信内容源的源数量-包括可执行代码和媒体信息。可以使用CSP,以便服务器可以在客户端上全局禁用代码执行。要启用CSP,开发人员或操作员可以将Web服务器配置为发送内容安全策略HTTP响应标头或向网站添加html<meta>标记。兼容的浏览器将仅执行代码或从受信任的来源加载媒体文件。
示例:内容安全策略标头以下 CSP 允许Web 应用程序的用户包含来自任何源的图像,但将媒体数据(音频或视频媒体)限制为受信任的 tRusted-media.com域。此外,脚本仅限于Web 开发人员信任的 trusted-scripts.com 源: Content-Security-Policy: default-src ’self’; img-src *; media-src trusted-media.com; script-src trusted-scripts.com |