CN115408690A - 用于检测应用程序中的潜在恶意更改的系统和方法 - Google Patents

用于检测应用程序中的潜在恶意更改的系统和方法 Download PDF

Info

Publication number
CN115408690A
CN115408690A CN202111649461.8A CN202111649461A CN115408690A CN 115408690 A CN115408690 A CN 115408690A CN 202111649461 A CN202111649461 A CN 202111649461A CN 115408690 A CN115408690 A CN 115408690A
Authority
CN
China
Prior art keywords
file
feature set
potentially malicious
document
application
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
CN202111649461.8A
Other languages
English (en)
Inventor
安东·A·基瓦
L·V·皮克曼
I·A·戈洛温
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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
Priority claimed from RU2021115371A external-priority patent/RU2774042C1/ru
Priority claimed from US17/528,270 external-priority patent/US11886584B2/en
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN115408690A publication Critical patent/CN115408690A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及用于检测应用程序中的潜在恶意更改的系统和方法。在一个方面,示例性方法包括:选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。

Description

用于检测应用程序中的潜在恶意更改的系统和方法
技术领域
本发明涉及信息安全领域,例如,涉及检测应用程序中的潜在恶意更改。
背景技术
如今,移动操作系统(尤其是Android)越来越流行。这些移动操作系统使用的软件正在快速发展。软件更新定期发布,制造商在其中纠正错误并发布具有新功能的软件更新版本。软件通常以包含应用程序文件、文件的数字签名、和文件签名证书的存档文件的形式分发。
为了诱使受害者访问虚假网站,攻击者可以使用大量或单独寻址的电子邮件消息,这些电子邮件消息伪装成由同事、银行员工或政府机构代表发送的消息。但是,这些消息包含恶意链接。消息中包含的文本指示或要求受害者点击链接并立即执行某些动作,以避免威胁或某种严重后果。诈骗者采用的另一种方法是使用文件形式的附件,该附件也包含恶意链接或利用易受攻击的应用程序进一步危害用户的计算机。
此外,恶意软件(如计算机病毒、特洛伊木马和网络蠕虫)的类型和数量持续增加。恶意软件通常旨在对用户数据造成损坏,并损害受恶意软件感染的电子设备的实际用户。损坏可能包括破坏或删除用户文件、使用用户设备的计算资源“挖掘”加密货币、窃取机密用户数据(通信、图像、登录名、密码、银行卡数据)和其他活动。此外,由于恶意软件的作者采取了新的攻击方法,并采取了新的措施来避免安全应用程序的检测,因此恶意软件也在不断变化。恶意软件代码使用各种机制。在一个示例中,恶意代码的模糊处理可用于更改程序的源文本或可执行代码的外观,同时保留其功能,并使得在反编译期间更难分析、理解操作算法和修改恶意代码。在另一个示例中,可以使用抵消仿真的机制。例如,可以为恶意软件提供功能,以识别其正在仿真器中执行,从而使恶意代码能够避免表现出恶意活动。
为移动操作系统创建恶意应用程序的一种方法是:将恶意代码嵌入合法应用程序(合法应用程序用作基础),并通过重新打包存档和添加恶意功能来修改合法应用程序。用启发式防病毒分析方法检测此类嵌入恶意代码的应用程序是有问题的,因为通常在一个具有大量安全功能的文件中存在极少量的危险功能。因此,尝试对恶意代码进行广义启发式搜索会导致大量误报。例如,此类应用程序的一个已知案例是“Cam Scanner”应用程序,其可通过Google Play进行安装。在一个版本中,当应用程序的安装量大于1亿次时,在其中一次更新期间向应用程序添加了恶意模块。就目前所知,与合作公司签订了合同,但在发布广告的同时,该合作公司还提供了一个包含恶意代码的模块。应用程序开发者不是分析师或安全专家,因此他们只是自己将该模块构建到应用程序中。事实证明,在该应用程序的一亿次安装中发现了恶意代码。
在另一个示例中,还已知广告服务公司处于“平衡”的边缘,在与开发者的合作协定中提供他们的广告模块,但有时他们“超越”了限制。他们的模块包含合法代码,但会对用户造成损害。例如,这样的模块可以发送SMS(这是合法的,因为这是移动设备的一项功能,但这样的动作会对用户产生财务影响)或读取先前接收的消息(这也是合法的,但应只允许用于所选择的应用程序,否则会以访问敏感用户数据的形式造成损害)。还存在通过添加恶意代码进行故意修改的情况。
此外,还存在落入“riskware(风险程序)”类别的应用程序。这类应用程序具有潜在的危险性,例如,远程管理应用程序可以用作后门,特别是如果它们允许隐藏启动和操作,而其操作没有任何用户通知。
因此,需要一种例如通过检测恶意应用程序来提高信息安全性的方法和系统。
发明内容
本发明的各方面涉及信息安全,更具体地,涉及检测应用程序中的潜在恶意更改的系统和方法。例如,本发明的方法被设计成创建一种解决方案,该解决方案允许将恶意代码的搜索空间减小到相对较小的数据集合,同时在识别已被修改的应用程序或已被添加恶意功能的应用程序时显著提高启发式规则的操作准确性。
在一个示例性方面,提供了一种用于检测应用程序中的潜在恶意更改的方法,该方法包括:选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
在一个方面,所述至少一个第二文件与所述第一文件的相似性基于以下中的至少一者:所述第一文件和所述至少一个第二文件的名称、以及所述第一文件和所述至少一个第二文件的版本。
在一个方面,所述至少一个特征集合至少包括dex类的散列。
在一个方面,所述dex类的散列是根据以下中的至少一者计算的:不考虑类名称的类代码、和不考虑类方法名称的类代码。
在一个方面,所述至少一个特征集合包括以下中的至少一者:从所述第一文件的清单获得的信息、关于所述第一文件的请求权限的信息、以及关于所述第一文件中加密资源的存在的信息。
在一个方面,使用基于启发式分析和签名分析中的至少一者的方法来检测潜在恶意更改的存在。
在一个方面,潜在恶意更改包括以下中的至少一者:指示存在已知为不可信的应用程序编程接口函数的更改;以及指示存在至少一个代码加载程序的更改。
在一个方面,所选择的要分析的文件包括用于移动设备的应用程序安装文件。
根据本发明的一个方面,提供了一种用于检测应用程序中的潜在恶意更改的系统,该系统包括硬件处理器,该硬件处理器被配置为:选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
在一个示例性方面,提供了一种非暂时性计算机可读介质,在该非暂时性计算机可读介质上存储有用于检测应用程序中的潜在恶意更改的指令集,其中所述指令集包括用于如下操作的指令:选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
本发明的方法和系统被设计成以更优化和更有效的方式提供信息安全性,从而使应用程序的合法修改能够继续进行,同时检测被修改为恶意的应用程序。因此,在一个方面,本发明的技术效果包括检测应用程序中的潜在恶意更改。在另一方面,技术效果包括减少被错误地识别为恶意的应用程序的数量。在又一方面,技术效果包括通过阻止应用程序的恶意修改来提供信息安全性。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同具体实施方式一起用来解释这些示例性方面的原理和实现方式。
图1示出了根据本发明的各方面的用于检测应用程序中的潜在恶意更改的示例性系统的框图。
图2示出了根据本发明的各方面的用于检测应用程序中的潜在恶意更改的方法。
图3呈现了可以在其上实现本发明的各方面的通用计算机系统的示例。
具体实施方式
本文在根据本发明的各方面的用于检测应用程序中的潜在恶意更改的系统、方法和计算机程序的上下文中描述各示例性方面。本领域普通技术人员将意识到,以下的描述仅仅是说明性的,而不意图以任何方式进行限制。了解本发明的优点的本领域技术人员将很容易想到其他方面。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或相似的项目。
图1是根据本发明的各方面的用于检测应用程序中的潜在恶意更改的示例性系统100的框图。在一个方面,该用于检测应用程序中的潜在恶意更改的系统至少包括:文件选择器120、文件分析器130和恶意代码检测器140。
在一优选方面,系统100在远程服务器上实现。在一个方面,远程服务器包括云安全服务150(也称为云服务150)。云服务150的一个示例是卡巴斯基安全网络(KSN)。
在一个方面,文件选择器120被设计用于选择文件180,以进一步分析潜在恶意更改。
在一个方面,至少一个文件180是用于移动设备应用程序的安装文件。
在另一方面,至少一个文件180是包含至少一个可执行文件的存档。潜在恶意更改是对文件180的更改,这些更改中包含一个或多个附加功能,如果使用的话,可能会对用户的设备或数据造成损坏。任何此类识别出的潜在恶意更改可能需要对其内容进行附加的深入分析,以便检测其中嵌入的恶意内容。
在一优选方面,文件180存储在云服务150中,例如,存储在数据库160a或文件存储器160b中。同时,云服务150可以从安装在连接到云服务150的用户的移动设备上的代理获得文件180。在一个方面,通过相关领域中已知的通信通道从安装在用户的移动设备上的代理获得文件180。在一个方面,文件180从托管在各种资源上的代理获得,这些代理从那些资源(文件共享服务、论坛站点、社交媒体站点/应用程序)收集文件180。在另一方面,云服务150使用其自己的工具(图1中未示出)或者直接从应用程序制造商的信息资源收集或接收文件,所述工具例如与数字应用程序商店(例如,Google Play)的应用程序编程接口(API)交互。
在一个方面,云服务150或通过安装在移动设备上的代理接收的每个文件180通过附加的防病毒扫描进行分析。然后,当分析指示文件180不包含恶意代码时,将文件180标记为可信的。如果接收的文件180未被防病毒扫描验证为不包含恶意代码的文件,则将文件180标记为不可信的。
一般而言,文件选择器120从文件集合中选择文件190进行分析。此外,文件选择器120选择至少一个与已经选择要分析的文件190相似的文件180。
在一个方面,要分析的文件190由文件选择器120从由云服务150从代理接收的文件中选择,其中,云服务150未对这些文件进行恶意内容分析。
在一个方面,文件180是可信的。
在另一方面,文件180是不可信的。因此,为了识别与所选择的要分析的文件190的相似性,本发明的方法可以选择可信的相似文件180和不可信的相似文件180。
在一个方面,文件选择器120基于以下特征中的至少一者来确定文件的相似性:
·文件190的名称;
·文件190的版本;
·文件190内的文件的数量;
·云服务150接收文件190的日期和时间;以及
·允许确定文件之间相似性的其他特征。
在一个方面,所选择的文件180和190由文件选择器120传递给文件分析器130。
在一个方面,文件分析器130计算所选择的相似文件180和所选择的要分析的文件190的至少一个区别文件特征集合。
在一个方面,区别文件特征包括以下中的至少一者:
·dex类的散列,其中文件分析器130基于类代码计算该散列,而不考虑类的名称、类变量的名称,并且不考虑类方法的名称;
·从文件190的清单中获得的信息;
·关于文件190的请求权限的信息;
·文件190中资源的存在;
·文件190中so库的存在;以及
·关于文件190的可呈现为无序集合的其他数据。
在一个方面,当区别文件特征包括文件190中资源的存在时,资源包括加密资源。
值得注意的是,可根据以下文件的单独特征计算区别文件特征集合:所选择的要分析的文件190、所选择的与所选择的要分析的文件190相似的文件180、或者所选择的要分析的文件190的特征与所选择的类似于文件190的文件180的特征的任意组合。
例如,如果存在要分析的文件(A)和潜在的被修改文件(B),则文件分析器130计算文件(A)和(B)的一个或多个单独特征集合,如下所示:
·S(t,A)和S(t,B),其中t是文件特征。
然后文件分析器130计算文件的区别特征集合,同时执行查找集合差异的操作;也就是说,从要分析的文件190的特征集合中减去每个所选择的相似文件180的特征集合:
·S(t,B)–S(t,A)=Sm(t,BA)。
值得注意的是,文件分析器130可以使用相关领域中已知的查找集合差异的方法。查找集合差异的方法的选择取决于文件特征(t),并且可以由文件分析器130修改以提高结果的质量。
在一个方面,区别文件特征集合Sm(t,BA)由文件分析器130传递给恶意代码检测器140。
在一个方面,恶意代码检测器140在减法后检测所得到的文件特征集合中的潜在恶意更改。
在一个方面,潜在有害更改包括以下中的至少一者:
·已知不可信的API函数的存在(例如,发送SMS、发送电子邮件、发送消息、请求付款);
·加载程序的存在,该加载程序使用来自加密文件的代码加载、或使用来自非用于代码存储的文件部分的代码加载、或使用来自第三方服务器的代码
加载;以及
·模糊代码的存在。
在一个方面,恶意代码检测器140使用相关领域中已知的启发式分析方法来识别潜在恶意更改。
在一个方面,恶意代码检测器140使用相关领域中已知的签名分析技术来识别潜在恶意更改。
在一个方面,恶意代码检测器140计算要分析的文件190中有害更改的严重程度。在一个方面,使用一系列值来指定有害更改的严重程度,例如,其中0表示肯定安全的文件,100表示肯定恶意的文件。在一个方面,可以通过组合潜在恶意更改的权重和潜在恶意更改的数量来计算对文件190的有害更改的严重程度。
在一个方面,当检测到潜在恶意更改时,如果与恶意代码相关联的严重程度超过特定阈值,则恶意代码检测器140将文件190发送到云服务150以进行更彻底的分析。
在一个方面,恶意代码检测器140可以基于对所选择的要分析的文件190的有害更改的严重程度,将文件190传输到信息安全专家的设备进行分析。
根据本发明的各个方面的检测应用程序中的潜在恶意更改的系统100的示例如下所述。
在一个示例中,应用本发明的方法来检测对广告服务所使用的应用程序的恶意更改。这些恶意更改基于在提供无良广告服务的广告公司中众所周知的流行技术。这些无良公司向应用程序本身添加加载程序,其中带有加密代码的文件被添加到分发文件(apk)的资源中。正在分析的文件190中的dex文件仅稍微被更改,即,仅添加了加载程序代码。单独而言,每一个这样的更改都是无关紧要的,并且在不受益于本发明的教导的系统进行分析时,应用程序将被识别为安全的。然而,如果通过本发明的系统分析来自此类无良公司的应用程序,则结果将如下。
文件选择器120从应用程序中选择呈apk格式的相似的文件:可信文件180和所选择的要分析的文件190。
然后,文件分析器130分析所选择的文件并获得以下作为结果:
·可信文件180,由于文件分析器130的操作,其中一个文件夹包含50个文件,以及
·要分析的文件190,其在相同的文件夹中包含51个文件。
作为分析的结果,文件190的第51个文件被确定为:具有未知类型的文件、加密的文件、和具有非常高熵的文件。此外,将根据位于可信文件180中的文件检测位于文件190中的被修改的dex文件。恶意代码检测器140使用启发式分析方法来确定第51个文件是从加密文件下载代码的加载程序,从而识别对所选择的要分析的文件190的潜在恶意更改。
在一个方面,作为通过启发式分析确定的结果,恶意代码检测器140将文件190发送到云服务150以进行更深入的分析。
此外,在一个方面,关于文件分析器130的分析结果的信息也可以与文件190一起发送。
在一个示例中,应用本发明的方法来检测对应用程序的恶意更改,文件选择器120选择两个相似的文件。可信文件180从官方商店(例如Google Play)获得。从分发应用程序的第三方网站接收具有相似文件包名称和版本的要分析的文件190。
然后,假设文件分析器130已经在文件190中检测到异常dex文件,并且检测到的异常dex文件被发送到恶意代码检测器140进行分析。然后,使用启发式分析,恶意代码检测器140检测到上述文件(dex文件)中的加载程序和“Android支持”Java文件包中的下载代码。
重要的是要注意,“Android支持”Java文件包包含在大多数应用程序中,并且通常仅包含由AndroidStudio编译器添加的“默认”代码。因此,默认情况下,该文件包通常不被检查。于是,恶意代码检测器140将该要分析的文件190发送到云服务150以进行更深入的分析。
值得注意的是,在另一方面,当文件选择器120没有为要分析的文件190选择相似文件180时,本系统使用文件分析器130和恶意代码检测器140实现功能并执行动作。例如,假设获得具有小尺寸的要分析的文件190。假设文件190没有软件平台(框架),并且可以发送SMS消息。因此,文件选择器120可以不选择相似文件180,文件分析器130确定包含要分析的文件190的所有代码的文件的区别特征集合。然后,恶意代码检测器140使用签名或启发式分析方法,在代码中检测到发送SMS消息的API函数调用。然后,文件190将被发送到云服务150以进行更深入的分析。
图2示出了根据本发明的各个方面用于检测应用程序中的潜在恶意更改的方法200。
在步骤210中,使用文件选择器120,方法200选择要分析的文件190,并选择至少一个与所选择的要分析的文件190相似的文件180。
在一个方面,所选择的要分析的文件190包括用于意在由移动设备使用的应用程序的安装文件。
在一个方面,所选择的要分析的文件190包括包含至少一个可执行文件的存档。
在一个方面,基于根据以下特征中的至少一者确定的文件相似性,来选择与文件190相似的至少一个文件180:
·所选择的要分析的文件190的名称;
·所选择的要分析的文件190的版本;
·所选择的要分析的文件190内的文件的数量;
·云服务150接收所选择的要分析的文件190的日期和时间;以及
·允许确定文件之间的相似性的任何其他特征。
在步骤220中,通过文件分析器130,针对所选择的与文件190相似的每个文件180,方法200计算至少一个特征集合。结合图1的描述详细讨论了文件的特征集合及其计算。
在一个方面,该特征集合至少包括dex类的散列,该散列是根据以下中的至少一者计算的:不考虑类名称的类代码和不考虑类方法名称的类代码。
在一个方面,该特征集合包括:从文件190的清单获得的信息、关于文件190的请求权限的信息、或关于文件190中加密资源的存在的信息。
在步骤230中,使用文件分析器130,方法200识别所选择的要分析的文件190的区别特征集合。在一个方面,通过查找文件190与每个所选择的文件180的代码特征集合之间的差异来识别文件的区别特征集合。文件分析器130可以使用在相关领域中已知的查找特征集合之间的差异的方法。在查找特征集合之间的差异的各种方法中进行选择取决于文件特征。
在一个方面,文件分析器130可以修改查找差异的方法,以提高结果的质量。
在步骤240中,使用恶意代码检测器140,方法200检测区别文件特征集合中的潜在恶意更改。
在各个方面中,通过启发式分析和/或签名分析来识别恶意代码。潜在恶意改变在上面结合图1的描述进行了描述。
图3是示出了可以在其上实现用于检测应用程序中的潜在恶意更改的系统和方法的各方面的计算机系统20的框图。计算机系统20可以是多个计算设备的形式,也可以是单个计算设备的形式,例如台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、主机、嵌入式设备和其他形式的计算设备。
如图所示,计算机系统20包括中央处理单元(Central Processing Unit,CPU)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其他的总线架构交互的本地总线。总线的示例可以包括PCI、ISA、串行总线(PCI-Express)、超传输TM(HyperTransportTM)、无限带宽TM(InfiniBandTM)、串行ATA、I2C、和其他合适的互连。中央处理单元21(也称为处理器)可以包括单组或多组具有单核或多核的处理器。处理器21可以执行实现本发明的技术的一种或多种计算机可执行代码。系统存储器22可以为用于存储本文中所使用的数据和/或由处理器21可执行的计算机程序的任何存储器。系统存储器22可以包括易失性存储器(诸如随机存取存储器(Random Access Memory,RAM)25)和非易失性存储器(诸如只读存储器(Read-Only Memory,ROM)24、闪存等)或其任意组合。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。所述一个或多个可移除存储设备27以及一个或多个不可移除存储设备28通过存储器接口32连接到系统总线23。在一方面,存储设备和相应的计算机可读存储介质为用于存储计算机指令、数据结构、程序模块、和计算机系统20的其他数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、SRAM、DRAM、零电容RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM;闪存或其他存储技术,诸如在固态驱动器(Solid State Drive,SSD)或闪存驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘中;光学存储器,诸如在光盘(CD-ROM)或数字通用光盘(Digital Versatile Disk,DVD)中;以及可用于存储期望数据且可被计算机系统20访问的任何其他介质。
计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加应用程序37、其他程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,所述输入设备40诸如键盘、鼠标、手写笔、游戏控制器、语音输入设备、触摸输入设备、或其他外围设备,诸如借助一个或多个I/O端口的打印机或扫描仪,该一个或多个I/O端口诸如串行端口、并行端口、通用串行总线(Universal Serial Bus,USB)、或其他外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其他外围输出设备(未示出),诸如扬声器和其他视听设备。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中工作。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其他设备也可以存在于计算机网络中,诸如但不限于路由器、网络站点、对等设备或其他网络节点。计算机系统20可以包括用于通过一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如计算机局域网(Local-Area Network,LAN)50、计算机广域网(Wide-Area Network,WAN)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、SONET(同步光纤网)接口、和无线接口。
本发明的各个方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一种或多种计算机可读存储介质,该计算机可读存储介质上具有用于使处理器执行本发明的各方面的计算机可读程序指令。
计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备(诸如计算机系统20)的处理器访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适的组合。作为示例,这类计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用的,计算机可读存储介质不应被视为暂时性信号本身,暂时性信号诸如无线电波或其他自由传播的电磁波、通过波导或传输介质传播的电磁波、或通过电线传输的电信号。
可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到相应的计算设备、或通过网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在相应的计算设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令(作为独立的软件包)可以完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种情况中,远程计算机可以通过任何类型的网络(包括LAN或WAN)连接到用户的计算机,或可以进行与外部计算机的连接(例如通过因特网)。在一些方面,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程逻辑阵列(Programmable Logic Array,PLA))可以通过利用计算机可读程序指令的状态信息而执行计算机可读程序指令,以使该电子电路个性化,从而执行本发明的各方面。
在各个方面,本发明中所描述的系统和方法可以按照模块来处理。如本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(ASIC)或FPGA)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实现为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其他功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统(诸如上面在图3中更详细描述的计算机系统)的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将明显的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

