没有合适的资源?快使用搜索试试~ 我知道了~
Web浏览器的信息流控制,一种分裂的机制迪帕克·萨勃拉曼尼亚引用此版本:迪帕克·萨勃拉曼尼亚基于拆分机制的Web浏览器信息流控制Web. 2017年,中央高等学校。英语NNT:2017CSUP0006。电话:02865026HAL Id:tel-02865026https://theses.hal.science/tel-028650262020年6月11日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire安娜2017订单THENSE/CENTRALESUPÉLEC布列塔尼卢瓦尔大学校园为了等级中央管理局医生提及:InformatiqueEcole doctorale 601 « Mathématiques et Sciences et Technologiesde l'Information et de la Communicationpar presentée迪帕克·萨勃拉曼尼亚准备参加一种基于拆分机制的Web浏览器信息流控制Thèse soutenue àCentraleSupélec,campus deRennes发布时间:2017年12月20日陪审团组成后:埃尔韦·德巴尔人的发展报告,南巴黎电信公司,专家/特别报告员伊莎贝尔·克里斯门特人类发展报告,Lorraine大学,LORIA/特别报告员托马斯·詹森Directeur de Recherche CNRS,IRISA /examinateurErwan ABGRALLSSI实验室负责人,DGA Maitrise deChristophe BIDAN人类发展报告,高级专员,纪尧姆·希特高级研究员/共同主任确认我要再次感谢评审团主席Thomas Jensen博士和我论文的报告人Hervé Debar博士、Isabelle Chrisment博士以及评审团的其他成员Erwan Abgrall博士、Christophe Bidan博士和Guillaume Hiet博士,感谢他们授予我作为论文答辩评审团成员的特权。我要特别感谢我的论文导师Guillaume Hiet博士,感谢他在我的整个工作过程中不断的支持和监督。我还要感谢Christophe Bidan博士、Ludovic Mé博士、Jean-François Lalande博士和CIDRE团队的其他成员,他们不断鼓励和帮助我融入法国学生生活。我很高兴在我的博士课程期间与他们一起工作。CentraleSupplies的员工,包括Karine Bernard和Jeannine Hardy,在各种情况下帮助我,值得我衷心感谢我的父亲,P.R.萨勃拉曼尼亚,我的母亲,萨维瑟里·萨勃拉曼尼亚,还有我的妹妹,S.达里尼,感谢他们在我的努力中成为我的支柱我也不能低估我的未婚夫Shruti Mohan和我即将成为岳父母的Ratnam Mohan和Jalalitha Mohan的巨大支持。我还要感谢我的家人和朋友,特别感谢Bharath Kumar Venkatesh Kumar,Ha ThanhLe博士 。Karthik Muthuswamy ,Manikantan Krishnamoorthy,Dr. Yogesh Karpate,Dr.Navik Modi博士Hrishikesh Deshpande博士Sumit Darak博士Mihir Jain,Dr.,Dr.Raghavendran Balu , Dr. Surya Narayanan , Dr. Aswin Sridharan , Dr. ManikandanBakthavatchalam,Dr. Amrith Dhananjayan,Dr. Raj Kumar Gupta,Dr. Dilip Prasad,Dr.Ra- jesh Sharma , Dr. Paul Lajoie-Mazenc , Dr. Jussi Lindgren , Himalaya Jain , Dr.Regina Marin,12致谢Chistopher Humphries博士、Florian Grandhomme博士、Laurent George博士、MounirAssaf博士和Radoniaina Andriatsimandefitra我非常感谢我在Trusted Labs的同事们,他们在我受雇期间一直理解我在比利时鲁汶大学的实习也是这期间最令人满意的经历之一感谢Frank Piessens博士、Lieven Desmet博士、Willem De Groef博士和KU Leuven的DistriNet团队的其他成员。完成博士学位是我最大的快乐和最美好的经历,我要再次感谢所有在这一过程中参与我生活的人谢谢你,谢谢内容鸣谢1目录3导言. 71Web浏览器安全111.1Web浏览器技术111.1.1Web浏览器的工作111.1.2JavaScript131.1.3典型的现代网页141.1.4WebRTC151.2现代网页的脆弱性181.2.1跨站点脚本181.2.2跨站点请求伪造211.2.3WebRTC22上的漏洞1.3网络安全机制241.3.1服务器端的安全机制251.3.2Web浏览器端261.3.3结论292与信息流控制312.1信息流控制2.2编程语言中的信息流控制332.3国际金融公司34的工作2.3.1IFC模型362.3.2国际金融公司地产382.3.3国际金融公司分析的类型34内容2.4使用IFC57的可能Web浏览器安全模型2.4.1传统污染模式2.4.2中小型企业和多方面办法2.5结论613地址分割设计633.1地址分割设计633.1.1政策说明643.1.2特权653.1.3字典663.1.4功能特权673.1.5DepartmentTracker713.2ASD描述和语义733.2.1元变量和环境3.2.275岁3.2.3分裂模型773.2.4转让和替代783.2.5职能.813.2.6While语言823.2.7将模型应用于JavaScript863.3JavaScript示例873.3.1基本功能:变量拆分和政策解释873.3.2字典演变和权利传播893.4方法比较933.5结论.974执行和评价4.1实施细节994.2业绩评价4.2.1基于词典数量的1024.2.2与SME和多面方法1064.2.3ASD对真实网站1074.2.4标准基准测试1144.3安全考虑:处理漏洞1174.3.1保护跨站点请求伪造令牌1184.3.2WebRTC1204.3.3Websockets121目录5结论125参考书目142图143出版物1496含量介绍现代世界已经发展到许多服务完全通过互联网提供的地步最近发现,超过73.9%的欧洲人连接到互联网1,这一比例正在以显著的速度增长许多传统的服务,如邮政,正逐渐被电子邮件和其他服务的出现所取代。此外,银行和购物等更多服务也越来越依赖互联网。2这些Web应用程序的工作依赖于服务器端和客户端软件。在客户端的主要软件是Web浏览器,它引领了所有这些Web应用程序这个应用程序负责从服务器端应用程序检索、保存和传输信息具体地说,Web浏览器是用户和服务器端应用程序之间的接口:它用于导航到服务器端应用程序的网页请注意,现代网页通常包括来自多个网站的内容,以便通过集成丰富的功能(如日历,广告,嵌入式音频和视频以及来自不同来源的提要)来为每个用户个性化其内容由于这些Web应用程序为用户提供敏感服务,如银行和购物,因此其安全性至关重要。从服务器端来看,安全威胁的范围包括但不限于拒绝服务、安全错误配置和客户数据泄露等攻击其中一些攻击(如SQL注入)依赖于在服务器端注入恶意代码。这些安全威胁仍然存在,许多项目(如Cloudflare、3个应用程序安全扫描器、4个来自Web应用程序安全联盟的项目5等)正在解决这些问题。从客户端来看,一些安全问题来自Web浏览器本身:与任何软件一样,它可能会受到缓冲区溢出等攻击。在这方面,现代的Web浏览器非常关注其1个互联网 统计数据,http://www.internetworldstats.com/stats.htm第二章网上银行的发展,http://www.wwwmetrics.com/banking.htm3Cloudflare, https://www.cloudflare.com/security/4Web应用程序安全扫描器列表,https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools5Web应用程序安全联盟http://www.webappsec.org/projects/78.导言通过提供沙箱来防止网页无意中访问系统文件和其他系统对象,从而提高源代码6然而,仅仅从各个方面独立地防止安全威胁是不够的,因为Web应用的一些安全问题是Web应用本身固有的例如,现代互联网由几个网页组成,这些网页是mashup网页。在Web开发中,mashup是一个网页或Web应用程序,它使用来自多个源的内容来创建一个显示在单个图形界面中的新服务。许多网站使用会话cookie来允许用户访问服务,而无需每次都要验证。在这种情况下,获取会话cookie就足以模拟用户。这可以通过使用恶意网页或恶意脚本嵌入到合法的mashup网页中更一般地说,Web应用程序安全性的困难在于利用服务器端漏洞可能会对客户端产生影响,反之亦然。必须注意的是,服务器端的许多漏洞,如跨站脚本(XSS)和跨站请求伪造(CSRF),都会对Web浏览器产生直接影响。网页可以包含来自多个Web应用程序服务器的内容和脚本一个简单的例子是网页上的除非广告提供商向网页提供安全内容,否则网页固有地易受攻击。在这篇论文中,我们关注的是Web浏览器的客户端安全。我们注重保护用户的敏感网页数据不被泄露(保密性),防止敏感网页数据被未经授权的代码修改(完整性)。对于这项研究,我们将自己限制在Web浏览器上的JavaScript上下文。我们研究了JavaScript的编译和执行过程,并提供了一种机制来保护网页上包含敏感数据的变量不被未经授权的代码操纵论文写作动机多年来,Web应用程序安全性得到了很多改进,包括Origin头的使用和同源策略(SOP)的关键概念化术语源是指给定资源所在或将被创建的Web应用程序服务器[FGM+99]。如今,Web浏览器必须在每个HTTP请求中指定(使用Origin头)当前网页的原始Web应用程序服务器。然后,Web应用程序服务器可以检查Origin标头,以决定如何处理请求。6ChromiumSandbox,http://tinyurl.com/ChromiumSandbox导言. 9已处理。SOP规定,Web浏览器允许包含在第一个网页中的脚本访问第二个网页中的数据,但前提是两个网页具有相同的来源,即,他们来自同一个网站。此策略可防止一个网页上的恶意脚本访问另一个网页上的敏感数据。请注意,到目前为止提出的所有安全措施都倾向于针对每种类型的漏洞。此外,它们要求客户端,即,web浏览器和服务器端web应用实现互补机制。相反,如果其中一方没有实施适当的机制,安全性就无法得到保证。当然,恶意网站不会实现这些机制。因此,这些措施的效力本身就受到限制。让我们考虑一下开放式Web应用程序安全项目(OWASP)[Opea]列出的十大漏洞,该项目被视为该领域的标准承载者根据这个列表,Web应用程序的主要漏洞是跨端脚本(XSS),它允许攻击者将恶意脚本注入合法网页。一旦恶意脚本被注入,任何访问合法网页的用户都将通过其Web浏览器执行恶意脚本,从而可能导致用户由于恶意脚本是合法网页的一部分,因此以前的安全措施都无法真正防止此类攻击。如果包含恶意脚本的网页本身就是mashup网页的一部分,例如包含在电子商务网站网页中的广告,则基于XSS的攻击会产生更大的影响。因此,除非对由各种web应用服务器提供的所有内容进行漏洞审计当然,这是一个不切实际的假设,特别是因为带有恶意脚本的恶意网页仍然会存在。在这篇论文中,我们不考虑解决漏洞本身,但希望提供一个机制,用户的敏感信息被保护免受泄露以及未经授权的修改,尽管漏洞被利用。我们的目标是提出一个预防性的执法机制,有助于维护用户的敏感信息的机密性和完整性,此外,我们希望我们的机制不能被卡住或不要求直接用户输入作为决策的一部分,因为Web浏览器旨在供所有人使用,而不限于专家。最后,有必要在不造成执行时间严重损失的情况下实现这些目标为此,我们确认基于恶意脚本的漏洞具有非法信息流的特征。因此,我们建议制定一个基于第十章导言信息流控制(Information Flow Control,IFC)事实上,基于国际金融公司的方法在解决问题的范围上更为广泛,并为处理整个信息安全提供了更简化的解决方案。本文提出了这样一种方法,并在Chromium Web浏览器的v8 JavaScript引擎上实现我们的工作已经过同行评审,并在国际会议上发表和展示• 我们与KU Leuven合作分析了WebRTC(一种HTML5通信技术)的潜在风险,并在2016年第31届ACM应用计算年会[DGSJ+16]上发布了结果。• 我们的研究核心,地址分割设计(ASD)在2016年第九届国际信息和网络安全会议上提出[SHB16]。• 此外,我们在2016年第9届安全基础与实践国际研讨会上提出了ASD的后续方法,该方法增加了一种学习机制,可以随着时间的推移自动纠正任何未捕获的信息泄漏[SHB 17]。学位论文大纲本文的结构安排如下。在第1章中,我们重点介绍了一些现代Web技术和Web浏览器中存在的漏洞。我们还总结了现有的机制,可用于提供安全的网页上运行的Web浏览器。在第2章中,我们总结了与IFC领域相关的各种工作,以及基于IFC的Web浏览器安全方法的使用。我们描述的属性和分析方法,已被用于这一领域的研究。我们还提供了一些见解,我们提出的机制与这些相关的工作相比。地址分割设计(ASD)的核心,这是我们在Web浏览器中的IFC模型,在第3章中描述。ASD是一种实用的IFC模型,它依赖于对符号表机制的修改来保护秘密变量不被泄露。我们展示了与其他相关工作相比,我们的模型工作的差异。在第四章中,我们描述了我们的模型在v8 JavaScript引擎上的实现我们提供了一些亮点,我们的解决方案的性能和实现我们的模型在标准的Web浏览器的影响我们还描述了我们的模型如何帮助解决第1章中提到的安全问题。在论文的最后,我们给出了结论,并对未来可能的工作进行了展望。第1Web浏览器安全在第1.1节中,我们简要概述了现代网站使用的主要技术,并在客户端实现,即通过Web浏览器。然后我们在1.2节中讨论这些现代网页上的漏洞。特别是,我们提出了我们在Web实时通信(WebRTC)技术中发现的漏洞[DGSJ+16]。最后,我们在1.3节介绍了经典的方法,已经提出了加强Web浏览器的安全性,并讨论其局限性。1.1Web浏览器技术我们首先描述Web浏览器的基本工作原理。接下来是对JavaScript的简要介绍。然后,我们介绍了包含第三方脚本的现代网页的问题。最后,我们更详细地描述了WebRTC的功能,WebRTC是一种代表添加到浏览器中的现代功能的1.1.1Web浏览器Web浏览器的职责是首先导航到网页并按预期显示其内容。可以使用统一资源定位符(URL)找到该网页1URL的结构如图1.1所示。必须指出,用户信息,而在URL规范中仍然有效,不再被许多浏览器支持[For]。原因是有几个恶意网站使用这种策略来欺骗用户。URL(如http://www.google.com:jkahshsfjkjdfjbjd@kldfdjkhhebahtk.com/)可能会被混淆为指向主机www.google.com的URL,而此字符串仅是用户名1RFC 1738,http://www.ietf.org/rfc/rfc1738.txt1112Web浏览器安全在网站kldfdjkhhebahtk.com。因此,现代浏览器正在慢慢放弃对URL规范这一部分的支持。website.com/路径/到/资源HTMLElementId方案://用户信息(可选)主机:端口号路径?查询(可选)#片段(可选)80 key=value key=value2图1.1:统一资源管理加载网页的过程如图1.2所示。浏览器尝试建立到web服务器的传输控制协议(TCP)连接以访问给定的网页资源。建立此连接后,将使用超文本传输协议(HTTP)协议在Web浏览器和Web应用程序服务器之间进行通信Web浏览器向Web服务器发送一个请求,该请求包括一个头部列表,该列表提供了诸如浏览器类型等详细信息(HTTP头部:用户代理)。Web应用程序服务器使用其自己的适当报头来响应请求,例如网页的缓存策略、已使用的编码、正在传输的数据的类型、数据的大小、Web浏览器是否必须下载内容而不是内联地显示内容(内容处置报头)等。由于网站试图根据用户个性化内容,因此它们为用户建立这些会话可以是经过身份验证的会话或未经身份验证的会话。它们通过使用分配给该会话的唯一字符串进行维护该字符串以称为cookie的变量的形式存储。浏览器为每个网站保留一个cookie,并为向该网站发出的每个请求自动发送cookie。相反,Web应用程序服务器的每个响应都包含一个cookie。当加载网页时,web应用服务器响应通常包含HTML(超文本标记语言)内容。Web浏览器的用户界面使用渲染引擎来根据需要显示与给定HTML文档上的不同标签相对应的元素。关于如何对齐要使用的各种元素、颜色或字体的规则以层叠样式表(CSS)的形式给出。最后,用于运行网页的各种功能的动态编程语言通常用JavaScript编写。用户名: 密码@Web浏览器基于CSS执行页面布局运行各种JavaScript加载其他允许的资源加载页来自服务器的响应(带有HTTP头)ie更新Cook请求资源(带HTTP标头)e追加CookiTCP连接(解析IP)网址:www.example.com/Path1? key1=value1#div1Web浏览器技术13图1.2:加载页面1.1.2JavaScript客户端脚本是Web浏览器上网页的重要方面之一。JavaScript本身是一种高级的、动态的、解释性语言。它在功能上逐渐取代了Java applet和Adobe Flash等其他组件,并已跻身最常用的编程语言之列2在典型的网页中,JavaScript用于与远程服务器交互并将动态内容集成到网页中。这是在XMLHttpRequest函数的帮助下完成的此函数用于向URL发出HTTP请求并以JavaScript变量的形式获取响应这个变量可以用来生成动态内容。因此,内容2Techcrunch 2012,http://tcrn.ch/2nReBSh14Web浏览器安全页面上的内容以及来自服务器的信息可以借助JavaScript进行交互在JavaScript中,eval函数允许运行时执行。这意味着可以将任意字符串传递给此函数,以便在当前上下文中执行。 在JavaScript中使用eval的一个例子如图1.3所示。在这个例子中,可以观察到被执行的代码根据函数的输入而改变。这里的例子非常简单。当参数choice等于“gt”时,函数检查变量a的值是否大于5。实际的检查发生在eval语句的解释中,它编译传递给eval函数的字符串。因此,JavaScript是一种非常强大和灵活的语言,越来越多地用于现代网页。1vara=Math。floor((Math. int n(n);;2Function f(x,choice,number)3 {1}4var y =真的;5vaR GreaterThann =“if(x=“+number+“){y=false;}else{y=true;}”;6vaR LESSTHAN =“if(x>“+number+“){y=true;}else{y=false;}“;7if(选择)===“gt”)8.9eval( Than);10}其他11个 if(选择)===“lt”)12.13eval(lessThann);14}15返回 y;16 }的情况;17vaR a_gt5=f(a,“gt“,5);18vaR a_lt5=f(a,“lt“,5);图1.3:简单的eval函数示例1.1.3典型的现代网页今天,现代网页是复杂的,因为它们由不同的组件组成事实上,许多现代网页依赖于来自多个Web应用程序服务器的数据,以按照开发人员的预期运行,如图1.4所示。第三方网站,如Facebook3和Disqus4,提供在运行时使用脚本与页面交互的内容。广告提供商提供的各种脚本也可以主动探索上下文https://fr-fr.facebook.com/3https://disqus.com/Web浏览器Disqus评论突发新闻/股票行情天气Twitter的饲料广告内容Facebook Like按钮网址www.thesis-mashup-example.comWeb浏览器技术提供相关的广告。所有这些第三方脚本都是由开发人员添加的,并且旨在在网页的相同上下文中工作。HTML内容构成了创建当前网页的文档对象模型(DOM)的基础加载到页面上的JavaScript是script标记的一部分此标记的内容被传递给JavaScript引擎,以便在运行时执行JavaScript引擎还可以访问DOM元素,并且随后在运行时创建、修改以及删除DOM元素,以向用户提供动态内容图1.4:典型网页HTML5的出现引发了一系列增加Web应用程序功能集的方法。这些新技术中的一些,如Web消息传递[Hic15b],Web套接字[FM11]或WebRTC[BBJN15],允许在以前不可行的级别上在网页上进行通信我们将在以下章节中详细介绍WebRTC技术。1.1.4WebRTCWebRTC是不断增长的Web浏览器技术库的最新成员之一,它推动了本机Web应用程序功能的发展WebRTC允许纯粹在浏览器中运行的实时点对点音频和视频聊天。与现有的视频聊天解决方案(如Skype)在封闭的身份生态系统中运行不同,WebRTC被设计为高度灵活,特别是在信令和身份联合领域
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功