HTML5App的代码注入攻击.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HTML5App的代码注入攻击

HTML5 App的代码注入攻击与防范一、代码注入攻击Web技术有一个广为人知的危险特性:它允许数据和代码混杂到一起,比如当一个 字符串包含数据和代码时,代码会被识别出来并且被JavaScript引擎执行。这是一种功能设计,这样可以让JavaScript代码很方便的嵌入到 HTML 页面中执行。不幸的是,这个功能的后果是,如果开发商只想处理数据,但使用了错误的API,字符串中的代码会自动和错误的触发。如果这样的数据和代码混合 字符串来自不可信的输入,恶意代码就可以被注入到应用程序中执 行,这就是JavaScript代码注入攻击。其中一种典型代表就是被我们称为跨站点脚本(XSS)的,根据OWASP top10[11],这是目前Web应用程序中的第三常见的安全风险。3.1 概述使用Web技术开发的手机app将制造一种新的蠕虫,它可以将针对特定的手机应 用程序注入恶意代码。这种攻击破坏性比Web应用程序的XSS攻击要大很多,不仅仅因为我们给手机上安装的app授予了很多权限,更因为在XSS攻击中恶 意代码的注入大多数都需要通过Web应用服务器,这是恶意数据到达他们攻击目标的唯一通道,而在手机应用场景下有非常多可利用的攻击通道。这些通道的一个 共同的特点是,他们都是连接移动设备和外界的通道,实质上是遭受从另一个设备(不一定是一个手机设备)进行攻击的通道。图2(a)说明了攻击的基本思路。由于智能手机实时地与外面的世界交互,和传统的网络通道相比有更多新的通道可以输入不可信的数据到手机设备。例如,二维码、RFID标签、媒体文件、Bluetooth设备和Wi-Fi接入点等,恶意代码可以嵌入在这些通道数据里面。如果数据混合的代码没有机会被触发,就不会有代码执行造成的风险。这就是 natvie语言开发的手机app能够免疫这种代码注入攻击的原因。例如,即使攻击者可以嵌入Java代码到二维码里面,也没有机会误触发执行这些代码。 但由于web技术的危险特性,这不适用于HTML5 app。特别地,app将数据显示出来是很常见的,例如展示一个二维码对应的信息。有一些Web技术的API “很帅”:他们可以从代码中分离数据,将数据发送到HTML渲染引擎,将代码发送到JavaScript引擎,这里并没有考虑开发者本意是否是要执行代 码。 当代码被执行时,它可以利用分配给应用程序的权限在移动设备上进行攻击,在WebView中使用PhoneGap框架和HTML5的API打开一个“攻击 窗口”。3.2 触发注入的代码有两种常见的方式可以触发执行数据字符串中包含的JavaScript代码。一 种是使用eval()函数,这个函数可以把字符作为JavaScript代码执行。这种风险不是很常见,因为程序员知道输入的字符串是不能包含非法字符 的。另外一种触发代码执行的方式是通过DOM显示API和属性,比如 document.write(),appendChild(),innerHTML(属性)等。一些jQuery API也可以触发代码执行,比如html()和append(),它们也是基于显示API和属性实现的。JavaScript通过这些API和属性显示信 息在HTML页面中(在PhoneGap应用程序中,这些页面就是用户界面)。在第二种场景中,触发执行字符串中的代码在web环境下可能是因为业务需 要,但是手机app中这种需求很少见。不是所有显示API和属性都能执行字符串中的代码,这取决于代码嵌入的方式。在一个HTML页面中,有两种典型的代码和数据混杂在一起的场景:脚本或标签事件属性。下面给出这两种场景的示例代码:当那两个字符串被传递给DOM/j- Query显示API和属性时,代码alert(‘attack’)是否可以被执行的总结如表1所示。我们统计了在代码中使用每个api和属性PhoneGap app的所占比例(我们收集的764 app)。3.3 危害这种攻击所能造成的危害如图2(b)所示,可以分成三类:一种是直接攻击受害者手机终端造成的(图中用细的带箭头标示),另外两种是恶意代码形成的扩散攻击? (图中用粗的带箭头的线标示)。首先,注入的恶意代码可以通过WebView中的代码打开的“窗口”直接对 手机终端进行攻击。由于WebView的沙盒机制,正常情况下JavaScript代码是不能对终端设备造成太大破坏的。但是为了方便访问操作系统和硬件 设备,手机app创造了很多“窗口”。这些“窗口”包括HTML5 API (比如地理定位API )和app安装的所有PhoneGap插件。需要指出的是,PhoneGap有16个内置的插件,所以即使app没有使用他们,他们仍然可以被注入到 app中的恶意代码利用。这些插件包括通讯录、文件和外置设备插件。恶意代码利用他们可以获取系统资源的访问权

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档