CN107209825A - 经由存储器监测的数据流跟踪 - Google Patents

经由存储器监测的数据流跟踪 Download PDF

Info

Publication number
CN107209825A
CN107209825A CN201580074572.7A CN201580074572A CN107209825A CN 107209825 A CN107209825 A CN 107209825A CN 201580074572 A CN201580074572 A CN 201580074572A CN 107209825 A CN107209825 A CN 107209825A
Authority
CN
China
Prior art keywords
software application
behavior
computing device
storage address
polluted
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
Application number
CN201580074572.7A
Other languages
English (en)
Inventor
M·K·尹
M·萨拉耶格赫
M·克里斯托多雷斯库
Y·陈
V·斯里哈拉
R·古普塔
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 CN107209825A publication Critical patent/CN107209825A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

用于跟踪计算设备中的数据流的方法和设备,包括:监测计算设备的硬件组件中的存储器以识别从已污染存储器地址读取信息的读取操作,使用启发法来识别在所识别的读取操作之后执行的第一数量的操作、第二数量的操作、以及第三数量的操作,将在第一数量的操作之后并且在第二数量的操作之前执行的写入操作的存储器地址标记为已污染的,以及将在第三数量的操作之后并且在第二数量的操作之前执行的写入操作的存储器地址标记为未污染的。

Description

经由存储器监测的数据流跟踪
背景技术
蜂窝通信技术和无线通信技术在过去的若干年里得到了快速增长。更好的通信、硬件、更大的网络、以及更可靠的协议推动了这种增长。无线服务提供商现在能够供给其顾客不断扩展的特征和服务的阵列,并为用户提供对信息、资源、以及通信的空前级别的访问。为了与这些服务增强保持同步,移动电子设备(例如,蜂窝电话、平板计算机、膝上型计算机等)变得比以前更加强大且复杂。这种复杂性创造了新的机会以供恶意软件、软件冲突、硬件故障、以及其它类似的错误或现象消极地影响移动设备的长期且持续的性能和功率利用水平。因此,识别并校正可以消极地影响移动设备的长期且持续的性能和功率利用水平的条件和/或移动设备行为对于消费者是有利的。
发明内容
各种方面包括用于跟踪计算设备中的数据流的方法,该方法可以包括:监测存储器以识别从已污染存储器地址读取信息的读取操作;确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在第一数量的操作之后执行的第三数量的操作的上边界值(N);对操作进行监测直到以下中的一个为止:M个操作被执行;以及到未污染地址的N个写入操作被识别;将与所识别的写入操作相关联的存储器地址标记为已污染的;以及将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
在一个方面中,该方法可以包括:使用启发法来识别第一数量(O)的操作、第二数量(M)的操作、以及第三数量(N)的操作。在另一方面中,该方法可以包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的软件应用,以及将在计算设备中收集的行为信息应用于分类器模型中的提升决策桩以确定软件应用是否为非良性的。在另一方面中,该方法可以包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用,以及监测由第一软件应用做出的应用编程接口调用。
在另一方面中,该方法可以包括:基于所监测的API调用来生成行为向量信息结构,将行为向量信息结构应用于分类器模型以生成基于行为的分析结果,以及使用基于行为的分析结果来确定第一软件应用是否为非良性的。在另一方面中,该方法可以包括:识别从已污染存储器地址中的一个已污染存储器地址读取信息的第二软件应用,以及监测由第二软件应用做出的应用编程接口调用。
在另一方面中,该方法可以包括:基于由第一软件应用和第二软件应用做出的API调用的组合而来生成行为向量信息结构,将行为向量信息结构应用于分类器模型以生成基于行为的分析结果,以及使用基于行为的分析结果来确定第一软件应用和第二软件应用的行为是否为非良性的。在另一方面中,基于由第一软件应用和第二软件应用做出的API调用的组合来生成行为向量信息结构可以包括:生成以第一软件应用和第二软件应用的共同行为为特征的信息结构。在另一方面中,基于由第一软件应用和第二软件应用做出的API调用的组合来生成行为向量信息结构可以包括:生成以第一软件应用和第二软件应用之间的关系为特征的信息结构。
另外的方面可以包括一种非暂时性计算机可读存储介质,其上存储有处理器可执行的软件指令,该处理器可执行的软件指令被配置为使得计算设备的处理器执行操作,包括:监测存储器以识别从已污染存储器地址读取信息的读取操作;确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在第一数量的操作之后执行的第三数量的操作的上边界值(N);对操作进行监测直到以下中的一个为止:M个操作被执行;以及到未污染地址的N个写入操作被识别;将与所识别的写入操作相关联的存储器地址标记为已污染的;以及将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
在一个方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,还包括使用启发法来识别第一数量的操作、第二数量的操作、以及第三数量的操作。在另一方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,还包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的软件应用,以及将在计算设备中收集的行为信息应用于分类器模型中的提升决策桩以确定软件应用是否为非良性的。在另一方面中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用,以及监测由第一软件应用做出的应用编程接口调用。
在另一方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,还包括基于所监测的API调用来生成行为向量信息结构,将行为向量信息结构应用于分类器模型以生成基于行为的分析结果,以及使用基于行为的分析结果来确定第一软件应用是否为非良性的。在另一方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,还包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的第二软件应用;以及监测由第二软件应用做出的应用编程接口调用。
在另一方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,还包括基于由第一软件应用和第二软件应用做出的API调用的组合来生成行为向量信息结构,将行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及使用基于行为的分析结果来确定第一软件应用和第二软件应用的行为是否为非良性的。在另一方面中,所存储的处理器可执行的软件指令可以被配置为使得处理器执行操作,以使得基于由第一软件应用和第二软件应用做出的API调用的组合来生成行为向量信息结构包括:生成以第一软件应用和第二软件应用的共同行为为特征的信息结构。在另一方面中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,以使得基于由第一软件应用和第二软件应用做出的API调用的组合来生成行为向量信息结构包括:生成以第一软件应用与第二软件应用之间的关系为特征的信息结构。
另外的方面包括一种计算设备,该计算设备包括处理器,该处理器配置有处理器可执行的指令,以用于执行操作,可以包括:监测存储器以识别从已污染存储器地址读取信息的读取操作;确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在第一数量的操作之后执行的第三数量的操作的上边界值(N);对操作进行监测直到以下中的一个为止:M个操作被执行;以及到未污染地址的N个写入操作被识别;将与所识别的写入操作相关联的存储器地址标记为已污染的;以及将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
在一个方面中,该处理器可以配置有处理器可执行的指令,以用于执行操作,还包括识别从已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用,监测由第一软件应用做出的应用编程接口调用,基于所监测的API调用来生成行为向量信息结构,将行为向量信息结构应用于分类器模型以生成基于行为的分析结果,以及使用基于行为的分析结果来确定第一软件应用是否为非良性的。
另外的方面包括一种计算设备,该计算设备具有用于执行上面讨论的方法操作的功能的各种模块。
附图说明
并入本文并构成本说明书的一部分的附图示出了本发明的示例性方面,并与上面给出的总体描述和下面给出的具体实施方式一起用于解释本发明的特征。
图1是适于实现各种方面的示例片上系统的架构图。
图2是根据一个方面的示出在配置为跟踪数据流的方面移动设备中的示例逻辑组件和信息流的框图。
图3是根据一个方面的能够由计算设备标记为已污染或未污染的示例存储器地址的图示。
图4和图5是根据一个方面的示出跟踪数据流的方法的过程流程图。
图6是根据另一方面的示出跟踪数据流的方法的过程流程图。
图7是适于与各种方面一起使用的示例移动设备的图示。
具体实施方式
将参考附图详细描述各种方面。在任何可能的情况下,将遍及附图使用相同的附图标记来指代相同或类似的部分。对特定的示例和实现方式所做的参考是出于示例说明的目的,而并非旨在限制本发明或权利要求的范围。
在概述中,各种方面包括使用启发法(heuristic)和机器学习技术来提供高效的数据跟踪解决方案的方法,其适于由移动且资源受约束的计算设备用于快速且高效地识别不恰当地使用数据(例如,读取地址簿数据并将其发送到服务)的软件应用和/或以其它方式非良性的(例如,恶意的、编写糟糕的、与设备不兼容的等)软件应用。
在一个方面中,计算设备可以预先配置有信息,该信息识别或使得计算设备能够选择应该被给予密切监测的存储器地址。计算设备可以被配置为将所选择的存储器地址标记为“已污染的”(例如,通过将存储器地址添加到污染列表),监测计算设备中的行为、活动、或操作以识别从已污染存储器地址(即,被标记为已污染的存储器地址)读取信息的软件应用,将所识别的软件应用分类为需要进行密切监测或附加审查的,应用污染传播启发法来识别应该被标记为已污染的附加存储器地址和/或识别应该是“未污染的”已污染存储器地址(例如,从污染列表中移除、标记为不再需要进行密切监测等)。然后计算设备可以监测已污染存储器地址,以识别需要进行密切监测或附加审查的附加软件应用。在一个方面中,可以针对一组操作或可配置数量的操作在硬件模块中执行对在已污染地址访问之后的存储器访问操作(例如,写入信息到已污染存储器或从已污染存储器读取信息的操作等)的监测。可以在计算设备中重复地或连续地执行这些操作,以识别非良性的软件应用,而不对设备的性能或功率消耗特性施加显著的消极影响。
在一个方面中,计算设备可以被配置为监测其存储器以识别从已污染存储器地址读取信息的读取操作。在一个方面中,可以在软件(例如,行为监测系统的一部分)中执行对读取操作的这种监测。响应于识别这种读取操作,计算设备可以使用污染传播启发法来计算或确定第一数量的操作(例如,“偏移”或“O”数量的操作)、第二数量的操作(例如,监测窗口或“M”数量的操作)、以及第三数量的操作(例如,上边界或“N”数量的操作)。
第一数量的操作(O)可以标识在计算设备起始将存储器地址标记为已污染的之前计算设备能够忽视的检测到的读取操作之后的操作的数量。在偏移数量的操作(O)之前,恶意操作写入到另一存储器地址的可能性很低,因此计算设备(例如,存储器监测模块)能够确定不开始标记存储器地址,直到第O个操作之后为止,以节约处理和电池资源。第二数量的操作(M)可以通过识别计算设备可以针对写入操作进行监测的在第O个操作之后的操作(例如,读取、写入、添加、移动、分支等)的数量来标识监测窗口。第三数量的操作(N)可以定义计算设备可以标记为已污染的、在监测窗口内(例如,在M数量的操作中)的写入操作的数量的上边界。
作为说明性示例,计算设备可以使用污染传播启发法来确定O、M、以及N的值应该分别是10、100、以及4。然后,计算设备可以识别从已污染存储器地址读取信息的读取操作,忽略在检测到的读取操作之后执行的前10个操作(即,O个操作),并且监测接下来的100个操作(即,M个操作)以识别到未污染地址的前4个写入操作(即,前N个操作)。在计算设备识别监测窗口中的第4个(即,第N个)写入操作之后或者在监测窗口的100个操作已经被执行之后(无论哪个先发生),计算设备可以停止监测到未污染地址的写入操作。例如,如果在监测窗口的100个操作中仅存在三(3)个写入操作,则计算设备将监测所有100个操作。另一方面,如果监测窗口中的第二个、第四个、第八个、以及第十个操作是到未污染地址的写入操作,则计算设备将在第十个操作之后(即,在第N个操作之后)停止监测到未污染地址的操作。计算设备可以将与监测窗口中的这些所识别的写入操作(多达N个操作)相关联的存储器地址标记为已污染的。另外,计算设备可以将在第N个写入操作之后(例如,在上面的示例中在第4个操作之后)发生的所有写入操作标记为未污染的,而不管写入操作是否在监测窗口(M)内发生。以另一种方式而言,计算设备可以将在监测窗口(M)中的在第N个操作之后执行的所有写入操作以及在监测窗口(M)外的所有写入操作标记为未污染的。
在一个方面中,可以在计算设备的硬件组件中执行对存储器访问操作的监测。软件模块辨识出已污染地址已经被读取可以触发存储器监测硬件模块(例如,经由应用编程接口(API)指令)在O个操作之后开始监测存储器操作,直到M个操作被执行为止。替代地或另外地,计算设备中的相同或不同的组件可以监测到已污染存储器地址的所有存储器读取和写入操作,识别到已污染存储器地址的写入,以及将这些存储器地址标记为未污染的。
通过实现和使用上面描述的污染传播启发法,计算设备可以在数据流经系统时跟踪数据,而不对其运行时系统进行任何修改。由于对运行时系统的这种修改(常规解决方案所需要的)可能对计算设备的性能和功率消耗特性具有显著且消极的影响,所以使用污染传播启发法可以改善计算设备的运行(例如,通过改善其性能和功率消耗特性)。另外,通过使用污染传播启发法,计算设备可以通过识别到选择的存储器地址的读取和写入操作来在数据流经系统时(例如,在源组件与宿组件之间)跟踪数据。这允许计算设备跟踪数据流,而无需执行复杂或功率密集的操作,例如,用于利用标识符或跟踪/污染信息来注释、标记、或标注数据(这是常规的数据流跟踪解决方案所需要的)的操作。这进一步改善了计算设备的性能和功率消耗特性。
如在本文中使用的术语,“源组件”指示生成和/或输入数据到被评估的软件应用的任何组件。源组件的示例包括文件、软件应用(例如,地址簿应用等)、远程进程、外部服务器、系统服务等。“宿组件”指示在数据由软件应用进行处理之后消耗或使用该数据的任何组件。宿组件的示例包括文件、数据库、电子显示器、网络连接、以及传输点(例如,互联网、HTTP、文本消息、收发器等)。
术语“移动计算设备”和“移动设备”在本文中可互换地使用,以指示以下中的任一个或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、超级本、掌上计算机、无线电子邮件接收机、多媒体互联网使能的蜂窝电话、无线游戏控制器,以及包括存储器、对其而言性能重要的可编程处理器的类似的个人电子设备。虽然各种方面对于具有有限资源并以电池电力运行的移动计算设备(例如,智能电话)尤其有用,但是方面一般在包括处理器并执行应用程序的任何电子设备中有用。
在本文中使用术语“运行时系统”来指示计算设备中的支持应用程序在该设备中执行的软件资源和/或硬件资源的组合。例如,运行时系统可以包括以下中的全部或部分:计算设备的处理资源、操作系统、库模块、调度器、进程、线程、堆栈、计数器、和/或其它类似的组件。运行时系统可以负责将计算资源分配给应用程序,以用于控制所分配的资源,并且用于执行应用程序的操作。
在本文中使用术语“性能降级”来指示多种不期望的移动设备操作和特性,例如,较长的处理时间、较慢的实时响应、较低的电池寿命、丢失私有数据、恶意的经济活动(例如,发送未授权的付费SMS消息)、拒绝服务(DoS)、编写糟糕或设计糟糕的软件应用、恶意软件、恶意程序、病毒、碎片化存储器、与征用移动设备或利用电话来进行间谍或僵尸网络(botnet)活动有关的操作等。另外,出于这些原因中的任何原因,使性能降级的应用和条件在本文中被称为“非良性”或“非良性的”。
一般地,移动设备的性能、功率效率、以及安全性随着时间而降级。近来,防病毒公司(例如,McAfee、Symantec等)已经开始销售移动防病毒、防火墙、以及加密产品,其目的在于减缓该降级。然而,这些解决方案中的许多解决方案依赖于在移动设备上周期性执行计算密集的扫描引擎,这可以消耗移动设备的处理和电池资源中的许多处理和电池资源,在延长的时间段内减缓移动设备或致使移动设备无效,和/或以其它方式使用户体验降级。另外,这些解决方案典型地限于检测已知的病毒和恶意程序,并且不解决这样的问题:多个复杂因素和/或交互经常组合以有助于移动设备随着时间而降级(例如,当性能降级不是由病毒或恶意程序引起时)。出于这些原因和其它原因,现有的防病毒、防火墙、以及加密产品并不提供足够的解决方案来识别可能有助于移动设备随着时间而降级的多个因素、防止移动设备降级、或者使老化的移动设备高效地恢复到其原始条件。
在各种方面中,计算设备(例如,移动的或资源受约束的计算设备)可以配备有基于行为的安全系统,其被配置为使用行为分析和机器学习技术来智能且高效地识别、防止、和/或校正使计算设备的性能和/或功率利用水平经常随着时间而降级的条件、因素、和/或行为。例如,基于行为的安全系统可以使用行为分析技术来快速且高效地确定软件应用、进程、活动、或设备行为是良性的还是非良性的。基于行为的安全系统然后可以使得计算设备执行各种动作或操作来校正、治愈、治疗、隔离、或以其它方式修正所识别的问题(例如,被确定为非良性的行为)。
虽然上面提及的基于行为的安全系统对于防止计算设备的性能和功率利用水平随着时间而降级一般是非常高效的,但是某些非良性的行为可以逃避由这种系统进行的检测。此外,恶意软件应用可能试图通过延迟其操作、协力地工作、或以其它方式掩盖恶意动作来回避或逃避由这种系统进行的检测。例如,当从用户的地址簿偷取信息时,恶意软件应用可能试图通过访问地址簿、对地址簿信息进行编码、以及将经编码的信息存储在与地址簿文件分离的分立文件中来逃避检测。然后,恶意应用可以在从分立文件中取回信息并将信息发送到服务器之前等待几天,或者第二恶意应用可以取回信息并将信息发送到服务器。
典型地,基于行为的安全系统能够确定上面描述的操作(例如,读取、存储、以及发送地址簿数据)的序列与设备的正常操作模式不一致,并将该行为分类为非良性的。然而,由于操作是在相对长的时间段内执行的和/或是由协力地工作的多个软件应用执行的,所以基于行为的安全系统可能无法将这些操作识别为相同的序列或行为的一部分。
计算设备可以通过实现和使用结合基于行为的安全系统的数据流跟踪解决方案来克服上面提及的限制。简略地,数据流跟踪解决方案(例如,FlowDroid)提供用于确定由敏感源组件生成的数据是否到达重要的宿组件(即,被确定为易受滥用影响的、被标记为重要的等组件)的机制。使用常规解决常规方案,利用标识符(例如,跟踪或污染信息)来注释、标记、或标注数据。这些标识符由处理、使用、或传达数据的每个中间组件复制,并且宿组件使用这些标识符来确定数据是否源自经授权的、受信任的、经批准的、或适当的源组件。
作为示例,计算设备中的源组件可以使源ID值关联到其产生、生成、或传达的每个数据的单元。处理该数据的单元的每个中间组件可以传达源ID值连同数据单元,以使得数据单元及其源ID值二者传播通过系统,直到它们在宿组件中被接收为止。宿组件可以使用源ID值来确定数据单元是否源自经授权的、受信任的、经批准的、或以其它方式适当的源组件。计算设备可以响应于确定数据单元不与经授权的、受信任的、或经批准的源组件相关联而生成错误消息或引发异常。
虽然上面提及的数据流跟踪解决方案对于识别非良性的软件应用一般是高效的,但是其不适于在许多现代计算设备(例如,移动设备等)中使用。这是因为现代计算设备是高度可配置且复杂的系统,并且包括执行大量操作(读取、写入、数据编码、数据传输等)的许多组件。作为结果,在计算设备中可能存在大量需要进行监测的数据流,并且这些数据流中的每个数据流可以包括传播通过许多不同的中间组件的大量数据单元。使用常规的数据流跟踪解决方案,可能要求计算设备对这些数据单元中的许多数据单元或所有数据单元进行标记、监测、跟踪、或评估。经常地,这要求计算设备执行大量复杂且功率密集的操作。这样的操作对于设备的性能和功率消耗特性可以具有显著且消极的影响。
计算设备可以通过实现和使用这样的污染跟踪解决方案来克服上面提及的限制:减少需要进行跟踪的数据流的数量/减少当分析设备行为时需要进行标记、监测、跟踪、以及评估的数据单元的数量。
一般地,污染跟踪是其中计算设备的运行时系统或虚拟机被修改为将某些组件、操作、或存储器位置标记为“已污染”的数据流跟踪技术。运行时系统或虚拟机然后可以监测已污染的组件、操作、或存储器位置来识别使用这些已污染资源的组件。例如,计算设备可以被配置为将由敏感源组件使用的存储器位置标记为已污染的,并且监测该已污染的存储器位置以识别从已污染存储器读取信息的中间软件应用或进程,将由所识别的中间应用/进程使用的存储器位置标记为已污染的,等等。这允许系统识别将以其它方式逃避由基于行为的安全(例如,协力地工作的软件应用)进行的检测的非良性行为。这还允许计算设备将其操作集中于监测设备中的选择数量的组件、操作、或存储器位置,以便减少当跟踪数据流时需要执行的复杂且功率密集的操作的数量。
虽然污染跟踪解决方案克服了较常规的数据流跟踪解决方案的限制中的一些限制,但是现有的污染跟踪解决方案不适于用作许多现代计算设备中的基于行为的安全解决方案的一部分。首先,常规的污染跟踪解决方案需要修改计算机设备的运行时系统或虚拟机,并且这种修改可能对计算设备的性能和功率消耗特性具有显著且消极的影响。另外,许多常规的污染跟踪解决方案需要将与已污染组件相关联的所有组件、操作、以及存储器位置标记为也被污染的,但是无法智能地确定这些已污染资源是否应该被重新分类为未污染的。作为结果,随着时间而持续或重复地使用这些解决方案可能需要计算设备识别、标记、标注、监测、和/或跟踪大量的组件,这可能致使计算设备无响应。此外,许多现有的解决方案需要计算设备使用经复制的变量作为元数据和/或实现整体或附加的指令集,以便于在每个存储指令上动态地传播标识符(即,跟踪/污染信息),这可能消耗显著大量的设备的处理、功率、或存储器资源。
出于所有上面描述的原因,常规的污染跟踪解决方案不适于在现代计算设备中使用,例如,是具有有限的存储器、功率、以及处理资源的资源受约束的设备的移动设备。这些解决方案也不适于用作持续且重复地监测和分析大量的设备行为的全面的基于行为的安全系统的一部分,因为持续或重复地使用这些现有的解决方案可能致使计算设备无响应。
各种方面包括使用启发法和机器学习技术来实现和提供改善的数据跟踪解决方案(例如,改善的污染跟踪解决方案等)的方法以及被配置为实现这些方法的计算设备,该改善的数据跟踪解决方案克服了上面提及的现有的解决方案的限制,并且适于用作资源受约束的计算设备的基于行为的安全系统的一部分。
不同于常规的解决方案,各种方面包括不需要计算设备标注或跟踪大量的数据的跟踪解决方案,如使数据流经系统的存储器访问、数据转换操作、存储器写入操作。各种方面允许计算设备使用污染传播启发法来确定存储器位置是应该被标记为已污染的还是未污染的。这允许设备在数据流经系统时智能地跟踪数据,并且识别需要附加的或更详细的监测、分析、或审查的设备行为、特征、或软件应用,而不对其性能和功率消耗特性具有显著的消极影响。通过减少要实现该方法必须进行跟踪的数据的量,各种方面可以至少部分地在硬件(例如,存储器监测模块)中实现以便于减少这种监测的处理开销。
在一些方面中,基于行为的安全系统可以是行为监测和分析系统,其被配置为高效地识别非良性软件应用(例如,恶意的、编写糟糕的、与设备不兼容等的应用),并且防止这种应用使设备的性能和/或功率利用水平随着时间而降级。行为监测和分析系统可以包括观测器进程、守护进程(daemon)、模块、或子系统(在本文中统称为“模块”),其被配置为仪器化或协调计算设备系统的各种级别处的各种应用编程接口(API)、寄存器、计数器、或其它组件(在本文中统称为“仪器化组件”)。观测器模块可以通过收集来自仪器化组件的行为信息来连续地(或接近连续地)监测设备行为,这可以通过从存储在设备的存储器中的日志文件(例如,API日志)读取信息来实现。行为监测和分析系统还可以包括分析器模块,并且观测器模块可以将收集到的行为信息传达(例如,经由存储器写入操作、函数调用等)到分析器模块。分析器模块可以接收和使用行为信息来执行行为分析操作,其可以包括实现、执行、和/或应用数据、算法、分类器、和/或模型来确定设备行为是良性的还是非良性的/性能降级的。
在一个方面中,计算设备可以被配置为使用方面数据跟踪解决方案作为全面的行为监测和分析系统的一部分,以用于生成安全策略和/或识别需要进行更密切的或附加的监测或分析的组件或特征。例如,行为监测和分析系统可以对选择控制流和/或运行时参数进行识别、测量、监测、和/或分析,然后使用这些操作的结果来计算标识在宿组件中接收到的数据是来自需要进行更密切的监测或附加的审查的敏感或受保护的源组件的可能性的概率值。这允许计算设备仅对选择运行时参数进行分析(与跟踪整个数据流相反)来识别敏感数据,并将其监测和分析操作集中于评估计算设备的最重要的特征。这改善设备的速度、响应度、以及总体性能(例如,通过改善基于行为的安全系统的性能等)。
在一个方面中,计算设备可以被配置为使用机器学习技术和启发法来生成、更新、和/或训练数据、算法、分类器和/或行为模型,其可以由行为监测和分析系统用于识别非良性的(例如,恶意的、编写糟糕、与设备不兼容的等)软件应用,而无需如当使用常规的数据流跟踪解决方案时所需要的那样来标注或跟踪数据。例如,计算设备处理器可以配置有处理器可执行的指令,以用于运行/执行软件应用,识别应用所使用的数据源点或组件和宿点或组件中的全部,收集和存储针对每个所识别的点/组件的启发法值和地面真值(例如,“发生的数据泄露”等),使用启发法值来确定存储器位置是应该被标记为已污染的还是未污染的,监测已污染存储器地址以识别从已污染存储器地址读取信息或向其写入信息的软件应用,以及确定所识别的软件应用是良性的还是非良性的。
在各种方面中,计算设备可以被配置为跟踪通过多线程软件应用的多个线程和/或在应用的多个并发执行中的数据流。在一个方面中,这可以通过设备实现和使用针对每个线程或进程的每线程启发法计数器来实现。在一个方面中,计算设备可以针对每个线程生成和维持分离的启发法。对于后台线程和线程池而言,设备可以被配置为在每次调度/执行每个任务/进程时针对每个任务/进程维持、恢复、或保存计数器,以使得线程池中的线程不会错误地跨任务共享启发法值(这将使共享线程的不相关任务之间的准确性偏离)。
在一个方面中,计算设备可以被配置为快速且高效地确定敏感信息是否从源组件被泄露(即,被不恰当地使用或由未经授权的组件使用等)到宿组件,而不消耗过量的设备的处理、功率、或存储器资源。这可以经由设备处理器进行以下操作来实现:识别与敏感源组件相关联的第一存储器地址,识别与宿组件相关联的第二存储器地址,以及确定第一存储器地址是否与第二存储器地址相同。例如,在识别源组件(例如,gps_location等)和宿组件(例如,sendsms(msg))之后,计算设备处理器可以比较宿变元(argument)的地址(例如,“sendsms(msg)”中的“msg”、“send(a)”中的“a”等)与源组件的地址,以确定地址是否匹配(例如,相同、相等、等效等)。设备处理器可以响应于确定第一存储器地址与第二存储器地址相同而确定发生了信息泄露。计算设备还可以响应于确定源组件的地址和宿组件的地址匹配(即,第一存储器地址与第二存储器地址相同)而识别使用源或宿或者与源或宿相关联(并且因此需要进行更密切的审查或更深度的分析)的组件。然后,计算设备可以响应信息泄露,例如,通过隔离读取或写入信息到所识别的地址的应用程序、使用源组件或宿组件的应用程序等。
各种方面可以在多个不同的计算设备中实现,包括单个处理器系统和多处理器系统。图1是示出可以在实现各种方面的计算设备中使用的示例片上系统(SOC)100架构的架构图。SOC 100可以包括多个异构处理器,例如,数字信号处理器(DSP)103、调制解调器处理器104、图形处理器106、以及应用处理器108。SOC 100还可以包括一个或多个协处理器110(例如,向量协处理器),其连接到异构处理器103-108中的一个或多个。
每个处理器103-110可以包括一个或多个核心,并且每个处理器/核心可以独立于其它处理器/核心执行操作。此外,每个处理器103-108可以包括独立于系统中的其它操作系统和处理器执行存储器管理操作的操作系统。例如,多处理器系统可以包括执行第一类型的操作系统(例如,FreeBSD、LINUX、OS X等)的第一处理器,以及执行第二类型的操作系统(例如,Microsoft Windows 10等)的第二处理器。这些操作系统中的每个操作系统可以包括存储器管理系统,以用于通过在该处理器103-108上执行的应用程序来管理系统存储器116的分配和使用。例如,每个操作系统可以包括虚拟存储器管理器(OS VMM),其被配置为将虚拟存储器地址分配给应用程序,并确保由一个进程使用的存储器不干扰另一进程已经使用的存储器。当进程要求访问物理存储器时,可以由特定于该处理器103-108的存储器管理单元(MMU)将这些虚拟地址转换为物理存储器地址。
SOC 100可以包括存储器监测模块118,其维护已污染存储器地址的列表,监测存储器116以识别与已污染存储器地址相关联的读取和写入操作,识别和收集关于在信息从已污染存储器地址被读取之后执行的操作的信息,以及将任何或所有这样的信息传达到计算设备的一个或多个软件模块。
SOC 100还可以包括模拟电路和定制电路112,以用于管理传感器数据、模拟-数字变换、无线数据传输,以及用于执行其它专用操作,例如,处理用于游戏和电影的经编码音频信号。SOC 100可以包括系统组件和资源114,例如,电压调节器、振荡器、锁相环、外围桥、数据控制器、存储器控制器、系统控制器、访问端口、定时器、以及用于支持处理器和客户端在计算设备上运行的其它类似的组件。资源/系统组件114和定制电路112可以包括用于与外围设备(例如,照相机、电子显示器、无线通信设备、外部存储器芯片等)接口的电路。
处理器103-108可以经由互连/总线模块124与存储器116元件、存储器监测模块118、资源和定制电路112互连,互连/总线模块124可以包括可重新配置逻辑门的阵列和/或实现总线架构(例如,CoreConnet、AMBA等)。可以通过高级互连提供通信,例如,高性能的片上网络(NoC)。
SOC 100还可以包括输入/输出模块(未示出),以用于与SOC 100外部的资源进行通信,例如,时钟120和电压调节器122。SOC外部的资源(例如,时钟120、电压调节器122)可以由内部SOC处理器/核心(例如,DSP 103、调制解调器处理器104、图形处理器106、应用处理器108等)中的两个或更多个来共享。
SOC 100还可以包括这样的硬件组件和/或软件组件:其适于与扬声器接口,接收来自用户接口元件(例如,输入按钮、触摸屏显示器等)的输入,接收来自麦克风阵列的音频数据,以及收集来自传感器的传感器数据,传感器包括用于监测物理条件(例如,位置、方向、运动、取向、振动、压力等)的传感器、照相机、指南针、GPS接收器、通信电路(例如,蜂窝、WLAN、WiFi等)、以及现代电子设备的其它公知的组件(例如,加速度计、陀螺仪等)。
处理器103-108可以是彼此紧密邻近(例如,在单个基底、管芯、集成芯片等上)的独立处理核心。处理器103-108的邻近允许共享片上的存储器116,并且允许在核心之间进行更协调的合作。另外,与在如果数据信号不得不行经芯片外的情况下可能的频率/时钟速率相比,处理器103-108的邻近还允许存储器116以更高的频率/时钟速率进行操作。
图2示出了可以在方面移动设备102的处理器中实现的示例逻辑组件和信息流,该方面移动设备102被配置为确定特定的移动设备行为、软件应用、或进程是否为非良性的(即,恶意的、性能降级的、或可疑的)。在图2所示的示例中,移动设备102包括硬件组件和软件组件二者。
硬件组件可以包括存储器监测模块118,其包括/存储已污染/敏感存储器地址222的列表。软件组件可以包括操作系统框架模块202、污染管理模块204、以及基于行为的安全模块206。污染管理模块204可以包括数据-地址转换模块208、污染传播器模块210、以及已污染地址模块212。基于行为的安全模块206可以包括行为观测器模块214、行为分析器模块216、以及致动器模块218。
操作系统框架模块202可以发送需要进行密切监测的敏感组件的初始列表。污染管理模块204可以将由这些敏感组件使用的存储器地址标记为“已污染的”。这可以通过生成包括由敏感组件使用的存储器地址的污染列表并将污染列表发送到存储器监测模块118来实现。
存储器监测模块118可以被配置为接收来自污染管理模块204的污染列表,并且更新其已污染/敏感存储器地址222的列表。存储器监测模块118可以监测设备的存储器,以检测从包括在已污染/敏感存储器地址222的列表中的存储器地址读取信息的读取操作。存储器监测模块118可以收集关于在检测到的读取操作之后执行的操作的信息,生成包括这些操作的操作列表,以及将列表发送到污染管理模块204。
污染管理模块204可以接受来自存储器监测模块118的操作列表,使用污染传播启发法来计算或确定操作的第一数量的操作(O)、第二数量的操作(M)、以及第三数量的操作(N)。如上面所描述的,第一数量的操作(O)可以标识在计算机设备起始将存储器地址标记为已污染的之前计算设备能够忽视的检测到的读取操作之后的操作的数量。第二数量的操作(M)可以通过识别在计算设备可以针对写入操作监测的第O个操作之后的操作(例如,读取、写入、添加、移动、分支等)的数量来标识监测窗口。第三数量的操作(N)可以定义计算设备可以标记为已污染的在监测窗口内(例如,在M数量的操作中)的写入操作的数量的上边界。
在确定O、M、以及N值之后,污染管理模块204可以更新污染列表,以包括与在第O个操作与第M个操作之间执行的前N个写入操作相关联的存储器地址,从污染列表中移除与在第N个检测到的写入操作之后或在第M个操作之后(无论哪个先发生)执行的写入操作相关联的存储器地址。污染管理模块204还可以识别读取或写入信息到已污染存储器地址的软件应用,并且将该信息发送到基于行为的安全模块206。可以重复地或连续地执行这些操作以识别性能降级行为的源或起因,而不对移动设备102的性能或功率消耗特性具有显著的消极影响。
行为观测器模块214可以被配置为仪器化或协调移动设备的各种级别/模块处的应用编程接口(API),并经由仪器化的API监测/观测各种级别/模块处的移动设备操作和事件(例如,系统事件、状态改变等),收集属于所观测到的操作/事件的信息,智能地过滤所收集的信息,基于所过滤的信息生成一个或多个观测,将所生成的观测存储在存储器中(例如,在日志文件、高速缓存存储器等中)和/或将所生成的观测发送(例如,经由存储器写入、函数调用等)到行为分析器模块216。在各种方面,所生成的观测可以存储为行为向量和/或存储在API日志文件或结构中。
在各种方面中,行为观测器模块214可以通过收集属于以下项的信息来监测/观测移动设备操作和事件:读取/写入到已污染存储器地址、在应用框架或运行时库中的库API调用、系统调用API、文件系统和联网子系统操作、设备(包括传感器设备)状态改变、以及其它类似事件。行为观测器模块214还可以监测文件系统活动,其可以包括搜索文件名、文件访问的类别(个人信息或正常数据文件)、创建或删除文件(例如,类型exe、zip等)、文件读取/写入/寻找操作、改变文件许可等。
行为观测器模块214还可以监测/观测数据网络活动,其可以包括连接的类型、协议、端口号、设备所连接到的服务器/客户端、连接的数量、通信的量或频率等。行为观测器模块214可以监测电话网络活动,其可以包括监测发送出、接收、或拦截的通话或消息(例如,SMS等)的类型和数量(例如,所拨打的付费通话的数量)。
行为观测器模块214还可以监测/观测系统资源使用,其可以包括监测分叉(fork)的数量、存储器访问操作、文件打开的数量等。行为观测器模块214可以监测移动设备的状态,其可以包括监测各种因素,例如,显示器是打开的还是关闭的、设备是锁定的还是解锁的、电池剩余的电量、照相机的状态等。行为观测器模块214还可以监测进程间通信(IPC),例如,通过监测对于至关重要的服务(浏览器、合同提供商等)的意图、进程间通信的程度、弹出窗口等。
行为观测器模块214还可以监测/观测驱动器统计和/或一个或多个硬件组件的状态,其可以包括照相机、传感器、电子显示器、WiFi通信组件、数据控制器、存储器控制器、系统控制器、访问端口、定时器、外围设备、无线通信组件、外部存储器芯片、电压调节器、振荡器、锁相环、外围桥、以及用于支持处理器和客户端在移动计算设备上运行的其它类似的组件。
行为观测器模块214还可以监测/观测表示移动计算设备和/或移动设备子系统的状态或状况的一个或多个硬件计数器。硬件计数器可以包括处理器/核心的专用寄存器,其被配置为存储在移动计算设备中发生的硬件相关的活动或事件的计数值或状态。
行为观测器模块214还可以监测/观测以下项的动作或操作:软件应用、来自应用下载服务器(例如,App商店服务器)的软件下载、由软件应用使用的移动设备信息、通话信息、文本消息传递信息(例如,SendSMS、BlockSMS、ReadSMS等)、媒体消息传递信息(例如,ReceiveMMS)、用户账户信息、位置信息、照相机信息、加速度计信息、浏览器信息、基于浏览器的通信的内容、基于语音的通信的内容、短程无线电通信(例如,蓝牙、WiFi等)、基于文本的通信的内容、所记录的音频文件的内容、电话簿或联系人信息、联系人列表等。
行为观测器模块214还可以监测/观测移动设备的传输或通信,包括:包括语音邮件(VoiceMailComm)、设备标识符(DeviceIDComm)、用户账户信息(UserAccountComm)、日历信息(CalendarComm)、位置信息(LocationComm)、所记录的音频信息(RecordAudioComm)、加速度计信息(AccelerometerComm)等的通信。
行为观测器模块214还可以监测/观测以下项的使用和对于以下项的更新/改变:指南针信息、移动设备设置、电池寿命、陀螺仪信息、压力传感器、磁体传感器、屏幕活动等。行为观测器模块214可以监测/观测被传达到软件应用和来自软件应用的通知(AppNotifications)、应用更新等。行为观测器模块214可以监测/观测属于请求下载和/或安装第二软件应用的第一软件应用的条件或事件。行为观测器模块214可以监测/观测属于用户验证的条件或事件,例如,输入密码等。
行为观测器模块214还可以监测/观测移动设备的多个级别处的条件或事件,包括应用级别、无线电级别、以及传感器级别。应用级别观测可以包括经由面部识别软件对用户进行观测、观测社交流、观测由用户输入的笔记、观测属于PassBook/Google Wallet/Paypal的使用的事件等。应用级别观测还可以包括观测与虚拟私有网络(VPN)的使用有关的事件,以及属于同步、语音搜索、语音控制(例如,通过说一个单词来锁定/解锁电话)、语言翻译器、卸载数据用于计算、视频流送、在没有用户活动情况下的照相机使用、在没有用户活动情况下的麦克风使用等的事件。
无线电级别观测可以包括确定以下中的任一个或多个的出现、存在、或量:在建立无线电通信链路或传输信息之前与移动设备的用户交互、双/多SIM卡、互联网无线电、移动电话叠接(tethering)、卸载数据用于计算、设备状态通信、用作游戏控制器或家庭控制器、车辆通信、移动设备同步等。无线电级别观测还可以包括监测无线电(WiFi、WiMax、蓝牙等)的使用,用于定位、端对端(p2p)通信、同步、车辆到车辆通信、和/或机器到机器(m2m)。无线电级别观测还可以包括监测网络流量使用、统计、或简档。
传感器级别观测可以包括监测磁体传感器或其它传感器,以确定移动设备的使用和/或外部环境。例如,移动设备处理器可以被配置为确定电话是在皮套中(例如,经由被配置为感测皮套内的磁体的磁体传感器)还是在用户的口袋中(例如,经由通过照相机或光传感器检测到的光的量)。检测移动设备处于皮套中可以与辨识可疑的行为相关,例如,因为在移动设备装在皮套中时与用户主动使用有关的活动和功能(例如,拍射照片或视频、发送消息、进行语音通话、录音等)发生可能是非法进程在设备上执行(例如,跟踪或暗中监视用户)的迹象。
与使用或外部环境有关的传感器级别观测的其它示例包括:检测近场通信(NFC),收集来自信用卡扫描仪、条形码扫描仪、或移动标签读取器的信息,检测USB充电源的存在,检测键盘或辅助设备已经耦合到移动设备,检测移动设备已经耦合到计算设备(例如,经由USB等),确定LED、闪光、闪光灯、或光源是否已经被修改或禁用(例如,恶意地禁用紧急发信号app等),检测扬声器或麦克风已经被打开或通电,检测充电或功率事件,检测移动设备用作游戏控制器等。传感器级别观测还可以包括收集来自医疗或健康护理传感器或者来自扫描用户的身体的信息,收集来自插入到USB/音频插孔的外部传感器的信息,收集来自触觉或触感传感器的信息(例如,经由振动器接口等),收集属于移动设备的热状态的信息等。
行为观测器模块214可以被配置为生成包括所观测的行为的简明定义的行为向量。每个行为向量可以以值或向量数据结构(例如,以一串数字的形式等)来简洁地描述移动设备、软件应用、或进程的所观测的行为。行为向量还可以用作使得移动设备系统能够快速辨识、识别、和/或分析移动设备行为的标识符。在一个方面中,行为观测器模块214可以生成包括一系列数字的行为向量,该一系列数字中的每个数字象征移动设备的特征或行为。例如,包括在行为向量中的数字可以象征移动设备的照相机是否在使用(例如,为0或1),从移动设备发送了或者由移动设备生成了多少网络流量(例如,20KB/sec等),已经传达了多少互联网消息(例如,SMS消息的数量等)等。
为了减少被监测到可管理级别的因素的数量,在一个方面中,行为观测器模块214可以被配置为通过监测/观测行为或因素的初始集合来执行粗略的观测,行为或因素的初始集合是可能有助于移动设备的降级的所有因素的小的子集。在各种方面中,行为观测器模块214可以接收来自其它移动设备、网络服务器、或者云服务或网络中的组件的行为和/或因素的初始集合。在一个方面中,可以在从其它移动设备、网络服务器、或云服务/网络接收的数据/行为模型中指定行为/因素的初始集合。在一个方面中,可以在精简特征模型(RFM)中指定行为/因素的初始集合。
行为分析器模块216可以接收来自行为观测器模块214的观测、行为向量、和/或所收集的行为信息,比较所接收的信息(即,观测)与上下文信息,以及识别与所接收的观测相关联的子系统、进程、和/或应用,所接收的观测有助于(或可能有助于)设备随着时间而降级,或者其可以以其它方式引起设备上的问题。
在一个方面中,行为分析器模块216可以包括用于利用有限的信息集合(即,粗略观测)来识别这样的行为、进程、或程序的智能:有助于——或可能有助于——设备随着时间而降级,或者可以以其它方式引起设备上的问题。例如,行为分析器模块216可以被配置为分析从各种模块收集的信息(例如,以观测的形式),学习移动设备的正常操作行为,以及基于比较的结果来生成一个或多个行为向量。行为分析器模块216可以将所生成的行为向量发送到致动器模块,致动器模块可以执行操作中的各种操作来治愈、治疗、隔离、或以其它方式修正所识别的问题。
行为分析器模块216可以接收行为向量并将其与一个或多个行为模块进行比较,以确定特定的移动设备行为、软件应用、或进程是非良性的(例如,性能降级的/恶意的)、良性的、还是可疑的。当确定行为、软件应用、或进程是恶意的或性能降级的时,行为分析器模块216可以通知致动器模块218,致动器模块218可以执行各种动作或操作来校正被确定为非良性的、恶意的、或性能降级的移动设备行为和/或执行操作来治愈、治疗、隔离、或以其它方式修正所识别的问题。
当行为分析器模块216确定行为、软件应用、或进程是可疑的时,行为分析器模块216可以通知行为观测器模块214,行为观测器模块214可以调整其观测的粒度(即,移动设备行为被观测的细节级别)和/或基于从行为分析器模块216接收的信息(例如,实时分析操作的结果)来改变被观测的行为,生成或收集新的或附加的行为信息,以及将新的/附加的信息发送到行为分析器模块216用于进一步的分析/分类。在行为观测器模块214与行为分析器模块216之间的这种反馈通信使得移动设备102能够递归地增加观测的粒度(即,进行更精细或更详细的观测)或改变被观测的特征/行为,直到可疑的或性能降级的移动设备行为的源被识别为止,直到达到处理或电池消耗阈值为止,或者直到移动设备处理器确定不能根据进一步增加观测粒度来识别可疑的或性能降级的移动设备行为的源为止。这种反馈通信还使得移动设备102能够本地调整或修改移动设备中的数据/行为模型,而不消耗过量的移动设备的处理、存储器、或能量资源。
因此,行为分析器模块216可以被配置为接收来自行为观测器模块214的粗略观测,并识别与可以潜在地有助于移动设备的降级的接收到的粗略观测相关联的子系统、进程、和/或应用。例如,这可以通过行为分析器模块216对接收到的信息与从外部组件接收的上下文信息进行比较来实现。
行为分析器模块216可以指导行为观测器模块214执行或实现更深度的登录/观测或最终登录到所识别的子系统、进程、或应用。行为观测器模块214可以在所识别的子系统、进程、或应用上执行更深度的观测。行为观测器模块214可以将更深度的观测的结果发送到行为分析器模块216用于进一步的(并且更深度的)分析。可以重复这些操作,直到识别出问题的源为止,或者直到确定所识别的子系统、进程、或应用不可能引起问题或降级为止。行为分析器模块216然后可以将分析的结果发送到致动器模块218,致动器模块218可以接收结果并执行操作以治疗、治愈、隔离、或以其它方式修正所识别的问题。
行为观测器模块214和行为分析器模块216可以或者单独地或者共同地提供对计算系统的行为的实时行为分析,以从有限且粗略的观测中识别可疑的行为,动态地确定要更加详细地观测的行为,以及动态地确定观测所需要的细节级别。以这种方式,行为观测器模块214使得计算系统200能够高效地识别和防止在移动设备上发生问题,而不需要设备上的大量的处理器、存储器、或电池资源。
行为观测器模块214可以为系统提供各种观测器模式,以实现多级别的登录(例如,精细颗粒的登录和粗略颗粒的登录)。行为观测器模块214可以提供在不同的观测器模式之间自动地且动态地切换的能力。行为观测器模块214可以监测和约束可能耗尽系统资源的进程/应用。行为观测器模块214可以管理通信(例如,对于安全世界是非安全的)开销,以使得开销是最小的并且流控制被高效地维护/执行。
在一个方面中,行为观测器模块214可以被配置为将行为信息存储为以空间高效和查询-服务-时间高效方式的观测,以减少对良性应用和移动设备的性能影响。
在各种方面中,行为观测器模块214和/或行为分析器模块216可以被配置为通过以下操作来分析移动计算设备行为:识别需要进行密切监测的关键数据资源,识别与关键数据资源相关联的中间资源,监测当访问关键数据资源和中间资源时由软件应用做出的API调用,识别由API调用消耗或产生的移动计算设备资源,识别API调用的模式作为对由软件应用进行的非良性活动的指示,基于所识别的API调用的模式和所识别的移动计算设备资源来生成轻权重的行为签名,使用轻权重的行为签名来执行行为分析操作,以及基于行为分析操作来确定软件应用是非良性的还是良性的。
在各种方面中,行为观测器模块214和/或行为分析器模块216可以被配置为通过以下操作来分析移动计算设备行为:识别在移动计算设备上执行的软件应用最频繁使用的API,将关于所识别的热API的使用的信息存储在移动计算设备的存储器中的API日志中,以及基于存储在API日志中的信息来执行行为分析操作以识别与正常操作模式不一致的移动计算设备行为。在一个方面中,可以生成API日志,以使得API日志被组织为使得保留在API的相同交叉调用的通用字段的值存储在这样的表中:该表与存储特定于API的每个调用的特定字段的值的表分离。还可以生成API日志以使得特定字段的值连同存储通用字段的值的分离的表的散列密钥一起存储在表中。
在各种方面中,行为观测器模块214和/或行为分析器模块216可以被配置为通过以下操作来分析移动计算设备行为:接收包括适于变换或表达为多个提升决策桩(boosteddecision stump)的有限状态机的完全分类器模型,基于完全分类器在移动计算设备中生成精益分类器模型,以及使用移动计算设备中的精益分类器模型来将移动计算设备的行为分类为或者良性的或者非良性的(即,恶意的、性能降级的等)。在一个方面中,基于完全分类器模型来生成精益分类器模型可以包括:确定应该被评估以对移动计算设备行为进行分类的多个唯一测试条件,而不消耗过量的移动计算设备的处理、存储器、或能量资源;通过顺序遍历提升决策桩的列表并将与每个被顺序遍历的提升决策桩相关联的测试条件插入到测试条件的列表中直到测试条件的列表可以包括经确定数量的唯一测试条件为止,来生成测试条件的列表;以及生成精益分类器模型以仅包括对包括在所生成的测试条件的列表中的多个测试条件中的一个测试条件进行测试的那些提升决策桩。
在各种方面中,行为观测器模块214和/或行为分析器模块216可以被配置为使用移动计算设备的设备专用的信息(例如,能力和状态信息)来识别与对移动计算设备的行为进行分类相关的多个测试条件中的移动计算设备专用的测试条件,生成仅包括所识别的移动计算设备专用的测试条件的精益分类器模型,以及使用在移动计算设备中生成的精益分类器模型来对移动计算设备的行为进行分类。在一个方面中,可以生成精益分类器模型以仅包括对与移动计算设备的当前操作状态或配置相关的移动计算设备特征进行评估的决策节点。在另一方面中,生成精益分类器模型可以包括:确定应该被评估以对行为进行分类的多个唯一测试条件而不消耗过量的移动计算设备的资源(例如,处理、存储器、或能量资源),通过顺序遍历完全分类器模型中的多个测试条件来生成测试条件的列表,将与对移动计算设备的行为进行分类相关的那些测试条件插入到测试条件的列表中直到测试条件的列表包括经确定数量的唯一测试条件为止,以及生成精益分类器模型以包括对包括在所生成的测试条件的列表中的条件中的一个条件进行测试的、包括在完全分类器模型中的决策节点。
在各种方面中,行为观测器模块214和/或行为分析器模块216可以被配置为通过以下操作来辨识与移动计算设备的正常操作模式不一致的移动计算设备行为:监测软件应用或进程的活动,确定软件应用/进程的操作系统执行状态,以及基于在活动被监测期间软件应用或进程的活动和/或操作系统执行状态来确定活动是否为良性的。在另一方面中,行为观测器模块214和/或行为分析器模块216可以确定软件应用或进程的操作系统执行状态是否与活动相关,生成标识在活动被监测期间软件应用或进程的操作系统执行状态的阴影特征值,生成使活动与标识操作系统执行状态的阴影特征值相关联的行为向量,以及使用行为向量来确定活动是良性的、可疑的、还是非良性的(即,恶意的或性能降级的)。
在一个方面中,移动设备102还可以包括关键数据资源模块,其存储和管理易受误用影响的和/或被确定为需要进行密切监测的数据资源(例如,地址簿、照相机等)的列表。移动设备102可以被配置为基于以下项来动态地更新/改变关键数据资源的列表:来自行为分析器模块的反馈,启发法,机器学习,历史信息,当前使用,在移动设备中检测到的事件或条件,从服务器接收到的信息,用户配置,和/或其它类似的标准、因素、事件、或条件。
在另一方面中,移动设备102还可以存储被确定为需要进行监测以便对关键资源的使用保持跟踪的中间资源的列表。例如,当软件应用从移动设备的关键资源(例如,地址簿等)读取信息并将信息写入到通用文件时,移动设备102可以确定通用文件是需要进行监测以恰当地对关键资源(即,地址簿)保持跟踪的中间资源。在一个方面中,关键数据资源模块可以存储并管理中间资源的列表。
在一个方面中,移动设备102可以被配置为监测与关键资源(例如,在关键数据资源模块中所识别的资源)有关的软件堆栈的各种级别处的API调用。这可以通过收集来自与关键资源有关的仪器化组件的行为信息和/或通过从由关键资源生成的API日志读取信息来实现。移动设备可以将该信息存储在API调用行为日志数据库中,识别需要进行监测的附加的资源,确定继续对关键资源进行监测不太可能提供有用的信息,以及因此向存储在关键数据资源中的数据资源的列表添加资源或从中移除资源。
在一个方面中,移动设备102可以被配置为利用行为专用模型来比较和/或分析存储在API调用行为日志数据库中的信息,以识别指示非良性的/恶意的活动或行为的API调用的可疑序列或模式,识别应该作为单个移动设备行为的一部分被一起评估的操作,识别需要进行分析的各种控制流或数据流参数,计算源与宿之间的距离,和/或识别需要由行为分析器模块216进行更密切的监测或审查的关键资源。移动设备102可以基于比较和/或分析操作的结果来生成针对每个关键资源的简明且轻权重的行为签名,以及将这些轻权重的行为签名发送到行为分析器模块216用于分析。行为分析器模块216可以接收并使用轻权重的行为签名来快速且高效地确定需要进行附加的、不同的、或更深度的分析的移动设备行为或组件。
图3示出了计算设备可以识别与已污染存储器地址相关联的读取操作302,使用污染传播启发法来计算或确定应该被评估的第一数量(O)的操作、第二数量(M)的操作、以及第三数量(N)的操作,污染与在第O个操作之后并且在第M个操作之前执行的前N个写入操作304相关联的存储器地址,以及不污染与在第N个操作之后执行的写入操作306相关联的存储器地址。
图4和图5示出了根据各种方面的跟踪计算设备中的数据流的方法。特别地,图4示出了使用污染传播启发法来识别涉及当跟踪数据流时在硬件中进行的监测的存储器地址的方面方法400,并且图5示出了监测计算设备的基于硬件的存储器监测模块中的存储器的方面方法500。
在图4示出的框402中,计算设备的处理器可以向计算设备的硬件组件发送已污染存储器地址的初始列表。在一个方面中,硬件组件可以是基于硬件的存储器监测模块。在框404中,处理器可以接受来自硬件组件的所识别的操作及其相关联存储器地址的列表。在框406中,处理器可以使用接收到的列表中的信息来计算、确定、或识别在所识别的读取操作之后执行的“O”数量的操作。在框408中,处理器可以通过识别在第O个操作之后执行的M数量的操作来确定监测窗口。在框410中,处理器可以识别监测窗口(M)中的前“N”数量的写入操作。
在框412中,处理器可以将与所识别的读取操作相关联的存储器地址添加到污染列表。在框414中,处理器可以将与所识别的写入操作(即,在监测窗口M中的前N个写入操作)相关联的存储器地址添加到污染列表。在框416中,处理器可以从污染列表中移除与在第N个写入操作被检测之后执行的写入操作相关联的存储器地址。在框418中,处理器可以将污染列表发送到硬件组件。框404-418中的操作可以重复或持续地执行以跟踪数据流,而不对计算设备的性能或功率消耗特性具有显著或消极的影响。
参考图5,在框502中,计算设备的基于硬件的存储器监测模块可以接收来自计算设备的软件组件的已污染存储器地址的初始列表。在框504中,存储器监测模块可以将包括在接收到的列表中的存储器地址标记为“敏感的”(或“已污染的”)地址。在框506中,存储器监测模块可以监测计算设备中的存储器,以识别从敏感地址读取信息的读取操作。在框508中,存储器监测模块可以继续监测存储器以识别在偏移(O)和/或监测窗口(M)中的操作。在框510中,存储器监测模块可以将所识别的操作及其相关联的存储器地址添加到操作列表。在框512中,存储器监测模块可以将操作列表发送到软件组件。在框514中,存储器监测模块可以接受来自软件组件的污染列表,并且在框504中将包括在接收到的列表中的存储器地址标记为敏感的/已污染的。
图6示出了跟踪计算设备中的数据流以快速且高效地确定在源组件与宿组件之间是否已经发生(或可能发生)信息泄露的方面方法600。在框602中,计算设备的处理器或处理核心可以识别与敏感源组件相关联的第一存储器地址。在框604中,处理器可以识别与宿组件相关联的第二存储器地址。在确定框606中,处理器可以确定所识别的第一地址是否与第二存储器地址相同(或与其等效等)。响应于确定所识别的第一地址与第二存储器地址不相同(即,确定框606=“否”),在框602中处理器可以继续其正常的行为分析操作和/或识别附加的源组件。
响应于确定所识别的第一地址与第二存储器地址相同(即,确定框606=“是”),在框608处处理器可以确定存在信息泄露(或者存在将发生信息泄露的高概率)并且执行各种操作来响应信息泄露。例如,在框608中,处理器可以隔离与源组件或宿组件相关联的软件应用程序,增加由行为观测器模块214进行监测的因素/特征/行为的数量,使得行为分析器模块216使用更大的或更鲁棒的分类器模型等。
各种方面(例如,上面参考图1至图6描述的方面)可以在多种移动计算设备上实现,移动计算设备的示例在图7中以智能电话的形式示出。智能电话700可以包括耦合到内部存储器702、显示器703、以及扬声器的处理器701。在一个方面中,用于将处理器701配置为执行上面描述的方面方法操作中的一个或多个的操作的处理器可执行指令可以存储在存储器702中。另外,智能电话700可以包括用于发送和接收电磁辐射的天线704,其可以连接到耦合到处理器701的无线数据链路和/或蜂窝电话收发器705。智能电话700典型地还包括用于接收用户输入的菜单选择按钮或摇杆式开关706、708。
典型的智能电话700还包括声音编码/解码(CODEC)电路712,其将从麦克风接收的声音数字化为适于无线传输的数据分组,并将接收到的声音数据分组解码以生成模拟信号,模拟信号被提供给扬声器以生成声音。另外,处理器701、无线收发器705、以及CODEC电路712中的一个或多个可以包括数字信号处理器(DSP)电路(未单独示出)。
处理器701可以是任何可编程的微处理器、微计算机、或者多个处理器芯片或(多个)芯片,其能够由软件指令(应用)配置为执行多种功能,包括下面描述的各种方面的功能。在一些移动设备中,可以提供多个处理器701,例如,一个处理器专用于无线通信功能而一个处理器专用于运行其它应用。典型地,在软件应用被访问以及加载到处理器701中之前,软件应用可以存储在内部存储器702中。处理器701可以包括足以存储应用软件指令的内部存储器。
用于在可编程处理器上执行以用于实现各种方面的操作的计算机程序代码或“程序代码”可以以高级编程语言来编写,例如,C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl,或者以各种其它编程语言来编写。存储在计算机可读存储介质上的程序代码或程序在本文中用于指示其格式能够由处理器理解的机器语言代码(例如,对象代码)。
许多移动计算设备操作系统内核被组织到用户空间(其中运行非特权代码)和内核空间中(其中运行特权代码)。这种分离在和其它通用公共许可(GPL)环境中特别重要,在和其它通用公共许可(GPL)环境中作为内核空间的一部分的代码必须是GPL许可的,而在用户空间中运行的代码可以不是GPL许可的。应该理解,这里讨论的各种软件组件/模块可以在或者内核空间或者用户空间中实现,除非另有明确说明。
术语“片上系统”(SOC)在本申请中用于指示单个集成电路(IC)芯片,其包含集成到单个基底上的多个资源和/或处理器。单个SOC可以包含用于数字、模拟、混合信号、以及射频功能的电路。单个SOC还可以包括任何数量的通用处理器和/或专用处理器(数字信号处理器、调制解调器处理器、视频处理器等)、存储器块(例如,ROM、RAM、闪存等)、以及资源(例如,定时器、电压调节器、振荡器等)。SOC还可以包括用于控制集成资源和处理器以及用于控制外围设备的软件。
术语“多核处理器”在本申请中用于指示单个集成电路(IC)芯片或芯片封装,其包含被配置为读取和执行程序指令的两个或更多个独立处理核心(例如,CPU核心)。SOC可以包括多个多核处理器,并且SOC中的每个处理器可以指示核心。术语“多处理器”在本申请中用于指示包括被配置为读取和执行程序指令的两个或更多个处理单元的系统或设备。
如在本申请中使用的,术语“组件”、“模块”等等旨在包括计算机有关的实体,例如但不限于,硬件、固件、硬件和固件的组合、软件、或在执行的软件,其被配置为执行特定操作或功能。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序、和/或计算机。通过示例说明的方式,在计算设备上运行的应用和计算设备二者都可以被称为组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个处理器或核心上和/或分布在两个或更多个处理器或核心之间。另外,这些组件可以从其上存储有各种指令和/或数据结构的各种非暂时性计算机可读介质中执行。组件可以通过本地和/或远程进程、功能或程序调用、电子信号、数据分组、存储器读/写的方式来进行通信,以及通过其它已知的网络、计算机、处理器、和/或进程有关的通信方法的方式来进行通信。
前述方法描述和过程流程图仅作为说明性示例提供,而并非旨在要求或暗示各种方面的步骤必须以所呈现的次序来执行。如本领域技术人员可以认识到的,前述方面中的步骤的次序可以以任何次序来执行。诸如“之后”、“然后”、“接下来”等的词语并非旨在限制步骤的次序;这些词语简单地用于引导读者理解对方法的描述。此外,以单数形式的对声明元素的任何引用(例如,使用冠词“一(a)”、“一个(an)”、或“该(the)”)不应被解释为将该元素限制为单数。
结合本文所公开的方面描述的各种示例说明性的逻辑块、模块、电路、以及算法步骤可以实现为电子硬件、计算机软件、或二者的组合。为了清楚地示例说明硬件和软件的这种互换性,上面按照各种示例说明性的组件、块、模块、电路、以及步骤的功能对其进行了总体描述。这些功能被实现为硬件还是软件取决于特定应用和施加到整体系统上的设计约束。技术人员可以以变化的方式针对每个特定应用来实现所描述的功能,但是这种实现方式决策不应被解释为导致脱离本发明的范围。
用于实现结合本文公开的方面所描述的各种示例说明性的逻辑、逻辑块、模块、以及电路的硬件可以利用以下项来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件、或者被设计用于执行本文描述的功能的其任何组合。通用处理器可以是多处理器,但是在替代例中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。还可以将处理器实现为计算设备的组合,例如,DSP和多处理器的组合、多个多处理器、一个或多个多处理器结合DSP核心、或者任何其它这样的配置。替代地,可以通过专用于给定功能的电路来执行一些步骤或方法。
在一个或多个示例性方面中,所描述的功能可以以硬件、软件、固件、或其任何组合来实现。如果以软件实现,则可以将功能存储为非暂时性计算机可读介质或非暂时性处理器可读介质上的一个或多个指令或代码。本文公开的方法或算法的步骤可以以处理器可执行的软件模块来实施,该处理器可执行的软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可以由计算机或处理器访问的任何存储介质。通过示例而非限制的方式,这种非暂时性计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、闪速存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于存储以指令或数据结构形式的并且可以由计算机访问的期望程序代码的任何其它介质。如本文使用的,盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字通用碟(DVD)、软盘、以及蓝光碟,其中盘通常磁性地再现数据,而碟则利用激光来光学地再现数据。上面的组合还包括在非暂时性计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令的一个或任何组合或集合驻留在非暂时性处理器可读介质和/或计算机可读介质上,其可以并入到计算机程序产品中。
提供所公开的方面的先前描述以使得任何本领域技术人员能够制作或使用本发明。对这些方面的各种修改对于本领域技术人员将是显而易见的,并且本文定义的一般原理可以应用于其它方面,而不脱离本发明的精神或范围。因此,本发明并非旨在限于本文所示出的方面,而是符合与所附权利要求和本文所公开的原理和新颖特征一致的最宽范围。