Claims (24)

1.一种用于检测应用程序中的潜在恶意更改的方法,所述方法包括:
选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;
针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;
通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及
检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
2.如权利要求1所述的方法,其中,所述至少一个第二文件与所述第一文件的相似性基于以下中的至少一者:所述第一文件和所述至少一个第二文件的名称、以及所述第一文件和所述至少一个第二文件的版本。
3.如权利要求1所述的方法,其中,所述至少一个特征集合至少包括dex类的散列。
4.如权利要求3所述的方法,其中,所述dex类的散列是根据以下中的至少一者计算的:不考虑类名称的类代码、和不考虑类方法名称的类代码。
5.如权利要求1所述的方法,其中,所述至少一个特征集合包括以下中的至少一者:
从所述第一文件的清单获得的信息,
关于所述第一文件的请求权限的信息,以及
关于所述第一文件中加密资源的存在的信息。
6.如权利要求1所述的方法,其中,使用基于启发式分析和签名分析中的至少一者的方法来检测所述潜在恶意更改的存在。
7.如权利要求1所述的方法,其中,所述潜在恶意更改包括以下中的至少一者:
指示存在已知为不可信的应用程序编程接口函数的更改;以及
指示存在至少一个代码加载程序的更改。
8.如权利要求1所述的方法,其中,所选择的要分析的所述文件包括用于移动设备的应用程序安装文件。
9.一种用于检测应用程序中的潜在恶意更改的系统,包括:
至少一个处理器,所述至少一个处理器被配置为:
选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;
针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;
通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及
检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
10.如权利要求9所述的系统,其中,所述至少一个第二文件与所述第一文件的相似性基于以下中的至少一者:所述第一文件和所述至少一个第二文件的名称、以及所述第一文件和所述至少一个第二文件的版本。
11.如权利要求9所述的系统,其中,所述至少一个特征集合至少包括dex类的散列。
12.如权利要求11所述的系统,其中,所述dex类的散列是根据以下中的至少一者计算的:不考虑类名称的类代码、和不考虑类方法名称的类代码。
13.如权利要求9所述的系统,其中,所述至少一个特征集合包括以下中的至少一者:
从所述第一文件的清单获得的信息,
关于所述第一文件的请求权限的信息,以及
关于所述第一文件中加密资源的存在的信息。
14.如权利要求9所述的系统,其中,使用基于启发式分析和签名分析中的至少一者的方法来检测所述潜在恶意更改的存在。
15.如权利要求9所述的系统,其中,所述潜在恶意更改包括以下中的至少一者:
指示存在已知为不可信的应用程序编程接口函数的更改;以及
指示存在至少一个代码加载程序的更改。
16.如权利要求9所述的系统,其中,所选择的要分析的所述文件包括用于移动设备的应用程序安装文件。
17.一种非暂时性计算机可读介质,在所述非暂时性计算机可读介质上存储有用于检测应用程序中的潜在恶意更改的计算机可执行指令,所述计算机可执行指令包括用于如下操作的指令:
选择要分析的第一文件和与所述第一文件相似的至少一个第二文件;
针对所述至少一个第二文件中的每一个第二文件,计算至少一个特征集合;
通过针对所述至少一个第二文件中的每一个第二文件查找所述第一文件的特征集合与所计算的所述第二文件的所述至少一个特征集合之间的差异来识别所述第一文件的区别特征集合;以及
检测在所识别的所述第一文件的所述区别特征集合中潜在恶意更改的存在。
18.如权利要求17所述的非暂时性计算机可读介质,其中,所述至少一个第二文件与所述第一文件的相似性基于以下中的至少一者:所述第一文件和所述至少一个第二文件的名称、以及所述第一文件和所述至少一个第二文件的版本。
19.如权利要求17所述的非暂时性计算机可读介质,其中,所述至少一个特征集合至少包括dex类的散列。
20.如权利要求19所述的非暂时性计算机可读介质,其中,所述dex类的散列是根据以下中的至少一者计算的:不考虑类名称的类代码、和不考虑类方法名称的类代码。
21.如权利要求17所述的非暂时性计算机可读介质,其中,所述至少一个特征集合包括以下中的至少一者:
从所述第一文件的清单获得的信息,
关于所述第一文件的请求权限的信息,以及
关于所述第一文件中加密资源的存在的信息。
22.如权利要求17所述的非暂时性计算机可读介质,其中,使用基于启发式分析和签名分析中的至少一者的方法来检测所述潜在恶意更改的存在。
23.如权利要求17所述的非暂时性计算机可读介质,其中,所述潜在恶意更改包括以下中的至少一者:
指示存在已知为不可信的应用程序编程接口函数的更改;以及
指示存在至少一个代码加载程序的更改。
24.如权利要求17所述的非暂时性计算机可读介质,其中,所选择的要分析的所述文件包括用于移动设备的应用程序安装文件。
CN202111649461.8A 2021-05-28 2021-12-30 用于检测应用程序中的潜在恶意更改的系统和方法 Pending CN115408690A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2021115371A RU2774042C1 (ru) 2021-05-28 Система и способ выявления потенциально вредоносных изменений в приложении
RU2021115371 2021-05-28
US17/528,270 US11886584B2 (en) 2021-05-28 2021-11-17 System and method for detecting potentially malicious changes in applications
US17/528,270 2021-11-17

Publications (1)

Publication Number Publication Date
CN115408690A true CN115408690A (zh) 2022-11-29

Family

ID=79730154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111649461.8A Pending CN115408690A (zh) 2021-05-28 2021-12-30 用于检测应用程序中的潜在恶意更改的系统和方法

Country Status (2)

Country Link
EP (1) EP4095727A1 (zh)
CN (1) CN115408690A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043919B2 (en) * 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
KR101246623B1 (ko) * 2012-09-03 2013-03-25 주식회사 안랩 악성 애플리케이션 진단 장치 및 방법

Also Published As

Publication number Publication date
EP4095727A1 (en) 2022-11-30

Similar Documents

Publication Publication Date Title
US11055411B2 (en) System and method for protection against ransomware attacks
US11677764B2 (en) Automated malware family signature generation
US9674215B2 (en) Software program identification based on program behavior
US9531740B2 (en) Software program identification based on program behavior
US10460109B2 (en) Malicious program identification based on program behavior
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
US8869284B1 (en) Systems and methods for evaluating application trustworthiness
US11449615B2 (en) System and method of forming a log when executing a file with vulnerabilities in a virtual machine
US11706251B2 (en) Simulating user interactions for malware analysis
US10262131B2 (en) Systems and methods for obtaining information about security threats on endpoint devices
US20230344861A1 (en) Combination rule mining for malware signature generation
CN112149126A (zh) 确定文件的信任级别的系统和方法
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
US10546125B1 (en) Systems and methods for detecting malware using static analysis
Gupta et al. Developing a blockchain-based and distributed database-oriented multi-malware detection engine
US11886584B2 (en) System and method for detecting potentially malicious changes in applications
EP4095727A1 (en) System and method for detecting potentially malicious changes in applications
CN113824678A (zh) 处理信息安全事件以检测网络攻击的系统和方法
RU2774042C1 (ru) Система и способ выявления потенциально вредоносных изменений в приложении
EP3674940B1 (en) System and method of forming a log when executing a file with vulnerabilities in a virtual machine
US11132447B1 (en) Determining security vulnerabilities of Internet of Things devices
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
US20210019409A1 (en) System and method for identifying system files to be checked for malware using a remote service
US10572663B1 (en) Systems and methods for identifying malicious file droppers
EP3588346A1 (en) Method of detecting malicious files resisting analysis in an isolated environment

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