CN108475314A - 使用递增简档分析的信息流跟踪 - Google Patents
使用递增简档分析的信息流跟踪 Download PDFInfo
- Publication number
- CN108475314A CN108475314A CN201680078752.7A CN201680078752A CN108475314A CN 108475314 A CN108475314 A CN 108475314A CN 201680078752 A CN201680078752 A CN 201680078752A CN 108475314 A CN108475314 A CN 108475314A
- Authority
- CN
- China
- Prior art keywords
- application program
- risk
- execution
- execution route
- processor
- 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.)
- Pending
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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
-
- 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/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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
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)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
各种实施例可包含用于在软件应用程序的执行期间执行信息流跟踪的方法、装置和非暂时性处理器可读媒体。可使用混合静态/动态分析来在软件应用程序的执行期间跟踪信息流。在各种实施例中,所述方法可预测多个执行路径,且可利用这些预测来仅分析实际执行的软件代码。通过仅分析实际执行的软件代码,所述方法可提供在软件应用程序的执行期间出现实际数据泄露时检测所述实际数据泄露的轻量且资源高效的方式。
Description
背景技术
在整个软件执行过程中跟踪信息流可对恶意软件检测和隐私保护两者有用。在软件应用程序在计算装置上执行期间,编程或逻辑错误可能会使得应用程序容易被恶意软件或恶意作用者利用。由于此类利用,在软件应用程序的整个执行中操纵的数据可能曝光、“泄露”或丢失。与个人信息(例如身分证号码、纳税人识别编号、金融帐户信息等)的信息相关联的数据的曝光可能导致用户的私人信息被未知方获取,从而违反用户的隐私权。恶意软件应用程序可利用所获取的私人信息来向用户发广告,可将信息卖给第三方,或以其它方式误用用户的私人数据。
发明内容
各种实施例可包含方法、用于实施所述方法的装置,以及非暂时性处理器可读存储媒体,其包括致使处理器执行用于在计算装置上执行的应用程序中跟踪信息流的操作的指令。实施例方法可包含:接收应用程序风险评定,其包含可能导致数据在执行时泄露的应用程序代码的区段;以及产生应用程序执行简档,其包含所述应用程序的常用执行路径。实施例方法可进一步包含基于对所述应用程序执行简档执行第一分析以及所述应用程序风险评定,产生一或多个风险概述。实施例方法可进一步包含:在所述应用程序的执行期间,对所述应用程序执行第二分析,以识别当前执行路径和当前路径节段;以及基于在所述应用程序的执行期间对所述应用程序执行第二分析的结果,更新所述风险概述。
在一些实施例中,所述应用程序风险评定可由远程装置产生,其可为执行所述应用程序的稳健分析,以识别呈现潜在数据泄露的代码段。
在一些实施例中,所述第一分析可为在所述应用程序的执行之前执行的静态分析。
在一些实施例中,执行所述第二分析可包含:在所述应用程序的执行期间,跟踪执行路径,其中所跟踪的执行路径可为当前执行路径;以及确定所述当前执行路径是否为常用执行路径。此类实施例可进一步包含:响应于确定当前执行路径是常用执行路径,通过将风险概述与当前路径节段进行比较,来确定是否出现数据泄露;以及响应于确定出现数据泄露,起始警报。在此类实施例中,更新所述风险概述可包含:确定当前运行时条件是否使得有理由修改现有风险概述;以及响应于确定当前运行时条件使得有理由修改现有风险概述,修改现有风险概述。此类实施例可包含响应于确定当前执行路径不是常用执行路径,更新风险概述。此类实施例可进一步包含:对当前执行路径执行第一分析;以及基于具有与当前执行路径一样的路径节段的现有风险概述,产生新的风险概述。此类实施例可包含组合所述现有风险概述的若干部分,以产生新的风险概述。或者,此类实施例可包含划分现有风险概述的若干部分,以产生新的风险概述。
在一些实施例中,产生应用程序执行简档可包含:对所述应用程序的应用程序代码执行路径分析,以识别执行路径和相关联的路径节段;以及基于所识别的执行路径和路径节段产生安全路径图表。在此类实施例中,路径分析可为球-鸥(Ball-Larus)路径分析。
其它实施例可包含具有处理器的计算装置,所述处理器经配置以执行上文所描述的方法的操作。其它实施例可包含具有用于执行上文所描述的方法的功能的装置的计算装置。其它实施例包含一种上面存储有处理器可执行指令的非暂时性处理器可读存储媒体,所述指令经配置以致使计算装置的处理器执行上文所描述的方法的操作。
附图说明
并入本文且构成本说明书的一部分的附图说明所述方法和装置的示范性实施例。连同上文给出的一般描述和下文给出的详细描述,图式用以解释所述方法和装置的特征而不限制所揭示的实施例。
图1是说明适合与各种实施例一起使用的计算装置的框图。
图2是说明根据各种实施例的信息流跟踪方法的数据流的框图。
图3是说明根据各种实施例的信息流跟踪方法中的示范性执行路径序列的框图。
图4是说明根据各种实施例在计算装置上执行的应用程序中跟踪信息流的实施例方法的过程流程图。
图5是说明根据各种实施例的在计算装置上执行的应用程序中跟踪信息流的实施例方法的过程流程图。
图6是说明根据各种实施例的实施动态软件应用程序分析的实施例方法的过程流程图。
具体实施方式
将参看随附图式详细描述各种实施例。在可能的情况下,将在整个图式中使用相同的参考标号来指代相同或类似的部分。参考特定实例和实施方案是出于说明性目的,且无意限制所附权利要求书的范围。
术语“计算装置”在本文中用以指多种计算机和计算装置中的任何一者或全部,其非限制性实例包含台式计算机、工作站、服务器、蜂窝电话、智能电话、可穿戴计算装置、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、掌上型计算机、无线电子邮件接收器、具多媒体因特网功能的蜂窝电话、无线游戏控制器、移动机器人以及包含可编程处理器和存储器的类似个人电子装置。
通过在软件应用程序的整个执行期间跟踪信息流,可有可能识别数据泄露或丢失点。一旦被识别,数据泄露或丢失点就可固定。因此,在软件应用程序的执行之前以及在软件应用程序的整个执行期间恰当地跟踪信息流应为减少数据泄露、丢失或曝光情形的努力的一部分,且保护信息使其免于被恶意软件应用程序和恶意作用者获取。
各种实施例包含方法、实施此类方法的计算装置、存储处理器可执行指令的非暂时性处理器可读媒体,所述指令实施此类方法,以在软件应用程序的执行期间实施信息流跟踪。可使用混合静态/动态分析来在软件应用程序的执行期间跟踪信息流。各种实施例可包含:预测多个执行路径;以及使用路径执行的预测来仅分析软件应用程序的将执行的那些部分。通过仅分析软件应用程序的执行部分,各种实施方案提供当数据泄露在软件应用程序的执行期间出现时检测所述数据泄露的轻量且资源高效方法,而无每当运行应用程序就监视所有可能执行路径的处理开销。
在安装或编译软件应用程序之前,可执行稳健的装置外分析算法来识别呈现数据泄露可能性的代码段。此安装前分析可由具有大量资源的远程计算装置执行。另外,可在一或多个分析阶段中实现装置上执行前分析。第一阶段可为快速且安全的执行前装置上静态分析技术以识别潜在的数据泄露。所述静态分析可为在所安装且未执行的软件上或在第一执行期间执行的算法,以基于安装前分析的结果来确定潜在的数据泄露。可使用来自初始静态分析的结果来执行图表可达性分析。可在软件应用程序的编译和安装之前或期间且在执行之前实施这些分析。可在执行前装置上静态分析阶段期间识别呈现潜在安全性或隐私风险(例如泄露、曝光或丢失)的软件代码的节段。在稳健的装置外静态分析中识别的潜在数据泄露点以及由计算装置识别的路径节段可用于产生安全性风险(即,数据泄露点)的路径特定风险概述。可将这些风险概述与执行的应用程序进行比较,以确定在执行期间是否出现数据泄露。
在将软件应用程序安装在计算装置(例如智能电话、膝上型计算机等)上之前,所述软件可经历远程装置(例如测试实验室)处的稳健分析,以识别潜在的数据泄露点。稳健的装置外分析可包含软件应用程序在计算装置或所执行的仿真器上的大量执行,使得遵循不同执行路径,其中监视所述应用程序的操作和行为,以便识别在各种运行时条件期间可能产生的数据泄露点。
此类稳健分析程序可为资源密集的,且可能使装置性能显著降级,如果在客户端计算装置上执行的话。因此,应用程序风险评定可由软件制造商、第三方安全性销售商或其它服务提供商产生。
一旦识别到适用数据泄露点中的一些或全部,就可将数据泄露点以及导致或产生数据泄露点的对应软件代码段(例如函数、调用等)添加到应用程序风险评定文件。
可用软件应用程序安装文件来封装应用程序风险评定文件。举例来说,应用程序风险评定可包含于“zip”文件或应用程序加载文件内,且在“exe”文件的执行期间解封装。将应用程序风险评定文件与应用程序安装文件包含在一起使客户端计算装置能够利用信息流跟踪方法,而不执行资源密集稳健分析。
当加载应用程序时,客户端计算装置可在观察路径执行模式时,实施应用程序的一或多个执行。可使用路径分析技术,例如球-鸥路径分析,来识别路径特定安全性和隐私风险。可通过计算装置执行此初始路径分析,以便产生含有关于会和不会呈现安全性和隐私风险的软件执行路径的信息的“安全路径图表”。被识别为呈现潜在安全性和隐私风险的代码段可组织成“概述”(或模板),并存储以便之后再运行时分析中使用。由于在运行时分析期间观察到的软件使用模式,所存储的风险概述以及所存储的概述的内容可随时间改变。
在初始执行或软件应用程序的测试游程期间,客户端计算装置可对软件代码执行路径分析。路径分析可包含执行一或多个路径确定算法,其识别软件执行路径内的逻辑节段。举例来说,球-鸥路径分析算法可用于识别软件代码的组件节段。可在运行时分析与执行应用程序的路径相关联的所识别路径节段,以寻找数据泄露。
路径分析可识别软件应用程序的可能在当前实例化中执行的节段,从而使分析能够限于那些节段,且避免将不或不大可能执行的节段的分析。如果所识别的路径节段太大,那么所得信息流跟踪分析可能不可接受地不精确。相反,如果路径节段太小,那么客户端计算装置可处理不必要量的数据,以分析所有路径节段,从而无理地消耗系统资源。因此,可使用各种技术来确定路径节段的适当大小。举例来说,所识别的节段可在运行时分析期间按需要与其它节段结合,或分裂成多个节段。每一路径节段可含有一或多个代码段(例如实施多个函数调用的实际应用程序代码、库参照等)。可使用算法来基于此类节段的所预测执行频率、跟踪此类节段的所预测开销,和/或其它程序相关信息,确定包含于执行路径节段内的代码段的大小。所述算法可使用预定义启发式或机器学习技术来确定代码段大小。
所识别的路径节段可由计算装置的处理器用来构造应用程序执行简档。各种实施方案可包含使用计算装置处理器,简档构造安全路径图表来产生应用程序执行。所指示的路径可表示提供数据泄露的最小风险的常用执行路径。所产生的安全路径图表可用作应用程序执行简档。在各种实施方案中,安全路径图表可为控制流图表和数据流分析图表的逻辑组合。安全路径图表可为程序可采用的所有执行路径的完整或不完整表示。
可通过计算装置处理器,将应用程序风险评定与应用程序执行简档进行比较,来识别沿执行路径的每一节段的潜在数据泄露点。计算装置处理器可产生详述每一路径节段的所有对应潜在数据泄露点的风险概述。基于执行路径含有的所识别路径节段的数目,任何给定执行路径可对应于若干风险概述。类似地,对应于含有特定数据泄露点的路径节段的风险概述可与大量执行路径联合存储在存储器中,如参看图3更详细地描述。
在软件应用程序的执行期间,执行动态分析模块的处理器可观察到流经与风险概述相关联的路径节段的信息,来查找数据泄露的出现。如果采取已经包含于风险概述中的执行路径,那么可使用风险概述信息来确定沿所采取的执行路径是否出现、已出现或可能出现数据泄露。此确定可在执行路径的开头、执行路径期间,或在执行路径结束时完成。如果采取先前未包含于风险概述中的新执行路径,那么可执行递增信息跟踪。在执行期间或之后,计算装置处理器可使用静态分析技术来分析新执行路径,以确定所述执行路径是否呈现隐私或安全性风险,且因此应添加到现有或新的风险概述。静态分析可为以与每一执行一致的方式在应用程序代码上操作的算法,不管应用程序的执行选项如何。
如果代码观察者(例如由计算装置处理器执行的动态分析模块)确定两个或更多个应用程序代码段一起执行或链接,那么可组合风险概述。如果代码观察者确定与概述相关联的应用程序代码段从不产生数据泄露,或很少或从不执行相关联路径节段,那么可消除风险概述或移动到不在作用中状态。以此方式,软件使用模式为确定观察到和监视到的风险概述提供基础,因此在执行会话期间,仅回顾相关风险概述。
各种实施方案包含方法、实施所述方法的装置,以及具有处理器可执行指令的非暂时性媒体,所述指令用以实施提供混合静态和动态分析方法来进行根据使用模式来调整的信息流跟踪的方法。通过预确定呈现潜在数据泄露的代码段,计算装置处理器在应用程序运行时必须回顾和分析的代码量可仅限于相关代码段。减少处理器在运行时回顾的代码量可减少执行时间以及对电力资源的汲取,从而改进处理器操作效率且延长电池寿命。因此,所述方法可为信息流跟踪提供轻量和计算资源高效解决方案,特别适合于移动计算装置。
各种实施例可包含在软件应用程序运行时之前,计算装置的处理器执行静态分析,以识别含有呈现潜在数据泄露的代码的执行路径节段。第一分析可后接处理器在软件应用程序的执行会话期间实施的动态分析,以在数据泄露出现时识别它们。
各种实施例可包含计算装置的处理器,其在软件应用程序的执行之前,执行静态分析以产生含有被识别为具有潜在数据泄露的应用程序代码的执行路径节段的风险概述。可在与软件应用程序相关联的应用程序执行简档中识别含有呈现潜在数据泄露的应用程序代码的路径节段。
各种实施例可包含在软件应用程序运行时,执行与含有潜在数据泄露点的代码段相关联的风险概述的动态分析,以识别在运行时出现的实际数据泄露。
各种实施例可包含识别与含有潜在数据泄露点的代码段相关联的风险概述,所述数据泄露点横越软件应用程序的不同执行会话适用。在各种实施方案中,可基于应用程序使用模式以及风险概述跨越软件应用程序的执行会话的适用性,组合与含有潜在数据泄露点的代码段相关联的风险概述。
图1说明适合与各种实施例一起使用的计算装置100。计算装置100示出为包括可经由总线105电耦合(或可在适当时以其它方式通信)的硬件元件。所述硬件元件可包含一或多个处理器110,包含(不限于)一或多个通用处理器和/或一或多个专用处理器(例如数字信号处理芯片、图形加速处理器和/或类似者);一或多个输入装置,其包含触摸屏115,并且进一步包含但不限于鼠标、键盘、小键盘、相机、麦克风和/或类似者;以及一或多个输出装置,其包含但不限于接口120(例如通用串行总线(USB)),用于耦合到外部输出装置、显示装置、扬声器116、打印机和/或类似者。
计算装置100可进一步包含以下各项(和/或与以下各项通信):一或多个非暂时性存储装置(例如非易失性存储器)125,其可包括(但不限于)本地和/或网络可存取的存储装置,和/或可包含(但不限于)磁盘驱动器、驱动阵列、光学存储装置、例如随机存取存储器(RAM)和/或只读存储器(ROM)等固态存储装置,其可为可编程的、可快闪更新的,和/或类似者。此类存储装置可经配置以实施任何适当的数据存储装置,包括(但不限于)各种文件系统、数据库结构和/或类似者。
装置100还可包含通信子系统130,其可包含但不限于调制解调器、网卡(无线或有线)、红外线通信装置、无线通信装置和/或芯片组(例如,蓝牙装置、802.11装置、WiFi装置、WiMax装置、蜂窝式通信设施等),和/或类似者。通信子系统130可准许与网络、其它装置和/或本文中所描述的任何其它装置交换数据。计算装置100可进一步包含易失性存储器135,其可包含RAM或ROM装置,如上文所描述。存储器135可以操作系统140和应用程序软件(应用程序)145的形式存储处理器可执行指令,以及支持操作系统140和应用程序145的执行的数据。计算装置100可为移动计算装置或非移动计算装置,且可具有无线和/或有线网络连接。
计算装置100可包含耦合到处理器110的电源122,例如一次性或可再充电电池。可再充电电池还可耦合到外围装置连接端口,以接收来自计算装置100外部的来源的充电电流。
图2说明如在各种实施例中通过信息流跟踪方案的数据流的框图。信息流跟踪方案200示出为具有在软件应用程序202上执行的离线210(例如执行前)和在线220(例如运行时)组件两者。各种实施例可包含在计算装置100处接收软件应用程序202和应用程序风险评定204。应用程序风险评定204可由远程计算装置产生,所述远程计算装置回顾和分析应用程序的软件代码以识别潜在数据泄露。在各种实施方案中,应用程序风险评定204可为含有关于被识别为呈现潜在数据泄露的代码段(例如函数、调用等)的数据的文件。应用程序风险评定204可用软件应用程序202下载,在安装期间加载,或以其它方式联合软件应用程序202存储和安装在计算装置100的存储器上。在各种实施方案中,每一软件应用程序可具有特定针对软件应用程序的应用程序风险评定204。
在信息流跟踪方案200的离线210阶段,可将接收到的软件应用程序202和应用程序风险评定204输入到路径简档建立器212模块和第一分析214模块中的一或多者。离线210分析的结果可为含有关于包含应用程序204中识别的应用程序代码的执行路径节段的信息的一或多个风险概述218。在各种实施方案中,离线210分析可在软件应用程序202已安装或编译在计算装置100上之后发生。另外,在各种实施方案中,在软件应用程序202的第一用户起始的执行之前,计算装置100的处理器110可执行离线210分析。
在各种实施方案中,路径简档建立器212可致使处理器110执行软件应用程序202的第一游程或“测试”游程。处理器110可在测试游程期间执行应用程序代码路径分析,以便识别执行路径组件节段。软件应用程序可包含数百或数千执行路径排列,其中用户输入或每一变量的每一个例提供更多路径可能性的机会。每一执行路径可由若干节段形成,那些长度的路径位于两个路径分割点之间。举例来说,路径节段可以针对星期几的用户输入开始,且可在必须评估布尔型变量来确定这是真还是假的点处结束。因为一周有七天,所以可存在从起源点通往第二点的七个路径节段。每一路径节段可与不同应用程序代码段相关联,且因此可呈现数据泄露的不同风险。在测试游程期间,计算装置的处理器可分析应用程序代码,以识别可能的执行路径及其组件路径节段。此分析可包含识别在用户起始的执行期间最可能使用的执行路径。各种实施方案可包含在测试游程期间,将图论领域中认可的球-鸥路径分析算法或其它路径辨识算法应用于应用程序代码。在各种实施方案中,路径简档建立器212可进一步致使计算装置100的处理器110基于路径分析的结果产生安全路径图表。安全路径图表可为数据流分析和控制流图表的表示,如所属领域的技术人员或一般技术人员将理解。由计算装置100的处理器110产生的安全路径图表的结果可为应用程序执行简档216。安全路径图表可使用程序指令作为节点,且使用指令之间的执行转变(即,控制流)作为边缘,且因此通过图表的路径可表示应用程序所采取的执行路径。在另一实施例中,安全路径图表可使用程序函数作为节点,且使用函数(即,函数调用)之间的执行转变作为边缘。此安全路径图表可最初含有对应于程序的一或多个但不一定所有执行路径。此应用程序执行简档216可包含关于将在用户起始的执行会话期间执行的最可能执行路径和相关联路径节段的信息。
各种实施例可包含将应用程序执行简档216作为输入传递到第一分析214模块。第一分析214模块可接受应用程序执行简档216和应用程序风险评定204文件,且可致使计算装置100的处理器110产生风险概述218。第一分析214模块可致使处理器110检视应用程序执行简档216中所识别的路径节段,来寻找应用程序风险评定204文件中所识别的应用程序代码节段呈现数据泄露的可能性的情形。在各种实施方案中,第一分析可为静态分析。
处理器110可为每一所识别的路径节段产生风险概述218,且可包含可基于运行时条件评估为真或假的表达。举例来说,当执行第一分析214时,处理器110可基于正在检视的执行路径节段以及所识别的应用程序代码段,确定如果在执行会话期间,特定变量=某一值(例如game_tries=5),那么出现数据泄露。因此,第一分析214模块可致使处理器110产生风险概述218,其含有相关路径节段的表达“游戏-尝试=5”。如果执行相关联路径节段,那么可在运行时评估风险概述218,从而使处理器110能够快速确定实际上是否出现数据泄露,而不需要大量的处理资源。
在各种实施方案中,风险概述218可存储于存储器135中。任选地,名录、列表、查找表或其它参考数据结构可结合风险概述218存储,来为现有风险概述和相应路径节段关联建目录。
在应用程序执行会话期间,计算装置100可执行一或多个在线220分析。可将处理器110在离线210分析期间产生的风险概述218以及软件应用程序202作为输入传递到信息流跟踪方案200的离线210阶段。在各种实施例中,处理器110可执行第二分析222模块,其可监视当前执行路径,将执行路径节段与适用的风险概述218进行比较,且起始新风险概述218的创建或现有风险概述218的修改。
第二分析222的路径评定224模块可致使处理器110跟踪软件应用程序202的当前执行路径。随着软件应用程序202进行通过执行会话,用户输入(例如键盘、麦克风、触摸屏交互)可导致执行路径的改变。处理器110可监视此进程,且可将指向当前路径节段的临时指针以及当前执行路径(即,所采取的总路径)保存在存储器中。大体上同时,处理器110可将当前执行路径(即,当前执行的路径节段)与存储在存储器125中的可用风险概述进行比较。如果处理器110检索一组所存储的风险概述218,或在所存储的名录中寻找相关联风险概述218的条目,那么处理器110可将当前执行路径视为现有路径225b。处理器110可执行概述比较228,以确定是否出现数据泄露。
各种实施例可包含处理器110将当前运行时条件(例如变量值、用户输入、函数执行状态等)和与当前执行路径的当前路径节段相关联的一或多个风险概述218进行比较。如果比较的结果指示出现数据泄露,那么处理器110可起始向用户显示或重放警报230。如果未检测到数据泄露,那么处理器110可继续第二分析222。参看先前实例,在处理器110回顾相关路径节段时,当变量game_tries保持值3时,将不起始警报。然而,当变量game_tries保持值5时,处理器110可警告230用户出现数据泄露。
在各种实施方案中,处理器110可进一步基于执行历史确定是否应更新或去活风险概述218。如果在执行会话其间定期执行路径节段,但从未出现数据泄露,那么处理器110可将风险概述218更新到不在作用中状态。在路径评定224期间,处理器110可忽略不在作用中风险概述218,直到出现数据泄露时,或运行时条件使得有理由风险概述218的再激活为止。因此,在一些实施方案中,处理器110可检视存储器135、125,以寻找不在作用中风险概述218,从而试图在产生新风险概述218之前再激活未用的风险概述218。
如果无风险概述218的集合联合当前执行路径存储(例如一个路径节段并不具有相关联的风险概述,或执行会话期间迄今执行的路径节段的组合是新的),那么处理器110可确定当前执行路径是新路径225a。第二分析222可起始处理器110产生新的风险概述218。在执行会话期间或之后,通过对路径节段执行第一分析214,可创建新的风险概述218。处理器可组合现有风险概述218,以确定用于新风险概述218的相关评估表达,如将参看图3更详细地描述。处理器110可以类似于参考离线210第一分析214执行描述的方式,在运行时执行第一分析。在运行时执行的第一分析214的结果可为新风险概述218,其可存储在存储器125中,以及相应更新的任何适用名录或参考数据结构中。
各种实施例可以所描述的方式,在应用程序执行会话期间,实现信息流风险的动态分析。通过使用预建构的风险概述218,处理器可快速评估相关运行时条件,而不是执行软件代码的稳健检视。另外,动态分析可适合使用模式,因为其使计算装置100能够通过产生新的风险概述(因为利用先前未用的执行路径),且通过将未用的风险概述移动到不在作用中状态,来确定哪些执行路径是“相关的”。因此,处理器110可不断地重新配置跨越执行会话正回顾和分析的应用程序的若干部分。风险概述218和所得第二分析222执行的此类递增修改可使得信息流跟踪方案200较通用,且资源消耗相对较低。
图3说明在各种实施例中通过执行路径的数据流的框图。路径300可包含大量发散点,其中可评估个别风险概述302到318(即,图2中的风险概述218)来检测数据泄露。在所说明的实例中,所有执行路径以共用路径节段开始。共用路径节段与风险概述“A”302相关联。函数表达式“i=0”可包含于风险概述中,从而指示在执行共用路径节段时,变量“i”是否不保持值0,那么出现数据泄露。路径可继续到风险概述“B”304,其可不具有函数表达,而是可改为表示检查以确定执行路径是否已越过必要的点。举例来说,如果执行路径从与风险概述“A”302相关联的路径节段跳到与风险概述“C”306相关联的路径节段,那么可能已出现数据泄露。
在与风险概述“B”304相关联的路径节段处,执行路径发散,指示执行中的多个选项。如果先前用户输入使执行路径指向风险概述“C”306,那么变量“a”当前应保持值“3”,如由风险概述指示。相反,如果用户输入使执行指向风险概述“D”308,那么变量“a”应保持当前值2。在第一例子中,处理器110将仅存取所存储的风险概述“C”306,且将忽略风险概述“D”308,因为所选择的执行路径妨碍与风险概述“D”308相关联的执行路径的使用。如果处理器将运行时值“a”与风险概述“C”306进行比较,且确定a=3,执行会话可继续不间断。如果“a”不等于3,那么处理器110可起始警报。
执行路径评定可以此方式从风险评定310到318继续。在整个执行会话期间选择的路径节段的特定组合可为当前执行路径。在整个第二分析222期间,处理器110可监视当前路径节段和当前执行路径两者,以确定是否出现数据泄露。在各种实施方案中,当使用新的执行路径时,处理器110可基于预先存在的风险概述218产生新的风险概述218。在所说明实例中,如果与风险概述“G”314相关联的路径节段先前未执行,那么处理器110产生风险概述“G”将包含路径“A-B-C-E”和“A-B-D-E”两者的分析,因为这两个路径馈送到当前路径节段(即,与风险概述“G”相关联的路径节段)中。第一分析214可在运行时分析这两个路径,以确定变量“b”的什么值可在与风险概述“G”314相关联的路径节段期间导致数据泄露。在所说明的实例中,第一分析214可确定“b”的唯一可接受值是2。因此,处理器110可产生具有表达式b=2的风险概述“G”314,并将其存储在存储器135中,以用于未来的执行会话。
图4说明在各种实施例中用于执行软件应用程序中的信息流跟踪的实施例方法的过程流程图。实施例方法400可在计算装置100上实施,且由与通信子系统130和存储器135通信的处理器110进行。在框402中,计算装置100的通信子系统130可接收应用程序风险评定204。应用程序风险评定204可为远程计算装置的稳健应用程序代码分析的结果,以识别应用程序代码的呈现数据泄露可能性的若干部分。
在框404中,计算装置100的处理器110可产生应用程序执行简档216。如参看图5、框502到504更详细地描述,应用程序执行简档可为处理器110所执行的一或多个路径分析的结果。应用程序执行简档可包含最可能在用户起始的应用程序执行会话中执行的执行路径和相关联路径节段(即,构成所述执行路径的那些路径节段)。
在框406中,计算装置100的处理器110可产生一或多个风险概述218。可产生风险概述218作为第一分析214的结果,第一分析回顾如由应用程序执行简档216识别的每一执行路径,以寻找应用程序风险评定204中所识别的应用程序代码的实例。风险概述218可包含将在特定路径节段处评估的表达,以使处理器110能够检测在运行时分析期间出现的数据泄露。在各种实施方案中,第一分析可为不基于使用模式修改的静态分析。
在框408中,在应用程序的执行期间,计算装置100的处理器110可对执行软件应用程序202实施第二分析。第二分析可识别和跟踪当前执行路径(例如迄今执行的所有路径节段的总和),且可进一步跟踪正执行的当前路径节段。如将参看图6更详细地描述,第二分析还可确定当前执行路径是否为新的执行路径。
在框410中,计算装置100的处理器110可基于当前执行路径的第二分析的结果来更新风险概述。更具体地说,可基于当前执行路径是新路径225a还是现有路径225b来更新或修改风险概述218。当执行新的执行路径时,或当现有执行路径变为不在作用中时,风险概述218可组合、分裂或以其它方式修改。
图5说明在各种实施例中用于执行软件应用程序中的信息流跟踪的实施例方法的过程流程图。实施例方法500可在计算装置100上实施,且由与通信子系统130和存储器135通信的处理器110进行。方法500可大体类似于如参考图4所描述的方法400,除了框404中的操作被替换为框502到504中的操作。
在框502中,计算装置100的处理器110可对软件应用程序202的应用程序代码执行路径分析。使用路径分析,处理器110可识别执行路径的子组件。这些路径节段可对产生精确风险概述有用,处理器可在运行时使用精确风险概述来快速识别执行路径内的数据泄露。所述路径节段可以图表、表、列表或任何其它逻辑表示来呈现。
在框504中,计算装置100的处理器110可产生安全路径图表。安全路径图表算法的结果可为应用程序执行简档216(即,安全路径图表)。在各种实施例中,应用程序执行简档216可包含被识别为可能在用户起始的执行会话期间使用的执行路径。换句话说,应用程序执行简档216可识别常用执行路径及其相关联路径节段。
图6说明各种实施例中的用于在应用程序的执行会话期间实施第二分析的实施例方法的过程流程图。实施例方法600可在计算装置100上实施,且由与通信子系统130和存储器135通信的处理器110进行。
在框602中,作为第二分析(即,图4和5中的框408)的一部分,计算装置100的处理器110可在软件应用程序执行会话期间跟踪执行路径。随着执行路径递增地前进通过在处理器110产生应用程序执行简档216期间先前识别的不同路径节段,处理器110可监视器所述执行路径。当跟踪执行路径时,处理器110可保存当前执行路径(即,迄今执行的总路径)的临时记录,以及当前路径节段的临时识别符(例如指针或变量)。
在确定框604中,计算装置100的处理器110可确定当前执行路径是否为常用路径。常用路径是与预先存在风险概述相关联的那些执行路径,且不用不在作用中状态来标记。举例来说,处理器110可参考名录或其它数据结构,或所存储的风险概述218,以确定当前执行路径是现有路径225b还是新路径225a。新路径是可能不具有对应于执行路径的所有路径节段的风险概述218的路径。
响应于确定当前执行路径不是常用路径(即,确定框604=“否”),处理器110可在框410a中,通过执行框608到610的操作来更新风险概述218。
在框608中,计算装置100的处理器110可对当前执行路径执行第一分析214。执行第一分析214可包含分析导致当前路径节段的所有可能的执行路径排列。处理器110可因此确定将或可导致数据泄露的运行时条件的组合。
在框610中,处理器110可基于第一分析214的结果产生新的风险概述218。在各种实施方案中,现有风险概述218可组合或分割,以便在当前路径节段的执行期间,获得关于可导致数据泄露的运行时条件的信息。在框610中产生新风险概述218并将其存储在存储器135中之后,处理器110可在框602中,通过恢复执行路径的跟踪来继续执行第二分析。
响应于确定当前执行路径是常用路径(即,确定框604=“是”),计算装置100的处理器110可在确定框606中确定是否出现数据泄露。处理器110可存取所存储的与当前路径节段相关联的风险概述218,并评估风险概述表达以确定是否出现数据泄露。响应于确定未检测到数据泄露(即,框606=“否”),处理器110可在框602中,在执行会话期间继续跟踪执行路径。
响应于确定出现数据泄露(即,确定框606=“是”),处理器110可在框614中起始警告,例如在屏幕上显示的消息、经由扬声器播放的可听噪声,或触觉反馈振动,且在框410b中,通过执行框616到618的操作来潜在地修改风险概述218。
在确定框616中,计算装置100的处理器110可确定当前运行时条件是否使得有理由修改相应风险概述218。举例来说,处理器110可确定路径节段很少使用,或路径节段内从未出现数据泄露,且因此可将相关联的风险概述移动到不在作用中状态。相反,处理器110可确定当前路径节段是高度作用中路径节段,且因此将当前路径节段的风险概述分成两个风险概述可为有益的,以减小与相应风险概述218相关联的应用程序代码的大小。
响应于确定当前运行时条件使得有理由修改风险概述(即,框616=“是”),处理器110可在框618中修改风险概述218,并在框602中返回到跟踪所述执行路径。
响应于确定当前运行时条件不使得有理由修改风险概述(即,确定框616=“否”),处理器110可在框602中,继续跟踪执行路径。在各种实施例中,当当前执行路径是常用路径时,框616到618中的操作可代替方法400的框410中的操作。
为了重述,各种实施例可包含跟踪在例如膝上型计算机、智能电话、可穿戴计算装置等计算装置上执行的应用程序中的信息流的方法。所述方法可包括接收应用程序风险评定,例如风险评估文件,包含应用程序代码的在被执行时可导致数据泄露的区段。另外,所述方法可包含产生应用程序执行简档,其包含应用程序的常用执行路径。所述应用程序执行简档可含有关于可能将在用户起始的执行会话期间执行的执行路径和路径节段的信息。预确定最可能使用(即,常用)的执行路径将必须产生和回顾的风险概述的数目减少到仅可能与执行相关的那些风险概述。所述方法可包含基于对应用程序执行简档和应用程序风险评定执行第一分析,产生风险概述。所述风险概述可提供关于特定条件的信息,在所述特定条件下,在执行路径的每一路径节段内可能出现数据泄露。所述方法还可包含在应用程序的执行期间对应用程序代码执行第二分析,以识别当前执行路径和当前路径节段。基于第二分析的结果,计算装置可更新风险概述。
前述方法描述和过程流程图仅仅作为说明性实例提供,并且其并不意图要求或暗示各种实施例的操作必须以所呈现的次序进行。如所属领域的技术人员将了解,可以任何次序执行前述实施例中的操作的次序。例如“之后”、“接着”、“接下来”等词语无意限制操作的次序;这些词仅用于引导读者浏览对方法的描述。此外,举例来说,使用冠词“一”、“一个”或“所述”对单数形式的权利要求要素的任何参考不应解释为将所述要素限制为单数。
虽然本文使用术语“第一”和“第二”来描述与一预订相关联的数据发射和与不同预订相关联的数据接收,但此类识别符仅是为了方便,且无意将各种实施例限于特定次序、序列、网络或载体类型。
结合本文中所公开的实施例描述的各种说明性逻辑块、模块、电路和算法操作可实施为电子硬件、计算机软件,或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和操作。此类功能性是实施为硬件还是软件取决于特定应用以及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为造成对权利要求书的范围的脱离。
用以实施结合本文中所揭示的方面而描述的各种说明性逻辑、逻辑块、模块和电路的硬件可用以下各项来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或经设计以执行本文中所描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心结合,或任何其它此种配置。或者,可通过特定地针对给定功能的电路来执行一些操作或方法。
在一或多个示范性方面中,所描述的功能可以用硬件、软件、固件或其任何组合实施。如果在软件中实施,那么所述功能可作为一或多个指令或代码存储在非暂时性计算机可读媒体或非暂时性处理器可读媒体上。本文中所公开的方法或算法的操作可体现于可驻留在计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读媒体可为可由计算机或处理器存取的任何存储媒体。举例来说但非限制,此类非暂时性计算机可读或处理器可读媒体可包含RAM、ROM、EEPROM、快闪存储器、CD-ROM或其它光盘存储装置、磁盘存储器或其它磁性存储装置,或可用于以指令或数据结构的形式存储所要的程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。以上各项的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,一种方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而驻留在非暂时机器可读媒体和/或计算机可读媒体上,所述媒体可并入到计算机程序产品中。
提供对所揭示的实施例的前述描述以使所属领域的技术人员能够制作或使用所附权利要求书。所属领域的技术人员将容易了解对这些实施例的各种修改,且可在不脱离权利要求书的范围的情况下将本文中定义的一般原理应用于其它实施例。因此,本发明无意限于本文中所示的实施例,而应被赋予与以下权利要求书和本文中所揭示的原理和新颖特征相一致的最广泛范围。
Claims (26)
1.一种跟踪在计算装置上执行的应用程序中的信息流的方法,其包括:
接收应用程序的应用程序风险评定,其包含在被执行时可导致数据泄露的应用程序代码的区段;
产生应用程序执行简档,其包含应用程序的常用执行路径;
基于对所述应用程序执行简档和所述应用程序风险评定执行第一分析,产生一或多个风险概述;
在所述应用程序的执行期间,对所述应用程序代码执行第二分析,以识别当前执行路径和当前路径节段;以及
基于在所述应用程序的执行期间对所述应用程序代码执行所述第二分析的结果,更新一或多个风险概述。
2.根据权利要求1所述的方法,其中在所述应用程序的执行期间对所述应用程序代码执行所述第二分析包括:
在所述应用程序的执行期间,跟踪执行路径,其中所述所跟踪的执行路径是当前执行路径;以及
确定所述当前执行路径是否为常用执行路径。
3.根据权利要求2所述的方法,其进一步包括:
响应于确定所述当前执行路径是常用执行路径,通过将风险概述与所述当前路径节段进行比较,确定是否出现数据泄露;以及
响应于确定出现数据泄露,起始警报。
4.根据权利要求3所述的方法,其中更新所述风险概述包括:
确定当前运行时条件是否使得有理由修改现有风险概述;以及
响应于确定当前运行时条件使得有理由修改所述现有风险概述,修改所述现有风险概述。
5.根据权利要求2所述的方法,其中响应于确定所述当前执行路径不是常用执行路径,执行更新一或多个风险概述,所述方法进一步包括:
对所述当前执行路径执行所述第一分析;以及
基于具有与所述当前执行路径一样的路径节段的现有风险概述,产生第二风险概述。
6.根据权利要求5所述的方法,其中产生第二风险概述包括组合所述现有风险概述的若干部分,以产生所述第二风险概述。
7.根据权利要求5所述的方法,其中产生第二风险概述包括选择所述现有风险概述的若干部分,以产生所述第二风险概述。
8.根据权利要求1所述的方法,其中产生所述应用程序执行简档进一步包括:
对所述应用程序的所述应用程序代码执行路径分析,以识别执行路径和相关联的路径节段;以及
基于所识别的执行路径和路径节段,产生安全路径图表。
9.一种计算装置,其包括:
处理器,其配置有处理器可执行指令以执行包括以下各项的操作:
接收应用程序的应用程序风险评定,其包含在被执行时可导致数据泄露的应用程序代码的区段;
产生应用程序执行简档,其包含应用程序的常用执行路径;
基于对所述应用程序执行简档和所述应用程序风险评定执行第一分析,产生一或多个风险概述;
在所述应用程序的执行期间,对所述应用程序代码执行第二分析,以识别当前执行路径和当前路径节段;以及
基于在所述应用程序的执行期间对所述应用程序代码执行所述第二分析的结果,更新一或多个风险概述。
10.根据权利要求9所述的计算装置,其中所述处理器进一步配置有处理器可执行指令以执行操作,使得在所述应用程序的执行期间对所述应用程序执行所述第二分析包括:
在所述应用程序的执行期间,跟踪执行路径,其中所述所跟踪的执行路径是当前执行路径;以及
确定所述当前执行路径是否为常用执行路径。
11.根据权利要求10所述的计算装置,其中所述处理器配置有处理器可执行指令以执行包括以下各项的操作:
响应于确定所述当前执行路径是常用执行路径,通过将风险概述与所述当前路径节段进行比较,确定是否出现数据泄露;以及
响应于确定出现数据泄露,起始警报。
12.根据权利要求11所述的计算装置,其中所述处理器进一步配置有处理器可执行指令以执行操作,使得更新一或多个风险概述包括:
确定当前运行时条件是否使得有理由修改现有风险概述;以及
响应于确定当前运行时条件使得有理由修改所述现有风险概述,修改所述现有风险概述。
13.根据权利要求10所述的计算装置,其中所述处理器配置有处理器可执行指令以执行进一步包括以下各项的操作:
响应于确定所述当前执行路径不是常用执行路径,更新所述一或多个风险概述;
对所述当前执行路径执行所述第一分析;以及
基于具有与所述当前执行路径一样的路径节段的现有风险概述,产生第二风险概述。
14.根据权利要求10所述的计算装置,其中所述处理器进一步配置有处理器可执行指令以执行操作,使得产生第二风险概述包括组合所述现有风险概述的若干部分,以产生所述第二风险概述。
15.根据权利要求13所述的计算装置,其中所述处理器进一步配置有处理器可执行指令以执行操作,使得产生第二风险概述包括选择所述现有风险概述的若干部分,以产生所述第二风险概述。
16.根据权利要求9所述的计算装置,其中所述处理器进一步配置有处理器可执行指令以执行操作,使得产生所述应用程序执行简档包括:
对所述应用程序的所述应用程序代码执行路径分析,以识别执行路径和相关联的路径节段;以及
基于所识别的执行路径和路径节段,产生安全路径图表。
17.一种计算装置,其包括:
用于接收应用程序的应用程序风险评定的装置,所述应用程序风险评定包含在被执行时可导致数据泄露的应用程序代码的区段;
用于产生应用程序执行简档的装置,所述应用程序执行简档包含应用程序的常用执行路径;
用于基于对所述应用程序执行简档和所述应用程序风险评定执行第一分析,产生一或多个风险概述的装置;
用于在所述应用程序的执行期间,对所述应用程序代码执行第二分析,以识别当前执行路径和当前路径节段的装置;以及
用于在所述应用程序的执行期间,基于对所述应用程序执行所述第二分析的结果,更新一或多个风险概述的装置。
18.根据权利要求17所述的计算装置,其中用于执行所述第二分析的装置包括:
用于在所述应用程序的执行期间跟踪执行路径的装置,其中所述所跟踪的执行路径是当前执行路径;以及
用于确定所述当前执行路径是否为常用执行路径的装置。
19.根据权利要求18所述的计算装置,其进一步包括:
用于响应于确定所述当前执行路径是常用执行路径,通过将风险概述与所述当前路径节段进行比较,确定是否出现数据泄露的装置;以及
用于响应于确定出现数据泄露起始警报的装置。
20.根据权利要求19所述的计算装置,其中用于更新一或多个风险概述的装置包括:
用于确定当前运行时条件是否使得有理由修改现有风险概述的装置;以及
用于响应于确定当前运行时条件使得有理由修改所述现有风险概述,修改所述现有风险概述的装置。
21.根据权利要求18所述的计算装置,其进一步包括:
用于响应于确定所述当前执行路径不是常用执行路径,更新所述一或多个风险概述的装置;
用于对所述当前执行路径执行所述第一分析的装置;以及
用于基于具有与所述当前执行路径一样的路径节段的现有风险概述,产生第二风险概述的装置。
22.根据权利要求17所述的计算装置,其中用于产生所述应用程序执行简档的装置包括:
用于对所述应用程序的所述应用程序代码执行路径分析,以识别执行路径和相关联的路径节段的装置;以及
用于基于所识别的执行路径和路径节段,产生安全路径图表的装置。
23.一种上面存储有处理器可执行指令的非暂时性处理器可读存储媒体,所述非暂时性处理器可读存储媒体经配置以致使处理器执行包括以下各项的操作:
接收应用程序的应用程序风险评定,其包含在被执行时可导致数据泄露的应用程序代码的区段;
产生应用程序执行简档,其包含应用程序的常用执行路径;
基于对所述应用程序执行简档和所述应用程序风险评定执行第一分析,产生一或多个风险概述;
在所述应用程序的执行期间,对所述应用程序代码执行第二分析,以识别当前执行路径和当前路径节段;以及
基于在所述应用程序的执行期间对所述应用程序代码执行所述第二分析的结果,更新一或多个风险概述。
24.根据权利要求24所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使所述处理器执行操作,使得执行所述第二分析包括:
在所述应用程序的执行期间,跟踪执行路径,其中所述所跟踪的执行路径是当前执行路径;以及
确定所述当前执行路径是否为常用执行路径。
25.根据权利要求24所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使所述处理器执行进一步包括以下各项的操作:
响应于确定所述当前执行路径是常用执行路径,通过将风险概述与所述当前路径节段进行比较,确定是否出现数据泄露;以及
响应于确定出现数据泄露,起始警报。
26.根据权利要求24所述的非暂时性处理器可读存储媒体,其中所述所存储的处理器可执行指令经配置以致使处理器执行进一步包括以下各项的操作:
响应于确定所述当前执行路径不是常用执行路径,更新所述一或多个风险概述;
对所述当前执行路径执行所述第一分析;以及
基于具有与所述当前执行路径一样的路径节段的现有风险概述,产生第二风险概述。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/001,420 US10102368B2 (en) | 2016-01-20 | 2016-01-20 | Information flow tracking using incremental profiling |
US15/001,420 | 2016-01-20 | ||
PCT/US2016/068217 WO2017127214A1 (en) | 2016-01-20 | 2016-12-22 | Information flow tracking using incremental profiling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108475314A true CN108475314A (zh) | 2018-08-31 |
Family
ID=57822056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680078752.7A Pending CN108475314A (zh) | 2016-01-20 | 2016-12-22 | 使用递增简档分析的信息流跟踪 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10102368B2 (zh) |
EP (1) | EP3405901A1 (zh) |
CN (1) | CN108475314A (zh) |
WO (1) | WO2017127214A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353159A (zh) * | 2018-12-21 | 2020-06-30 | 富士通株式会社 | 确定计算机可读程序的信息泄漏 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180067836A1 (en) * | 2016-09-06 | 2018-03-08 | Jacob Harris Apkon | Techniques for automatically generating documentation for computer programs |
US11636416B2 (en) | 2017-11-13 | 2023-04-25 | Tracker Networks Inc. | Methods and systems for risk data generation and management |
US10657257B2 (en) * | 2017-12-06 | 2020-05-19 | International Business Machines Corporation | Feature vector aggregation for malware detection |
US20220292191A1 (en) * | 2019-08-29 | 2022-09-15 | Nec Corporation | Backdoor inspection apparatus, backdoor inspection method, and non-transitory computer readable medium |
CN110837529B (zh) * | 2019-11-27 | 2022-04-29 | 广东大秦纪元信息科技有限公司 | 大数据分析监察方法、装置、服务器及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130312102A1 (en) * | 2012-05-18 | 2013-11-21 | International Business Machines Corporation | Verifying application security vulnerabilities |
CN103577317A (zh) * | 2012-08-02 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 软件系统的异常测试方法、系统和软件测试系统 |
US20150161393A1 (en) * | 2013-12-11 | 2015-06-11 | International Business Machines Corporation | Quantitative analysis of information leakage vulnerabilities |
US20150227746A1 (en) * | 2014-02-07 | 2015-08-13 | Northwestern University | System and Method for Privacy Leakage Detection and Prevention System without Operating System Modification |
CN105022958A (zh) * | 2015-07-11 | 2015-11-04 | 复旦大学 | 一种安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327699B1 (en) * | 1999-04-30 | 2001-12-04 | Microsoft Corporation | Whole program path profiling |
US8219980B2 (en) * | 2007-01-10 | 2012-07-10 | International Business Machines Corporation | Identifying a potential breakpoint location in a code path in a computer program based upon the frequency of execution of the code path as identified in collected profile data |
US8170352B2 (en) | 2008-03-24 | 2012-05-01 | Sophos Plc | String searching facility |
US8955142B2 (en) | 2011-03-21 | 2015-02-10 | Mocana Corporation | Secure execution of unsecured apps on a device |
US8726392B1 (en) | 2012-03-29 | 2014-05-13 | Symantec Corporation | Systems and methods for combining static and dynamic code analysis |
US9253209B2 (en) | 2012-04-26 | 2016-02-02 | International Business Machines Corporation | Policy-based dynamic information flow control on mobile devices |
US9015832B1 (en) | 2012-10-19 | 2015-04-21 | Google Inc. | Application auditing through object level code inspection |
-
2016
- 2016-01-20 US US15/001,420 patent/US10102368B2/en not_active Expired - Fee Related
- 2016-12-22 WO PCT/US2016/068217 patent/WO2017127214A1/en active Application Filing
- 2016-12-22 EP EP16826825.8A patent/EP3405901A1/en not_active Withdrawn
- 2016-12-22 CN CN201680078752.7A patent/CN108475314A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130312102A1 (en) * | 2012-05-18 | 2013-11-21 | International Business Machines Corporation | Verifying application security vulnerabilities |
CN103577317A (zh) * | 2012-08-02 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 软件系统的异常测试方法、系统和软件测试系统 |
US20150161393A1 (en) * | 2013-12-11 | 2015-06-11 | International Business Machines Corporation | Quantitative analysis of information leakage vulnerabilities |
US20150227746A1 (en) * | 2014-02-07 | 2015-08-13 | Northwestern University | System and Method for Privacy Leakage Detection and Prevention System without Operating System Modification |
CN105022958A (zh) * | 2015-07-11 | 2015-11-04 | 复旦大学 | 一种安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353159A (zh) * | 2018-12-21 | 2020-06-30 | 富士通株式会社 | 确定计算机可读程序的信息泄漏 |
Also Published As
Publication number | Publication date |
---|---|
US10102368B2 (en) | 2018-10-16 |
EP3405901A1 (en) | 2018-11-28 |
WO2017127214A1 (en) | 2017-07-27 |
US20170206350A1 (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475314A (zh) | 使用递增简档分析的信息流跟踪 | |
US10346282B2 (en) | Multi-data analysis based proactive defect detection and resolution | |
US11647034B2 (en) | Service access data enrichment for cybersecurity | |
US20200273570A1 (en) | Predictive analysis platform | |
JP6239807B1 (ja) | ユーザのペルソナ情報に基づくモバイルデバイス挙動の挙動分析のための方法およびシステム | |
Damshenas et al. | M0droid: An android behavioral-based malware detection model | |
EP4059203B1 (en) | Collaborative filtering anomaly detection explainability | |
US20150256423A1 (en) | Data collection, aggregation, and analysis for parental monitoring | |
US20160379136A1 (en) | Methods and Systems for Automatic Extraction of Behavioral Features from Mobile Applications | |
JP2018514848A (ja) | クラウド対クライアント挙動の差異を通じてマルウェアを特定するための方法およびシステム | |
US10474456B2 (en) | Software version fingerprint generation and identification | |
CN102402479B (zh) | 用于静态分析的中间表示结构 | |
JP2017504121A (ja) | 端末デバイスにおけるユーザインタフェースを用いたユーザ行動および関与の計測機 | |
JP2018522319A (ja) | 非良性挙動を特定し、それに応じるために、ブーストされた判定株の原因分析を使用するための方法およびシステム | |
CN113227971A (zh) | 实时应用错误识别和缓解 | |
US20150186195A1 (en) | Method of analysis application object which computer-executable, server performing the same and storage media storing the same | |
CN117321584A (zh) | 高数据i/o比模块的处理管理 | |
US10929258B1 (en) | Method and system for model-based event-driven anomalous behavior detection | |
CN114205212A (zh) | 一种网络安全预警方法、装置、设备及可读存储介质 | |
CN111178687B (zh) | 金融风险分类方法、装置及电子设备 | |
US11290473B2 (en) | Automatic generation of detection alerts | |
US11991201B2 (en) | Likelihood assessment for security incident alerts | |
US9747448B2 (en) | Cryptographic mechanisms to provide information privacy and integrity | |
US20230195863A1 (en) | Application identity account compromise detection | |
CN107562599A (zh) | 一种参数检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180831 |
|
WD01 | Invention patent application deemed withdrawn after publication |