CN103975336A - 对值中的标签进行编码以俘获信息流 - Google Patents

对值中的标签进行编码以俘获信息流 Download PDF

Info

Publication number
CN103975336A
CN103975336A CN201280054410.3A CN201280054410A CN103975336A CN 103975336 A CN103975336 A CN 103975336A CN 201280054410 A CN201280054410 A CN 201280054410A CN 103975336 A CN103975336 A CN 103975336A
Authority
CN
China
Prior art keywords
label
mode
processor
value
dynamic language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280054410.3A
Other languages
English (en)
Other versions
CN103975336B (zh
Inventor
克里斯托夫·克施鲍默
穆罕默德·H·雷夏迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103975336A publication Critical patent/CN103975336A/zh
Application granted granted Critical
Publication of CN103975336B publication Critical patent/CN103975336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

用于对动态语言值中的安全性标签进行编码的方法、服务器和系统允许客户端应用程序内的交叉脚本通信同时限制允许传送回到主机服务器的信息类型。在编译期间执行静态分析,且使用结果来产生和插入额外代码,所述额外代码在程序的执行期间更新、修改和传播附加到值(例如,JavaScript值)的标签(例如,JavaScript标签)。为了支持允许与其它基于网络的系统的有力集成的流行语言特征,允许恶意代码在本地(例如,在客户端上)执行操作,且检测和预防机制识别且停止恶意代码使其无法经由网络发送请求或搜集的信息,从而归化攻击且改善嵌入动态语言代码的应用程序的安全性。

Description

对值中的标签进行编码以俘获信息流
相关申请案
本申请案主张2011年11月7日申请的题目为“对JavaScript值中的标签进行编码以俘获信息流(Encoding Labels in JavaScript Values to Capture Information Flows)”第61/556,658号美国临时专利申请案的优先权权益,所述美国临时申请案的整个内容以引用的方式并入本文。
背景技术
近年来,动态脚本语言(例如,Ruby等等)已变得越来越有力,且因此,现在较广泛地用以实施在线和基于网络的软件应用程序。动态脚本语言现在包含通常与高级软件语言、灵活键入系统、库扩展集合以及有力地支持与其它基于网络的系统的集成的其它特征相关联的若干特征。出于这些和其它原因,动态脚本语言现在被多数Web2.0应用程序使用且流行性在增长。
在线和基于网络的软件开发的另一增长趋势是将第三方脚本嵌入到客户端应用程序(例如,网页、浏览器等等)中。嵌入的脚本可用以在第三方站点上检索和放置内容和可执行代码(例如,广告条幅、股票报价机等等)。嵌入的脚本也可用以实施聚合,其是将来自两个或两个以上源的数据、代码、特征、服务和/或功能组合以产生新服务或应用程序的网页或应用程序。许多动态脚本语言包含支持这些增长趋势的特征,且因此,正更频繁地用以在网站中嵌入脚本。这些嵌入的第三方脚本可能包含允许攻击者开发语言弱点来搜集敏感信息且将其发送到攻击者控制的服务器的恶意代码。改善嵌入第三方脚本语言的脚本语言和应用程序的安全性正在变为越来越重要的设计准则。
发明内容
各种方面包含经配置以允许在软件客户端内允许交叉脚本通信同时限制允许传送回到主机服务器的信息类型的系统、方法和装置。在一方面中,一种用于对动态语言值中的安全性标签进行编码的方法可包含:分配所述动态语言值中的若干位以存储经编码标签;保留所述经分配位中的一个位以表明安全性标签是否在第一模式或第二模式中编码;以及用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。在一方面中,所述方法可进一步包含:确定所述所保留位是否指示所述第一模式或所述第二模式被选定;在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为经编码为独热位且执行逐位或运算;以及在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。在一方面中,用识别发源域的安全性标签对所述动态语言值加标签可包含在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。在一方面中,分配动态语言值中的若干位以存储经编码标签可包含分配JavaScript值中的若干位以存储经编码标签。在一方面中,所述方法可使用包含例如以下各项的任何动态或脚本语言来实施:PERL、Scala、Erlang、Candle以及和.NET语言。
另外方面包含一种计算装置,其包含:用于分配动态语言值中的若干位以存储经编码标签的装置;用于保留所述经分配位中的一个位以表明安全性标签是否在第一模式或第二模式中编码的装置;以及用于用识别发源域的安全性标签对所述动态语言值加标签的装置,所述安全性标签是在所述第一模式或所述第二模式中编码。在一方面中,所述计算装置包含:用于确定所述所保留位是否指示所述第一模式或所述第二模式被选定的装置;用于在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为经编码为独热位且执行逐位或运算的装置;以及用于在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作的装置。在又一方面中,用于用识别发源域的安全性标签对所述动态语言值加标签的装置可包含用于在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签的装置。在又一方面中,用于分配动态语言值中的若干位的装置可包含用于分配选自由以下各项组成的群组的语言中的若干位的装置: Ruby、PERL、Scala、Erlang、Candle和.NET语言。
另外方面包含一种计算装置,其包含处理器,所述处理器以处理器可执行指令配置以执行用于对动态语言值中的安全性标签进行编码的操作,所述操作可包含:分配所述动态语言值中的若干位以存储经编码标签;保留所述经分配位中的一个位以表明所述安全性标签是否在第一模式或第二模式中编码;以及用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。在一方面中,所述处理器可以处理器可执行指令配置以执行可进一步包含以下各项的操作:确定所述所保留位是否指示所述第一模式或所述第二模式被选定;在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为经编码为独热位且执行逐位或运算;以及在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。在又一方面中,所述处理器可以处理器可执行指令配置以使得用识别发源域的安全性标签对所述动态语言值加标签包含在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。在又一方面中,所述处理器可以处理器可执行指令配置以使得分配所述动态语言值中的若干位包含分配选自由以下各项组成的群组的语言中的若干位: Ruby、PERL、Scala、Erlang、Candle和.NET语言。
另外方面包含一种其上存储有处理器可执行软件指令的非暂时性计算机可读存储媒体,所述处理器可执行软件指令经配置以致使处理器执行用于对动态语言值中的安全性标签进行编码的操作,所述操作包含:分配所述动态语言值中的若干位以存储经编码标签;保留所述经分配位中的一个位以表明所述安全性标签是否在第一模式或第二模式中编码;以及用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。在一方面中,所述存储的处理器可执行软件指令可进一步经配置以致使处理器执行包含以下各项的操作:确定所述所保留位是否指示所述第一模式或所述第二模式被选定;在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为经编码为独热位且执行逐位或运算;以及在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。在又一方面中,所述存储的处理器可执行软件指令可进一步经配置以致使处理器执行操作以使得用识别发源域的安全性标签对所述动态语言值加标签包含在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。在又一方面中,分配动态语言值中的若干位可包含分配选自由以下各项组成的群组的语言中的若干位:
Erlang、Candle和.NET语言。
附图说明
并入本文且组成本说明书的一部分的附图说明本发明的示范性方面,且连同上文给出的一股描述以及下文给出的详细描述一起用以阐释本发明的特征。
图l是图解说明具有从多个域嵌入脚本的客户端应用程序的实例计算网络中的逻辑流的组件框图。
图2是可用以使用隐式信息流来渗漏出安全变量的实例脚本的图解说明。
图3是用于跟踪信息流且防止恶意代码与远程服务器通信的一方面方法的过程流程图。
图4A到4B是图解说明用于存储动态值以使得可识别尝试传送从交叉脚本操作获得的信息的脚本的标记的消息结构图。
图5是用于在运行时间引擎中传播标签的一方面方法的过程流程图。
图6是图解说明根据一方面的在传播标签时由逻辑组件存储的值的数据结构图。
图7是用于使用有效地加标签的多级值来阻止受污染数据泄露到服务器或第三方的一方面方法的过程流程图。
图8是适合于与各种方面一起使用的计算装置的组件框图。
图9是适合于与各种方面一起使用的实例移动装置的图解说明。
图10是适合于与各种方面一起使用的实例个人计算机的图解说明。
具体实施方式
将参考附图详细描述各种方面。只要可能,在附图中将始终使用相同参考标号来指代相同或相似部分。对特定实例和实施方案做出的参考是用于说明性目的,且既定不限制本发明或权利要求书的范围。
术语“计算装置”一股用以指代以下各项中的任一者或全部:服务器、个人计算机、移动装置、蜂窝式电话、平板计算机、膝上型计算机、上网本、掌上型计算机、个人数据助理(PDA)、无线电子邮件接收器(例如,装置)、具有多媒体因特网功能的蜂窝式电话(例如,)、全球定位系统(GPS)接收器,无线游戏控制器、个人计算机,以及包含可编程处理器的类似个人电子装置。虽然各种方面尤其有用于具有有限处理能力的例如蜂窝式电话等移动装置中,但所述方面一股有用于执行以动态和/或脚本语言编写的脚本和应用程序的任何计算装置中。
本文使用术语“聚合”来指代将来自两个或两个以上源的数据、内容、代码、特征、服务和/或功能(统称为“内容”)组合以产生新服务/应用程序的客户端应用程序或网页。所述内容可以继承和相干方式组合,或可分散且不相连。聚合可为基于服务器的或基于客户端的。服务器侧聚合通常在充当客户端应用程序(例如,浏览器)与一个或一个以上主机网站之间的代理的服务器上整合内容。客户端侧聚合直接在客户端应用程序上整合内容。聚合还可与作为服务提供的软件(SaaS)或与面向服务的架构(SOA)一起使用。
术语“动态语言”和“脚本语言”在本申请案中相关联地且可互换地使用,且可指代用以编写在运行时间被解译、编译或动态翻译的程序(本文为“脚本”)的任何动态或脚本语言,或支持及时制(iust-in-time,JIT)编译的任何语言。这些术语也可指代包含运行时间、虚拟机和/或动态编译的任何语言。本申请案的范围内的动态和脚本语言的实例包含例如Erlang、Candle以及.NET语言和未来可开发的其它语言。
本文使用和JavaScript相关术语来描述各种方面,作为各种方面可使用或解决的动态语言的方便实例。然而应了解,涉及的实例以及本文对语言的其它参考是仅用于说明目的,且既定不将描述或权利要求书限制于所述特定类型的动态语言。因此,权利要求书的范围不应阐释为陈述或要求除非权利要求书中特定陈述。
许多动态语言使得能够从源自许多不同网站的内容和代码(库、广告等等)形成客户端应用程序,且软件开发中的增长趋势是在单个网站上嵌入许多不同的第三方脚本。这些动态语言允许在运行时间从多个源下载嵌入的第三方代码。嵌入的脚本可能够存取托管网页上的敏感信息(例如,小文本、位置栏、公司顾客账户等等),且多数浏览器允许这些脚本动态地存取和修改来自嵌入页的变量和信息。恶意代码可利用这些和其它弱点从用户搜集敏感信息,且尝试将此信息发送到攻击者控制的服务器,所述服务器可使用所述信息来保持对用户的欺骗。恶意代码还可在用户不同意或不知道的情况下存取/修改存储在统一资源定位符(URL)串变量中的值以将页重定向到恶意站点。提供基于网络的安全性的现存方法不善于处置这些类型的攻击和/或过于麻烦而无法在例如移动计算装置等受约束的计算环境中实施。
除了上文提到的弱点,许多动态语言允许攻击者添加和/或修改文档对象模型(DOM)对象以发送各种种类的网络请求(例如,对图像的AJAX请求和/或GET请求),其可结合其它语言特征(例如,鼠标悬停效果)使用以起始注入攻击。注入攻击允许攻击者插入执行恶意动作的代码而不显著影响用户体验,且在运行时间行为中没有任何可观察到的差异的情况下,用户通常不会注意他们的数据已经被渗漏出。而且,许多动态语言支持使其不受传统的静态分析技术影响的灵活的键入系统。而且,客户端应用程序(例如,网络浏览器)通常允许在共享的上下文和存储器空间内动态地加载和执行脚本和库。这些特征允许恶意和善意的作者递送用于在客户端计算装置上执行的可用以起始攻击的脚本。用于识别恶意代码且防止此些攻击的现存方法通常需要对信息安全性的完整检验和/或复杂的加标签方案,且过于低效、复杂且昂贵而无法在受约束的计算环境(例如,移动计算装置等等)中实施。
用于针对上文提到的情形防止安全性侵犯的现存解决方案大体上包含在两个流行的安全性模型中的一者处实施:沙箱模型;以及同源策略(SOP)模型。沙箱模型允许客户端应用程序通过防止多个内容源彼此交互而限制恶意代码可造成的损害量。实施沙箱模型的系统可限制所述交互以使得防止特定客户端(例如,浏览器标签页、浏览器等等)内的数据传送到其它客户端或本地系统。举例来说,当访问网页时,实施沙箱模型的客户端可防止对主机计算装置上的未经授权套接字和/或文件的存取和/或与未经授权网站的通信。作为另一实例,实施沙箱模型的客户端可能要求嵌入的脚本仅执行网络相关动作,而不是通用编程任务(例如,创建和读取文件等等)。
实施同源策略(SOP)模型的客户端大体上将嵌入的脚本的存取约束于不源自同一源的信息。举例来说,同源策略可准许具有相同发源的脚本存取彼此的方法和对象,但防止具有不同发源的脚本存取彼此的方法和对象。以此方式,实施同源策略(SOP)的客户端可防止恶意脚本破坏属于不同域的信息的机密性和完整性。
虽然这些模型提供某些安全性改善,但当前实施方案大体上过于受限、过于低效、过于低能和/或过于昂贵而无法在受约束的计算环境中实施。而且,由于现存安全性模型(例如,沙箱、SOP等等)大体上限制脚本间和脚本上的通信,因此所述模型不善于针对上文论述的新型和新兴技术以及编程技术(例如,聚合、远程API等等)来平衡安全性水平与用户所需的功能性。例如聚合使现存安全性解决方案的实施复杂化,因为其经常含有来自产生共享对象的不同域的协作脚本。为了支持这些共享对象的产生,网页无法使用同源策略(SOP)隔离来自不同域的代码/脚本。如果攻击者设法将代码注入到此网页中,那么整个页可能受损。
各种方面通过在客户端内允许交叉脚本通信同时限制允许传送回到主机服务器的信息类型而克服了当前安全性方法的这些和其它限制。为了支持允许与上文论述的其它基于网络的系统的有力集成的流行的语言特征,可允许恶意代码本地地(例如,在客户端上)执行操作。检测和预防机制可识别和停止恶意代码使其无法经由网络发送请求或任何搜集的信息,进而归化攻击且改善嵌入动态语言代码的应用程序的安全性。
各种方面在编译期间执行静态分析,其结果可用以产生和插入额外代码,所述额外代码在程序的执行期间更新、修改和传播附加到值(例如,JavaScript值)的标签(例如,JavaScript标签)。
各种方面提供跟踪系统,其跟踪来自软件虚拟机内的信息流。语言值(例如,JavaScript值)可初始用识别发源域的安全性标签来加标签。语言值可为代码(例如,JavaScript代码)的特定部分可产生和/或读取的任何值。语言标签(例如,JavaScript标签)可使语言值(例如,JavaScript值)与识别特定代码片的发源的域值(例如,WWW.google.com)关联。
在一方面中,语言标签和语言值可在多个层级中编码。多个层级的使用允许通过将标签分为两个或两个以上模式(例如,快速模式、慢速模式等等)而对语言值中的标签进行编码以用于信息流跟踪,从而大大简化包含从其它脚本获得的信息的语言值的识别。语言标签可随后用以防止任何信息到与语言标签不一致的站点的发射,进而防止使用实施简单的机制对信息的未经授权的渗漏出。
图1图解说明在无用户知道或同意的情况下机密信息被从用户恶意地收集且发送到外部服务器的实例系统中的组件和信息流100。如上文提到,客户端应用程序(例如,网络浏览器)可拉动并组合来自多个站点/服务器的代码(例如,JavaScript脚本)。在图1的图解说明的实例中,客户端120从第一服务器/站点(WWW.good.com)102和第二服务器/站点(www.attacker.com)112两者接收代码。在框104中,源自第一服务器(例如,WWW.good.com)的代码可产生变量(例如,pin),其包含机密信息(例如,密码、电子邮件地址等等)。如上文提到,动态语言(例如,)允许多个脚本在同一执行上下文中执行,且每一代码单元可修改其它代码单元的变量和函数。因此,在框106中,来自第二服务器(例如,www.attcker.com)的代码可读取由第一服务器产生的变量(例如,pin)。在框108中,来自第二服务器(www.attcker.com)的代码可将节点添加到DOM树,请求图像(例如,someimage.jpg),且在框110中,致使客户端120将渗漏出信息(例如,pin的值)作为有效负载发送到第二服务器。
此未经授权的信息搜集可显式地或隐式地发生。显式信息流搜集在一个变量的值显式地取决于另一变量的值(例如,在赋值语句中)时发生。隐式信息流搜集在攻击者布置程序以使用未采用的控制路径的知识来盗用数据时发生。
图2图解说明实例JavaScript脚本202、204,其可用以使用隐式信息流攻击来渗露出安全变量。在隐式信息流攻击中,攻击者可通过注入含有秘密值上的控制流分支的代码202、204且观察因此执行的副作用(或无副作用)来逻辑上推断系统内的秘密变量的值。为了使此方法起作用,攻击者必须具有对代码将注入的系统的某种详细知识,这在多数基于网络的系统上容易满足,因为源代码通常直接发运给用户。常见的安全性设计尝试通过保障正在执行的不同脚本之间的通信来防止此些攻击,且因此试图在发生之前阻止交叉站点脚本。
各种方面通过执行恶意JavaScript且允许交叉站点脚本而脱离常见的安全性设计,但防止搜集的信息被传送。具体来说,攻击的检测和预防可被推迟到恶意代码实际上尝试经由网络发送搜集的信息时,在此时检测和预防机制防止请求被恶意代码传送(渗漏出)。
图3图解说明用于跟踪信息流且防止恶意代码与远程服务器通信的一方面方法300。在框302中,在执行之前,语言值(例如,JavaScript值)可初始用识别发源域的安全性标签来加标签。如上文论述,语言标签可为动态语言代码的特定部分可产生和/或读取的任何值,且语言标签(例如,JavaScript标签)使语言值(例如,JavaScript值)与识别特定代码片的发源的域值(例如,WWW.google.com)关联。
在一方面中,语言标签和值可在多个层级中编码。多个层级的使用允许例如通过将标签分为两个或两个以上模式(例如,快速模式和慢速模式)而对值中的标签进行编码以用于信息流跟踪,且大大简化可包含从其它脚本获得的信息的语言值的识别。
返回到图3,在框304中,可在编译时间执行静态分析,其可产生/发射对应于安全性敏感操作(例如,赋值)的额外代码。在一方面中,产生/发射的代码可控制流分支和结合,且传播用于每个语言值(例如,JavaScript值)的安全性标记。在框306到310中,在运行时间,虚拟机(例如,JavaScript虚拟机)可执行额外产生/发射的代码,管理正应用于每一值的标签,且跟踪程序内的信息流。在框312中,检测和预防机制/过程可执行操作以检测传送信息的尝试,所述信息是从确实源自与传送脚本相同的域的其它脚本获得。在框314中,检测和预防机制/过程可防止请求经由网络发送。在一方面中,对攻击的检测和预防可推迟直到恶意脚本尝试经由网络发送搜集的信息。
图4A到4B图解说明方面加标签机制/过程400、450,用于存储语言值以使得容易识别尝试传送从交叉脚本操作获得的信息的脚本。为了清楚,以下描述使用作为示范性动态语言。然而应了解,广泛多种动态语言落在本申请案的范围内,且权利要求书的范围不应限于除非权利要求书中明确地如此陈述。
大体上,每个语言值可经存储为m位值(例如,192位值),其在JavaScript引擎中我们称其为动态值或简称为D值。在图4A到4B的图解说明的实例中,将192位D值表示为24字节。可存储JavaScript值以使得最低n位(例如,字节0到1)存储类型值(串、双等等),且下一x位(例如,字节2到3、字节2到5)存储有效地编码JavaScript值的发源域标签信息的标签信息。以此方式,在每个JavaScript值中可编码x(例如,32、64)数目个不同域,从而允许使用逻辑“或”运算用于标签结合,其仅需要最小的运行时间开销。
如上文提到,在一方面中,标签和值可在多个层级中编码,使得x位中的某些对发源域标签信息进行编码,且使得x位中的某些存储指向含有标签信息的位置的指针。在一方面中,可基于脚本的数目调整用以对发源域标签信息进行编码的x位的数目。在一方面中,可基于从先前执行获得的信息、用户的浏览历史、或基于在运行时间收集的度量而调整用以对发源域标签信息进行编码的x位的数目。
返回到图4A到4B,在方法400和450中,可存储JavaScript值以使得D值结构的y位(例如,字节4到11、字节6到13)存储实际值,z位(例如,字节12到15、字节14到15)存储对准信息,且高位(例如,字节16到23)存储对象指针。
图5图解说明根据一方面的用于在解译器(例如,JavaScript引擎)中传播标签的实例方法500。在框502中,在执行之前,嵌入的代码单元(例如,JavaScript脚本)可在域寄存器中寄存其发源的域(例如,www.good.com)。在框504中,在所有所执行程序上共享的执行上下文中可将值(例如,12)指派于第一变量。在框506中,可为第一变量产生内部表示。在框508中,可通过例如在较高四个位中存储值(例如,12)的二进制表示(1100),而将内部表示更新为包含指派于第一变量的值(例如,12)。在框510中,也可将与域(例如,www.good.com)相关联的标签(0000-0001)附加到第一变量。在框512中,可针对具有不同发源域(例如,www.attacker.com)的第二变量执行框502到510的操作。在框514中,可使用逻辑“或”运算计算将值识别为与一个以上域相关联的标记标签值。
图6是图解说明根据方面方法500的用于在解译器(例如,JavaScript引擎)中传播标签时的域寄存器的值、执行上下文和语言值的内部表示的图式。在执行之前,每个代码单元(例如,JavaScript脚本)可在域寄存器602中寄存其发源的域(例如,www.good.com、www.attacker.com),且可为例如变量a、b和c产生内部表示604。在所有所执行程序上可共享的共享执行上下文604中可将值(例如,12)指派于变量“a”。随后可通过在较高四个位中存储值(例如,12)的二进制表示(1100),而将内部表示更新为包含指派于变量“a”的值(例如,12)。也可将与域(例如,www.good.com)相关联的标签(0000-0001)附加到变量“a”。较低8位(0000-0101)可界定所指派值类型(例如,整数、双,等等)
在图6的图解说明的实例中,用于变量“b”的内部表示遵循与变量“a”相同的纲要。然而,变量“c”包含标记标签值(0000-0011),其将值识别为与域www.good.com和www.attacker.com的标签相关联。在一方面中,此信息可用以决定是否允许网络请求发送信息。
在一方面中,可使用逻辑或运算计算将值识别为与一个以上域相关联的标记标签值。在经由网络发送任何请求之前,各种方面可检查是否允许将信息发送到所述域或者是否发生了安全性侵犯。可比较所述值的标签,且所述比较的结果可用以决策是否将允许发送请求。
各种方面防止客户端应用程序泄露信息。传播标签可导致标签蠕动(标签爆发),其中用所有可能的标签对每个值加标签。在一方面中,执行以使得标签蠕动不发生和/或不影响性能。在一方面中,可忽略基于时序通道的信息泄露。
图7图解说明用于使用有效地加标签的多级值来阻止受污染数据泄露到服务器或第三方的一方面方法700。如上文参见图4A到4B所论述,x位(例如,字节2到3、字节2到5)可存储有效地对语言值的发源域标签信息进行编码的标签信息。同样如上文所论述,在各种方面中,标签和值可在多个层级中编码。多个层级的使用允许通过将标签分为两个或两个以上模式(例如,快速模式、慢速模式等等)而对JavaScript值中的标签进行编码以用于信息流跟踪,从而大大简化了对包含从其它脚本获得的信息的语言值的识别。
参见图7,在框702中,可在语言值中在两个模式中编码语言标签:快速模式,其在值自身中将所有标签编码为独热位;以及慢速模式,其将标签编码为对存储在另一存储器位置上的值的参考。在框704中,可保留一个位以表明是否将使用第一模式(例如,“快速模式”)或第二模式(例如,“慢速模式”)。举例来说,在保留16位(例如,字节2到3)以用于存储标签信息的配置(例如,图4A)中,可保留第16位以表明是否将使用第一模式(例如,“快速模式”)或第二模式(例如,“慢速模式”)。在确定框706中,确定保留位是否指示选择快速模式。如果确定选择快速模式(即,确定框706=“是”),那么在框708中,将位的其余部分识别为在值自身中编码,且可使用简单的逐位或运算来执行识别操作。如果确定选择慢速模式(即,确定框706=“否”),那么在框710中,可将位的其余部分识别为使用用于管理标签的一股技术来编码。举例来说,在其中保留16位(例如,字节2到3)以用于存储标签信息的配置(例如,图4A)中,当第16脚本存取来自另一脚本的值时,不再存在任何空间存储标签值(即,D值用完了为标签信息保留的位),且必须在慢速模式中编码标签值以存储可用作到存储实际标签信息的标签管理器数据结构中的钥匙的索引。
在一方面中,标签管理器可经配置以使得标签是到可与存储较多标签信息所必要的情况一样大的阵列中的索引。以此方式,可支持大量的脚本,同时,针对不含有足够大量的交叉传送脚本(例如,在以上实例中15个脚本或更少)的每一JavaScript值大大改善速度而在慢速模式中存储值,从而允许使用简单的逐位或运算来执行识别操作。
各种方面脱离了常规安全性解决方案,常规安全性解决方案大体上聚焦于保障正在执行的不同脚本之间的通信以停止交叉站点脚本。各种方面允许本地地执行恶意但防止恶意代码向主机站点发送信息。各种方面还通过在多个层级中编码JavaScript标签和值而脱离了现存的信息流跟踪方法,从而允许将JavaScript标签编码为JavaScript值自身中的独热位。这大大减少了复杂性,改善了效率,且允许在受约束的计算环境中实施各种方面,全都不影响用户体验。各种方面平衡了操作复杂性、存储容量和与存取时间相关联的开销以大大改善总体性能。
所述方面可在多种计算装置中的任一者上实施,例如移动计算装置,例如多功能蜂窝式电话和个人计算机。所述方面可尤其有助于可从性能节省获益的具有相对有限处理能力和/或资源的计算装置。
图8中图解说明此计算装置800的示范性非限制性方面的实例组件和模块。计算装置800可包含电子组件的电路板880,所述电子组件中的一些或全部可集成到芯片上系统中,所述电路板包含耦合到存储器802的控制处理器801。控制处理器801可进一步耦合到数字信号处理器811和/或模拟信号处理器821,所述两个处理器也可耦合在一起。在一些方面中,控制处理器801和数字信号处理器811可为相同组件或可集成到同一处理器芯片中。显示器控制器833和触摸屏控制器843可耦合到控制处理器801且耦合到在计算装置800内或连接到计算装置800的显示器或触摸屏显示器803。
控制处理器801也可耦合到可装卸式存储器822(例如,在移动计算装置的情况下SD存储器或SIM卡)和/或外部存储器804,例如磁盘驱动器、CD驱动器和DVD驱动器中的一者或一者以上。控制处理器801还可耦合到通用串行总线(USB)控制器812,所述USB控制器耦合到USB端口814。而且,电力供应器870可通过USB控制器812或通过不同电连接耦合到电路板880以对各种电子组件提供电力(例如,DC电力)。
控制处理器801还可耦合到视频编码器834,例如,逐行倒相(PAL)编码器、顺序彩色与存储(SECAM)编码器,或国家电视系统委员会(NTSC)编码器。此外,视频编码器834可耦合到视频放大器836,所述视频放大器可耦合到视频编码器834和显示器或触摸屏显示器803。而且,视频端口838可耦合到视频放大器836,以使得能够将计算装置800连接到外部监视器、电视机或其它显示器(未图示)。
在一些方面中,尤其是移动计算装置,控制处理器801可例如经由模拟信号处理器821耦合到射频(RF)收发器805。RF收发器805可耦合到用于发射和接收RF信号的RF天线804。RF收发器805可经配置以发射和接收一个或一个以上不同无线通信协议的通信信号,所述协议包含例如蜂窝式电话(例如,G-3、UMTS、CDMA等等)、WiFi、wiMax和蓝牙。
控制处理器801可进一步耦合到网络卡806,所述网络卡可耦合到网络连接器816和/或RF收发器805且经配置以实现经由外部网络(例如,局域网、因特网、内部网、WiFi网络、蓝牙网络、个域网(PAN)等等)的通信。网络卡806可呈单独芯片或卡的形式,或可作为整体解决方案通信芯片实施为控制处理器801或RF收发器805(或两者)的部分。
若干模拟装置可经由模拟信号处理器821耦合到控制处理器801,例如图8中所示的小键盘808。在其它实施方案中,小键盘或键盘可包含其自己的处理器,使得与控制处理器801的接口可经由直接连接(未图示),经由网络连接(例如,经由网络卡),或经由USB端口814。
在一些实施方案中,数码相机848可耦合到控制处理器801。在示范性方面中,数码相机848可为电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。数码相机848可建立到计算装置800中或通过外部电缆耦合到装置。
在一些实施方案中,音频编解码器850(例如,立体声编解码器)可耦合到模拟信号处理器821且经配置以经由音频放大器852将声音信号发送到一个或一个以上扬声器854。音频编解码器850还可耦合到麦克风放大器856,其可(例如,经由麦克风插孔)耦合到麦克风858。头戴受话器插孔859也可耦合到音频编解码器850以用于将音频输出到头戴受话器。
在一些实施方案中,计算装置800可包含单独的RF接收器电路860,其可耦合到用于接收广播无线通信信号的天线862。接收器电路860可经配置以接收广播电视信号,且将所接收信号提供到DSP811用于处理。在一些实施方案中,接收器电路860可经配置以接收FM无线电信号,在此情况下可将所接收信号传递到音频编解码器850用于处理。
在一方面中,用于实现上述方法操作中的一者或一者以上的处理器可执行指令可存储在内部存储器802、可装卸式存储器822和/或非易失性存储器804中(例如,硬驱动器、CD驱动器或经由网络可存取的其它存储装置上)。此些处理器可执行指令可由控制处理器801执行以便执行本文描述的方法。
图9中图解说明移动计算装置的实例,且图10中图解说明笔记本计算机的实例。典型的移动计算装置900将共同地具有图9中图解说明的组件。举例来说,移动计算装置900可包含耦合到内部存储器902和触摸表面输入装置/显示器903的处理器901。触摸屏显示器903,例如电阻式感测触摸屏、电容式感测触摸屏、红外线感测触摸屏、声学/压电感测触摸屏或类似物。各种方面不限于任何特定类型的触摸屏显示器903或触摸板技术。另外,计算装置900可具有用于发送和接收电磁辐射的天线904,其连接到无线数据链路和/或耦合到处理器901的蜂窝式电话收发器905。计算装置900还可包含用于接收用户输入的物理按钮908。
虽然各种方面可为移动计算装置提供显著性能增强,但其它形式的计算装置,包含个人计算机和膝上型计算机,也可得益于对动态语言脚本的预先剖析。此些计算装置通常包含图10中图解说明的组件,其图解说明实例个人膝上型计算机1000。此个人计算机1000通常包含处理器1001,其耦合到易失性存储器1002和大容量非易失性存储器,例如磁盘驱动器1003。计算机1000还可包含耦合到处理器1001的压缩光盘(CD)和/或DVD驱动器1004。计算机装置1000还可包含若干连接器端口,其耦合到处理器901以用于建立数据连接或接纳外部存储器装置,例如用于将处理器901耦合到网络的网络连接电路1005。计算机1000可进一步耦合到键盘1008、例如鼠标1010等指向装置,以及显示器1009,如计算机领域中众所周知。
处理器901、1001可为任何可编程微处理器、微计算机或多处理器芯片,其可由软件指令(应用程序)配置以执行多种功能,包含本文描述的各种方面的功能。在一些移动装置中,可提供多个处理器901、1001,例如专用于无线通信功能的一个处理器和专用于运行其它应用程序的一个处理器。通常,软件应用程序在其经存取且加载到处理器901、1001中之前可存储在内部存储器902、1002中。在一些移动装置中,处理器901、1001可包含足以存储应用程序软件指令的内部存储器。在一些移动装置中,安全存储器可在耦合到处理器901、1001的单独存储器芯片中。内部存储器902、1002可为易失性或非易失性存储器,例如快闪存储器,或两者的混合物。为了本描述的目的,对存储器的一股参考指代可由处理器901、1001存取的所有存储器,包含内部存储器902、1002、插入到移动装置中的可装卸式存储器,以及处理器901、1001自身内的存储器。
前述方法描述和过程流程图仅作为说明性实例而提供且既定不要求或不暗示必须以所呈现的次序执行各种方面的框。如所属领域的技术人员将了解,前述方面中的步骤次序可以任何次序执行。例如“然后”、“随后”、“接着”等词语既定不限制框的次序,这些词语仅用以引导读者阅读方法的描述。此外,例如使用冠词“一”或“所述”以单数形式对权利要求元件的任何参考不应解释为将所述元件限于单数。
结合本文所揭示的方面描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或所述两者的组合。为了清楚地说明硬件与软件的这种可交换性,上文已大体上在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。将此类功能性实施为硬件还是软件取决于特定应用和对整个系统施加的设计约束。熟练的技术人员针对每一特定应用可以不同方式实施所描述的功能性,但不应将此类实施方案决策解释为造成与本发明的范围的脱离。
结合本文所揭示的方面描述的用以实施各种说明性逻辑、逻辑块、模块和电路的硬件可用经设计以执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,所述处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。或者,一些步骤或方法可由特定针对给定功能的电路执行。
在一个或一个以上示范性方面中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或一个以上指令或代码存储在非暂时性计算机可读或处理器可读存储媒体上或经由计算机可读媒体传输。本文揭示的方法或算法的步骤可在处理器可执行软件模块中体现,所述模块可驻留在非暂时性处理器可读或计算机可读存储媒体上。非暂时性处理器可读和计算机可读媒体可为可由计算机或计算装置的处理器存取的任何可用存储媒体。举例来说且并非限制,此类非暂时性处理器可读或计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、或可用来以指令或数据结构的形式载运或存储所要程序代码且可由计算机或计算装置的处理器存取的任何其它媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在非暂时性计算机可读媒体的范围内。另外,方法或算法的操作可作为代码和/或指令中的一者或任何组合或集合驻留在可并入到计算机程序产品中的非暂时性处理器可读媒体和/或非暂时性计算机可读媒体上。
提供对所揭示方面的先前描述是为了使得所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易了解对这些方面的各种修改,且在不脱离本发明精神或范围的情况下,本文所界定的一股原理可适用于其它方面。因此,本发明既定不限于本文展示的方面,而是应被赋予与所附权利要求书以及本文所揭示的原理和新颖特征一致的最广范围。

Claims (16)

1.一种用于对动态语言值中的安全性标签进行编码的方法,其包括:
分配所述动态语言值中的若干位以存储经编码标签;
保留所述经分配位中的一个位以表明安全性标签是否在第一模式或第二模式中编码;以及
用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。
2.根据权利要求1所述的方法,其进一步包括:
确定所述所保留位是否指示所述第一模式或所述第二模式被选定;
在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为被编码为独热位且执行逐位或运算;以及
在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。
3.根据权利要求1所述的方法,其中用识别发源域的安全性标签对所述动态语言值加标签包括在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。
4.根据权利要求1所述的方法,其中所述方法是使用选自由以下各项组成的群组的动态或脚本语言来实施:Ruby、PERL、Scala、Erlang、Candle和.NET语言。
5.一种计算装置,其包括:
用于分配动态语言值中的若干位以存储经编码标签的装置;
用于保留所述经分配位中的一个位以表明安全性标签是否在第一模式或第二模式中编码的装置;以及
用于用识别发源域的安全性标签对所述动态语言值加标签的装置,所述安全性标签是在所述第一模式或所述第二模式中编码。
6.根据权利要求5所述的计算装置,其进一步包括:
用于确定所述所保留位是否指示所述第一模式或所述第二模式被选定的装置;
用于在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为被编码为独热位且执行逐位或运算的装置;以及
用于在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作的装置。
7.根据权利要求5所述的计算装置,其中用于用识别发源域的安全性标签对所述动态语言值加标签的装置包括用于在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签的装置。
8.根据权利要求5所述的计算装置,其中用于分配动态语言值中的若干位的装置包括用于分配选自由以下各项组成的群组的语言中的若干位的装置: Ruby、PERL、Scala、Erlang、Candle和.NET语言。
9.一种计算装置,其包括:
存储器;以及
处理器,其耦合到所述存储器,其中所述处理器以处理器可执行指令配置以执行用于对动态语言值中的安全性标签进行编码的操作,所述操作包括:
分配所述动态语言值中的若干位以存储经编码标签;
保留所述经分配位中的一个位以表明所述安全性标签是否在第一模式或第二模式中编码;以及
用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。
10.根据权利要求9所述的计算装置,其中所述处理器以处理器可执行指令配置以执行
进一步包括以下各项的操作:
确定所述所保留位是否指示所述第一模式或所述第二模式被选定;
在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为被编码为独热位且执行逐位或运算;以及
在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。
11.根据权利要求9所述的计算装置,其中所述处理器以处理器可执行指令配置以使得用识别发源域的安全性标签对所述动态语言值加标签包括在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。
12.根据权利要求9所述的计算装置,其中所述处理器以处理器可执行指令配置以使得分配所述动态语言值中的若干位包括分配选自由以下各项组成的群组的语言中的若干位:PERL、Scala、Erlang、Candle和.NET语言。
13.一种其上存储有处理器可执行软件指令的非暂时性计算机可读存储媒体,所述处理器可执行软件指令经配置以致使处理器执行用于对动态语言值中的安全性标签进行编码的操作,所述操作包括:
分配所述动态语言值中的若干位以存储经编码标签;
保留所述经分配位中的一个位以表明所述安全性标签是否在第一模式或第二模式中编码;以及
用识别发源域的安全性标签对所述动态语言值加标签,所述安全性标签是在所述第一模式或所述第二模式中编码。
14.根据权利要求13所述的非暂时性计算机可读存储媒体,其中所述存储的处理器可执行软件指令经配置以致使处理器执行进一步包括以下各项的操作:
确定所述所保留位是否指示所述第一模式或所述第二模式被选定;
在确定所述所保留位指示所述第一模式被选定的情况下将安全性标签识别为经编码为独热位且执行逐位或运算;以及
在确定所述所保留位指示所述第二模式被选定的情况下将所述安全性标签识别为到存储实际标签信息的标签管理器数据结构中的参考且执行存储器读取操作。
15.根据权利要求13所述的非暂时性计算机可读存储媒体,其中所述存储的处理器可执行软件指令经配置以致使处理器执行操作以使得用识别发源域的安全性标签对所述动态语言值加标签包括在从源自其它域的脚本存取信息的脚本的数目小于所分配位的数目的情况下在所述第一模式中编码动态语言标签。
16.根据权利要求13所述的非暂时性计算机可读存储媒体,其中所述存储的处理器可执行软件指令经配置以致使处理器执行操作以使得分配所述动态语言值中的若干位包括分配选自由以下各项组成的群组的语言中的若干位: Ruby、PERL、Scala、Erlang、Candle和.NET语言。
CN201280054410.3A 2011-11-07 2012-09-28 对动态语言值中的安全性标签进行编码的方法和计算装置 Active CN103975336B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556658P 2011-11-07 2011-11-07
US61/556,658 2011-11-07
US13/399,136 US8898780B2 (en) 2011-11-07 2012-02-17 Encoding labels in values to capture information flows
US13/399,136 2012-02-17
PCT/US2012/057682 WO2013070334A1 (en) 2011-11-07 2012-09-28 Encoding labels in values to capture information flows

Publications (2)

Publication Number Publication Date
CN103975336A true CN103975336A (zh) 2014-08-06
CN103975336B CN103975336B (zh) 2016-10-26

Family

ID=48224691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280054410.3A Active CN103975336B (zh) 2011-11-07 2012-09-28 对动态语言值中的安全性标签进行编码的方法和计算装置

Country Status (9)

Country Link
US (1) US8898780B2 (zh)
EP (1) EP2776970B1 (zh)
JP (1) JP5707542B2 (zh)
KR (1) KR101542335B1 (zh)
CN (1) CN103975336B (zh)
ES (1) ES2707866T3 (zh)
HU (1) HUE041676T2 (zh)
IN (1) IN2014CN03105A (zh)
WO (1) WO2013070334A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475315A (zh) * 2016-01-27 2018-08-31 竹田优太 处理系统、处理方法及程序
CN109213502A (zh) * 2017-06-30 2019-01-15 上海连尚网络科技有限公司 应用更新方法和装置
CN113808252A (zh) * 2021-08-19 2021-12-17 广西电网有限责任公司 基于交互性标签和宏的三维模型逐级重建方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171028B1 (en) * 2013-06-11 2015-10-27 Google Inc. Method of maintaining a large set of taint labels
JP6114480B2 (ja) * 2014-08-11 2017-04-12 日本電信電話株式会社 構築装置、構築方法、および、構築プログラム
CN108140100B (zh) * 2015-10-28 2021-10-08 赫尔实验室有限公司 维护对象的安全标签和引用计数的系统、方法和介质
US11403418B2 (en) * 2018-08-30 2022-08-02 Netskope, Inc. Enriching document metadata using contextual information
US10382518B2 (en) * 2016-03-22 2019-08-13 Google Llc Low latency applications using multiple servers
CN111770170B (zh) 2020-06-29 2023-04-07 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质
CN111949950A (zh) * 2020-08-20 2020-11-17 郑州昂视信息科技有限公司 一种应用软件的异构方法及系统
US11848949B2 (en) 2021-01-30 2023-12-19 Netskope, Inc. Dynamic distribution of unified policies in a cloud-based policy enforcement system
CN114003412A (zh) * 2021-12-27 2022-02-01 支付宝(杭州)信息技术有限公司 小程序和宿主程序进行通信的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230949A1 (en) * 2003-05-14 2004-11-18 Vanish Talwar Native language verification system and method
US20070006294A1 (en) * 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
US20070256117A1 (en) * 2006-05-01 2007-11-01 Patrick Shomo Systems and methods for the secure control of data within heterogeneous systems and networks
CN101160574A (zh) * 2004-05-28 2008-04-09 富可视公司 具有基于标签的通信协议的图像处理系统和方法
JP2008299414A (ja) * 2007-05-29 2008-12-11 Internatl Business Mach Corp <Ibm> コンテンツ処理システム、方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627766B2 (en) * 2003-07-11 2009-12-01 Computer Associates Think, Inc. System and method for providing java server page security
US8732856B2 (en) * 2004-12-30 2014-05-20 Oracle International Corporation Cross-domain security for data vault
US20070107057A1 (en) * 2005-11-10 2007-05-10 Docomo Communications Laboratories Usa, Inc. Method and apparatus for detecting and preventing unsafe behavior of javascript programs
NO326590B1 (no) * 2007-04-16 2009-01-19 Kubekit As Fremgangsmate og anordning for verifikasjon av informasjonstilgang i IKT-system med flere sikkerhetsdimensjoner og sikkerhetsniva.
AU2008253593A1 (en) 2007-05-18 2008-11-27 Secure Keys Pty Limited A security token and system and method for generating and decoding the security token
CN101662460B (zh) * 2008-08-25 2015-07-15 阿里巴巴集团控股有限公司 一种跨域通讯的方法、系统和装置
US8997217B2 (en) 2010-01-25 2015-03-31 Samsung Electronics Co., Ltd. Safely processing and presenting documents with executable text

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230949A1 (en) * 2003-05-14 2004-11-18 Vanish Talwar Native language verification system and method
CN101160574A (zh) * 2004-05-28 2008-04-09 富可视公司 具有基于标签的通信协议的图像处理系统和方法
US20070006294A1 (en) * 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
US20070256117A1 (en) * 2006-05-01 2007-11-01 Patrick Shomo Systems and methods for the secure control of data within heterogeneous systems and networks
JP2008299414A (ja) * 2007-05-29 2008-12-11 Internatl Business Mach Corp <Ibm> コンテンツ処理システム、方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475315A (zh) * 2016-01-27 2018-08-31 竹田优太 处理系统、处理方法及程序
CN109213502A (zh) * 2017-06-30 2019-01-15 上海连尚网络科技有限公司 应用更新方法和装置
CN109213502B (zh) * 2017-06-30 2022-09-27 上海尚往网络科技有限公司 应用更新方法和装置
CN113808252A (zh) * 2021-08-19 2021-12-17 广西电网有限责任公司 基于交互性标签和宏的三维模型逐级重建方法
CN113808252B (zh) * 2021-08-19 2024-02-27 广西电网有限责任公司 基于交互性标签和宏的三维模型逐级重建方法

Also Published As

Publication number Publication date
IN2014CN03105A (zh) 2015-07-03
KR101542335B1 (ko) 2015-08-05
US20130117845A1 (en) 2013-05-09
KR20140090240A (ko) 2014-07-16
WO2013070334A1 (en) 2013-05-16
EP2776970B1 (en) 2018-10-24
US8898780B2 (en) 2014-11-25
EP2776970A1 (en) 2014-09-17
JP5707542B2 (ja) 2015-04-30
ES2707866T3 (es) 2019-04-05
CN103975336B (zh) 2016-10-26
HUE041676T2 (hu) 2019-05-28
JP2015501961A (ja) 2015-01-19

Similar Documents

Publication Publication Date Title
CN103975336A (zh) 对值中的标签进行编码以俘获信息流
US10642904B2 (en) Infrastructure enabling intelligent execution and crawling of a web application
US11038894B2 (en) Providing selective access to resources
Luo et al. Attacks on WebView in the Android system
US20190034647A1 (en) Managing access to documents with a file monitor
CN106030528B (zh) 数据代理服务
CN104102880B (zh) 一种检测Android权限提升攻击的应用程序重写方法和系统
KR20110087195A (ko) 실행 가능 텍스트를 갖는 문서의 표시 장치 및 방법
US20150244737A1 (en) Detecting malicious advertisements using source code analysis
CN104199654A (zh) 开放平台的调用方法及装置
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
US20160315835A1 (en) Tracking content sharing across a variety of communications channels
CN104361294A (zh) 一种文档保护方法、设备以及系统
CN103973635A (zh) 页面访问控制方法和相关装置及系统
CN109325192B (zh) 一种广告防屏蔽的方法和装置
CN113364753A (zh) 反爬虫方法、装置、电子设备及计算机可读存储介质
CN105956459B (zh) 一种管理用户权限的方法与设备
CN104239514A (zh) 网页渲染方法、装置及移动终端
CN110674426B (zh) 网页行为上报方法和装置
CN107533614B (zh) 用于存储数据的装置和存储介质
Kerschbaumer et al. Towards precise and efficient information flow control in web browsers
Kavitha et al. Exploring the malicious android applications and reducing risk using static analysis
Roesner Designing application permission models that meet user expectations
Kaiya et al. Eliciting security requirements for an information system using asset flows and processor deployment
KR101305755B1 (ko) 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant