CN117421725A - 用于恶意软件检测的存储器跟踪 - Google Patents
用于恶意软件检测的存储器跟踪 Download PDFInfo
- Publication number
- CN117421725A CN117421725A CN202311365826.3A CN202311365826A CN117421725A CN 117421725 A CN117421725 A CN 117421725A CN 202311365826 A CN202311365826 A CN 202311365826A CN 117421725 A CN117421725 A CN 117421725A
- Authority
- CN
- China
- Prior art keywords
- memory
- under test
- process under
- memory pages
- pages
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 488
- 238000001514 detection method Methods 0.000 title description 16
- 238000000034 method Methods 0.000 claims abstract description 364
- 230000008569 process Effects 0.000 claims abstract description 343
- 238000012360 testing method Methods 0.000 claims abstract description 249
- 238000007689 inspection Methods 0.000 claims abstract description 205
- 230000008859 change Effects 0.000 claims description 5
- 238000004374 forensic analysis Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005474 detonation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
设备可以将被测进程加载到与设备相关联的虚拟存储器中。虚拟存储器可以包括多个存储器页面。设备可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中,并且可以向存储器跟踪元件提供与被测进程相关联的事件的通知。设备可以使用存储器跟踪元件标识多个存储器页面中的一个或多个存储器页面。一个或多个存储器页面可以被指派给被测进程并由被测进程使用。设备可以基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射,该存储器映射可以包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息。
Description
本申请是申请号为201910462194.X、申请日为2019年5月30日、发明名称为“用于恶意软件检测的存储器跟踪”的发明专利申请的分案申请。
技术领域
本申请涉及计算机技术领域。
背景技术
恶意软件或者恶意的软件可以包括旨在对计算机系统、计算机系统的用户和/或计算机网络恶意地起作用的软件。在一些情况下,恶意软件可以包括病毒、蠕虫、特洛伊木马、勒索软件、间谍软件、广告软件、和/或类似的。
发明内容
根据一些实施方式,设备可以包括一个或多个存储器,以及一个或多个处理器,以将被测进程加载到与设备相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面。一个或多个处理器可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中。一个或多个处理器可以使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。一个或多个处理器可以使用存储器跟踪元件并且基于通知中所包括的信息,标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程,并且由被测进程使用。一个或多个处理器可以使用存储器跟踪元件并且基于标识的一个或多个存储器页面,生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并且由被测进程所使用的信息,以及其中存储器映射用于确定被测进程是否包括恶意软件。
根据一些实施方式,非瞬态计算机可读介质可以存储包括一个或多个指令的指令,当由设备的一个或多个处理器执行时,使得一个或多个处理器将被测进程加载到与设备相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面。一个或多个指令可以使得一个或多个处理器将恶意软件检查元件和存储器跟踪元件插入到被测进程中。一个或多个指令可以使得一个或多个处理器使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。一个或多个指令可以使得一个或多个处理器使用存储器跟踪元件并且基于通知中所包括的信息,标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程,并且由被测进程使用。一个或多个指令可以使得一个或多个处理器使用存储器跟踪元件并且基于标识的一个或多个存储器页面,生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并且由被测进程使用的信息。一个或多个指令可以使得一个或多个处理器使用存储器跟踪元件并且使用存储器映射跟踪一个或多个存储器页面以确定被测进程是否包括恶意软件。
根据一些实施方式,方法可以包括由设备将被测进程加载到与设备相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面。方法可以包括由设备将恶意软件检查元件和存储器跟踪元件插入到被测进程中。方法可以包括由设备和使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。方法可以包括由设备和使用存储器跟踪元件并且基于通知中所包括的信息,标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程,并且由被测进程使用。方法可以包括由设备和使用存储器跟踪元件并且基于标识的一个或多个存储器页面,生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并且由被测进程使用的信息。方法可以包括由设备并且基于存储器映射确定被测进程是否包括恶意软件。
附图说明
图1A-1D是本文描述的示例实施方式的示意图。
图2是可以在其中实现本文所描述的系统和/或方法的示例环境的示意图。
图3A和3B是图2的一个或多个设备的示例组件的示意图。
图4是用于恶意软件检测的用于存储器跟踪的示例过程的流程图。
图5是用于恶意软件检测的用于存储器跟踪的示例过程的流程图。
图6是用于恶意软件检测的用于存储器跟踪的示例过程的流程图。
具体实施方式
以下示例实施方式的详细描述参考附图。不同附图中的相同的附图标记可标识相同或者相似的元件。
存储器页面可以标识已经被指派给进程和/或由进程使用的虚拟存储器的部分。被指派给进程的存储器页面可以被以这种方式划分:使得存储器页面可以由进程的不同元件使用。在一些情况下,被指派给进程和/或由进程使用的存储器页面可以在进程基于各种条件执行时改变(诸如请求附加存储器页面的进程、访问新存储器页面的进程、和/或类似的)。此外,进程的元件可以决定使用/重写与相同的进程中的另一模块相关联的存储器页面,例如,如果该进程是恶意的,这可能发生。
在一些情况下,被指派给恶意进程的存储器页面可以提供关于恶意进程的大量信息,这可以导致改进的工件(artifact)和情报收集,并且因此导致改进的恶意软件检测。然而,恶意软件检查工具(例如,虚拟沙箱环境、二进制检测工具、和/或类似的)可以将恶意软件检查元件(例如,函数库、可执行脚本、动态链接库(DLL)、和/或其他)插入恶意进程,这可能使得难以确定恶意进程正在使用指派给恶意进程的哪些内存页以及恶意软件检查元件正在使用哪些内存页,这降低了恶意软件检查工具的功效。
本文描述的一些实施方式提供了一种能够标识被指派给进程并且由进程使用的存储器页面,并且将存储器页面报告给恶意软件检查工具的设备。例如,该设备可以将恶意软件检查元件和存储器跟踪元件包括到该进程中,并且可以使用该存储器跟踪元件,从被指派给该进程并且由该恶意软件检查元件使用的存储器页面来标识被指派给该进程并由该进程使用的存储器页面。然后,恶意软件检查工具可以检查被指派给该进程并由该进程使用的存储器页面,这改进了来自进程的工件提取,这进而提高了恶意软件检测准确性,并且增加了来自进程的危害指标符(IOC)的提取。
图1A-1D是本文描述的示例实施方式100的示意图。如图1A-1D所示,示例实施方式100可以包括检查平台。在一些实施方式中,检查平台可以包括服务器设备、用户设备(例如,台式计算机、膝上型计算机、手持式计算机或设备、和/或类似的)、网络设备、基于云的平台、和/或类似的。
如图1A所示,检查平台可以包括可以被虚拟化并呈现为虚拟存储器的物理内存和/或物理存储器。检查平台的虚拟存储器可以被分段为多个存储器页面(例如,存储器页面1到存储器页面n,其中n>1,统称为“存储器页面”,并且单独地称为“存储器页面”)。虽然存储器页面用于描述实施方式100,但是用于虚拟存储器的部分的其他单元也可以用于描述实施方式100。
在一些实施方式中,检查平台可以将虚拟存储器的一个或多个存储器页面指派给应用程序、进程、和/或类似的,以便应用程序、进程等可以由检查平台的处理器执行(如果进程是恶意的或者怀疑是恶意的,则可以称为引爆进程)。在一些实施方式中,进程可以是软件应用程序、软件脚本、软件文件、软件代码、网页地址(例如,统一资源定位符(URL))和/或可由处理器执行的软件的另一形式。
在一些实施方式中,检查平台可以执行被测进程,使得检查平台可以在被测进程执行时分析被测进程,以确定进程的行为是否是恶意的(诸如是否被测进程试图安装rootkit、尝试安装后门、尝试安装间谍软件或者广告软件、尝试从用户获取个人信息、尝试接管虚拟存储器的其他部分等)。在一些实施方式中,检查平台可以基于接收到请求(例如,从用户设备、从服务器设备、从网络设备等)以检查被测进程。例如,用户设备、服务器设备、网络设备等可以从未知和/或未验证的源接收文件,并且可以将文件连同检查文件的指令一起传输到检查平台。在一些实施方式中,基于用户设备、服务器设备、网络设备、和/或类似的下载文件,基于用户设备、服务器设备、网络设备、和/或类似的打开电子邮件中的附件,和基于/或基于类似的,用户设备、服务器设备、网络设备等可以自动传输文件。检查平台可以基于接收到文件和请求来检查文件,并且可以传输结果(例如,文件是恶意的还是安全的指示符、在检查期间由检查平台所采取的动作的详细报告、如果文件被标识为恶意文件,则标识文件所展示的恶意行为类型的信息、和/或类似的)到用户设备、服务器设备、网络设备、和/或类似的。以这种方式,检查平台可以为用户设备、服务器设备、网络设备、和/或类似的检查文件,这防止了用户设备、服务器设备、网络设备、和/或类似的下载和/或安装恶意软件,这反过来又提高了用户设备、服务器设备、网络设备等的安全性。此外,以这种方式,文件的检查可以由检查平台执行而不是由用户设备、服务器设备、网络设备、和/或类似的来执行,这节省了用户设备、服务器设备、网络设备等的处理资源和/或存储资源,这反过来允许处理资源和/或存储资源被用于其他目的。
在一些实施方式中,检查平台可以在沙箱环境中执行被测进程。沙箱环境可以是软件应用程序,该软件应用程序可以允许检查平台以这种方式执行被测进程:允许检查平台控制被测进程被允许使用的检查平台的资源(例如,处理资源、存储资源、和/或类似的)的方式。以这种方式,如果被测进程是恶意的,沙箱环境可以阻止被测进程对检查平台造成伤害。然而,检查平台可以在不使用沙箱环境的情况下执行和分析被测进程。
为了检查被测进程,当被测进程在沙箱环境中执行时,检查平台可以将恶意软件检查元件插入到被测进程中。恶意软件检查元件可以包括函数库、可执行脚本、DLL、和/或类似的,其能够对被测进程的资源使用、由被测进程执行的动作等执行检查、跟踪、和/或类似的。恶意软件检查元件可以由恶意软件检查工具(诸如二进制测量工具、沙箱环境、和/或类似的)提供并与之相关联。
如上所述,被测进程和恶意软件检查元件可以使用测试平台中所包括的虚拟存储器的各种存储器页面。例如,如图1A所示,检查平台可以指派存储器页面1到存储器页面4以供被测进程和恶意软件检查元件使用。此外,如上所述,由于检查平台已将恶意软件检查元件插入到被测进程中,因此检查平台可能难以确定被测进程正在使用存储器页面1到存储器页面4的哪些存储器页面,以及难以确定恶意软件检查元件正在使用存储器页面1到存储器页面4的哪些存储器页面。
因此,在将恶意软件检查元件插入到被测进程之前,检查平台可以将存储器跟踪元件插入到恶意软件检查元件、被测进程的另一部分和/或另一位置中。存储器跟踪元件类似于恶意软件检查元件,可以是函数库、可执行脚本、和/或类似的。在一些实施方式中,存储器跟踪元件可以跟踪被测进程的存储器页面使用,可以基于跟踪被测进程的存储器页面使用来为该进程生成存储器映射,可以向恶意软件检查工具提供存储器映射等。
转到图1B,并且如附图标记102所示,为了跟踪被测进程的存储器页面使用,存储器跟踪元件可以向恶意软件检查元件提供指令,以向存储器跟踪元件通知与被测进程相关联的各种事件。在一些实施方式中,存储器跟踪元件可以经由诸如应用程序编程接口(API)的接口向恶意软件检查元件提供指令。
各种事件可以是由被测进程使用的存储器页面的指示符。例如,各种事件可以包括正被加载到虚拟存储器中并且由检查平台相关联的处理器执行的被测进程、与被测进程相关联的存储器操作(例如,与被测进程相关联的存储器读操作、与被测进程相关联的存储器写操作、和/或类似的)、与被测进程相关联的存储器页面的改变(例如,正与被测进程相关联的一个或多个新的存储器页面)、正由被测进程执行的指令、和/或类似的。以这种方式,存储器跟踪元件可以使用事件的通知来生成被指派给被测进程并且正由被测进程使用的存储器页面的映射表。
转到图1C,在一些实施方式中,检查平台可以将被测进程加载到虚拟存储器中。如附图标记104所示,恶意软件检查元件可以检测与已经被加载到虚拟存储器中的被测进程相关联的事件。例如,恶意软件检查元件可以检测与上述被测进程相关联的事件中的任何事件和/或其他事件。如附图标记106所示,基于检测到与被测进程相关联的事件,恶意软件检查元件可以向存储器跟踪元件提供事件的通知。在一些实施方式中,通知可以包括与事件相关联的信息(诸如标识事件的信息、标识与事件相关联的一个或多个存储器页面的信息、和/或类似的)。例如,与正执行存储器页面1的存储器读的被测进程相关联的通知可以包括将事件标识为存储器读的信息(例如,指定事件是存储器读的描述、与存储器读事件相关联的标识符、和/或类似的)、标识存储器页面1的信息、和/或类似的。作为另一示例,与正被加载到虚拟存储器并且由检查平台的处理器执行的被测进程相关联的通知可以包括:将事件标识为被加载到虚拟存储器并且由处理器执行的被测进程的信息、标识在虚拟存储器中加载被测进程的存储器页面范围的信息(例如,标识存储器页面1到存储器页面4的信息)、和/或类似的。作为又一示例,与被指派了一个或多个新的存储器页面(例如,使用应用程序编程接口(API),诸如VirtualAlloc、VirtualAllocEx、malloc、GlobalAllloc、HeapAlloc、LocalAlloc、CoTaskMemAlloc、和/或类似的)的被测进程相关联的通知可以包括:将事件标识为被测进程被指派了新的一个或多个存储器页面的信息、标识一个或多个存储器页面的信息、和/或类似的。作为又一示例,与正在执行指令的被测进程相关联的通知可以包括:将事件标识为执行指令的被测进程的信息、标识与该指令相关联的一个或多个存储器页面的信息(例如,存储指令的一个或多个存储器页面)、和/或类似的。
转到图1D,存储器跟踪元件可以从恶意软件检查元件接收与被测进程相关联的事件的通知。例如,存储器跟踪元件可以经由API从恶意软件检查元件接收事件的通知。
如附图标记108所示,存储器跟踪元件可以基于接收到通知来生成与被测进程相关联的存储器映射。存储器映射可以包括:标识被指派给被测进程的存储器页面范围的信息、正由被测进程使用的存储器页面等。例如,通过在存储器映射中包括在通知中所标识的、被指派给被测进程的、标识存储器映射范围的信息,存储器跟踪元件可以基于接收到与正被加载到检查平台所包括的虚拟存储器中的被测进程相关联的通知来生成存储器映射。在一些实施方式中,基于接收到正被加载到虚拟存储器中的与被测进程相关联的通知,为了标识存储器映射范围的信息,存储器跟踪元件可以向恶意软件检查元件传输请求,并且恶意软件检查元件可以基于接收到该请求而向存储器跟踪元件提供该信息。
作为另一示例,存储器跟踪元件可以基于接收到与被测进程所执行的存储器操作相关联的通知,通过在存储器映射中包括指示通知中所标识的被测进程已使用的存储器页面的信息,来生成存储器映射。在一些实施方式中,基于接收到与被测进程所执行的存储器操作相关联的通知,为了标识与存储器操作相关联的存储器页面的信息,存储器跟踪元件可以向恶意软件检查元件传输请求,并且恶意软件检查元件基于接收到该请求可以向存储器跟踪元件提供该信息。
作为另一示例,存储器跟踪元件可以基于接收到与被测进程被被指派了新的存储器页面相关联的通知,通过在存储器映射中包括标识在通知中所标识的新的存储器映射的信息,来生成存储器映射。在一些实施方式中,基于接收到与被测进程被被指派了新的存储器页面相关联的通知,为了标识被指派给被测进程的新的存储器页面的信息,存储器跟踪元件可以向恶意软件检查元件传输请求,并且恶意软件检查元件基于接收到该请求,可以向存储器跟踪元件提供该信息。
在一些实施方式中,存储器跟踪元件可以在存储器映射中包括信息,该信息指示被包括在与被测进程相关联的存储器页面范围的存储器页面尚未被标识为:由被测进程使用、未由被测进程使用、由恶意软件检查元件使用、和/或类似的。在一些实施方式中,存储器跟踪元件可以在存储器映射中不包括与存储器页面相关联的任何附加信息,该存储器页面未由被测进程使用。
在一些实施方式中,存储器跟踪元件可以跟踪存储器映射中所标识的存储器页面。例如,存储器跟踪元件可以跟踪由存储器页面保持的状态,可以标识存储器页面中所包括的工件、IOC和/或其他信息,这可以帮助确定被测进程是恶意的还是非恶意的、和/或类似的。在一些实施方式中,为了电子取证分析,存储器跟踪元件可以将与被测进程相关联的存储器映射、和/或任何已标识的工件、IOC和其他信息提供给恶意软件检查工具,使得恶意软件检查工具可以使用存储器映射进一步检查被测进程,以确定被测进程是否表现出恶意的行为(因此可以被标识为恶意软件),如果被测进程是恶意的,则确定测试中进程的意图(例如,被测进程已被设计为实现恶意的意图)、和/或类似的。例如,恶意软件检查工具可以通过以下方式来标识工件(例如:恶意行为的指示符):通过检查在存储器映射中标识的存储器页面以标识存储器页面中所存储的信息(例如,用以确定在存储器映射中所标识的存储器页面中,被测进程是否存储了恶意URL的信息、标识互联网协议地址的信息、标识勒索软件节点的信息、解压缩或加密的代码,和/或其他类型的恶意内容)、通过监视被测进程的存储器页面的使用(例如,跟踪被测进程执行与存储器页面关联的写或读操作的次数、跟踪被测进程是否覆盖存储器页面中的数据以及覆盖次数)、通过监视用于请求附加存储器页面的被测进程等。
以这种方式,存储器跟踪元件可以标识和跟踪被指派给被测进程并由被测进程使用的存储器页面,使得当恶意软件检查工具检查被测进程时,不考虑由恶意软件检查元件使用的存储器页面。这增加了恶意软件检查工具和/或检查平台标识、跟踪和/或监视恶意的进程的能力,这反过来又增加了计算机和网络的安全性。此外,这节省了检查平台的存储器和/或处理资源,否则其将已经被用于跟踪可能与被测进程的检查不相关的分析存储器页面(即,恶意软件检查元件使用的存储器页面)。
如果检查平台基于检查被测进程确定被测进程是恶意的,则检查平台可以执行各种动作,诸如隔离被测进程,以便被测进程不会感染沙箱环境和/或其他设备之外的检查平台的区域、提供包括与被测进程相关的信息和/或被测进程的检查的报告(例如,到用户设备、到服务器设备、到网络设备、和/或类似的)、自动尝试标识可能执行的动作以防止被测进程采取恶意的动作,以便可以在例如安全公告或通知中提供该动作、尝试从被测进程中删除恶意的方面,以便被测进程可以被用于非恶意的目的、和/或类似的。
如上所示,图1A-1D仅作为示例被提供。其他示例是可能的,并且可以与图1A-1D所描述的示例不同。
图2是示例环境200的示意图,其中可以实现本文所描述的系统和/或方法。如图2所示,环境200可以包括用户设备210、云计算环境222中的检查平台220,云计算环境222包括一组计算资源224、服务器设备230、网络设备240和网络250。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合来互连。
用户设备210包括能够接收、生成、存储、处理和/或提供与用于恶意软件检测的存储器跟踪相关联的数据的一个或多个设备。例如,用户设备210可以包括移动电话(例如,智能电话、无线电话等)、膝上型计算机、平板电脑、手持式计算机、游戏设备、可穿戴通信设备(例如,智能手表、一副智能眼镜等)、台式电脑或类似类型的设备。
在一些实施方式中,用户设备210可以通过将被测进程加载到与用户设备210相关联的虚拟存储器中、将各种元件插入到被测进程中(诸如与恶意软件相关联的恶意软件检查工具、存储器跟踪元件、和/或类似的)、使用存储器跟踪元件以跟踪被指派给被测进程并由被测进程使用的存储器页面、生成被指派给被测进程并由被测进程使用的存储器页面的存储器映射等来检查被测进程。在一些实施方式中,用户设备210可以向检查平台220提供将要检查的文件以及用以执行文件的恶意软件检查的指令、请求、和/或类似的。
在一些实施方式中,检查平台220可以执行对用户设备210的进程的检查。因此,用户设备210可以标识将要测试的进程,并且可以向检查平台220提供指令,该检查平台220可以基于接收到该进程和请求来检查该进程,并且可以向用户设备210传输检查的结果(例如,进程是恶意的还是安全的指示符、由检查平台在检查期间采取的行动的详细报告、如果进程被标识为恶意的,则标识进程所展示的恶意行为类型的信息、和/或类似的)。以这种方式,检查平台220可以检查用于用户设备210的进程,这防止用户设备210下载和/或安装恶意软件,这反过来提高了用户设备210的安全性。此外,以这种方式,可以由检查平台220而不是由用户设备210来执行进程的检查,这节省了用户设备210的处理和/或存储资源,这反过来又允许该处理和/或存储资源被用于其他目的。
检查平台220包括能够接收、生成、存储、处理和/或提供与用于恶意软件检测的存储器跟踪相关联的数据的一个或多个设备。例如,检查平台220可以将被测进程加载到与检查平台相关联的虚拟存储器中,可以将各种元件插入到被测进程中(诸如,与恶意软件检查工具关联的恶意软件检查元件、存储器跟踪元件、和/或类似的)、可以使用存储器跟踪元件来跟踪被指派给被测进程并由被测进程使用的存储器页面、可以生成被指派给被测进程并由被测进程使用的存储器页面的存储器映射、可以向用户设备210、向服务器设备230、向网络设备240等提供存储器映射。在一些实施方式中,如图所示,检查平台220可以托管在云计算环境222中。值得注意的是,虽然本文描述的实施方式将检查平台220描述为托管在云计算环境222中,但是在一些实施方式中,检查平台220可以不是基于云的(即,可以在云计算环境之外实现)或者可以是部分基于云的。
云计算环境222包括托管检查平台220的环境。云计算环境222可以提供计算、软件、数据访问、存储和/或其他服务。如图所示,云计算环境222可以包括一组计算资源224(统称为“计算资源224”以及单独地称为“计算资源224”)。
计算资源224包括一个或多个个人计算机、工作站计算机、服务器设备或者另一类型的计算和/或通信设备。在一些实施方式中,计算资源224可以托管检查平台220。云资源可以包括在计算资源224中正执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传输设备等。在一些实施方式中,计算资源224可以经由有线连接、无线连接、或有线和无线连接的组合与其他计算资源224通信。
如图2中进一步所示,计算资源224可以包括一组云资源,诸如一个或多个应用程序(“APPs”)224-1、一个或多个虚拟机(“VMs”)224-2、一个或多个虚拟化存储器(“VSs”)224-3、或一个或多个管理程序(“HYPs”)224-4。
应用程序224-1包括一个或多个软件应用程序,该一个或多个软件应用程序可以被提供给环境200的一个或多个设备或者由环境200的一个或多个设备访问。应用程序224-1可以消除在环境200的设备上安装和执行软件应用程序的需要。例如,应用程序224-1可以包括与检查平台220相关联的软件和/或能够经由云计算环境222提供的任何其他软件。在一些实施方式中,一个应用程序224-1可以经由虚拟机224-2向/从一个或多个其他应用程序224-1发送/接收信息。在一些实施方式中,应用程序224-1可以包括与一个或多个数据库和/或操作系统相关联的软件应用程序。例如,应用程序224-1可以包括企业应用程序、功能应用程序、分析应用程序、和/或类似的。
虚拟机224-2包像物理机一样执行程序的机器(例如,计算机)的软件实施方式。取决于虚拟机224-2对任何真实机器的使用和对应的程度,虚拟机224-2可以是系统虚拟机或进程虚拟机。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机224-2可以代表用户(例如,用户设备210的用户、服务器设备230的用户、网络设备240的用户、和/或类似的)执行,并且可以管理云计算环境222的基础设施(诸如,数据管理、同步或者长时间数据传输)。
虚拟化存储224-3包括在计算资源224的存储系统或设备内使用虚拟化技术的一个或多个存储系统和/或一个或多个设备。在一些实施方式中,在存储系统的上下文中,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指代从物理存储中抽象(或分离)逻辑存储,使得可以访问存储系统而不考虑物理存储或异构结构。该分离可以允许存储系统的管理员在管理员如何管理终端用户的存储上具备灵活性。文件虚拟化可以消除在文件级访问的数据与文件物理存储的位置之间的依赖性。这可以实现存储使用、服务器整合和/或无中断文件迁移性能的优化。
管理程序224-4提供允许多个操作系统(例如,“访客操作系统”)在主机计算机(诸如计算资源224)上同时执行的硬件虚拟化技术。管理程序224-4可以向访客操作系统呈现虚拟操作平台,并且可以管理访客操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
服务器设备230包括能够接收、生成、存储、处理和/或提供与用于恶意软件检测的存储器跟踪相关联的数据的一个或多个设备。在一些实施方式中,服务器设备230可以包括独立服务器、可机架安装的服务器、刀片服务器、数据中心、虚拟化服务器、多个服务器、和/或类似的。在一些实施方式中,服务器设备230可以通过将被测进程加载到与服务器设备230相关联的虚拟存储器中、将各种元件插入到被测进程中(诸如与恶意软件检查工具相关联的恶意软件检查元件、存储器跟踪元件等)、使用存储器跟踪元件以跟踪被指派给被测进程并由被测进程使用的存储器页面、生成被指派给被测进程并由被测进程使用的存储器页面的存储器映射等来检查被测进程。在一些实施方式中,服务器设备230可以向检查平台220提供将被检查的文件和用以执行该文件的恶意软件检查的指令、请求等。
网络设备240包括能够接收、生成、存储、处理和/或提供与用于恶意软件检测的存储器跟踪相关联的数据的一个或多个设备。在一些实施方式中,网络设备240可以包括防火墙、路由器、网关、交换机、网桥、无线接入点、基站(例如,eNodeB、NodeB、gNodeB、和/或类似的)、和/或类似的。在一些实施方式中,网络设备240可以被实现为在诸如机箱的外壳内所实现的物理设备。在一些实施方式中,网络设备240可以被实现为由云计算环境或数据中心的一个或多个计算机设备所实现的虚拟设备。
在一些实施方式中,网络设备240可以通过将被测进程加载到与网络设备240相关联的虚拟存储器中,将各种元件插入到被测进程中(诸如,与恶意软件检查工具相关联的恶意软件检查元件、存储器跟踪元件、和/或类似的)、使用存储器跟踪元件以跟踪被指派给被测进程并由被测进程使用的存储器页面、生成被指派给被测进程并由被测进程使用的存储器页面的存储器映射等来检查被测进程。在一些实施方式中,网络设备240可以向检查平台220提供将被检查的文件和用以执行该文件的恶意软件检查的指令、请求、和/或类似的。
网络250包括一个或多个有线和/或无线网络。例如,网络250可以包括移动网络(例如,长期演进(LTE)网络、码分多址(CDMA)网络、3G网络、4G网络、5G网络、下一代的另一类型的网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、专用网络、ad hoc网络、内联网、因特网、基于光纤的网络、云计算网络、和/或类似的,和/或这些或其他类型的网络的组合。
图2中所示的设备和网络的数量和布置作为示例被提供。实际上,可以存在与图2中所示的设备和/或网络相比附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者不同布置的设备和/或网络。此外,图2中所示的两个或多个设备可以在单个设备中实现,或者图2中所示的单个设备可以被实现为多个、分布式设备。附加地或备选地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。
图3A和3B是图2的一个或多个设备的示例组件的示意图。图3A是设备300的示例组件的示意图。设备300可以对应于用户设备210、检查平台220、服务器设备230等。在一些实施方式中,用户设备210、检查平台220、服务器设备230等可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3A所示,设备300可以包括总线305、处理器310、存储器315、存贮组件320、输入组件325、输出组件330和通信接口335。
总线305包括允许设备300的组件之间通信的组件。处理器310以硬件、固件或硬件和软件的组合来实现。处理器310采用中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或另一类型的处理组件的形式。在一些实施方式中,处理器310包括能够被编程为执行功能的一个或多个处理器。存储器315包括随机存取存储器(RAM)、只读存储器(ROM)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),该存储器315存储供处理器310使用的信息和/或指令。
存贮组件320存储与设备300的操作和使用相关的信息和/或软件。例如,存贮组件320可以包括连同对应的驱动的硬盘(例如,磁盘、光盘、磁光盘、和/或固态盘)、压缩光盘(CD)、数字通用光盘(DVD)、软盘、盒式磁带、磁带和/或另一类型的非瞬态计算机可读介质。
输入组件325包括允许设备300接收信息的组件,诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)。附加地或备选地,输入组件325可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速计、陀螺仪和/或致动器)。输出组件330包括从设备300(例如,显示器、扬声器和/或一个或多个发光二极管(LEDs))提供输出信息的组件。
通信接口335包括类如收发器的组件(例如,收发器和/或单独的接收器和传输器),该组件使得设备300能够与其他设备通信(诸如经由有线连接、无线连接或有线和无线连接的组合。通信接口335可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口335可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口、和/或类似的。
设备300可以执行本文所描述的一个或多个进程。设备300可以基于处理器310正执行的由非瞬态计算机可读介质(诸如存储器315和/或存贮组件320)存储的软件指令来执行这些进程。计算机可读介质在本文中被定义为非瞬态存储设备。存储设备包括单个物理存储设备内的存储空间或跨多个物理存储设备的存储空间。
软件指令可以从另一计算机可读介质或者经由通信接口335从另一设备读入存储器315和/或存贮组件320。当被执行时,存储在存储器315和/或存贮组件320中的软件指令可以使得处理器310执行本文所描述的一个或多个进程。附加地或备选地,可以使用硬连线电路代替软件指令或与软件指令组合以执行本文所描述的一个或多个进程。因此,本文所描述的实施方式不限于硬件电路和软件的任何特定组合。
图3A中所示的组件的数量和布置作为示例被提供。实际上,设备300可以包括与图3A中所示的组件相比附加的组件、更少的组件、不同的组件或不同布置的组件。附加地或备选地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。
图3B是设备350的示例组件的示意图。设备350可以对应于检查平台220、网络设备240、和/或类似的。在一些实施方式中,检查平台220、网络设备240、和/或类似的可以包括一个或多个设备350和/或设备350的一个或多个组件。如图3B所示,设备350可以包括一个或多个输入组件355-1到355-B(B≥1)(下文统称为输入组件355,并且单独地称为输入组件355)、交换组件360、一个或多个输出组件365-1到365-C(C≥1)(以下统称为输出组件365,并且单独地称为输出组件365)和控制器370。
输入组件355可以是物理链路的附着点,以及可以是针对传入流量(诸如,分组)的入口点。输入组件355可以处理输入流量(诸如通过执行数据链路层封装或解封装)。在一些实施方式中,输入组件355可以发送和/或接收分组。在一些实施方式中,输入组件355可以包括输入线卡,该输入线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实施方式中,设备350可以包括一个或多个输入组件355。
交换组件360可以将输入组件355与输出组件365互连。在一些实施方式中,交换组件360可以经由一个或多个交叉开关、经由总线,和/或与共享存储器来实现。在分组被最终调度用于输送到输出组件365之前,共享存储器可以充当临时缓冲器以存储来自输入组件355的分组。在一些实施方式中,交换组件360可以使得输入组件355、输出组件365和/或控制器370进行通信。
输出组件365可以存储分组,并且可以调度分组用于在输出物理链路上传输。输出组件365可以支持数据链路层封装或解封装,和/或各种更高级协议。在一些实施方式中,输出组件365可以发送分组和/或接收分组。在一些实施方式中,输出组件365可以包括输出线卡,该输出线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实施方式中,设备350可以包括一个或多个输出组件365。在一些实施方式中,输入组件355和输出组件365可以由相同组的组件实现(例如,输入/输出组件可以是输入组件355和输出组件365的组合)。
控制器370包括处理器,其形式为,例如CPU、GPU、APU、微处理器、微控制器、DSP、FPGA、ASIC和/或另一类型的处理器的形式。处理器以硬件、固件或硬件和软件的组合实现。在一些实施方案中,控制器370可以包括可被编程以执行功能的一个或多个处理器。
在一些实施方式中,控制器370可以包括RAM、ROM和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器、光存储器等),该存储设备存储供控制器370使用的信息和/或指令。
在一些实施方式中,控制器370可以与连接到设备300的其他设备、网络和/或系统通信,以交换关于网络拓扑的信息。控制器370可以基于网络拓扑信息创建路由表,基于路由表创建转发表,并且将转发表转发到输入组件355和/或输出组件365。输入组件355和/或输出组件365可以使用转发表以执行用于传入和/或传出分组的路由查找。
控制器370可以执行本文所描述的一个或多个过程。控制器370可以响应于执行由非瞬态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质本文被定义为非瞬态存储设备。存储设备包括单个物理存储设备内的存储空间或者跨多个物理存储设备的存储空间。
软件指令可以从另一计算机可读介质或者经由通信接口从另一设备读入与控制器370相关联的存储器和/或存贮组件。当被执行时,存储在与控制器370相关联的存储器和/或存贮组件中的软件指令可以使得控制器370执行本文所描述的一个或多个过程。附加地或备选地,可以使用硬连线电路代替软件指令或与软件指令组合以执行本文所描述的一个或多个过程。因此,本文所描述的实施方式不限于硬件电路和软件的任何特定组合。
提供图3B中所示的组件的数量和布置作为示例。实际上,设备350可以包括与与图3B中所示的组件相比附加的组件、更少的组件、不同的组件或不同布置的组件。附加地或备选地,设备350的一组组件(例如,一个或多个组件)可以执行被描述为由设备350的另一组组件执行的一个或多个功能。
图4是用于恶意软件检测的存储器跟踪的示例过程400的流程图。在一些实施方式中,图4的一个或多个过程框可以由诸如检查平台(例如,检查平台220)的设备执行。在一些实施方式中,图4的一个或多个过程框可以由与检查平台分离或包括检查平台的另一设备或一组设备执行,诸如用户设备(例如,用户设备210)、服务器设备(例如,服务器设备230)、网络设备(例如,网络设备240)、和/或类似的。
如图4所示,过程400可以包括将被测进程加载到与检查平台相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面(框410)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以将被测进程加载到与检查平台相关联的虚拟存储器中。在一些实施方式中,虚拟存储器可以包括多个存储器页面。
如图4中进一步所示,过程400可以包括将恶意软件检查元件和存储器跟踪元件插入到被测进程中(框420)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中。
如图4中进一步所示,过程400可以包括使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知(框430)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。
如图4中进一步所示,过程400可以包括:使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程并由被测进程使用(框440)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面。在一些实施方式中,一个或多个存储器页面可以被指派给被测进程并由被测进程使用。
如图4中进一步所示,过程400可以包括:使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息,并且其中存储器映射将被用于确定被测进程是否包括恶意软件(框450)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射。在一些实施方式中,存储器映射可以包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息。在一些实施方式中,存储器映射可以被用于确定被测进程是否包括恶意软件。
过程400可以包括附加的实施方式,诸如任何单个实施方式或者下面所描述的和/或对于本文所描述的任何其他进程所描述的实施方式的任何组合。
在一些实施方式中,检查平台可以使用存储器跟踪元件向恶意软件检查元件提供指令,以向存储器跟踪元件提供与被测进程相关联的事件的通知。在一些实施方式中,事件可以包括被测进程经由应用程序编程接口(API)被指派新的存储器页面。
在一些实施方式中,检查平台可以使用恶意软件检查元件检测正被加载到虚拟存储器中的被测进程,其中与被测进程相关联的事件的通知包括指示被测进程已被加载到虚拟存储器中的信息和标识被指派给被测进程的存储器页面范围的信息,并且当标识多个存储器页面中的一个或多个存储器页面时,检查平台可以标识通知中所标识的存储器页面范围。
在一些实施方式中,检查平台可以使用存储器跟踪元件并使用存储器映射来跟踪一个或多个存储器页面。在一些实施方式中,在跟踪一个或多个存储器页面时,检查平台可以跟踪一个或多个存储器页面所保持的状态、从一个或多个存储器页面提取工件、基于一个或多个存储器页面标识被测进程的危害指标符(IOC)等。在一些实施方式中,检查平台可以向恶意软件检查工具提供用于电子取证分析的工件,以确定被测进程的恶意意图。
尽管图4示出了过程400的示例框,但是在一些实施方式中,过程400可以包括与图4中描绘的相比附加的框、更少的框、不同的框、或者不同布置的框。附加地或者备选地,过程400的框中的两个或多个框可以被并行执行。
图5是用于恶意软件检测的用于存储器跟踪的示例过程500的流程图。在一些实施方式中,图5的一个或多个过程框可以由诸如检查平台(例如,检查平台220)的设备执行。在一些实施方式中,图5的一个或多个过程框可以由与检查平台分离或包括检查平台的另一设备或一组设备执行,诸如用户设备(例如,用户设备210)、服务器设备(例如,服务器设备230)、网络设备(例如,网络设备240)、和/或类似的。
如图5所示,过程500可以包括:将被测进程加载到与检查平台相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面(框510)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以将被测进程加载到与检查平台相关联的虚拟存储器中。在一些实施方式中,虚拟存储器可以包括多个存储器页面。
如图5中进一步所示,过程500可以包括:将恶意软件检查元件和存储器跟踪元件插入到被测进程中(框520)。例如,如上面结合图1A-1D所述。检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中。
如图5中进一步所示,过程500可以包括:使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知(框530)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。
如图5中进一步所示,过程500可以包括:使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程并由被测进程使用(框540)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面。在一些实施方式中,一个或多个存储器页面可以被指派给被测进程并由被测进程使用。
如图5中进一步所示,过程500可以包括:使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息(框550)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射。在一些实施方式中,存储器映射可以包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息。
如图5中进一步所示,过程500可以包括:使用存储器跟踪元件并使用存储器映射来跟踪一个或多个存储器页面以确定被测进程是否包括恶意软件(框560)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并使用存储器映射来跟踪一个或多个存储器页面以确定被测进程是否包括恶意软件。
过程500可以包括附加的实施方式,诸如任何单个实施方式或者下面所描述的和/或对于本文描述的任何其他进程所描述的实施方式的任何组合。
在一些实施方式中,事件可以包括与被测进程相关联的存储器读操作、与被测进程相关联的存储器写操作,被测进程被指派了新的存储器页面等中的至少一个。在一些实施方式中,检查平台可以使用存储器跟踪元件将存储器映射提供给与恶意软件检查元件相关联的恶意软件检查工具。在一些实施方式中,当向存储器跟踪元件提供与被测进程相关联的事件的通知时,检查平台可以经由应用程序编程接口(API)向存储器跟踪元件提供事件的通知。
在一些实施方式中,存储器映射可以包括标识被指派给被测进程的存储器页面范围的信息。在一些实施方式中,存储器映射可以包括标识被指派给恶意软件检查元件并由恶意软件检查元件使用的一个或多个其他存储器页面的信息。在一些实施方式中,当跟踪一个或多个存储器页面时,检查平台可以检查一个或多个存储器页面以确定被测进程是否在一个或多个存储器页面中存储了恶意内容、监视被测进程对一个或多个存储器页面的使用等。
尽管图5示出了过程500的示例框,但是在一些实施方式中,过程500可以包括附加的框、更少的框、不同的框、或者不同布置的框。附加地或者备选地,过程500的框中的两个或者多个框可以被并行执行。
图6是用于恶意软件检测的用于存储器跟踪的示例过程600的流程图。在一些实施方式中,图6的一个或多个过程框可以由诸如检查平台(例如,检查平台220)的设备执行。在一些实施方式中,图6的一个或多个过程框可以由与检查平台分离或包括检查平台的另一设备或一组设备执行,诸如用户设备(例如,用户设备210)、服务器设备(例如,服务器设备230)、网络设备(例如,网络设备240)、和/或类似的。
如图6所示,过程600可以包括:将被测进程加载到与检查平台相关联的虚拟存储器中,其中虚拟存储器包括多个存储器页面(框610)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以将被测进程加载到与检查平台相关联的虚拟存储器中。在一些实施方式中,虚拟存储器可以包括多个存储器页面。
如图6中进一步所示,过程600可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中(框620)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370等)可以将恶意软件检查元件和存储器跟踪元件插入到被测进程中。
如图6中进一步所示,过程600可以包括:使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知(框630)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370等)可以使用恶意软件检查元件向存储器跟踪元件提供与被测进程相关联的事件的通知。
如图6中进一步所示,过程600可以包括:使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面,其中一个或多个存储器页面被指派给被测进程并由被测进程使用(框640)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于通知中所包括的信息来标识多个存储器页面中的一个或多个存储器页面。在一些实施方式中,一个或多个存储器页面可以被指派给被测进程并由被测进程使用。
如图6中进一步所示,过程600可以包括:使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射,其中存储器映射包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息(框650)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以使用存储器跟踪元件并基于标识的一个或多个存储器页面来生成与被测进程相关联的存储器映射。在一些实施方式中,存储器映射可以包括标识被指派给被测进程的存储器页面范围的信息。在一些实施方式中,存储器映射可以包括将一个或多个存储器页面标识为被指派给被测进程并由被测进程使用的信息。
如图6中进一步所示,过程600可以包括:基于存储器映射确定被测进程是否包括恶意软件(框660)。例如,如上面结合图1A-1D所述,检查平台(例如,使用计算资源224、处理器310、存储器315、存贮组件320、输入组件325、输出组件330、通信接口335、输入组件355、交换组件360、输出组件365、控制器370、和/或类似的)可以基于存储器映射确定被测进程是否包括恶意软件。
过程600可以包括附加的实施方式,诸如任何单个实施方式或者下面所描述的和/或对于本文描述的任何其他进程所描述的实施方式的任何组合。
在一些实施方式中,事件可以包括:将被测进程中的至少一个被测进程加载到与设备相关联的虚拟存储器中、设备的处理器执行与被测进程相关联的指令等。在一些实施方式中,检查平台可以使用存储器跟踪元件向恶意软件检查元件提供指令,以向存储器跟踪元件提供与被测进程相关联的事件的通知。
在一些实施方式中,当确定被测进程是否包括恶意软件时,检查平台可以使用恶意软件检查工具并基于跟踪一个或多个存储器页面来确定被测进程是否包括恶意软件,并且可以基于确定被测进程包括恶意软件来执行一个或多个动作。在一些实施方式中,一个或多个动作可以包括以下中的至少一个:隔离被测进程、尝试标识一个或多个附加的动作以防止被测进程采取一个或多个恶意动作等。
在一些实施方式中,当确定被测进程是否包括恶意软件时,检查平台可以检查一个或多个存储器页面以确定被测进程是否在一个或多个存储器页面中存储恶意内容、监视被测进程的一个或多个存储器页面的使用、监视用于请求附加存储器页面的被测进程,该附加存储器页面将被指派给被测进程等。
尽管图6示出了过程600的示例框,但是在一些实施方式中,过程600可以包括附加的框、更少的框、不同的框、或者与图6中描绘的框不同布置的框。附加地或者备选地,过程600的框中的两个或者多个框可以被并行执行。
前述公开内容提供了说明和描述,但并非旨在穷举或将实施方式限于所公开的精确的形式。鉴于以上公开内容或者可以从实施方式的实践中获得,修改和变化是可能的。
如本文所使用的,术语“组件”旨在广义地解释为硬件、固件和/或硬件和软件的组合。
如本文所使用的,术语“业务”或“内容”可以包括一组分组。分组可以指代用于通信信息的通信结构,诸如协议数据单元(PDU)、网络分组、数据报、段、消息、块、小区、帧、子帧、时隙、符号、上述任何一个的一部分、和/或能够经由网络传输的其他类型的格式化或未格式化的数据单元。
显而易见的是,本文所描述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的真实的专用的控制硬件或软件代码不是实现的限制。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码—应理解,可以将软件和硬件设计为基于本文的描述来实现系统和/或方法。
尽管在权利要求中引用和/或在说明书中公开了特征的特定组合,但是这些组合并不旨在限制可能的实施方式的公开。事实上,这些特征中的很多特征可以以未在权利要求中具体陈述和/或在说明书中公开的方式进行组合。尽管下面列出的每个从属权利要求可以仅直接依赖于一个权利要求,但是可能实施方式的公开包括每个从属权利要求与权利要求集合中的每个其他权利要求的组合。
除非明确地如此描述,否则本文所使用的元件、动作或指令不应被解释为关键的或必要的。而且,如本文所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本文所使用的,术语“组”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”互换使用。在仅有一个项目的情况下,使用术语“一个”或类似语言。此外,如本文所使用的,术语“有”,“具有”,“具备”等旨在为开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。
Claims (20)
1.一种方法,包括:
由设备将被测进程加载到虚拟存储器中,其中所述虚拟存储器被分段为多个存储器页面,并且其中所述被测进程使用所述多个存储器页面中的第一组存储器页面;
由所述设备将恶意软件检查元件和存储器跟踪元件插入到所述被测进程中,其中所述恶意软件检查元件使用所述多个存储器页面中的第二组存储器页面;
由所述设备使用所述存储器跟踪元件来生成与所述被测进程相关联的存储器映射,其中所述存储器映射包括标识所述第一组存储器页的信息;以及
由所述设备基于所述存储器映射来确定所述被测进程是否包括恶意软件。
2.根据权利要求1所述的方法,其中所述存储器跟踪元件:
被插入到恶意软件检查元件中;
被插入到所述被测进程的另一部分中;或者
在将所述恶意软件检查元件插入所述被测进程之前被插入。
3.根据权利要求1所述的方法,还包括:
向所述恶意软件检查元件提供指令以向所述存储器跟踪元件通知与所述被测进程相关联的一个或多个事件。
4.根据权利要求3所述的方法,其中所述一个或多个事件包括以下至少一项:
所述被测进程被加载到所述虚拟存储器中,
与所述被测进程相关联的存储器操作,
与所述被测进程相关联的存储器页面的更改,或者
所述被测进程正在执行的指令。
5.根据权利要求1所述的方法,其中基于接收到与由所述被测进程执行的存储器操作相关联的通知,生成与所述被测进程相关联的所述存储器映射。
6.根据权利要求1所述的方法,其中所述存储器映射包括指示以下一项或多项的信息:
尚未被识别为所述被测进程正在使用的存储器页面,或者
所述第二组存储器页面。
7.根据权利要求1所述的方法,还包括:
向恶意软件检查工具提供所述存储器映射和附加信息,用于取证分析以确定恶意意图,其中所述附加信息包括:
工件,或者
危害指标符。
8.一种设备,包括
一个或多个存储器;以及
一个或多个处理器,通信地耦合到所述一个或多个存储器并且被配置为:
将被测进程加载到虚拟存储器中,其中所述虚拟存储器被分段为多个存储器页面,并且其中所述被测进程使用所述多个存储器页面中的第一组存储器页面;
将恶意软件检查元件和存储器跟踪元件插入到所述被测进程中,其中所述恶意软件检查元件使用所述多个存储器页面中的第二组存储器页面;以及
使用所述存储器跟踪元件来生成与所述被测进程相关联的存储器映射,其中所述存储器映射包括标识所述第一组存储器页的信息。
9.根据权利要求8所述的设备,其中所述存储器跟踪元件:
被插入到恶意软件检查元件中;
被插入到所述被测进程的另一部分中;或者
在将所述恶意软件检查元件插入所述被测进程之前被插入。
10.根据权利要求8所述的设备,其中所述一个或多个处理器还被配置为:
向所述恶意软件检查元件提供指令以向所述存储器跟踪元件通知与所述被测进程相关联的一个或多个事件。
11.根据权利要求10所述的设备,其中所述一个或多个事件包括以下至少一项:
所述被测进程被加载到所述虚拟存储器中,
与所述被测进程相关联的存储器操作,
与所述被测进程相关联的存储器页面的更改,或者
所述被测进程正在执行的指令。
12.根据权利要求8所述的设备,其中基于接收到与由所述被测进程执行的存储器操作相关联的通知,与所述被测进程相关联的所述存储器映射被生成。
13.根据权利要求8所述的设备,其中所述存储器映射包括指示以下一项或多项的信息:
尚未被识别为所述被测进程正在使用的存储器页面,或者
所述第二组存储器页面。
14.根据权利要求8所述的设备,其中所述一个或多个处理器还被配置为:
向恶意软件检查工具提供所述存储器映射和附加信息,用于取证分析以确定恶意意图,其中所述附加信息包括:
工件,或者
危害指标符。
15.一种存储指令集合的非暂时性计算机可读介质,所述指令集合包括:
一条或多条指令,所述一条或多条指令在由设备的一个或多个处理器执行时,使所述设备:
将被测进程加载到虚拟存储器中,其中所述虚拟存储器被分段为多个存储器页面,并且其中所述被测进程使用所述多个存储器页面中的第一组存储器页面;
将恶意软件检查元件和存储器跟踪元件插入到所述被测进程中,其中所述恶意软件检查元件使用所述多个存储器页面中的第二组存储器页面;
使用所述存储器跟踪元件来生成与所述被测进程相关联的存储器映射,其中所述存储器映射包括标识所述第一组存储器页的信息;以及
基于所述存储器映射来确定所述被测进程是否包括恶意软件。
16.根据权利要求15所述的非暂时性计算机可读介质,其中所述存储器跟踪元件:
被插入到恶意软件检查元件中;
被插入到所述被测进程的另一部分中;或者
在将所述恶意软件检查元件插入所述被测进程之前被插入。
17.根据权利要求15所述的非暂时性计算机可读介质,其中所述一条或多条指令还使所述设备:
向所述恶意软件检查元件提供指令以向所述存储器跟踪元件通知与所述被测进程相关联的一个或多个事件。
18.根据权利要求17所述的非暂时性计算机可读介质,其中所述一个或多个事件包括以下至少一项:
所述被测进程被加载到所述虚拟存储器中,
与所述被测进程相关联的存储器操作,
与所述被测进程相关联的存储器页面的更改,或者
所述被测进程正在执行的指令。
19.根据权利要求15所述的非暂时性计算机可读介质,其中基于接收到与由所述被测进程执行的存储器操作相关联的通知,与所述被测进程相关联的所述存储器映射被生成。
20.根据权利要求15所述的非暂时性计算机可读介质,其中所述存储器映射包括指示以下一项或多项的信息:
尚未被识别为所述被测进程正在使用的存储器页面,或者
所述第二组存储器页面。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201841026426 | 2018-07-16 | ||
IN201841026426 | 2018-07-16 | ||
US16/119,686 US10795993B2 (en) | 2018-07-16 | 2018-08-31 | Memory tracking for malware detection |
US16/119,686 | 2018-08-31 | ||
CN201910462194.XA CN110727942B (zh) | 2018-07-16 | 2019-05-30 | 用于恶意软件检测的存储器跟踪 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910462194.XA Division CN110727942B (zh) | 2018-07-16 | 2019-05-30 | 用于恶意软件检测的存储器跟踪 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421725A true CN117421725A (zh) | 2024-01-19 |
Family
ID=66001067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311365826.3A Pending CN117421725A (zh) | 2018-07-16 | 2019-05-30 | 用于恶意软件检测的存储器跟踪 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230127205A1 (zh) |
EP (2) | EP3598332B1 (zh) |
CN (1) | CN117421725A (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836504B2 (en) * | 2005-03-01 | 2010-11-16 | Microsoft Corporation | On-access scan of memory for malware |
US8104089B1 (en) * | 2007-12-31 | 2012-01-24 | Symantec Corporation | Tracking memory mapping to prevent packers from evading the scanning of dynamically created code |
US9262246B2 (en) * | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
US9038176B2 (en) * | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
US9594881B2 (en) * | 2011-09-09 | 2017-03-14 | Mcafee, Inc. | System and method for passive threat detection using virtual memory inspection |
US9256552B2 (en) * | 2011-11-21 | 2016-02-09 | Cisco Technology, Inc. | Selective access to executable memory |
US9372991B2 (en) * | 2012-03-06 | 2016-06-21 | International Business Machines Corporation | Detecting malicious computer code in an executing program module |
US20130312099A1 (en) * | 2012-05-21 | 2013-11-21 | Mcafee, Inc. | Realtime Kernel Object Table and Type Protection |
US9275223B2 (en) * | 2012-10-19 | 2016-03-01 | Mcafee, Inc. | Real-time module protection |
US9891936B2 (en) * | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
WO2015113052A1 (en) * | 2014-01-27 | 2015-07-30 | Webroot Inc. | Detecting and preventing execution of software exploits |
US10944764B2 (en) * | 2015-02-13 | 2021-03-09 | Fisher-Rosemount Systems, Inc. | Security event detection through virtual machine introspection |
US10515213B2 (en) * | 2016-08-27 | 2019-12-24 | Microsoft Technology Licensing, Llc | Detecting malware by monitoring execution of a configured process |
US10552308B1 (en) * | 2017-06-23 | 2020-02-04 | Square, Inc. | Analyzing attributes of memory mappings to identify processes running on a device |
US10565376B1 (en) * | 2017-09-11 | 2020-02-18 | Palo Alto Networks, Inc. | Efficient program deobfuscation through system API instrumentation |
US10628586B1 (en) * | 2017-11-30 | 2020-04-21 | Palo Alto Networks, Inc. | Detecting malware via scanning for dynamically generated function pointers in memory |
WO2019113843A1 (en) * | 2017-12-13 | 2019-06-20 | Intel Corporation | Malware detection in memory |
-
2019
- 2019-03-28 EP EP19165953.1A patent/EP3598332B1/en active Active
- 2019-03-28 EP EP23207939.2A patent/EP4300891A3/en active Pending
- 2019-05-30 CN CN202311365826.3A patent/CN117421725A/zh active Pending
-
2022
- 2022-12-14 US US18/065,667 patent/US20230127205A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4300891A3 (en) | 2024-03-13 |
EP4300891A2 (en) | 2024-01-03 |
US20230127205A1 (en) | 2023-04-27 |
EP3598332B1 (en) | 2023-12-13 |
EP3598332A1 (en) | 2020-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11075945B2 (en) | System, apparatus and method for reconfiguring virtual machines | |
US10469512B1 (en) | Optimized resource allocation for virtual machines within a malware content detection system | |
US10474817B2 (en) | Dynamically optimizing performance of a security appliance | |
US10733297B2 (en) | Real-time signatureless malware detection | |
CN109214170B (zh) | 经由辅助文件分析进行恶意软件标识 | |
US11562066B2 (en) | Memory tracking for malware detection | |
US20140380473A1 (en) | Zero-day discovery system | |
CN110826058B (zh) | 基于用户交互的恶意软件检测的设备、方法、介质 | |
CN111753294A (zh) | 恶意脚本的行为检测 | |
US10893090B2 (en) | Monitoring a process on an IoT device | |
US20230127205A1 (en) | Memory tracking for malware detection | |
EP3594841A1 (en) | Real-time signatureless malware detection | |
US11895129B2 (en) | Detecting and blocking a malicious file early in transit on a network |
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 |