Claims (20)

1.一种用于跟踪计算设备中的数据流的方法,包括:
监测存储器以识别从已污染存储器地址读取信息的读取操作;
确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在所述第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在所述第一数量的操作之后执行的第三数量的操作的上边界值(N);
对操作进行监测直到以下中的一个为止:
M个操作被执行;以及
到未污染地址的N个写入操作被识别;
将与所识别的写入操作相关联的存储器地址标记为已污染的;以及
将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
2.根据权利要求1所述的方法,还包括使用启发法来识别所述第一数量的操作、所述第二数量的操作、以及所述第三数量的操作。
3.根据权利要求1所述的方法,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的软件应用;以及
将在所述计算设备中收集的行为信息应用于分类器模型中的提升决策桩,以确定所述软件应用是否为非良性的。
4.根据权利要求1所述的方法,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用;以及
监测由所述第一软件应用做出的应用编程接口调用。
5.根据权利要求4所述的方法,还包括:
基于所监测的API调用来生成行为向量信息结构;
将所述行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及
使用所述基于行为的分析结果来确定所述第一软件应用是否为非良性的。
6.根据权利要求4所述的方法,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的第二软件应用;以及
监测由所述第二软件应用做出的应用编程接口调用。
7.根据权利要求6述的方法,还包括:
基于由所述第一软件应用和所述第二软件应用做出的API调用的组合来生成行为向量信息结构;
将所述行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及
使用所述基于行为的分析结果来确定所述第一软件应用和所述第二软件应用的行为是否为非良性的。
8.根据权利要求7所述的方法,其中,基于由所述第一软件应用和所述第二软件应用做出的API调用的所述组合来生成所述行为向量信息结构包括:生成以所述第一软件应用和所述第二软件应用的共同行为为特征的信息结构。
9.根据权利要求7所述的方法,其中,基于由所述第一软件应用和所述第二软件应用做出的API调用的所述组合来生成所述行为向量信息结构包括:生成以所述第一软件应用与所述第二软件应用之间的关系为特征的信息结构。
10.一种非暂时性计算机可读存储介质,其上存储有处理器可执行的软件指令,所述处理器可执行的软件指令被配置为使得计算设备的处理器执行操作,包括:
监测存储器以识别从已污染存储器地址读取信息的读取操作;
确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在所述第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在所述第一数量的操作之后执行的第三数量的操作的上边界值(N);
对操作进行监测直到以下中的一个为止:
M个操作被执行;以及
到未污染地址的N个写入操作被识别;
将与所识别的写入操作相关联的存储器地址标记为已污染的;以及
将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
11.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:使用启发法来识别所述第一数量的操作、所述第二数量的操作、以及所述第三数量的操作。
12.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的软件应用;以及
将在所述计算设备中收集的行为信息应用于分类器模型中的提升决策桩,以确定所述软件应用是否为非良性的。
13.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用;以及
监测由所述第一软件应用做出的应用编程接口调用。
14.根据权利要求13所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:
基于所监测的API调用来生成行为向量信息结构;
将所述行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及
使用所述基于行为的分析结果来确定所述第一软件应用是否为非良性的。
15.根据权利要求13所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的第二软件应用;以及
监测由所述第二软件应用做出的应用编程接口调用。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,还包括:
基于由所述第一软件应用和所述第二软件应用做出的API调用的组合来生成行为向量信息结构;
将所述行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及
使用所述基于行为的分析结果来确定所述第一软件应用和所述第二软件应用的行为是否为非良性的。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,以使得基于由所述第一软件应用和所述第二软件应用做出的API调用的所述组合来生成所述行为向量信息结构包括:生成以所述第一软件应用和所述第二软件应用的共同行为为特征的信息结构。
18.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行的软件指令被配置为使得处理器执行操作,以使得基于由所述第一软件应用和所述第二软件应用做出的API调用的所述组合来生成所述行为向量信息结构包括:生成以所述第一软件应用与所述第二软件应用之间的关系为特征的信息结构。
19.一种计算设备,包括:
处理器,所述处理器被配置有处理器可执行的指令,以用于执行操作,包括:
监测存储器以识别从已污染存储器地址读取信息的读取操作;
确定以下值:标识在所识别的读取操作之后执行的第一数量的操作的偏移值(O)、标识在所述第一数量的操作之后执行的第二数量的操作的监测窗口值(M)、以及标识在所述第一数量的操作之后执行的第三数量的操作的上边界值(N);
对操作进行监测直到以下中的一个为止:
M个操作被执行;以及
到未污染地址的N个写入操作被识别;
将与所识别的写入操作相关联的存储器地址标记为已污染的;以及
将与在第N个操作之后执行的写入操作相关联的存储器地址和与在第M个操作之后执行的写入操作相关联的存储器地址标记为未污染的。
20.根据权利要求19所述的计算设备,其中,所述处理器被配置有处理器可执行的指令,以用于执行操作,还包括:
识别从所述已污染存储器地址中的一个已污染存储器地址读取信息的第一软件应用;
监测由所述第一软件应用做出的应用编程接口调用;
基于所监测的API调用来生成行为向量信息结构;
将所述行为向量信息结构应用于分类器模型以生成基于行为的分析结果;以及
使用所述基于行为的分析结果来确定所述第一软件应用是否为非良性的。
CN201580074572.7A 2015-01-28 2015-12-17 经由存储器监测的数据流跟踪 Pending CN107209825A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/607,251 US9519533B2 (en) 2015-01-28 2015-01-28 Data flow tracking via memory monitoring
US14/607,251 2015-01-28
PCT/US2015/066442 WO2016122799A1 (en) 2015-01-28 2015-12-17 Data flow tracking via memory monitoring

Publications (1)

Publication Number Publication Date
CN107209825A true CN107209825A (zh) 2017-09-26

Family

ID=55130040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580074572.7A Pending CN107209825A (zh) 2015-01-28 2015-12-17 经由存储器监测的数据流跟踪

Country Status (7)

Country Link
US (1) US9519533B2 (zh)
EP (1) EP3251042A1 (zh)
JP (1) JP2018507472A (zh)
KR (1) KR20170108019A (zh)
CN (1) CN107209825A (zh)
BR (1) BR112017016219A2 (zh)
WO (1) WO2016122799A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829346A (zh) * 2019-01-11 2019-05-31 安徽工程大学 一种基于机器视觉的条形码及二维码识别方法和系统
JP2021082256A (ja) * 2019-11-20 2021-05-27 ▲広▼州大学 動的ステイン分析に基づくメモリ分析方法及び装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101666177B1 (ko) * 2015-03-30 2016-10-14 한국전자통신연구원 악성 도메인 클러스터 탐지 장치 및 방법
US10108529B2 (en) * 2015-10-13 2018-10-23 International Business Machines Corporation Dynamic instrumentation based on detected errors
JP6382892B2 (ja) * 2016-07-27 2018-08-29 三菱日立パワーシステムズ株式会社 運転情報分析装置
US10701099B2 (en) * 2016-09-28 2020-06-30 International Business Machines Corporation Providing efficient information tracking with dynamically selected precision
US10339320B2 (en) * 2016-11-18 2019-07-02 International Business Machines Corporation Applying machine learning techniques to discover security impacts of application programming interfaces
US10810099B2 (en) * 2017-09-11 2020-10-20 Internatinal Business Machines Corporation Cognitive in-memory API logging
US10915639B2 (en) * 2018-04-05 2021-02-09 Oracle International Corporation Staged dynamic taint flow inference
US10866809B2 (en) * 2018-07-05 2020-12-15 Qualcomm Incorporated Method, apparatus, and system for acceleration of inversion of injective operations
US11016874B2 (en) * 2018-09-19 2021-05-25 International Business Machines Corporation Updating taint tags based on runtime behavior profiles
FR3093208B1 (fr) * 2019-02-27 2021-12-03 Commissariat Energie Atomique Procédé de validation d’un système flots de données
US20220058264A1 (en) * 2020-08-18 2022-02-24 Micro Focus Llc Thread-based malware detection
US11347841B1 (en) * 2020-09-11 2022-05-31 Rockwell Collins, Inc. System and method for runtime monitoring during hash-locked remote attestation
CN112256197B (zh) * 2020-10-20 2022-09-02 Tcl通讯(宁波)有限公司 一种存储信息的管理方法、装置、设备及存储介质
CN113220285B (zh) * 2021-04-22 2023-08-22 上海雾帜智能科技有限公司 安全事件响应剧本生成方法、系统、装置和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652057A (zh) * 2004-02-06 2005-08-10 恩益禧电子股份有限公司 程序窜改检测装置、方法以及程序
US20090183261A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Malware detection with taint tracking
CN101517654A (zh) * 2006-09-29 2009-08-26 Nxp股份有限公司 安全的非易失性存储器装置以及对其中的数据进行保护的方法
US20100083379A1 (en) * 2008-09-29 2010-04-01 Semiconductor Technology Academic Research Center Information processing device, information processing method, and computer readable recording medium
US7870610B1 (en) * 2007-03-16 2011-01-11 The Board Of Directors Of The Leland Stanford Junior University Detection of malicious programs
US7958558B1 (en) * 2006-05-18 2011-06-07 Vmware, Inc. Computational system including mechanisms for tracking propagation of information with aging
US20110145918A1 (en) * 2009-12-15 2011-06-16 Jaeyeon Jung Sensitive data tracking using dynamic taint analysis

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788235B1 (en) 2006-09-29 2010-08-31 Symantec Corporation Extrusion detection using taint analysis
US9135405B2 (en) 2011-05-26 2015-09-15 Carnegie Mellon University Automated exploit generation
US20150128262A1 (en) * 2011-10-28 2015-05-07 Andrew F. Glew Taint vector locations and granularity
US9171028B1 (en) * 2013-06-11 2015-10-27 Google Inc. Method of maintaining a large set of taint labels

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652057A (zh) * 2004-02-06 2005-08-10 恩益禧电子股份有限公司 程序窜改检测装置、方法以及程序
US7958558B1 (en) * 2006-05-18 2011-06-07 Vmware, Inc. Computational system including mechanisms for tracking propagation of information with aging
CN101517654A (zh) * 2006-09-29 2009-08-26 Nxp股份有限公司 安全的非易失性存储器装置以及对其中的数据进行保护的方法
US7870610B1 (en) * 2007-03-16 2011-01-11 The Board Of Directors Of The Leland Stanford Junior University Detection of malicious programs
US20090183261A1 (en) * 2008-01-14 2009-07-16 Microsoft Corporation Malware detection with taint tracking
US20100083379A1 (en) * 2008-09-29 2010-04-01 Semiconductor Technology Academic Research Center Information processing device, information processing method, and computer readable recording medium
US20110145918A1 (en) * 2009-12-15 2011-06-16 Jaeyeon Jung Sensitive data tracking using dynamic taint analysis

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829346A (zh) * 2019-01-11 2019-05-31 安徽工程大学 一种基于机器视觉的条形码及二维码识别方法和系统
JP2021082256A (ja) * 2019-11-20 2021-05-27 ▲広▼州大学 動的ステイン分析に基づくメモリ分析方法及び装置

