CN105793862A - 动态程序在隔离环境中的受指导执行 - Google Patents
动态程序在隔离环境中的受指导执行 Download PDFInfo
- Publication number
- CN105793862A CN105793862A CN201480066404.9A CN201480066404A CN105793862A CN 105793862 A CN105793862 A CN 105793862A CN 201480066404 A CN201480066404 A CN 201480066404A CN 105793862 A CN105793862 A CN 105793862A
- Authority
- CN
- China
- Prior art keywords
- test object
- computer program
- computing environment
- execution
- trustship
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
获得包括至少一个计算机程序的测试对象,该至少一个计算机程序包括动态可执行代码。该至少一个计算机程序被变换成被配置成在托管的隔离计算环境中执行的格式。在托管的隔离计算环境中发起对至少一个计算机程序的受指导执行。基于该受指导执行检测该至少一个计算机程序的动态代码弱点。
Description
背景
动态可执行代码(例如,JAVASCRIPT代码)可在执行期间被修改,并且这样的代码既可在在客户端本地的设备上也可在客户端外部的设备上执行。例如,随着web应用已变得受许多用户欢迎,这些应用可包括这样的动态可执行代码,并可经由在本地执行的代码(具有对在不受个体用户控制的外部设备上的可执行代码的潜在源的引用)来向用户提供服务,由此向个体用户引入了潜在的弱点。例如,跨站点脚本化已变成可能要花费大量的收入来解决的安全问题的显著来源。
作为示例,文档对象模型(DOM)XSS检测技术可依赖于通过解析网页及其资源的全部或部分来测试网站。基于此,分析可提供哪一个可导致页面上的潜在问题的警告。尽管该方法适合于发现一些安全隐错,但它可能提供假肯定,使得安全研究者会消耗进一步资源来确定什么是真实的错误而什么是预期的行为。此外,这样的静态分析可在其与检查动态语言有关的能力方面(例如,在尝试静态地在运行时期间的任何时间点确定动态语言程序的组成时)受限。这个领域的潜在挑战可包括:确定文件加载次序,考虑可在运行时构造而不可显式地表示在源中的应用编程接口(API)以及不在客户端上生成的页的其他元素。
解决这样的问题的方法可涉及创作加载和/或锻炼未经修改的实际页面的动态分析,同时将其与模糊/危险源(即,用户控制的且可被用于恶意目的的数据点)一起馈送。该方法可能是有效的,但是暴露出其自身的问题。例如,对于这些系统来说,执行可能是慢的。例如,测试可对实际页面执行,这可能具有不想要的负面效果(例如,引起支持服务器上的永久改变、将不合需的载荷放在站点上等等)。
概述
根据一个通用方面,系统可包括动态程序确认引擎,该动态程序确认引擎包括被配置成获得测试对象的对象采集组件,测试对象包括动态可执行代码。对象变换组件可被配置成将测试对象的至少一部分变换成被配置成在托管的隔离计算环境中执行的经变换格式的测试对象。受指导执行组件可被配置成发起对经变换格式的测试对象在托管的隔离计算环境中的受指导执行,并且弱点检测组件可被配置成基于该受指导执行来检测测试对象的动态代码弱点。
根据另一方面,可获得包括至少一个计算机程序的测试对象,该至少一个计算机程序包括动态可执行代码。该至少一个计算机程序被变换成被配置成在托管的隔离计算环境中执行的格式。该至少一个计算机程序的受指导执行可在托管的隔离计算环境中被发起。此外,该至少一个计算机程序的动态代码弱点可基于该受指导执行被检测到。
根据另一方面,有形地体现在计算机可读存储介质上的计算机程序产品可包括可执行代码,这些代码使至少一个数据处理装置获得包括至少一个计算机程序的测试对象,该至少一个计算机程序包括动态可执行代码。此外,数据处理装置可将该至少一个计算机程序变换成被配置成在托管的隔离计算环境中执行的格式。此外,数据处理装置可在托管的隔离计算环境中发起对至少一个计算机程序的受指导执行。此外,数据处理装置可基于该受指导执行来检测至少一个计算机程序的动态代码弱点。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。一个或多个实现的细节在以下的附图和说明书中阐述。其它特征将从描述和附图、以及权利要求书中显见。
附图简述
图1是示出用于在隔离计算环境中受指导执行动态程序的示例系统的框图。
图2是示出用于弱点检测的示例技术的框图。
图3是示出用于受指导执行动态程序的示例系统的框图。
图4A-4E是示出图3的系统的示例操作的流程图。
详细描述
引言
与可在执行期间修改的动态可执行代码(例如,JAVASCRIPT代码)相关联的问题可经由跨站点脚本化(XSS)来表明其自身,跨站点脚本化可变成可花费显著的收入来解决的安全问题的显著来源。例如,(例如通过web开发)追查并解决可与web应用相关联的跨站点脚本化问题可花费显著的资源。由此,确保在web应用的开发阶段尽可能早的检测出XSS问题可以是有利的。例如,确保在恶意方发现弱点以供利用之前在应用代码中检测到这些弱点可以是有利的。
存在若干“风格”的XSS问题,其可涉及代码注入弱点。例如,反射型XSS可涉及本地客户端用户向web服务器发送请求,使得有效载荷被反射回给用户并在他/她的本地设备上执行。例如,持久型XSS可涉及第一方尝试将有效载荷(例如,恶意有效载荷)保存在另一方的数据库中。作为另一示例,客户端可请求文档或其他对象(例如,可包括标记代码(例如,可包括嵌入式动态可执行代码(诸如JAVASCRIPT)的超文本标记语言(HTML)代码)的网页,该标记代码可包括可请求可包括可能是恶意的有效载荷的源项从而导致在对象的代码(例如,经由浏览器)的客户端侧执行期间对恶意有效载荷的客户端侧请求的代码)。
本文中讨论的示例技术可解决可存在于客户端侧的跨站点脚本化问题(例如,一些不可信的数据可通过在客户端上(例如,在浏览器中)运行的JAVASCRIPT(JS)代码按不安全的方式处理)。
根据本文中讨论的示例技术,页面的“快照”可被获得(例如,经由下载/关闭所有关联的HTML/JS/其他资源来获取)到盘或到任何其他类型的存储介质。例如,该快照可被重写或加载到提供仿真DOM的隔离计算环境(例如,沙盒环境)。例如,沙盒代码可按预期会暴露DOMXSS问题的受指导方式来执行。例如,各种技术/优化可提供对待测页面的更快的锻炼。
本文中讨论的示例技术可允许安全研究员通过以下来发现页面上的DOMXSS弱点隐错:锻炼页面内的执行路径,从而向该页面提供预定义的有效载荷集合。
数据处理领域的技术人员可领会,对JAVASCRIPT的静态分析至少由于以上讨论的问题而在本质上可能是困难的。此外,页面资源可以被延迟加载。JAVASCRIPT的异步特性可进一步增加对代码执行进行静态建模的难度。例如,JAVASCRIPT可用于在运行时构建新JS行为(例如,包括脚本加载,DOM元素的具有事件处理程序的属性,以及可能对新类型、方法等的大规模构建)。
对页面的动态分析一般具有要对其起作用的完整得多的数据。然而,在这些环境中引发包括正确性问题和安全问题的特定执行路径可能是有挑战性的。本文中的特定问题是DOM(以及JAVASCRIPT内建本身)的运行时行为不在测试应用的完全控制之下。
本文中讨论的示例技术可提供一种系统,该系统准许在特定时间点对表示页面的静态资源集合的系统性、任意执行。示例离线/沙盒分析可被任意地修改/再现等,而不会增加实际资源的负担,从而有助于减少对站点的影响。执行可能是快速的,因为实际的用户界面(UI)没有被渲染,并且作为用户动作的结果,任意事件都没有正在激发/层叠。在大型的可能代码入口点集合可按系统性方式被检测到并被执行的情况下,分析是全面的。
根据本文中讨论的示例技术,任意点处的执行状态可被捕捉,从而允许重置到先前条件(例如,允许附加有效载荷到先前执行的功能的更高效的递送)。此外,例如,该分析可被容易地重新用于包括动态代码(例如,JAVASCRIPT)执行的其他程序环境。
本文中讨论的示例技术可提供页面采集和重写组件、隔离的JAVASCRIPT执行环境和用于模仿/仿真DOM的能力以及其他运行时可用的API。例如,受指导执行组件可标识可调用函数,从而向其提供受指导有效载荷,并且程序环境/DOM检查组件既可检查当前页面状态以便确定作为执行的结果是否有不期望的/不可信的数据被注入到了该页面中,又可简单地模仿/接收从指示示例测试工具已成功引发了对任意代码的执行的JavaScript方法的回调。
根据本文中讨论的示例技术,当前DOM状态可被高效地管理,从而允许测试“重置”到原本可能重现起来是昂贵的先前条件(例如,现有状态)(例如以便用替换的有效载荷、仿真的DOM/运行时行为等执行附加测试)。
图1是示出用于在隔离计算环境中受指导执行动态程序(例如,沙盒受指导执行)的示例系统的框图。如图1所示,用户102可与web浏览器104交互,web浏览器104可请求来自始发服务器106的信息(例如,文档、其他对象、资源)。例如,web浏览器104可(例如,通过从始发服务器106下载)获得测试对象,诸如web页面108。web浏览器104被示为具有可用于对web页面108进行典型处理/渲染的对象模型110和执行引擎112。
然而,在图1中,web页面可被复制或克隆(104)成经克隆的web页面116,该经克隆的web页面116可被存储在沙盒执行环境118中,沙盒执行环境118可包括模仿对象模型120和执行引擎122,该执行引擎122与web浏览器(104)的执行引擎112分开,如以下进一步讨论的。
图2是示出用于弱点检查的示例技术的框图。如图2中所示,弱点检测系统202可包括模仿引擎204、下载器206、DOM解析器208、执行引擎210和弱点检测器212。如图2所示,页面通用资源标识符(URI)可被提交给模仿引擎204,使得可对被引用页面检测潜在弱点。示例测试对象(例如,网页)可(例如由下载器206)基于所提交的URI来下载。模仿引擎204可解析测试对象(例如,解析超文本标记语言(HTML)和层叠样式表(CSS)),并可创建存储器中的文档对象模型(DOM)的深度复制版本。
例如,能够在进行中改变DOM的潜在槽(sink)函数(例如,document.write(文档.写))可被模仿并可具有一输出,该输出稍后由该系统来检查。例如,模仿引擎204可用各种有效载荷来污染(214)可能的输入(例如,通用资源定位符(URL)、文本区域)(即,将已知或预定的有效载荷插入用户可修改的代码区域)。例如,感兴趣的方法可能过载。
根据本文中讨论的示例技术,下载器206可下载页面资源(例如,页面引用的资源及其引用的页面)。DOM解析器208可解析DOM并加载DOM树,如以下进一步讨论的。例如,作为变换经下载的项的一部分,可将经下载的引用页面资源的名称修改为本地名称,以供存储在本地设备上,该本地设备在托管的隔离计算环境(例如,沙盒环境)内。例如,对页面内的页面资源的引用可被经修改的名称替换。
在变换后,经变换的页面被提交(216)给执行引擎210执行。例如,DOM上的不同执行路径可由执行引擎210来锻炼(218)(例如,所有DOM事件,即页面载荷)。例如,感兴趣的方法(例如,函数)可由执行引擎210来执行。
根据本文中讨论的示例技术,存储器中DOM可在执行(220)后检查。根据本文中讨论的示例技术,到“危险的”槽的输入可被截取(222)。例如,到DOM的改变可被观察(224)到以确定插入的有效载荷是否被执行。例如,如果有效载荷出现在DOM上,则该有效载荷可被确定为DOMXSS弱点,该DOMXSS弱点可作为结果226来报告。
数据处理领域的技术人员将认识到可以存在许多完成本文讨论的受指导执行动态程序的方式,而不背离本文讨论的精神。
II.示例操作环境
在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施例特征,并且不旨在被解释为限制到仅为那些详细的描述。
如本文中进一步讨论的,图3是用于在隔离环境中受指导执行动态代码的系统300的框图。如图3所示,系统300可包括包含至少一个处理器302的设备304。设备302可包括动态程序确认引擎306,该动态程序确认引擎306可包括可被配置成获得包括动态可执行代码314的测试对象310的对象采集组件308。作为示例,测试对象310可包括至少一个计算机程序312。例如,测试对象310可包括网页,该网页可包括超文本标记语言(HTML)和JAVASCRIPT代码或者嵌入在标记语言中的其他可执行脚本。然而,测试对象310也可包括其他类型的数据/信息。
根据一示例实施例,动态程序确认引擎306或其一个或多个部分可包括可被存储在有形计算机可读存储介质上的可执行指令,如下所讨论。根据一示例实施例,计算机可读存储介质可包括任何数量的存储设备以及任何数量的存储介质类型,包括分布式设备。
在该上下文中,“处理器”可包括被配置成处理与处理系统关联的处理指令的单个处理器或多个处理器。处理器由此可包括以并行方式和/或分布式方式处理指令的一个或多个处理器。尽管设备处理器304在图3中被描绘为在动态程序确认引擎304外部,但数据处理领域的技术人员将理解,设备处理器304可被实现为单个组件和/或可位于动态程序确认引擎306和/或其任何元件的内部或外部的分布式单元。
例如,系统300可包括一个或多个处理器304。例如,系统300可包括存储可由一个或多个处理器304执行的指令的至少一个有形计算机可读存储介质,可执行指令被配置成使至少一个数据处理装置执行与包括在系统300中的各个示例组件相关联的操作,如本文所讨论地。例如,一个或多个处理器304可被包括在至少一个数据处理装置中。数据处理领域的技术人员将理解,存在可根据本文的讨论配置的处理器和数据处理装置的许多配置,而不背离这样的讨论的精神。
在本上下文中,“组件”可指的是可被配置成执行某些操作的指令或硬件。这样的指令可被包括在指令的组成群组内,或可跨多于一个群组分布。例如,与第一组件的操作相关联的一些指令可被包括在与第二组件(或更多组件)的操作相关联的指令的群组中。例如,此处的“组件”可以指一种类型的计算实体,该计算实体配置有可由指令实现的功能,这些指令可以位于单个实体中或者可以分散或分布在多个实体上,并且可以与同其它组件相关联的指令和/或硬件重叠。
根据一示例实施例,动态程序确认引擎306可关联于一个或多个用户设备来被实现。例如,动态程序确认引擎306可与一个或多个服务器通信,如以下进一步讨论。
例如,实体储存库316可包括一个或多个数据库,且可经由数据库接口组件318来访问。数据处理领域的技术人员将理解,存在用于存储本文中所讨论的储存库信息的许多种技术,诸如各种类型的数据库配置(例如关系数据库、分层数据库、分布式数据库)和非数据库配置。
根据一示例实施例,动态程序确认引擎306可包括可存储测试对象310(例如或其表示)的存储器320。在该上下文中,“存储器”可包括被配置成存储数据和/或指令的单个存储器设备或多个存储器设备。此外,存储器320可跨多个分布式存储设备。
根据一示例实施例,用户接口组件322可管理用户324与动态程序确认引擎306之间的通信。用户324可与接收设备326相关联,接收设备326可与显示器328和其它输入/输出设备相关联。例如,显示器328可被配置成经由内部设备总线通信或经由至少一个网络连接与接收设备326通信。
根据示例实施例,显示器328可被实现为平面屏幕显示器、印刷形式显示器、二维显示器、三维显示器、静态显示器、移动显示器、传感显示器(诸如触觉输出、听觉输出以及任何其它形式输出)以用于与用户(例如,用户324)通信。
根据一示例实施例,动态程序确认引擎306可包括网络通信组件330,该网络通信组件330可动态程序确认引擎306和可经由至少一个网络332与动态程序确认引擎306通信的其它实体之间的网络通信。例如,网络332可包括因特网、至少一个无线网络、或至少一个有线网络的至少其中之一。例如,网络332可包括蜂窝网络、无线电网络或可支持用于动态程序确认引擎306的数据传输的任何类型的网络。例如,网络通信组件330可管理动态程序确认引擎306与接收设备326之间的网络通信。例如,网络通信组件330可管理用户接口组件322与接收设备326之间的网络通信。
对象变换组件356可被配置成将测试对象310的至少一部分变换成被配置成在托管的隔离计算环境中执行的经变换格式的测试对象357。例如,托管的隔离计算环境可包括本地托管的沙盒计算环境。例如,托管的隔离计算环境可包括在仅单个托管实体的控制之下的计算环境。例如,单个托管实体可以是(例如,在单个计算设备上或(例如,以分布式方式)在多个设备上)对测试对象310进行测试期间的存储和执行的单独变换器和持久保存器。例如,测试/分析可仅使用在动态程序确认引擎306的用户的本地测试工具的控制下的资源在本地进程边界内全面地执行。
受指导执行组件340可被配置成发起在托管的隔离计算环境中对经变换格式的测试对象357的受指导执行。
弱点检测组件344可被配置成基于该受指导执行来检测测试对象310的动态代码弱点。
例如,受指导执行组件340可被配置成发起在不访问用于获得测试对象310的非本地源服务器且不访问被测试对象310引用的非本地被引用服务器的情况下在托管的隔离计算环境中对经变换格式的测试对象357的受指导执行。
例如,可在不使用浏览器的情况下在托管的隔离计算环境内执行受指导执行,托管的隔离计算环境包括在仅单个托管实体的控制下的计算环境。
例如,受指导执行可包括:在不需使用浏览器的情况下在托管的隔离计算环境内实例化包括在测试对象310中的至少一个计算机程序312的实例,托管的隔离计算环境包括在仅单个托管实体的控制下的计算环境,其中对被引用内容项352的引用被解析成对已在托管的隔离计算环境本地获得并被存储在托管的隔离计算环境内的被引用内容项352的副本346的引用;并迭代通过至少一个计算机程序312的所有不同执行路径以检测动态代码弱点。
例如,获得测试对象310可包括从初始源服务器350获得第一网页348,并且从被从初始源服务器350获得的内容引用的一个或多个被引用源354获得一个或多个被引用内容项352。
例如,测试对象310的至少一部分可被变换成被配置成在不访问用于获得测试对象310的非本地源服务器且不访问被测试对象310引用的非本地被引用服务器的情况下在托管的隔离计算环境中执行的格式。
例如,重置组件358可被配置成在测试期间将经变换格式的测试对象357的状态重置到先前版本。例如,测试对象和/或经变换格式的测试对象357的状态可在测试/分析进行时保留以允许这样的重置。
例如,变换测试对象的至少一部分可包括:在从托管的隔离计算环境外部的一个或多个被引用源354下载被引用内容项后,用对应于位于托管的隔离计算环境中的通用资源标识符的本地引用名称来替换被引用内容项的项名称,其中被引用内容项352被存储在本地;以及用本地引用名称中的相应一个本地引用名称来替换包括在至少一个计算机程序的代码中的通用资源标识符(URI),该至少一个计算机程序被包括在测试对象中。
例如,对象变换组件356可被配置成将测试对象310的至少一部分变换成本地存储的文档对象模型(DOM)格式360,该本地存储的文档对象模型格式360被配置成对包括在测试对象310中的至少一个计算机程序312进行建模,其中通用资源标识符(URI)被修改为仅引用位于托管的隔离计算环境本地的项。
例如,对象检测组件362可被配置成检测经变换格式的测试对象357,以用于测试动态可执行代码314的至少一部分,以获得跨站点脚本化(XSS)弱点。
例如,弱点检测组件344可被配置成在托管的隔离计算环境中本地地进行受指导执行后,基于确定经变换的DOM格式360的状态从初始经变换状态364到经改变的状态366的一个或多个改变来检测测试对象310的动态代码弱点。例如,可确定执行期间的输入没有被“杀毒”,使得在受指导执行期间或受指导执行后,(从用户角度而言)无法接受或不想要的内容出现在DOM上。作为示例,可专用于可执行代码的字符可能没有被“杀毒”,由此指示执行期间对可执行的(例如,可能恶意的)代码的潜在输入。
例如,本文中讨论的示例技术可替换可能无法接受的槽函数,从而允许分析数据(例如,测试有效载荷)以确定这样的槽函数的执行的可能不合需的效果(例如,在实际执行期间可从外部源潜在地输入可执行代码的无法接受的槽函数)。
例如,确定经变换的DOM格式360的一个或多个改变可包括确定动态可执行代码314是否被配置用于将动态可执行代码在执行时修改为从用户角度而言不可接受的执行状态。例如,不可接受的执行状态可包括注入的恶意代码执行状态。
例如,对经变换格式的测试对象357的受指导执行可包括仅使用在动态程序确认引擎306的用户的本地测试工具的控制下的资源在本地进程边界内全面地执行的对经变换格式的测试对象357的受指导执行。
例如,对经变换格式的测试对象357的受指导执行可包括仅使用在本地测试工具的控制之下的资源在本地进程边界内执行的对经变换格式的测试对象357的受指导执行,作为处理所述测试对象310的浏览器的不被配置成完全在托管的隔离计算环境内执行的后台进程。
例如,弱点检测组件344可被配置成在通过本地测试工具进行测试后,基于至少一个计算机程序312的一个或多个检测到的动态代码弱点来发起对包括在测试对象310中的至少一个计算机程序312的一个或多个执行路径的阻挡。
例如,弱点检测组件344可被配置成提供关于测试对象310的动态代码弱点的报告368。
例如,获得的测试对象310可被静态地分析,以确定槽函数以及入口点的位置。例如,对槽函数和/或入口点的分析可由对象采集组件308来执行。例如,对槽函数和/或入口点的分析可由对象变换组件308和/或动态程序确认组件306中的其他组件来执行。
例如,代码入口点可包括代码中的执行起点,这些起点不在代码开发者的控制之下。作为一示例,入口点可由事件处理程序在执行期间调用。
例如,分析可标识代码中预期被浏览器调用的各位置。例如,本文中讨论的示例技术可随后在本地托管的隔离计算环境内承担这样的调用的责任,由此提供可在实际执行中使用浏览器的实际用户的一种类型的“代用品”。本文中讨论的示例技术可进一步向一个或多个外部服务器的一种类型的“代用品”提供实际执行中可请求的外部数据源,而不是从本体托管的隔离计算环境内提供输入数据。
例如,槽函数可在执行期间处理比输出流更多的输入流。
例如,可获得引用测试对象310的通用资源标识符(URI),测试对象310位于不在执行受指导执行的本地测试工具的控制之下的外部资源处。
例如,动态可执行代码314可包括JAVASCRIPT代码。
例如,示例代码片段可包括如示例1中所示的HTML源代码:
示例1
如示例1的代码片段中所示出的,HTML代码包括具有参数“str”的函数"TestSource1"(在第5行),该函数是通过“document.write”语句来写的(第8行)。如第13行中所示出的,输入类型为"button(按钮)",其中单击(onclick)该按钮,输入来自"TestSource1(document.location.hash)"。
该代码的示例有效载荷可被如下获得:
<script>window.alert('DomXSS');</script>(1)
例如,通过检查,该内容将与该有效载荷相同。
根据本文中讨论的示例技术,如果HTML解析被执行以验证该最终输出,则示例1的第8行的“document.write”命令可用其他代码(例如用“[HtmlElement].value==queryString.content”)替换。
数据处理领域的技术人员将理解,可使用许多不同的技术来在托管的隔离计算环境中受指导执行动态程序(例如,沙盒受指导执行),而不背离本文讨论的精神。
III.流程图描述
在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施例特征,并且不旨在被解释为限制到仅为那些详细的描述。
图4A-4E是示出根据示例实施例的图3的系统的示例操作的流程图。在图4A的示例中,可获得(402)包括动态可执行代码的测试对象。例如,测试对象可包括至少一个计算机程序。例如,对象采集组件308可获得包括动态可执行代码314的测试对象310,如以上所讨论的。
可将测试对象的至少一部分变换成经变换格式的测试对象,该经变换格式的测试对象被配置成在托管的隔离计算环境中执行(404),如以上所讨论的。
可在托管的隔离计算环境中发起对经变换格式的测试对象的受指导执行(406)。例如,受指导执行组件340可在托管的隔离计算环境中发起对经变换格式的测试对象357的受指导执行,如以上所讨论的。
可基于该受指导执行检测测试对象的动态代码弱点(408)。例如,弱点检测组件344可基于该受指导执行来检测测试对象310的动态代码弱点,如以上所讨论的。
例如,托管的隔离计算环境可包括在仅单个托管实体的控制之下的计算环境(410)。
例如,在图4B的示例中,受指导执行可包括在不使用浏览器的情况下在托管的隔离计算环境内执行的静态测试,该托管的隔离计算环境包括在仅单个托管实体的控制之下的计算环境(412)。
例如,受指导执行可包括:在不使用浏览器的情况下在托管的隔离计算环境内实例化包括在测试对象中的至少一个计算机程序的实例,托管的隔离计算环境包括在仅单个托管实体的控制之下的计算环境,其中对被引用内容项的引用被解析成对已在托管的隔离计算环境本地获得并被存储在托管的隔离计算环境内的被引用内容项的副本的引用;以及,迭代通过该至少一个计算机程序的所有不同的执行路径以检测动态代码弱点(414)。
例如,获得测试对象可包括从初始源服务器获得第一网页,以及从被从初始源服务器获得的内容引用的一个或多个被引用内容源处获得一个或多个被引用内容项(416)。
例如,获得的测试对象可被静态地分析以确定槽函数和入口点的位置(418)。
例如,在图4C的示例中,至少一个计算机程序可被变换成被配置成在不访问用于获得测试对象的非本地源服务器并且不访问被至少一个计算机程序引用的非本地被引用服务器的情况下在托管的隔离计算环境中执行的格式(420)。例如,对象变换组件356可将至少一个计算机程序312变换成被配置成在不访问用于获得测试对象310的非本地源服务器并且不访问被至少一个计算机程序312引用的非本地被引用服务器的情况下在托管的沙盒环境342中执行的格式(312),如以上所讨论的。
例如,经变换格式的测试对象的状态可在测试期间被重置到先前版本(422)。例如,重置组件358可在测试期间将经变换格式的测试对象357的状态重置到先前条件,如以上所讨论的。
例如,变换测试对象310的至少一部分可包括:在从在托管的隔离计算环境外部的一个或多个被引用源处下载被引用内容项后,用对应于位于托管的隔离计算环境中的通用资源标识符(RUI)的本地引用名称来替换被引用内容项的项名称,其中被引用内容项被存储在本地;以及,用本地引用名称中对应的一个本地引用名称来替换包括在至少一个计算机程序中的代码中的通用资源标识符(URI),该至少一个计算机程序被包括在测试对象中。
例如,可获得引用测试对象的通用资源标识符(URI),测试对象位于不在执行受指导执行的本地测试工具的控制之下的外部资源处(426)。
例如,动态可执行代码可包括JAVASCRIPT代码(428)。
例如,在图4D的示例中,可将测试对象的至少一部分变换成本地存储的文档对象模型(DOM)格式,该本地存储的文档对象模型格式被配置成对包括在测试对象中的至少一个计算机程序进行建模,其中通用资源标识符(URI)被修改为仅引用位于托管的隔离计算环境本地的项(430)。例如,对象变换组件356可将测试对象310的至少一部分变换成本地存储的文档对象模型(DOM)格式360,该本地存储的文档对象模型格式360被配置成对包括在测试对象310中的至少一个计算机程序312进行建模,其中通用资源标识符(URI)被修改为仅引用位于托管的隔离计算环境本地的项,如以上所讨论的。
例如,可检测经变换格式的测试对象来测试动态可执行代码的至少一部分以得到跨站点脚本化(XSS)弱点(432)。例如,对象检测组件362可检测经变换格式的测试对象357来测试动态可执行代码314的至少一部分以得到跨站点脚本化(XSS)弱点,如以上所讨论的。
例如,在托管的隔离计算环境本地中的受指导执行后,可基于确定经变换DOM格式的状态从初始经变换状态到经改变的状态的一个或多个改变来检测测试对象的动态代码弱点。例如,弱点检测组件344可在托管的隔离计算环境本地中的受指导执行后,基于确定经变换DOM格式360的状态从初始经变换状态364到经改变的状态366的一个或多个改变来检测测试对象310的动态代码弱点,如以上所讨论的。
例如,确定经变换DOM格式的状态一个或多个改变包括确定动态可执行代码是否被配置用于将动态可执行代码在执行时修改为从用户角度而言无法接受的执行状态(436)。
例如,在图4E的示例中,对经变换格式的测试对象的受指导执行可包括仅使用在动态程序确认引擎的用户的本地测试工具的控制之下的资源在本地进程边界内全面地执行的对经变换格式的测试对象的受指导执行。
例如,对经变换格式的测试对象的受指导执行可包括仅使用在本地测试工具的控制之下的资源在本地进程边界内执行的对经变换格式的测试对象的受指导执行,作为处理所述测试对象的浏览器的不被配置成完全在托管的隔离计算环境内执行的后台进程(440)。
例如,在本地测试工具检测到包括在测试对象中的至少一个计算机程序的一个或多个检测到的动态代码弱点后,可基于该一个或多个检测到的动态代码弱点发起对该至少一个计算机程序的一个或多个执行路径的阻挡(442)。例如,弱点检测组件344可在本地测试工具检测到至少一个计算机程序312的一个或多个检测到的动态代码弱点后,可基于该一个或多个检测到的动态代码弱点发起对该至少一个计算机程序312的一个或多个执行路径的阻挡,如以上所讨论的。
例如,可提供测试对象的动态代码弱点的报告(444)。例如,弱点检测组件344可提供测试对象310的动态代码弱点的报告368,如以上所讨论的。
数据处理领域的技术人员将理解,可存在执行对动态程序的受指导执行的许多方式,而不背离本文讨论的精神。
多年来,在数据处理环境中一直考虑顾客隐私和机密。因此,用于动态程序的受指导执行的示例技术可使用用户输入和/或用户提供的数据,用户经由一个或多个订阅协议(例如,“服务条款”(TOS)协议)向相关联的应用或与这样的分析相关联的服务提供了许可。例如,用户可提供同意使其输入/数据在设备上传送和存储,尽管明确指出(例如,经由用户接受的协议)每一方可控制传送和/或存储如何进行,以及如果有则可维持什么级别的存储或存储的持续时间。将理解,任何用户输入/数据都可根据任何相关管辖权的隐私法律和规则来获得。
在此描述的各种技术的各实现可以实现为数字电子电路,或计算机硬件、固件、软件或它们的组合(例如,被配置成执行指令以执行各种功能的装置)。
实现可被实现为包含在诸如纯传播信号等纯信号中的计算机程序。此类实现在此将被称为经由“计算机可读传输介质”来实现。
或者,各实现可被实现为被包含在机器可用或机器可读存储设备(例如诸如通用串行总线(USB)存储设备等磁性或数字介质、磁带、硬盘驱动、紧致盘、数字视频盘(DVD)等等)中或在被传播的信号中)中的计算机程序,用于由数据处理设备(例如,可编程的处理器、计算机或多个计算机)的操作执行或控制数据处理设备的操作。此类实现在此可被称为经由“计算机可读存储介质”或“计算机可读存储设备”实现并由此不同于作为诸如纯传播信号等纯信号的实现。
诸如以上描述的计算机程序等的计算机程序能以任何形式的编程语言(包括编译、解释或机器语言)撰写,并能以任何形式部署,包括作为独立程序或作为模块、组件、子例程、或其他适于在计算环境中使用的单元。计算机程序可被有形地体现为机器可使用或机器可读存储设备(例如,计算机可读介质)上的可执行代码(例如,可执行指令)。可实现以上讨论的技术的计算机程序可被部署以在一个站点处的一个计算机或多个计算机上执行或跨多个站点分布并通过通信网络相互连接。
各方法步骤可由一个或多个可编程处理器来执行,该一个或多个可编程处理器执行计算机程序以便通过对输入数据进行操作并生成输出来执行功能。一个或多个可编程处理器可并行地执行指令,和/或可被以分布式配置来安排以进行分布式处理。本文讨论的示例功能还可由一个或多个硬件逻辑组件执行,且装置可至少部分被实现为一个或多个硬件逻辑组件。例如,不作为限制,可使用的硬件逻辑组件的说明性类型可包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)系统以及复杂可编程逻辑器件(CPLD)等。
适于执行计算机程序的处理器可包括,作为示例,通用和专用微处理器以及任何类型的数字计算机的任意一个或多个处理器。一般地,处理器接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的元件可包括用于执行指令的至少一个处理器以及用于存储指令和数据的一个或多个存储器设备。一般地,计算机还可包括或可被操作地耦合以接收来自一个或多个大容量存储设备(例如,磁性、磁光盘、或光盘)的数据或将数据发送到大容量存储设备以供存储数据或两者。适于实现计算机程序指令和数据的信息载体包括所有形式的非易失存储器,包括,作为示例,半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或被合并到专用逻辑电路中。
为了提供与用户的交互,各实现可在具有用于向用户显示信息的显示设备(例如,阴极射线管(CRT)、液晶显示器(LCD)、或等离子监视器)以及用户能借此向计算机提供输入的键盘和定点设备(例如,鼠标或追踪球)的计算机上实现。其他种类的设备也能被用以提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈。例如,可经由任何形式的感官输出来提供输出,这些感官输出包括(但不限于)视觉输出(例如,视觉手势、视频输出)、音频输出(例如,语音、设备声音)、触觉输出(例如,触摸、设备移动)、温度、气味等。
此外,来自用户的输入可按照任何形式来接收,包括声音、语音或触觉输入。例如,可经由任何形式的感官输入来从用户接收输入,这些感官输入包括(但不限于)视觉输入(例如,手势、视频输入)、音频输入(例如,语音、设备声音)、触觉输入(例如,触摸、设备移动)、温度、气味等。
此外,自然用户界面(NUI)可被用于与用户接口。在这一上下文中,“NUI”可指的是使得用户能够以“自然”方式与设备交互而无需受诸如鼠标、键盘、遥控等输入设备强加的人为约束的任何接口技术。
NUI技术的示例可包括依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、话音和语音、视觉、触摸、姿势、以及机器智能的那些技术。示例NUI技术包括但不限于:触敏显示、话音和语音识别、意图和目的理解、使用深度相机(如立体相机系统、红外相机系统、RGB(红、绿、蓝)相机系统及其组合)的运动姿势检测、使用加速度计/陀螺仪的运动姿势检测、面部识别、3D显示、头部、眼睛和注视跟踪、浸入式增强现实和虚拟现实系统,所有这些都提供更自然的接口,以及用于使用电场传感电极(如脑电图仪(EEG)和相关技术)的传感大脑活动的技术。
实现可在包括后端组件(例如,作为数据服务器)的计算系统中实现、或可在包括中间软件层组件(例如,应用服务器)的计算系统中实现、或可在包括前端组件(例如,具有用户借此能与实现交互的图形用户界面或web浏览器的客户端计算机)的计算系统中实现、或可在包括这样的后端、中间软件层或前端组件的任意组合的计算系统中实现。各组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。尽管所描述的实现的某些特征已被如本文中所讨论的那样示出,但对于本领域的技术人员而言,现将发生许多修改、替换、改变和等同物。因此,将理解,所附权利要求书旨在覆盖如落在各实施例的范围内的所有这样的修改和改变。
Claims (10)
1.一种系统,包括:
包括至少一个处理器的设备,所述设备包括动态程序确认引擎,所述动态程序确认引擎包括被有形地体现在计算机可读存储介质上以供所述至少一个处理器执行的指令,所述动态程序确认引擎包括:
对象采集组件,所述对象采集组件被配置成获得包括动态可执行代码的测试对象;
对象变换组件,所述对象变换组件被配置成将所述测试对象的至少一部分变换成被配置成在托管的隔离计算环境中执行的经变换格式的测试对象;
受指导执行组件,所述受指导执行组件被配置成在所述托管的隔离计算环境中发起对经变换格式的测试对象的受指导执行;以及
弱点检测组件,所述弱点检测组件被配置成基于所述受指导执行来检测所述测试对象的动态代码弱点。
2.如权利要求1所述的系统,其特征在于:
所述受指导执行组件被配置成在不访问用于获得所述测试对象的非本地源服务器并且不访问被所述测试对象引用的非本地被引用服务器的情况下,在所述托管的隔离计算环境中发起对经变换格式的测试对象的受指导执行。
3.如权利要求1所述的系统,其特征在于:
所述受指导执行包括:在不使用浏览器的情况下在所述托管的隔离计算环境内实例化包括在所述测试对象中的至少一个计算机程序的实例,所述托管的隔离计算环境包括在仅单个托管实体的控制之下的计算环境,其中对被引用内容项的引用被解析成对已在所述托管的隔离计算环境本地获得并被存储在所述托管的隔离计算环境内的被引用内容项的副本的引用;以及,迭代通过所述至少一个计算机程序的所有不同执行路径以检测所述动态代码弱点。
4.如权利要求1所述的系统,其特征在于,进一步包括:
重置组件,所述重置组件被配置成在测试期间将经变换格式的测试对象的状态重置到先前版本。
5.如权利要求1所述的系统,其特征在于:
所述对象变换组件被配置成将所述测试对象的至少一部分变换成本地存储的文档对象模型(DOM)格式,所述本地存储的文档对象模型格式被配置成对包括在所述测试对象中的至少一个计算机程序进行建模,其中通用资源标识符(URI)被修改为仅引用位于所述托管的隔离计算环境本地的项。
6.如权利要求1所述的系统,其特征在于:
对经变换格式的测试对象的受指导执行包括仅使用在本地测试工具的控制之下的资源在本地进程边界内执行的对经变换格式的测试对象的受指导执行,作为处理所述测试对象的浏览器的不被配置成完全在托管的隔离计算环境内执行的后台进程。
7.如权利要求6所述的系统,其特征在于:
所述弱点检测组件被配置成在所述本地测试工具检测到包括在所述测试对象中的至少一个计算机程序的一个或多个检测到的动态代码弱点后,基于所述一个或多个检测到的动态代码弱点发起对所述至少一个计算机程序的一个或多个执行路径的阻挡。
8.一种方法,包括:
获得包括至少一个计算机程序的测试对象,所述至少一个计算机程序包括动态可执行代码;
将所述至少一个计算机程序变换成被配置成在托管的隔离计算环境中执行的格式;
在所述托管的隔离计算环境中发起对所述至少一个计算机程序的受指导执行;以及
基于所述受指导执行通过至少一个设备处理器检测所述至少一个计算机程序的动态代码弱点。
9.如权利要求8所述的方法,其特征在于,进一步包括:
静态地分析获得的测试对象以确定槽函数和入口点的位置。
10.一种有形地实现在计算机可读存储介质上并包括可执行代码的计算机程序产品,所述可执行代码使得至少一个数据处理装置:
获得包括至少一个计算机程序的测试对象,所述至少一个计算机程序包括动态可执行代码;
将所述至少一个计算机程序变换成被配置成在托管的隔离计算环境中执行的格式;
在所述托管的隔离计算环境中发起对所述至少一个计算机程序的受指导执行;以及
基于所述受指导执行检测所述至少一个计算机程序的动态代码弱点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/095,538 US9317694B2 (en) | 2013-12-03 | 2013-12-03 | Directed execution of dynamic programs in isolated environments |
US14/095,538 | 2013-12-03 | ||
PCT/US2014/067514 WO2015084664A1 (en) | 2013-12-03 | 2014-11-26 | Directed execution of dynamic programs in isolated environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105793862A true CN105793862A (zh) | 2016-07-20 |
CN105793862B CN105793862B (zh) | 2018-11-16 |
Family
ID=52339273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480066404.9A Active CN105793862B (zh) | 2013-12-03 | 2014-11-26 | 动态程序在隔离环境中的受指导执行 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9317694B2 (zh) |
EP (1) | EP3077950B1 (zh) |
CN (1) | CN105793862B (zh) |
WO (1) | WO2015084664A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321698A (zh) * | 2019-05-22 | 2019-10-11 | 北京瀚海思创科技有限公司 | 一种用于在云环境中保护业务安全的系统及方法 |
CN111108483B (zh) * | 2017-09-29 | 2023-11-03 | 西门子股份公司 | 用于识别原始程序中的弱点的方法、设备和测试程序 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201205117D0 (en) * | 2012-03-23 | 2012-05-09 | Saasid Ltd | Dynamic rendering of a document object model |
US9317694B2 (en) | 2013-12-03 | 2016-04-19 | Microsoft Technology Licensing, Llc | Directed execution of dynamic programs in isolated environments |
CN105279215A (zh) * | 2014-06-10 | 2016-01-27 | 中兴通讯股份有限公司 | 资源的下载方法及装置 |
US10223533B2 (en) * | 2014-10-21 | 2019-03-05 | Veracode, Inc. | Systems and methods for analysis of cross-site scripting vulnerabilities |
US9645838B2 (en) | 2015-06-30 | 2017-05-09 | International Business Machines Corporation | Automatic discovery of a JavaScript API |
US10162605B2 (en) * | 2016-07-20 | 2018-12-25 | Microsoft Technology Licensing, Llc | Code snippet content recommendation to define an object literal |
EP3287930A1 (en) * | 2016-08-26 | 2018-02-28 | Entit Software LLC | Javascript security testing |
US20210182054A1 (en) * | 2019-12-16 | 2021-06-17 | Intuit Inc. | Preventing unexpected behavior in software systems due to third party artifacts |
CN113704760B (zh) * | 2021-08-31 | 2024-05-24 | 深信服科技股份有限公司 | 一种页面检测方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110197272A1 (en) * | 2010-02-09 | 2011-08-11 | Webroot Software, Inc. | Low-Latency Detection of Scripting-Language-Based Exploits |
US20120174224A1 (en) * | 2010-12-30 | 2012-07-05 | Verisign, Inc. | Systems and Methods for Malware Detection and Scanning |
US8370938B1 (en) * | 2009-04-25 | 2013-02-05 | Dasient, Inc. | Mitigating malware |
CN102999420A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 基于dom的跨站脚本漏洞测试方法和系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836303B2 (en) | 2005-12-09 | 2010-11-16 | University Of Washington | Web browser operating system |
US9239745B1 (en) | 2006-09-28 | 2016-01-19 | Whitehat Security, Inc. | Method and apparatus for managing security vulnerability lifecycles |
US20090119769A1 (en) | 2007-11-05 | 2009-05-07 | Microsoft Corporation | Cross-site scripting filter |
US8949990B1 (en) | 2007-12-21 | 2015-02-03 | Trend Micro Inc. | Script-based XSS vulnerability detection |
US8601586B1 (en) | 2008-03-24 | 2013-12-03 | Google Inc. | Method and system for detecting web application vulnerabilities |
CN101964025B (zh) | 2009-07-23 | 2016-02-03 | 北京神州绿盟信息安全科技股份有限公司 | Xss检测方法和设备 |
US8499283B2 (en) | 2010-02-09 | 2013-07-30 | Webroot Inc. | Detection of scripting-language-based exploits using parse tree transformation |
US8683596B2 (en) | 2011-10-28 | 2014-03-25 | International Business Machines Corporation | Detection of DOM-based cross-site scripting vulnerabilities |
US9032529B2 (en) * | 2011-11-30 | 2015-05-12 | International Business Machines Corporation | Detecting vulnerabilities in web applications |
US10586049B2 (en) | 2011-12-22 | 2020-03-10 | International Business Machines Corporation | Detection of second order vulnerabilities in web services |
US20130185623A1 (en) * | 2012-01-12 | 2013-07-18 | International Business Machines Corporation | Instructing web clients to ignore scripts in specified portions of web pages |
US8752183B1 (en) * | 2012-07-10 | 2014-06-10 | Hoyt Technologies, Inc. | Systems and methods for client-side vulnerability scanning and detection |
US9317693B2 (en) | 2012-10-22 | 2016-04-19 | Rapid7, Llc | Systems and methods for advanced dynamic analysis scanning |
CN103095681B (zh) | 2012-12-03 | 2016-08-03 | 微梦创科网络科技(中国)有限公司 | 一种检测漏洞的方法及装置 |
CN104462962B (zh) | 2013-09-13 | 2018-07-03 | 北京安赛创想科技有限公司 | 一种检测未知恶意代码和二进制漏洞的方法 |
US9317694B2 (en) | 2013-12-03 | 2016-04-19 | Microsoft Technology Licensing, Llc | Directed execution of dynamic programs in isolated environments |
-
2013
- 2013-12-03 US US14/095,538 patent/US9317694B2/en active Active
-
2014
- 2014-11-26 EP EP14825206.7A patent/EP3077950B1/en active Active
- 2014-11-26 WO PCT/US2014/067514 patent/WO2015084664A1/en active Application Filing
- 2014-11-26 CN CN201480066404.9A patent/CN105793862B/zh active Active
-
2016
- 2016-04-07 US US15/092,663 patent/US9785778B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370938B1 (en) * | 2009-04-25 | 2013-02-05 | Dasient, Inc. | Mitigating malware |
US20110197272A1 (en) * | 2010-02-09 | 2011-08-11 | Webroot Software, Inc. | Low-Latency Detection of Scripting-Language-Based Exploits |
US20120174224A1 (en) * | 2010-12-30 | 2012-07-05 | Verisign, Inc. | Systems and Methods for Malware Detection and Scanning |
CN102999420A (zh) * | 2011-09-13 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 基于dom的跨站脚本漏洞测试方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111108483B (zh) * | 2017-09-29 | 2023-11-03 | 西门子股份公司 | 用于识别原始程序中的弱点的方法、设备和测试程序 |
CN110321698A (zh) * | 2019-05-22 | 2019-10-11 | 北京瀚海思创科技有限公司 | 一种用于在云环境中保护业务安全的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160300066A1 (en) | 2016-10-13 |
US20150154402A1 (en) | 2015-06-04 |
US9317694B2 (en) | 2016-04-19 |
CN105793862B (zh) | 2018-11-16 |
EP3077950A1 (en) | 2016-10-12 |
US9785778B2 (en) | 2017-10-10 |
EP3077950B1 (en) | 2018-10-10 |
WO2015084664A1 (en) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105793862A (zh) | 动态程序在隔离环境中的受指导执行 | |
CN105940654B (zh) | 特权静态被托管的web应用 | |
Tian et al. | {SmartAuth}:{User-Centered} authorization for the internet of things | |
US10769250B1 (en) | Targeted security monitoring using semantic behavioral change analysis | |
US9280665B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
CN106471466A (zh) | 短暂应用 | |
US11301357B1 (en) | Method to check application programming interface correctness in software | |
US20170300699A1 (en) | System, Method and Apparatus to Visually Configure an Analysis of a Program | |
CN106663018A (zh) | 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法 | |
US11431751B2 (en) | Live forensic browsing of URLs | |
CN104115117A (zh) | 用于安全性测试的单元测试的自动合成 | |
US10592068B1 (en) | Graphic composer for service integration | |
JP2015511038A (ja) | フォームに関係する検証 | |
US10346520B2 (en) | Techniques for monitoring version numbers of web frameworks | |
CN105164691A (zh) | 利用计算机网络为测试计算机软件应用优化测试数据有效载荷的选择 | |
Kim et al. | Dwroiddump: Executable code extraction from android applications for malware analysis | |
Lehman et al. | Hidden in plain sight: Exploring privacy risks of mobile augmented reality applications | |
US10747390B1 (en) | Graphical composer for policy management | |
Li | Mining androzoo: A retrospect | |
US11822673B2 (en) | Guided micro-fuzzing through hybrid program analysis | |
Phung et al. | A multi-party, fine-grained permission and policy enforcement framework for hybrid mobile applications | |
CN107766531B (zh) | 数据展示方法及装置、存储介质、电子设备 | |
Hidhaya et al. | Supplementary event-listener injection attack in smart phones | |
Franken | Security and Privacy Policy Bugs in Browser Engines | |
CN111371745B (zh) | 用于确定ssrf漏洞的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |