CN114730338A - 用于发现应用程序篡改的***和方法 - Google Patents
用于发现应用程序篡改的***和方法 Download PDFInfo
- Publication number
- CN114730338A CN114730338A CN202080080250.4A CN202080080250A CN114730338A CN 114730338 A CN114730338 A CN 114730338A CN 202080080250 A CN202080080250 A CN 202080080250A CN 114730338 A CN114730338 A CN 114730338A
- Authority
- CN
- China
- Prior art keywords
- resource
- hidden
- protected
- access
- resources
- 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
Images
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/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
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种用于早期检测受损客户端设备的***和方法包括篡改检测服务,该篡改检测服务被配置为随时间的推移监测对资源访问特权的修改,以识别指示客户端设备的受损的越狱状态中的异常变化。例如,篡改检测服务可以随时间的推移监测***文件的越狱状态,以暴露隐藏受保护资源的越狱状态的尝试。为了验证恶意软件是否试图隐藏受保护资源的越狱状态,篡改检测过程可能会针对受保护资源启动多个不同的资源访问,以确定是否返回指示设备受损地不同的可访问性结果。
Description
相关应用的交叉引用
本申请要求于2019年9月19日提交的标题为“SYSTEM AND METHOD FORAPPLICATION TAMPER DISCOVERY”的美国专利申请序列号16/576,303(于2020年5月5日以美国专利号10,642,979发布)的优先权。上述专利申请的内容通过引用全部纳入本文。
背景技术
在线设备制造商通常在其产品中设置安全保护,以防止恶意第三方对这些设备的利用。对计算设备的利用是利用操作***、应用程序、库或其他软件代码中的弱点对设备进行黑客攻击,例如通过添加代码以转移个人信息用于邪恶用途。当客户使用客户端设备访问恶意或被黑客攻击的网站时,可能会发生该利用。恶意或被黑客攻击的网站可以在客户端设备上部署漏洞包,其中漏洞包包括可被用于通过在受害者的计算机上部署恶意软件而释放对各种浏览器漏洞的攻击的软件。
客户端设备通过严格控制对其硬件和软件资源的访问来防止恶意软件。规避这些保护包括对客户端设备进行“越狱”。越狱是一种去除设备软件和硬件限制的过程,以允许对iOS操作***进行根(root)访问,允许下载和执行未经授权的应用程序、扩展和主题主题,它们无法通过苹果官方应用商店获得。例如,CydiaTM是一家第三方应用商店,其提供未经批准的调整、修改的应用程序和游戏,供受保护的设备使用。
越狱设备可能会与服务提供商提供的各种应用程序进行交互,从而使服务提供商的基础设施的安全性面临风险。因此,服务提供商可以实施包括被配置为阻止对越狱客户端设备的访问的越狱检测机制的安全协议。例如,一种越狱检测机制可以尝试访问受限或以其他方式受保护的资源,诸如操作***根目录,并且能够成功访问反映客户端设备越狱状态的受保护资源。Cydia存储库中可用的并由黑客部署的应用程序调整,实施了被配置为拦截越狱检测机制的对策,以掩盖客户端设备的越狱状态。例如,恶意软件可以通过拦截文件***查询并返回错误的访问状态来隐藏受限文件的越狱状态,从而“钩住”应用服务器和客户端设备之间的越狱检测通信。期望发现一种用于快速准确地识别受损客户端设备的***和方法,以保护服务提供商的基础设施。
发明内容
根据一个方面,一种用于检测受损客户端设备的方法包括监测客户端设备执行应用程序的步骤,其中客户端设备可以包括不可被应用程序使用的受保护资源集。该方法包括识别暴露资源的步骤,其中暴露资源可以包括具有被修改的特权级别的受保护资源,以使受保护资源可被应用程序使用。该方法可以包括维护暴露资源的记录和检测隐藏资源的步骤,其中隐藏资源对应用程序可用,但从暴露资源的记录中隐藏。该方法包括响应于对隐藏资源的检测而选择性地禁用应用程序。
在一些实施例中,受保护资源集可以是包括***文件、目录、库、变量、数据库、函数、应用程序、服务、其他受限资源或其组合的受保护资源集。监测该受保护资源集的步骤可以包括向该受保护资源集发出一系列访问请求,所述一系列访问请求包括对该受保护资源集的每个受保护资源的访问请求,该访问请求包括第一访问函数。
在一些实施例中,监测受保护资源集的步骤可以包括以下步骤:使用第一访问函数定期地向受保护资源集发出一系列访问请求,以提供暴露资源的一系列时间点列表,并且其中暴露资源的记录可以包括暴露资源的所述一系列时间点列表。检测隐藏资源的步骤可以包括以下步骤:比较暴露资源的所述一系列时间点列表,以识别包括先前暴露资源的潜在隐藏资源,该先前隐藏资源随后从暴露资源的时间点列表中被隐藏。
在一些实施例中,检测隐藏资源的步骤可以包括以下步骤:通过向潜在隐藏资源发出第二访问请求来确定潜在隐藏资源是否被隐藏,第二访问请求包括第二访问函数,并且响应于使用第二访问函数可访问的潜在隐藏资源,确定潜在隐藏资源被隐藏。该方法,其中选择性地禁用访问的步骤包括在确定潜在隐藏资源被隐藏时禁用应用程序对客户端设备、服务器或两者的访问。
在一些实施例中,第二访问函数可以包括与第一访问函数不同的级别的程序代码。在一些实施例中,第二访问函数可以包括比第一访问函数更低级别的程序代码函数。在一些实施例中,第一访问函数可以是高级语言文件访问函数,包括Java、FORTRAN、Objective-C、Swift、Pascal或其他访问函数之一,第二访问函数可以是低级访问函数,包括机器代码、汇编代码或操作***代码之一。所述技术的实施方案可以包括硬件、方法或过程,或者计算机可访问介质上的计算机软件。
根据另一方面,一种篡改发现服务器,包括处理器和与包括程序代码的处理器耦合的非暂时性存储设备。在篡改发现服务器的操作期间由处理器执行时,程序代码可***作,以确定执行与服务提供商通信的应用程序的客户端设备的受保护资源的特权级别已被修改。对于客户端设备,程序代码可以维护暴露资源的记录,该记录的每个暴露资源对应于具有修改的特权级别的受保护资源,并且监测暴露资源的记录,以检测对应于先前暴露资源的隐藏资源,该隐藏资源随后从暴露资源的记录中隐藏。程序代码还可***作用于确定隐藏资源是否与恶意活动相关联,并在确定该隐藏资源与恶意活动相关联时选择性地禁用应用程序。
在一些实施例中,受保护资源可以包括执行该应用的客户端设备的操作***的应用程序文件。篡改发现服务器可确定受保护资源的特权级别已使用第一访问函数程序代码进行了修改。
在一些实施例中,监测暴露资源的记录以检测隐藏资源的程序代码可以包括被配置为执行以下步骤的程序代码:定期地执行第一访问函数程序代码以生成一系列时间点访问结果;并检测该系列时间点访问结果中的变化。该程序代码可进一步检测潜在隐藏资源,所述潜在隐藏资源先前被包括在一系列时间点访问结果中,并且随后从暴露资源的记录中被隐藏。该程序代码可以被配置为执行以下步骤的程序代码:使用第二访问函数程序代码来确定潜在隐藏资源是否被隐藏,该第二访问函数程序代码包括与第一访问函数程序代码不同级别的程序代码。在一些实施例中,第一访问函数可以是高级语言文件访问函数,包括Java、FORTRAN、Objective-C、Swift、Pascal或其他访问函数之一,第二访问函数可以是低级访问函数,包括机器代码、汇编代码或操作***代码之一。
根据另一方面,一种用于由服务器检测执行应用程序的客户端设备上的恶意活动的方法,包括以下步骤:响应于使用高级编程语言访问函数成功访问所述客户端设备的受保护资源集中的受保护资源,确定所述受保护资源的特权级别已被修改。该方法包括以下步骤:维护具有修改的特权级别的受保护资源的列表,作为暴露资源记录,并随时间的推移监测暴露资源记录以检测潜在隐藏资源,所述潜在隐藏资源包括从暴露资源记录中被隐藏的已被修改的特权级别受保护的资源。该方法包括以下步骤:响应于使用低级编程语言访问函数成功访问潜在隐藏资源,确定潜在隐藏资源是与恶意活动相关联的隐藏资源,并在检测到隐藏资源时选择性地禁用应用程序对服务器的访问。
在各种实施例中,受保护的资源可与客户端设备的操作***相关,并且确定受保护资源的特权级别已被修改的步骤可指示客户端设备是越狱设备。确定潜在隐藏资源被隐藏可以指示客户端设备是被钩住的客户端设备。
在一些实施例中,随时间的推移监测暴露资源记录以检测潜在隐藏资源的步骤可以包括以下步骤:使用高级编程语言访问函数定期访问受保护资源集以识别可访问的受保护资源,存储可访问的受保护资源的多个时间点列表,并且比较可访问的受保护资源的多个时间点列表以识别变化,包括从随后生成的时间点列表中识别先前可访问的受保护资源的遗漏,这些变化包括潜在隐藏资源。
这种安排使服务提供商能够快速识别并隔离恶意越狱设备,以提高安全性。
附图说明
图1是包括配置有如本文所公开的篡改检测服务的客户端设备的服务提供商网络的一个实施例的框图;
图2是配置有如本文所公开的篡改检测服务的服务器的服务提供商网络的一个实施例的框图;
图3A和3B是示出如本文所公开的篡改检测服务的通信流的一个实施例的数据流图;
图4示出了本文公开的示例性越狱记录的时间点表示;
图5是示出如本文所公开的篡改检测服务的通信流的一个实施例的数据流图;
图6是本文公开的篡改检测过程的一个实施例的流程图;
图7是本文公开的篡改检测过程的另一实施例的流程图;以及
图8是示出可被用于支持本文公开的篡改检测函数的客户端设备和/或应用程序服务器的示例性组件的框图。
具体实施方式
一种用于早期检测受损(compromised)客户端设备的***和方法,包括篡改检测服务,其被配置为监测客户端设备越狱状态随时间的变化,以检测恶意软件出于恶意目的隐藏客户端设备越狱状态的努力。
在一个实施例中,篡改检测服务存储至少一个客户端设备的越狱记录,该越狱记录包括客户端设备的受保护资源集的越狱状态的一系列时间点列表,其中该受保护资源集包括但不限于***文件、目录、库、变量、数据库、函数、应用程序,服务或其他资源,或具有受限的访问。因此,越狱记录提供了关于受保护***资源集中的哪些资源已通过未经授权修改受保护资源的访问特权而被暴露或越狱的信息。
根据各个方面,篡改检测服务监测受保护资源越狱状态随时间的变化,以暴露恶意行为者隐藏越狱状态的企图。例如,篡改检测服务可以监测越狱状态的一系列列表,以检测资源可访问性的变化。具体地说,篡改检测服务可以监测一系列列表,以识别越狱文件何时返回到非越狱状态,这是指示受损客户端设备的异常活动。
因此,篡改检测服务可以包括用于验证客户端设备越狱状态的方法,例如通过启动多个不同的访问函数来确定多个访问函数是否返回相同或不同的结果,每个访问函数针对相同的受保护资源。多个访问函数返回的不同结果表明,至少一个访问函数可能已被钩住,并且客户端设备可能受到损害。因此,篡改检测服务提供了一种快速区分自愿越狱和恶意越狱的有效方法,能够快速、准确地隔离受损的客户端设备。
现在将参考附图描述这些和其他特征,其中,相同的参考数字符号始终被用于指代相同的元件。一般参考本文中使用的符号和术语,可以根据在计算机或计算机网络上执行的程序过程来呈现以下详细描述。本领域技术人员使用这些过程描述和表示来最有效地将其作品的实质传达给本领域的其他技术人员。
在这里,过程通常被认为是导致期望的结果的自洽操作序列。这些操作需要对物理量进行物理操作。通常,尽管不一定,这些量的形式是能够被存储、传输、组合、比较和以其他方式操纵的电、磁或光信号。事实证明,有时将这些信号称为比特、数值、元素、符号、字符、术语、数字等是方便的,主要是出于常见用法的原因。然而,应该注意的是,所有这些和类似的术语都与适当的物理量相关联,并且只是适用于这些量的方便标签。
此外,所执行的操作通常是指诸如添加或比较之类的术语,这些术语通常与人类操作者执行的心理操作相关联。在本文描述的形成一个或多个实施例的一部分的任何操作中,人类操作员的这种能力不是必需的,或在大多数情况下是可取的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
各种实施例还涉及用于执行这些操作的装置或***。该装置可为所需目的而专门构造,或其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文呈现的过程本质上与特定计算机或其他装置无关。各种通用机器可以与根据本文的教导编写的程序一起使用,或者可以证明构造更专用的装置以执行所需的方法步骤是方便的。各种机器所需的结构将从给出的描述中显示出来。
现在参考附图,其中始终使用相同的参考数字符号被用于指代相同的元件。在以下描述中,为了解释的目的,阐述了许多具体细节,以提供对其的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实施新颖的实施例。在其他情况下,以框图形式示出公知结构和装置,以便于对其进行描述。其意图是涵盖与所要求保护的主题内容一致的所有修改、等价物和替代物。
图1示出了包括经由网络115与服务提供商120耦合的客户端设备110和第三方设备180的***100的一个实施例。客户端设备110可以包括支持网络的计算机,其经由网络115和125与服务提供商120通信以访问服务提供商内容和服务。第三方设备180可以将漏洞包175下载到客户端设备110上,其中漏洞包175包括被配置为攻击***100的漏洞以传播恶意软件的工具包。如下文更详细地描述的,本文公开的篡改检测服务检测漏洞包的操作,从而能够从服务提供商120快速隔离恶意软件,并提高整体***安全性。
如本文所述,诸如客户端设备110的支持网络的计算机可以包括但不限于:例如,计算机设备,或包括诸如服务器、网络设备、个人计算机(PC)、工作站、移动设备、电话、手持PC、个人数字助理(PDA)、瘦客户端设备、胖客户端设备、互联网浏览器或其他设备的通信设备。
因此,客户端设备110可以包括处理器101和存储器102,并且可以理解,处理电路可以包含执行本文描述的函数的附加组件,附加组件包括处理器、存储器、错误和奇偶校验/CRC校验器、数据编码器、防碰撞算法、控制器、命令解码器、安全原语和防篡改硬件。客户端设备110还可以包括显示和输入设备。显示器可以是用于呈现视觉信息的任何类型的设备,诸如计算机显示器、平板显示器和移动设备屏幕,包括液晶显示器、发光二极管显示器、等离子体面板和阴极射线管显示器。输入设备可以包括用于将信息输入到用户设备中的、用户设备可用且支持的任何设备,诸如触摸屏、键盘、鼠标、光标控制设备、麦克风、数码相机、录像机或摄像机。这些设备可被用于输入信息并与本文所述的软件和其他设备交互。
在一些实施例中,客户端设备110还可以是移动设备,例如,诸如来自并运行Apple的iOS操作***的iPhone、iPod、iPad。一般来说,本规范中的讨论重点是基于Apple iOS操作***的越狱检测。然而,应当理解,本文所公开的监测资源访问特权的变化和使用不同访问函数来验证资源可访问性的原理可以被修改,以使用运行不同操作***软件的设备,诸如运行微软的Mobile操作***的任何设备,和/或任何其他智能手机或类似的可穿戴移动设备,实现类似的有益结果。
客户端设备110可以使用操作***代码108、库109和其他数据111进行操作。在一些实施例中,客户端可以包括专门适于与服务提供商120通信的瘦客户端应用程序。瘦客户端应用程序可以被存储在客户端设备的存储器中,并且当由客户端设备执行时,瘦客户端应用程序可以***作,以控制客户端设备和服务提供商应用程序之间的接口,从而允许客户端设备处的用户访问服务提供商内容和服务。瘦客户端应用程序可以包括被配置用于与服务提供商120通信的各种函数。
工作目录106(在本文中也可替换地称为“沙盒”)可与由客户端设备110执行的每个应用程序相关联。一般来说,工作目录106定义了授予特定应用程序的访问特权,并且因此是一种保护机制,其仅允许访问运行该应用程序所需的操作***/设备的那些资源(即代码108、库109和其他数据文件111)。
通过每个应用程序的基础上限制对敏感资源的访问,如果攻击者成功利用在客户端设备上执行的应用程序中的安全漏洞,则工作目录106提供了针对用户数据的盗窃、损坏或删除或***硬件劫持的最后一道防线。在应用程序的项目定义中未明确请求且在工作目录中提供的任何资源的访问在运行时被***拒绝。
越狱涉及规避这些保护,以实现第三方函数与现有授权应用程序的集成。一些越狱由客户端设备110的所有者自愿执行,例如,使所有者能够下载公开可用的函数、库、特征等,以增强现有的应用程序函数。一些越狱是恶意越狱,例如如上所述,当第三方180将漏洞包175下载到客户端设备110上时。例如,漏洞包可以包括被配置为与客户端设备110上执行的应用程序集成并感染这些应用程序的恶意软件,以获得对由客户端设备110和/或服务提供商120提供的信息和/或函数的访问。通常,漏洞包175可以尝试将自身强加给客户端应用程序,例如获得对应用程序的访问权,并绕过进入修改过的、受感染的应用程序函数的应用程序流。
为了以这种方式操纵客户端应用程序,漏洞包175规避客户端设备保护,该保护旨在使用越狱代码(例如,具有类似于Cydia的Impactor的函数的代码)来限制对应用程序的干扰,并将漏洞包175下载到客户端设备存储器102。该漏洞包还可以包括被配置为对服务提供商越狱检测机制实施对策的程序代码,包括但不限于实施绕过***资源访问请求的钩住代码,返回伪造的访问状态以从越狱检测机制中隐藏受保护文件的越狱状态。
诸如本文中各种实施例中公开的篡改检测函数可被用于通过检测恶意软件越狱检测对策来保护***100,以实现对受感染客户端设备110的快速隔离。
在一些实施例中,篡改检测程序代码可以监测工作目录106以获取访问特权的更改。监测工作目录106可以包括请求访问预定的受保护资源集。预定的受保护资源集可包括但不限于***文件、目录、库、变量、数据库、函数、应用程序、服务或具有受限访问的其他资源或其组合。
篡改检测程序代码107可以定期地将预定的受保护资源集的访问结果列表保存,作为设备的一个或多个时间点越狱记录103,其中访问结果指示对受保护资源的未授权访问是否成功。篡改检测程序代码107可以进一步监测一系列越狱记录103,以识别越狱状态的变化模式,这些变化模式暗示了受损的客户端设备。篡改检测程序代码107可以验证越狱状态,例如,通过执行多个不同的读取操作来确定是否可以访问受保护的资源。关于图3-7更详细地描述篡改检测程序代码的这些和其他函数。
在一些示例中,网络115可以是无线网络、有线网络或无线网络和有线网络的任何组合中的一个或多个,并且可以被配置为将客户端设备110连接到服务提供商120。例如,网络115可以包括以下一个或多个:光纤网络、无源光网络、电缆网络、互联网网络、卫星网络、无线局域网(WLAN)、全球移动通信***、个人通信服务、个人局域网、无线应用协议、多媒体消息服务、增强消息服务,短消息服务、基于时分多址的***、基于码分多址的***、D-AMPS、Wi-Fi、固定无线数据、IEEE 802.11b、802.15.1、802.11n和802.11g、蓝牙、NFC、射频识别(RFID)、Wi-Fi等。
此外,网络115可包括但不限于电话线、光纤、IEEE以太网902.3、广域网(“WAN”)、无线个人区域网(“WPAN”)、局域网(“LAN”)或诸如互联网的全球网络。此外,网络115可支持互联网网络、无线通信网络、蜂窝网络等,或其任何组合。网络115还可以包括作为独立网络操作或彼此协作操作的一个网络或任意数量的上述示例性网络类型。网络115可以利用与其通信方式耦合到一个或多个网络元素的一个或多个协议。网络115可以转换成或从其他协议转换成网络设备的一个或多个协议。
应当理解,根据一个或多个示例,网络115可以是多个互连网络的一部分,诸如,例如,互联网、服务提供商的专用网络125、有线电视网络、公司网络(诸如***协会网络)和家庭网络。此外,专用网络125可被实施为分层在网络115上的虚拟专用网络。
在一个实施例中,服务提供商120是通过网络115向客户端提供基于计算机的服务的企业。向客户端提供服务提供商特定服务的软件和硬件的组合在本文中被称为“服务器”,服务器可以通过服务提供商的专用网络125进行通信,该专用网络125通常被称为公司或企业网络。如上文关于网络115所述,专用网络125可以包括无线网络、有线网络或无线网络和有线网络的任何组合。
软件服务可以被体现在运行在电子设备上的应用程序中,诸如运行在计算设备的操作***上的桌面应用程序、运行在移动设备的移动操作***上的移动应用程序,或者运行在移动操作***或桌面操作***的浏览器组件上的web应用程序。本领域技术人员将理解如何在任何类型的电子设备上设计、构建和部署软件应用程序。在一些实施例中,应用程序可以是运行在设备的操作***上的浏览器应用程序。
在图1的***中,服务提供商120被示为包括应用服务器150。尽管仅示出了一个应用服务器150,但是应当理解,服务提供商120可以向客户端提供许多应用程序服务,并且可以包括许多应用程序服务器。尽管应用程序服务器150被示为分立设备,但是可以理解,应用程序和服务器可以被分布在整个企业中,或者,在诸如“云”资源的分布式资源的情况下,可以作为物理或虚拟服务器分布在整个网络115中。应用程序提供商150可以支持由服务提供商120提供的一个或多个应用程序服务,例如,帐户管理服务。
数据库130包括数据存储资源,这些资源可被用于存储客户帐户、凭证和其他认证信息,以及供应用服务器使用的其他数据。数据库130可以由耦合的数据资源组成,耦合的数据资源包括本地存储、分布式数据中心存储或基于云的存储的任何组合,其中数据资源包括不包括载波或传播数据信号的非暂时性有形存储介质。
图2是包括经由网络215耦合到服务提供商220的多个客户端设备210、230的计算机***200的图。与图1相反,在图2的实施例中,篡改检测由服务提供商220执行,尽管可以理解,篡改检测过程的各种元素可以由一个或多个客户端设备210、230、服务提供商220或两者合作来实施。
在图2中,客户端设备210包括处理器201和存储器202,该存储器202被配置为存储工作目录206,该工作目录206为在客户端设备210上执行的应用程序提供对源代码树208的一部分的访问。客户端设备210被示为由存储器202中的漏洞包275感染。例如,漏洞包275可包括越狱代码和恶意软件的组合,其被配置为干扰并施加于支持在客户端设备210上执行的应用程序的客户端/服务器通信。
客户端设备230包括处理器231和存储器232,其被配置为存储工作目录236,该工作目录为在客户端设备230上执行的应用程序提供对源代码树238的一部分的访问。工作目录206、236可以取决于其支持应用程序的类型、操作和特权级别而不同。客户端设备230被示出包括越狱代码276和第三方应用程序278。可以理解的是,客户端通常可能会寻求在其客户端设备上安装未经授权的第三方应用程序。由于设备制造商不鼓励这种做法,设备所有者可能会通过下载越狱代码276来寻求自愿规避保护。由Cydia提供的Impactor代码是一个可被用于越狱代码交付的程序。
因此,仅检查客户端设备资源的越狱状态,对其受损状态的描述是不完整的。通常,恶意软件可能会尝试隐藏客户端设备的越狱状态,例如通过在被称为“钩住”的过程中拦截越狱检测机制。如下文更详细地描述的,本文公开的篡改检测服务能够通过有效地识别钩住行为和隔离钩住设备来区分客户端设备(诸如客户端设备230)的所有者的自愿越狱和恶意越狱(诸如在客户端设备210处)。
在一个实施例中,服务提供商220包括将服务提供商220的资源耦合到网络215的企业网络225。这些资源包括被配置为支持客户端设备210、230的一个或多个应用程序服务的应用程序服务器280和篡改检测服务器250。
根据一个实施例,服务提供商220的篡改检测服务器250可以填充和管理存储在数据存储器202中的客户端越狱档案222,如关于图3-7所述的。在一个实施例中,对于每个耦合的客户端设备,客户端越狱档案包括一个或多个越狱记录。每个越狱记录可以包括越狱状态的列表,列表中的每个条目与客户端设备的受保护资源在给定时间点的越狱状态相关联。在一个实施例中,越狱状态为TRUE指示成功访问受保护资源,指示该资源已被暴露,例如,越狱。越狱状态为FALSE指示无法成功访问受保护资源。
图3A和3B示出了由篡改检测应用310对客户端设备的沙箱320的代表性顺序访问,例如,使用例如来自诸如Objective-C、Swift等高级语言(HLL)的访问请求。在图3A和3B中,示出了用于受保护的根目录“/var/tmp”的“FileManager fileExistsAtPath:”请求的Objective-C示例访问请求。在示例性文件检查中,对于请求图3A中的FileManagerfileExistsAtPath:“/var/tmp”的响应返回TRUE,指示受限目录是可访问的,并且客户端设备已被越狱。一旦服务提供商识别出越狱设备,应用程序可能会限制对***资源的访问,同时确定客户端设备是否受损。
如前所述,了解此类越狱检测机制的黑客可能会钩住FileManagerfileExistsAtPath:“/var/tmp”请求。在图3B中,示出了恶意软件330拦截根目录读取并返回FALSE响应,从而有效地向服务器隐藏“/var/tmp”的越狱状态。根据一个方面,可以实现随着时间的推移监测受保护资源的越狱状态的行为,被用于识别受损客户端设备上的恶意软件行为。
图4示出了客户端设备的四个连续时间点越狱记录410、420和430。在一个实施例中,越狱记录可以在篡改检测过程中通过记录受保护资源集的可访问性结果来生成,受保护资源集中的每个都是在客户端设备的越狱检查期间访问的。在各种方面中,越狱检查可定期地执行,例如包括但不限于在每次应用程序访问时,或在各种触发事件时,诸如每次访问函数或数据源时,或在其他标准。
在每次越狱检查期间,篡改检测服务可以使用高级语言(HLL)访问函数访问受保护资源集,以监测和记录对其可访问性的变化。高级语言(HLL)是一种编程语言,诸如Java、FORTRAN、Objective-C、Swift、Pascal等,使程序员能够编写或多或少独立于特定类型计算机的程序。这类语言被认为是高级语言,因为它们更接近人类语言,并且远离机器语言。相比之下,汇编语言被认为是低级的,因为它们非常接近机器语言。
随着时间的推移,对受保护资源的可访问性的变化可以指示客户端设备已受损。在一个实施例中,可以使用较低级别的语言访问函数来验证随时间对可访问性的变化,以确保恶意软件或其他恶意软件没有隐藏对受保护资源的可访问性状态的变化,从而掩盖客户端设备的受损状态。
例如,在图4中,高级语言Swift访问函数“FileManager.fileExists(atPath…)”可被示出用于初始越狱检测目的。仅作为示例,越狱记录410存储受保护资源集的访问请求结果,包括根目录“/var/tmp”、操作***根目录“/”和初始化文件“/init”。在时间T0处,越狱访问请求在记录410条目412和414中返回FALSE结果,以响应于尝试访问“/var/tmp”、“/”和“/init”。在时间T1处,越狱访问请求在记录420中返回条目422和424的TRUE结果。在时间T2处,越狱访问请求再次返回记录430的条目432、434的FALSE结果。
根据一个方面,篡改检测过程监测受保护资源集的越狱状态中的这种时间变化,以检测潜在隐藏的越狱资源,其中潜在隐藏的越狱资源包括那些已知已暴露但不再被识别为暴露的越狱资源的受保护资源。由于恶意软件可能会试图隐藏资源的真实越狱状态,因此本文公开的篡改检测服务可以对识别出的潜在隐藏的越狱资源发起多次读取,以确定潜在隐藏资源是否真的不再越狱,或者恶意软件是否正在隐藏资源的越狱状态。在一些实施例中,多次读取可以使用不同类型的访问函数,例如在类型、形式、语言、复杂性等方面变化,以确定是否返回不同的访问结果,指示服务提供商访问请求被钩住。
例如,现在参考图5,因为钩住客户端设备涉及越狱检查机制的识别和拦截,所以在一些实施例中,可以使用不同的访问函数进行二次或额外的尝试来访问潜在隐藏资源,该访问函数可能被恶意软件识别,或者使用不同的软件层进行通信。在一些实施例中,二次访问可以与初始越狱检查同时或顺序发生。在一些实施例中,不同的访问函数可以是在不同级别的程序代码中可用的不同访问函数,诸如高级函数和低级函数。低级函数的示例可包括例如与计算机指令集更密切相关的计算语言,诸如机器代码、汇编代码、操作***代码、DOS命令和其他***级命令。在其他实施例中,不同的访问函数可以是不同的高级语言访问函数。在一些实施例中,不同的访问函数可以包括高级语言访问函数和低级语言访问函数的组合。
在图5的示例中,客户端沙盒520响应于篡改检测应用程序510的FileManager:fileExists(atPath(“/var/tmp”)访问请求而返回“FALSE”。如关于图3B所描述的,当实际上“/var/tmp”已经越狱并且被真正暴露,但恶意软件试图对服务提供商隐藏越狱状态时,在恶意软件的FileManager:fileExists(atPath(“/var/tmp”)请求被钩住之后,可能会错误地提供这样的FALSE响应。
随后(或同时)可能会发出较低级别的访问请求,诸如openDir(“/var/tmp”)请求,以验证文件的越狱状态。在图5中,返回值为TRUE指示“/var/tmp”被真正暴露,并且客户端设备正在执行隐藏“/var/tmp”越狱状态的恶意软件。使用不同访问函数的读取结果之间的不匹配可被用于快速暴露受损的客户端。
图6是示出用于检测受损客户端设备的篡改检测过程600的示例性步骤的流程图,其中客户端设备执行包括一个或多个受保护资源的应用程序。在步骤610处,篡改检测服务监测客户端设备对应用程序的执行,其中客户端设备包括通常不可被应用程序使用的受保护资源集。在步骤620处,该过程监测该受保护资源集以识别暴露资源,该暴露资源包括具有被修改的特权级别的受保护资源,以使该受保护资源可被应用程序使用。在步骤630处,篡改检测过程维护暴露资源的记录。在一些实施例中,该过程可以仅维护已被越狱的那些文件的列表。在其他实施例中,该过程可以为受保护资源集中的每个文件保存访问请求的状态(例如,图4中描述的TRUE或FALSE)。跟踪暴露资源的标识符的替代方法被认为在本暴露的范围内。
在步骤640处,该过程检测隐藏资源,其中该隐藏资源可被应用程序使用,但从暴露资源的记录中隐藏。在步骤650处,响应于对隐藏资源的检测,篡改检测可以选择性地禁用应用程序,以将受损客户端设备与服务提供商***隔离。
例如,当可访问性模式指示未经授权地操纵受保护资源的访问特权时,可以推断出恶意活动。该模式可以是,例如,越狱文件从越狱资源记录中消失。该方法可包括在步骤650处,当确定文件移除与恶意活动相关联时,选择性地禁用应用程序对服务器的访问。
图7示出了可被用于检测客户端设备上的恶意活动的篡改检测过程700的一个实施例。在步骤710处,该过程包括响应于使用高级编程语言访问函数成功访问客户端设备的受保护资源集中的受保护资源,确定所述受保护资源的特权级别已被修改。在步骤720处,该过程包括维护具有被修改的特权级别的受保护资源的列表作为暴露的资源记录。在步骤730处,随着时间的推移监测暴露的资源记录以检测潜在隐藏资源,潜在隐藏资源包括从暴露的资源记录中被隐藏的被修改的特权级别的受保护资源。在步骤740处,过程响应于使用较低级别编程语言访问函数成功访问潜在隐藏资源,确定潜在隐藏资源是与恶意活动相关联的隐藏资源。在步骤750处,当检测到隐藏资源时,该过程选择地禁用应用程序对服务器的访问。
如上所述,篡改检测过程可以全部或部分由客户端设备实施。客户端设备可以主动地向服务提供商提供越狱状态,或者可以存储可由服务提供商应用程序读取的越狱记录。
因此,篡改检测过程包括监测客户端设备的越狱状态,以确定指示受损设备的模式。篡改检测过程还可以包括对客户端设备的受保护资源执行多个读取函数,以验证越狱状态,例如,克服与钩住设备相关的问题。这些过程可被单独使用或组合使用,并且可以在由客户端设备、服务提供商或客户端设备和服务提供商的组合提供的篡改检测***中使用。这样的安排提高了快速识别和修复受损客户端以及保护计算环境的能力。
图8示出了可构成客户端设备110、210、230和/或应用程序服务器150、280和篡改检测服务器250的基础的示例性计算架构900的实施例。在各种实施例中,计算架构900可以包括或被实施为电子设备的一部分,该电子设备包括图7中所示的更多或更少的组件。计算架构900被配置为实施本文所述的所有逻辑、应用程序、***、方法、装置和函数。
计算***902包括各种公共计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、***设备、接口、振荡器、定时设备、视频卡、声卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算***902实施。
如图8所示,计算***902包括处理器904、***存储器906和***总线908。处理器904可以是各种商用计算机处理器中的任何一种。双微处理器、多核处理器和其他多处理器架构也可以被采用作处理器904。
***总线908为***组件提供接口,包括但不限于***存储器906到处理器904。组件可以由接口控制,例如,磁盘设备可以由接口924、926和928根据其各种协议进行控制。网络通信可以由网络适配器956进行控制。***存储器906可以包括以包括非易失性存储器910和/或易失性存储器912的一个或多个高速存储器单元的形式的各种类型的计算机可读存储介质。基本输入/输出***(BIOS)可以被存储在非易失性存储器910中。
计算***902可以包括一个或多个低速存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)914、用于读取或写入可移动磁盘918的磁盘软盘驱动器(FDD)916,以及用于读取或写入可移动光盘922(例如,CD-ROM或DVD)的光盘驱动器920。驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,许多程序模块可被存储在驱动器和存储器单元910、912中,包括操作***930、一个或多个应用程序932(包括图5和6的篡改检测程序处理)、其他程序模块934和程序数据936。
用户可以通过一个或多个有线/无线输入设备(例如,键盘938和诸如鼠标940的定点设备)向计算***902输入命令和信息。其他输入设备可包括麦克风、红外(IR)遥控器、射频(RF)遥控器、游戏垫、手写笔、读卡器、加密狗、指纹读取器、手套、图形板、操纵杆、键盘、视网膜读取器、触摸屏(例如电容式、电阻式等)、轨迹球、轨迹板、传感器、触控笔等。这些和其他输入设备通常通过耦合到***总线908但可通过其他接口连接的输入设备接口942而连接到处理器904。
监测器944或其他类型的显示设备也经由诸如视频适配器946的接口而连接到***总线908。计算***902可以使用经由有线和/或无线通信到一个或多个远程计算机(诸如包括存储器/存储设备950的远程计算机948)的逻辑连接,在网络环境中进行操作。所描述的逻辑连接包括到局域网(LAN)952和/或更大网络(例如广域网(WAN)954)的有线/无线连接。计算***902还可***作用于使用IEEE 802标准系列与有线和无线设备或实体进行通信。至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的代表性指令来实施,机器可读介质表示处理器内的各种逻辑,当机器读取这些指令时,其使得机器制造逻辑以执行本文描述的技术。
如在本申请中所使用的,术语“***”、“组件”和“单元”意指与计算机相关的实体,硬件、硬件和软件的组合、软件或正在执行的软件,本文描述了它们的示例。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器、非暂时性计算机可读介质(光学和/或磁存储介质)、对象、可执行文件、执行线程、程序和/或计算机。举例来说,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间。
此外,组件可以通过各种类型的通信介质彼此通信耦合以协调操作。协调可能涉及单向或双向的信息交换。例如,组件可以以通过通信介质以传送的信号的形式传送信息。该信息可以被实施为分配给各种信号线的信号。在这种分配中,每条消息都是一个信号。然而,其他实施例可替代地采用数据消息。这种数据消息可以通过各种连接而被发送。示例性连接包括并行接口、串行接口和总线接口。
可以使用表达式“一个实施例”或“一实施例”及其衍生物来描述一些实施例。这些术语意味着结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。在说明书中不同位置的出现的短语“在一个实施例中”不一定都指同一实施例。此外,除非另有说明,否则上述特征被认为可以在任何组合中一起使用。因此,单独讨论的任何特征可以相互结合使用,除非注意到这些特征彼此不兼容。
一般参考本文中使用的符号和术语,本文中的详细描述可以以功能块或单元的形式呈现,这些功能块或单元可以被实施为在计算机或计算机网络上执行的过程程序。本领域技术人员使用这些程序描述和表示来最有效地将其作品的实质传达给本领域其他技术人员。
在这里,程序通常被认为是导致期望的结果的自洽操作序列。这些操作需要对物理量进行物理操作。通常,尽管不一定,这些量的形式是能够被存储、传输、组合、比较和以其他方式操纵的电、磁或光信号。事实证明,有时将这些信号称为比特、数值、元素、符号、字符、术语、数字等是方便的,主要是出于常见用法的原因。然而,应该注意的是,所有这些和类似的术语都与适当的物理量相关联,并且只是适用于这些量的方便标签。
此外,所执行的操作通常是指诸如添加或比较之类的术语,这些术语通常与人类操作者执行的心理操作相关联。在本文描述的形成一个或多个实施例的一部分的任何操作中,人类操作员的这种能力不是必需的,或在大多数情况下是可取的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
可以使用表达式“耦合”和“连接”以及它们的衍生物来描述一些实施例。这些术语不一定是彼此的同义词。例如,可以使用术语“连接的”和/或“耦合的”来描述一些实施例,以指示两个或多个元件彼此直接物理或电接触。然而,术语“耦合”也可能意味着两个或多个元素彼此不直接接触,但仍然相互合作或相互作用。
需要强调的是,提供本公开的摘要是为了让读者快速确定技术公开的实质。提交本声明的前提是,本声明不用于解释或限制权利要求的范围或含义。此外,在前述详细描述中,在单个实施例中将各种特征组合在一起以简化本公开。本公开的方法不应被解释为反映了一种意图,即所要求保护的实施例需要比每项权利要求中明确叙述的更多的特征。相反,正如以下权利要求所反映的,本发明的主题内容不在于单个公开实施例的所有特征。因此,以下权利要求在此并入详细说明书,其中每个权利要求作为单独的实施例而独立存在。在所附权利要求书中,术语“包括”和“其中”被分别用作各自术语“包括”和“其中”的简明英语等价物。此外,术语“第一”、“第二”、“第三”等仅用作标签,并不打算对其对象施加数字要求。
上面描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每个可想象的组合,但是本领域的普通技术人员可以认识到,许多进一步的组合和排列是可能的。因此,该本发明的架构旨在包含落入所附权利要求书的精神和范围内的所有此类改变、修改和变化。
Claims (20)
1.一种用于检测受损客户端设备的方法,包括以下步骤:
监测客户端设备对应用程序的执行,所述客户端设备包括不可被所述应用程序使用的受保护资源集;
识别暴露资源,所述暴露资源包括受保护资源,所述受保护资源的特权级别被修改以使所述受保护资源可被所述应用程序使用;
保持所述暴露资源的记录;
检测隐藏资源,所述隐藏资源可被所述应用程序使用,但从所述暴露资源的记录中被隐藏;以及
响应于所述隐藏资源的检测,选择地禁用所述应用程序。
2.根据权利要求1所述的方法,其中,所述受保护资源集是包括***文件、目录、库、变量、数据库、函数、应用程序、服务、其他受限资源或其组合的受保护资源集。
3.根据权利要求1所述的方法,其中,监测所述受保护资源集的步骤包括向所述受保护资源集发出一系列访问请求,所述一系列访问请求包括对所述受保护资源集的每个受保护资源的访问请求,所述访问请求包括第一访问函数。
4.根据权利要求3所述的方法,其中,监测所述受保护资源集的步骤包括以下步骤:使用所述第一访问函数定期地向所述受保护资源集发出所述一系列访问请求,以提供所述暴露资源的一系列时间点列表,并且其中所述暴露资源的记录包括所述暴露资源的所述一系列时间点列表。
5.根据权利要求4所述的方法,其中,检测所述隐藏资源的步骤包括以下步骤:比较所述暴露资源的所述一系列时间点列表,以识别包括先前暴露资源的潜在隐藏资源,所述先前暴露资源随后从所述暴露资源的时间点列表中被隐藏。
6.根据权利要求5所述的方法,其中,检测所述隐藏资源的步骤包括以下步骤:通过向所述潜在隐藏资源发出第二访问请求来确定所述潜在隐藏资源是否为所述隐藏资源,所述第二访问请求包括第二访问函数,并且响应于使用所述第二访问函数可访问的所述潜在隐藏资源,确定所述潜在隐藏资源为所述隐藏资源。
7.根据权利要求6所述的方法,其中,选择地禁用访问的步骤包括在确定所述潜在隐藏资源为所述隐藏资源时,禁用所述应用程序对所述客户端设备、服务器或两者的访问。
8.根据权利要求7所述的方法,其中,所述第二访问函数包括与所述第一访问函数不同级别的程序代码。
9.根据权利要求8所述的方法,其中,所述第二访问函数包括比所述第一访问函数更低级别的程序代码函数。
10.根据权利要求9所述的方法,其中,所述第一访问函数包括Java、FORTRAN、Objective-C、Swift或Pascal的高级语言资源访问函数,并且所述第二访问函数包括机器代码、汇编代码或操作***代码的低级语言资源访问函数。
11.一种篡改发现服务器,包括:
处理器;
与所述处理器耦合的非暂时性存储设备,包括在所述篡改发现服务器的操作期间由所述处理器执行时可操作的程序代码,以执行以下步骤:
确定执行与服务提供商通信的应用程序的客户端设备的受保护资源的特权级别已被修改;
为所述客户端设备维护暴露资源的记录,所述记录的每个暴露资源对应于具有被修改的特权级别的受保护资源;
监测所述暴露资源的记录,以检测与先前暴露的资源相对应的隐藏资源,所述先前暴露的资源随后从所述暴露资源的记录中被隐藏;
确定所述隐藏资源是否与恶意活动关联;以及
当确定所述隐藏资源与恶意活动关联时,选择地禁用所述应用程序。
12.根据权利要求11所述的篡改发现服务器,其中,所述受保护的资源包括执行所述应用程序的客户端设备的操作***的应用程序文件。
13.根据权利要求11所述的篡改发现服务器,其中,确定所述受保护资源的特权级别已被修改的程序代码包括第一访问函数程序代码。
14.根据权利要求13所述的篡改发现服务器,其中,监测所述暴露资源的记录以检测所述隐藏资源的程序代码包括被配置为执行以下步骤的程序代码:
定期地执行所述第一访问函数程序代码,以生成一系列时间点访问结果;以及
检测所述一系列时间点访问结果中的变化,包括检测潜在隐藏资源,所述潜在隐藏资源先前被包括在所述一系列时间点访问结果中,并且随后从所述暴露资源的记录中被隐藏。
15.根据权利要求14所述的篡改发现服务器,其中,被配置为确定所述隐藏资源是否与恶意活动关联的程序代码包括被配置为执行以下步骤的程序代码:使用第二访问函数程序代码访问所述潜在隐藏资源以确定所述潜在隐藏资源是否被隐藏。
16.根据权利要求15所述的篡改发现服务器,其中,所述第二访问函数程序代码包括与所述第一访问函数程序代码不同级别的程序代码。
17.根据权利要求16所述的篡改发现服务器,其中,所述第一访问函数程序代码包括Java、FORTRAN、Objective-C、Swift或Pascal的高级语言资源访问函数,并且所述第二访问函数程序代码包括机器代码、汇编代码或操作***代码的低级语言资源访问函数。
18.一种用于由服务器检测执行应用程序的客户端设备上的恶意活动的方法,包括以下步骤:
响应于使用高级编程语言访问函数成功访问所述客户端设备的受保护资源集中的受保护资源,确定所述受保护资源的特权级别已被修改;
维护具有被修改的特权级别的受保护资源列表,作为暴露资源记录;
随时间的推移监测所述暴露资源记录以检测潜在隐藏资源,所述潜在隐藏资源包括从所述暴露资源记录中被隐藏的已被修改的特权级别受保护资源;
响应于使用较低级别编程语言访问函数成功访问所述潜在隐藏资源,确定所述潜在隐藏资源是与恶意活动相关联的隐藏资源;以及
当检测到所述隐藏资源时,选择地禁用所述应用程序对所述服务器的访问。
19.根据权利要求18所述的方法,其中,所述受保护资源是客户端的操作***文件,并且其中确定所述受保护资源的特权级别已被修改的步骤指示所述客户端设备是越狱设备,并且其中确定所述潜在隐藏资源被隐藏指示所述客户端设备是被钩住的客户端设备。
20.根据权利要求18所述的方法,其中,随时间的推移监测所述暴露资源记录以检测所述潜在隐藏资源的步骤包括以下步骤:
使用高级编程语言访问函数定期访问所述受保护资源集,以识别可访问的受保护资源;
存储可访问的受保护资源的多个时间点列表;以及
比较可访问的受保护资源的所述多个时间点列表以识别变化,包括从随后生成的时间点列表中识别先前可访问的受保护资源的遗漏,这些变化包括所述潜在隐藏资源。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/576,303 US10642979B1 (en) | 2019-09-19 | 2019-09-19 | System and method for application tamper discovery |
US16/576,303 | 2019-09-19 | ||
PCT/US2020/051454 WO2021055722A1 (en) | 2019-09-19 | 2020-09-18 | System and method for application tamper discovery |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730338A true CN114730338A (zh) | 2022-07-08 |
Family
ID=70461682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080080250.4A Pending CN114730338A (zh) | 2019-09-19 | 2020-09-18 | 用于发现应用程序篡改的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10642979B1 (zh) |
EP (1) | EP4031999A1 (zh) |
CN (1) | CN114730338A (zh) |
CA (1) | CA3151428A1 (zh) |
WO (1) | WO2021055722A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642979B1 (en) * | 2019-09-19 | 2020-05-05 | Capital One Services, Llc | System and method for application tamper discovery |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181769B1 (en) * | 2000-08-25 | 2007-02-20 | Ncircle Network Security, Inc. | Network security system having a device profiler communicatively coupled to a traffic monitor |
US20030159060A1 (en) * | 2001-10-31 | 2003-08-21 | Gales George S. | System and method of defining the security condition of a computer system |
US7573301B2 (en) * | 2002-12-02 | 2009-08-11 | Silverbrook Research Pty Ltd | Temperature based filter for an on-chip system clock |
US20070157311A1 (en) * | 2005-12-29 | 2007-07-05 | Microsoft Corporation | Security modeling and the application life cycle |
US20080271001A1 (en) * | 2006-09-11 | 2008-10-30 | Yo Nonomura | Method of generating program, information processing device and microcomputer |
US9781148B2 (en) * | 2008-10-21 | 2017-10-03 | Lookout, Inc. | Methods and systems for sharing risk responses between collections of mobile communications devices |
WO2012075323A1 (en) | 2010-12-01 | 2012-06-07 | Headwater Partners I Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US9195810B2 (en) * | 2010-12-28 | 2015-11-24 | Microsoft Technology Licensing, Llc | Identifying factorable code |
US9032525B2 (en) * | 2011-03-29 | 2015-05-12 | Mcafee, Inc. | System and method for below-operating system trapping of driver filter attachment |
US8997230B1 (en) * | 2012-06-15 | 2015-03-31 | Square, Inc. | Hierarchical data security measures for a mobile device |
US20140173733A1 (en) * | 2012-12-17 | 2014-06-19 | Fixmo, Inc. | Exploit detection and reporting of a device using server chaining |
US9536073B2 (en) * | 2014-07-24 | 2017-01-03 | Google Technology Holdings LLC | Device-based application security |
US9609005B2 (en) | 2014-09-25 | 2017-03-28 | Mcafee, Inc. | Cross-view malware detection |
US9734358B2 (en) * | 2015-01-02 | 2017-08-15 | High Sec Labs Ltd | Self-locking USB protection pug device having LED to securely protect USB jack |
US9697361B2 (en) * | 2015-07-06 | 2017-07-04 | AO Kaspersky Lab | System and method of controlling opening of files by vulnerable applications |
US9224006B1 (en) * | 2015-07-29 | 2015-12-29 | KGSS, Inc. | System and method of secure data access |
US11388037B2 (en) * | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
US20170346824A1 (en) * | 2016-05-31 | 2017-11-30 | Tracker Networks Inc. | Methods and systems for mobile device risk management |
JP2017215745A (ja) * | 2016-05-31 | 2017-12-07 | 株式会社東芝 | データ処理装置、データ処理方法およびプログラム |
US10546119B2 (en) * | 2016-11-14 | 2020-01-28 | Mastercard International Incorporated | Methods for securely storing sensitive data on mobile device |
US11301569B2 (en) * | 2019-03-07 | 2022-04-12 | Lookout, Inc. | Quarantine of software based on analysis of updated device data |
US10642979B1 (en) * | 2019-09-19 | 2020-05-05 | Capital One Services, Llc | System and method for application tamper discovery |
-
2019
- 2019-09-19 US US16/576,303 patent/US10642979B1/en active Active
-
2020
- 2020-03-30 US US16/833,766 patent/US11397811B2/en active Active
- 2020-09-18 EP EP20786133.7A patent/EP4031999A1/en active Pending
- 2020-09-18 CA CA3151428A patent/CA3151428A1/en active Pending
- 2020-09-18 WO PCT/US2020/051454 patent/WO2021055722A1/en unknown
- 2020-09-18 CN CN202080080250.4A patent/CN114730338A/zh active Pending
-
2022
- 2022-06-23 US US17/847,538 patent/US11914710B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10642979B1 (en) | 2020-05-05 |
US20210089655A1 (en) | 2021-03-25 |
EP4031999A1 (en) | 2022-07-27 |
US20230009963A1 (en) | 2023-01-12 |
WO2021055722A1 (en) | 2021-03-25 |
CA3151428A1 (en) | 2021-03-25 |
US11914710B2 (en) | 2024-02-27 |
US11397811B2 (en) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US10361998B2 (en) | Secure gateway communication systems and methods | |
RU2646352C2 (ru) | Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ | |
EP2973171B1 (en) | Context based switching to a secure operating system environment | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
US9183377B1 (en) | Unauthorized account monitoring system and method | |
US20110239306A1 (en) | Data leak protection application | |
JP2019533258A (ja) | コンピュータセキュリティ動作を最適化するための動的評判インジケータ | |
US20230297676A1 (en) | Systems and methods for code injection detection | |
Peddoju et al. | File integrity monitoring tools: Issues, challenges, and solutions | |
Yang et al. | Eavesdropping user credentials via GPU side channels on smartphones | |
US9219728B1 (en) | Systems and methods for protecting services | |
US11914710B2 (en) | System and method for application tamper discovery | |
Kaczmarek et al. | Operating system security by integrity checking and recovery using write‐protected storage | |
Lima et al. | Security for mobile device assets: A survey | |
KR101349807B1 (ko) | 이동식 저장매체 보안시스템 및 그 방법 | |
US11449605B2 (en) | Systems and methods for detecting a prior compromise of a security status of a computer system | |
US20230214533A1 (en) | Computer-implemented systems and methods for application identification and authentication | |
Song et al. | Android Data-Clone Attack via Operating System Customization | |
EP3113066B1 (en) | Computer security architecture and related computing method | |
Nwobodo | Exploring Optimal Subsets of Statically Registered Broadcast Receivers and Permissions for the Prediction of Malicious Behavior in Android Applications | |
CN117909962A (zh) | 内核驱动级别的浏览器插件防护方法及装置、介质、设备 | |
KR20140026315A (ko) | 이동식 저장매체 보안시스템 및 그 방법 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40076368 Country of ref document: HK |