Also Published As

Publication number Publication date
EP3251042A1 (en) 2017-12-06
BR112017016219A2 (pt) 2018-03-27
US20160217029A1 (en) 2016-07-28
JP2018507472A (ja) 2018-03-15
WO2016122799A1 (en) 2016-08-04
US9519533B2 (en) 2016-12-13
KR20170108019A (ko) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107209825A (zh) 经由存储器监测的数据流跟踪
CN104541293B (zh) 用于客户端‑云行为分析器的架构
CN105531712B (zh) 移动设备上的基于数据流的行为分析
CN106133642B (zh) 在移动设备中通过执行行为分析操作推断应用状态的方法和系统
CN107077547B (zh) 使用针对高效连续认证的行为分析的方法和系统
CN105830081B (zh) 生成用于有针对性地保护重要应用的特定于应用的模型的方法和系统
CN109478218A (zh) 用于分类执行会话的装置和方法
CN107567628B (zh) 用于使用针对增强型决策树桩的因果分析来识别和响应非良性行为的方法和系统
CN106415580B (zh) 阻止侧信道攻击的方法和系统
US9774614B2 (en) Methods and systems for side channel analysis detection and protection
CN107580699A (zh) 用于特定于行为的致动以实时白名单化的方法和系统
US9158604B1 (en) Lightweight data-flow tracker for realtime behavioral analysis using control flow
US9787695B2 (en) Methods and systems for identifying malware through differences in cloud vs. client behavior
US9357411B2 (en) Hardware assisted asset tracking for information leak prevention
CN104885099B (zh) 使用推升式决策树桩和联合特征选择及剔选算法来对移动设备行为进行高效分类的方法和系统
CN107209818A (zh) 用于检测与移动装置的虚假用户交互以用于改进的恶意软件防护的方法和系统
CN106796627A (zh) 用于基于用户角色信息来进行移动设备行为的行为分析的方法和系统
US20180039779A1 (en) Predictive Behavioral Analysis for Malware Detection
CN107851154A (zh) 存储器层次结构监测系统和方法
CN106104555A (zh) 用于保护外围设备的行为分析
CN112860484A (zh) 容器运行时异常行为检测、模型训练方法及相关装置
CN108027859A (zh) 检测对计算设备中的进程的软件攻击
CN117668930A (zh) Arm处理器系统安全攻击监测装置、方法及电子设备

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170926