CN113688384A - 程序的检测方法、装置、电子设备和介质 - Google Patents
程序的检测方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113688384A CN113688384A CN202010427789.4A CN202010427789A CN113688384A CN 113688384 A CN113688384 A CN 113688384A CN 202010427789 A CN202010427789 A CN 202010427789A CN 113688384 A CN113688384 A CN 113688384A
- Authority
- CN
- China
- Prior art keywords
- environment variable
- preset
- program
- file
- target program
- 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
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 19
- 230000002159 abnormal effect Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000002347 injection Methods 0.000 description 13
- 239000007924 injection Substances 0.000 description 13
- 230000036316 preload Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 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
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种程序的检测方法,包括:获取目标程序的启动事件;根据启动事件,确定由目标程序设置的至少一个环境变量;检测至少一个环境变量中是否包含预设环境变量;以及若至少一个环境变量中包含预设环境变量,则将至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据默认项运行目标程序。本公开还提供了一种程序的检测装置、电子设备和介质。
Description
技术领域
本公开涉及一种程序的检测方法、装置、电子设备和介质。
背景技术
恶意程序(例如木马程序)可以通过改变程序环境变量的方法为正常程序链接非法的动态库文件(例如SO文件),非法的动态库文件可能包含用于破坏计算机***的恶意函数代码。程序在被链接非法的动态库文件后,会在启动时优先加载该非法的动态库文件,以把正常函数的地址替换为恶意函数的地址,从而实现恶意程序的注入。当需要调用正常函数时,由于函数地址的改变,程序实际上会调用对应的恶意函数,从而改变了程序的正常运行逻辑,对***危害较大。
发明内容
本公开的一个方面提供了一种程序的检测方法,包括:获取目标程序的启动事件;根据所述启动事件,确定由所述目标程序设置的至少一个环境变量;检测所述至少一个环境变量中是否包含预设环境变量;以及若所述至少一个环境变量中包含预设环境变量,则将所述至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据所述默认项运行所述目标程序。
可选地,所述预设环境变量包括用于加载动态库文件的环境变量。可选地,所述启动事件包括所述目标程序的进程标识;所述根据所述启动事件,确定所述目标程序所设置的至少一个环境变量,包括:根据所述进程标识,查询所述目标程序所设置的至少一个环境变量。
可选地,所述方法还包括:根据预设文件路径,检测所述目标程序中是否存在包含预设特征的程序文件;以及若所述目标程序中存在包含所述预设特征的程序文件,则确定所述程序文件为可疑文件,并生成告警信息。
可选地,所述预设特征包括所述预设环境变量的变量名。
可选地,所述方法,还包括:确定所述可疑文件所对应的至少一个动态库文件;确定所述至少一个动态库文件中是否存在异常的动态库文件;以及若所述至少一个动态库文件中存在异常的动态库文件,则删除所述可疑文件。
本公开的另一个方面提供了一种程序的检测装置,包括:获取模块,用于获取目标程序的启动事件;确定模块,用于根据所述启动事件,确定由所述目标程序设置的至少一个环境变量;检测模块,用于检测所述至少一个环境变量中是否包含预设环境变量;以及修复模块,用于在所述至少一个环境变量中包含预设环境变量的情况下,将所述至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据所述默认项运行所述目标程序。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过检查程序的环境变量是否包含预设环境变量,来发现程序中的恶意注入。如果发现程序对预设环境变量进行了设置,则从该程序所设置的环境变量中删除预设环境变量,并还原相关设置项,从而摘除注入,保证设备的安全。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的可以应用程序的检测方法的示例性应用场景示意图;
图2示意性示出了根据本公开的实施例的程序的检测方法的流程图;
图3示意性示出了根据本公开另一实施例的程序的检测方法的流程图;
图4示意性示出了根据本公开另一实施例的程序的检测方法的流程图;
图5示意性示出了根据本公开的实施例的程序的检测装置的框图;以及
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机***的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
本公开的实施例提供了一种程序的检测方法。该方法包括获取原始数据帧和与原始数据帧对应的协议类型;根据协议类型,解析原始数据帧,得到目标信息;确定历史数据中是否存在与目标信息对应的目标数据结构;响应于确定历史数据中不存在目标数据结构,执行以下操作:根据协议类型,确定与原始数据帧对应的检测策略;根据检测策略,对原始数据帧进行安全检测;以及将目标信息和检测策略存储在目标数据结构中;以及响应于确定历史数据中存在目标数据结构,执行以下操作:读取目标数据结构中的检测策略;以及根据检测策略,对原始数据帧进行安全检测。
图1示意性示出了根据本公开实施例的可以应用程序的检测方法的示例性应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的应用场景,当程序启动时,内核驱动程序截取该程序的启动事件。然后通知守护进程,以将启动事件中的进程标识(例如进程D)等信息发送给守护进程。守护进程根据进程标识,获取该程序的环境变量,并通过检查环境变量中是否包含预设字段,来确定环境变量是否包含预设环境变量。如果这些环境变量中包含预设环境变量则表示该程序存在注入隐患,守护进程会将其中的所有预设环境变量删除,并将预设环境变量所对应的设置项还原为默认项,从而消除注入隐患。然后守护进程将处理结果通知内核驱动程序。内核驱动程序在收到处理结果为成功后,对该程序予以放行,以使该程序继续运行。
图2示意性示出了根据本公开的实施例的程序的检测方法的流程图。
如图2所示,该方法包括操作S210~S240。
在操作S210,获取目标程序的启动事件。
根据本公开的实施例,启动事件包括目标程序的进程标识。
根据本公开的实施例,操作S210例如可以包括通过***的内核驱动程序截取目标程序的启动事件。
在操作S220,根据启动事件,确定由目标程序设置的至少一个环境变量。
根据本公开的实施例,预设环境变量包括用于加载动态库文件的环境变量。以Linux***为例,预设环境变量例如可以包括LD_PRELOAD、LD_ELF_PRELOAD和LD_AOUT_PRELOAD。
根据本公开的实施例,操作S220例如可以包括根据进程标识,查询目标程序所设置的至少一个环境变量。
更具体地,进程标识例如可以为进程ID。本实施例中,可以通过以下命令来查询目标程序的环境变量:cat/proc/$PID/environ,其中,$PID指目标程序所对应的进程ID。
在操作S230,检测至少一个环境变量中是否包含预设环境变量。
在操作S240,若至少一个环境变量中包含预设环境变量,则将至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据默认项运行目标程序。
根据本公开的实施例,通过检查程序的环境变量是否包含预设环境变量,来发现程序中的恶意注入。如果发现程序对预设环境变量进行了设置,则从该程序所设置的环境变量中删除预设环境变量,并还原相关设置项,从而摘除注入,保证设备的安全。
图3示意性示出了根据本公开另一实施例的程序的检测方法的流程图。
如图3所示,除了操作S210~S240之外,该方法包括操作S310~S320。
其中,操作S310~S320可以在操作S210之前执行,也可以在操作S210~S240之间的任意阶段执行。示例性地,本实施例中,在操作S210之前执行操作S310~S320。
在操作S310,根据预设文件路径,检测目标程序中是否存在包含预设特征的程序文件。
根据本公开的实施例,可以预先确定可能包含预设环境变量的文件所在的文件路径,作为预设文件路径。
示例性地,对于Linux***,预设文件路径例如可以如表1所示。需要说明的是,表1所示的文件路径仅为示例,本公开并不局限于此。
表1
根据本公开的实施例,预设特征例如可以包括预设环境变量的变量名和/或用于设置预设环境变量的关键词。
示例性地,预设特征可以如表2所示。需要说明的是,表2所示的预设特征仅为示例,本公开并不局限于此。
变量名 | 用于设置环境变量的关键词 |
LD_PRELOAD | export LD_PRELOAD |
LD_ELF_PRELOAD | export LD_ELF_PRELOAD |
LD_AOUT_PRELOAD | export LD_AOUT_PRELOAD |
表2
在操作S320,若目标程序中存在包含预设特征的程序文件,则确定程序文件为可疑文件,并生成告警信息。
根据本公开的实施例,根据预设文件路径,检测目标程序中是否存在包含预设特征的程序文件,能够对目标程序进行静态检测,从而发现目标程序中的可疑文件,并生成告警信息,以提醒用户。
图4示意性示出了根据本公开另一实施例的程序的检测方法的流程图。
如图4所示,该方法在操作S310~S320之后还可以包括操作S410~S430。
在操作S410,确定可疑文件所对应的至少一个动态库文件。
在操作S420,确定至少一个动态库文件中是否存在异常的动态库文件。
根据本公开的实施例,针对可疑文件所对应的每个动态库文件,可以通过分析每个动态库文件所依赖的相关文件是否为恶意文件来确定每个动态库文件是否异常,若某动态库文件所依赖的相关文件为恶意文件,则该动态库文件存在异常。
根据本公开的实施例,也可以通过分析可疑文件所对应的每个动态库文件的作用来确定每个动态库文件是否异常,若动态库文件的作用涉及危险行为,则该动态库文件存在异常。
在操作S430,若至少一个动态库文件中存在异常的动态库文件,则删除可疑文件。
根据本公开的实施例,通过检测可疑文件所对应的动态库文件,进一步对可疑文件的安全性进行分析。若存在异常的动态库文件,则表示可疑文件存在恶意注入,删除可疑文件以摘除恶意注入,从而避免设备受到危害。
下面结合具体实施例对图2~图4所示的方法做进一步说明。
以下示出了根据本公开实施例的一个示例实施例。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
示例性地,在本实施例中,预设环境变量包括LD_PRELOAD、LD_ELF_PRELOAD和LD_AOUT_PRELOAD。
首先进行静态检测,在上文表1所示的文件路径中,检测是否有包含上文表2所示特征的文件。如果检测到包含表2所示特征的文件,则可断定该***有可能会被注入相关的SO模块,抛出告警信息,并扫描分析该文件路径所对应的动态库文件的依赖关系和作用。如果通过扫描分析发现与该文件相关的动态库文件异常,并且该文件是用户不认识的文件,则将其删除。
然后进行动态检测,即在程序运行的过程中,实时检测程序中的函数所调用的设置预设环境变量方法。
更具体地,当程序启动的时候,内核驱动程序截获进程启动事件。内核驱动程序将启动事件中的进程ID等信息通知守护进程。守护进程根据进程ID,获取该程序进程的环境变量。根据获取的进程的环境变量,检查各环境变量是否包含LD_PRELOAD、LD_ELF_PRELOAD或LD_AOUT_PRELOAD的字段,如果包含上述字段,则将包含上述字段的环境变量摘除,并且将这些环境变量所对应的设置项设置回默认值。
图5示意性示出了根据本公开的实施例的程序的检测装置的框图。
如图5所示,程序的检测装置500包括获取模块510、确定模块520、检测模块530和修复模块540。该程序的检测装置500可以执行上面参考图2描述的方法。
具体地,获取模块510,用于获取目标程序的启动事件。
确定模块520,用于根据启动事件,确定由目标程序设置的至少一个环境变量。
检测模块530,用于检测至少一个环境变量中是否包含预设环境变量。
修复模块540,用于在至少一个环境变量中包含预设环境变量的情况下,将至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据默认项运行目标程序。
根据本公开的实施例,预设环境变量包括用于加载动态库文件的环境变量。
根据本公开的实施例,启动事件包括目标程序的进程标识。确定模块,具体可以用于:根据进程标识,查询目标程序所设置的至少一个环境变量。
根据本公开的实施例,通过检查程序的环境变量是否包含预设环境变量,来发现程序中的恶意注入。如果发现程序对预设环境变量进行了设置,则从该程序所设置的环境变量中删除预设环境变量,并还原相关设置项,从而摘除注入,保证设备的安全。
根据本公开的实施例,检测模块530还可以用于根据预设文件路径,检测目标程序中是否存在包含预设特征的程序文件,若目标程序中存在包含预设特征的程序文件,则确定程序文件为可疑文件,并生成告警信息。
根据本公开的实施例,预设特征可以包括预设环境变量的变量名。
根据本公开的实施例,根据预设文件路径,检测目标程序中是否存在包含预设特征的程序文件,能够对目标程序进行静态检测,从而发现目标程序中的可疑文件,并生成告警信息,以提醒用户。
根据本公开的另一实施例,程序的检测装置500还可以包括清除模块,用于确定可疑文件所对应的至少一个动态库文件;确定至少一个动态库文件中是否存在异常的动态库文件;以及若至少一个动态库文件中存在异常的动态库文件,则删除可疑文件。
根据本公开的实施例,通过检测可疑文件所对应的动态库文件,进一步对可疑文件的安全性进行分析。若存在异常的动态库文件,则表示可疑文件存在恶意注入,删除可疑文件以摘除恶意注入,从而避免设备受到危害。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、确定模块520、检测模块530和修复模块540中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块510、确定模块520、检测模块530和修复模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、确定模块520、检测模块530和修复模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机***的方框图。图6示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括处理器610以及计算机可读存储介质620。该计算机***600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,获取模块510、确定模块520、检测模块530和修复模块540中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的程序的检测方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种程序的检测方法,包括:
获取目标程序的启动事件;
根据所述启动事件,确定由所述目标程序设置的至少一个环境变量;
检测所述至少一个环境变量中是否包含预设环境变量;以及
若所述至少一个环境变量中包含预设环境变量,则将所述至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据所述默认项运行所述目标程序。
2.根据权利要求1所述的方法,其中,所述预设环境变量包括用于加载动态库文件的环境变量。
3.根据权利要求1所述的方法,其中,所述启动事件包括所述目标程序的进程标识;
所述根据所述启动事件,确定所述目标程序所设置的至少一个环境变量,包括:
根据所述进程标识,查询所述目标程序所设置的至少一个环境变量。
4.根据权利要求1至3中任一项所述的方法,还包括:
根据预设文件路径,检测所述目标程序中是否存在包含预设特征的程序文件;以及
若所述目标程序中存在包含所述预设特征的程序文件,则确定所述程序文件为可疑文件,并生成告警信息。
5.根据权利要求4所述的方法,其中,所述预设特征包括所述预设环境变量的变量名。
6.根据权利要求4所述的方法,还包括:
确定所述可疑文件所对应的至少一个动态库文件;
确定所述至少一个动态库文件中是否存在异常的动态库文件;以及
若所述至少一个动态库文件中存在异常的动态库文件,则删除所述可疑文件。
7.一种程序的检测装置,包括:
获取模块,用于获取目标程序的启动事件;
确定模块,用于根据所述启动事件,确定由所述目标程序设置的至少一个环境变量;
检测模块,用于检测所述至少一个环境变量中是否包含预设环境变量;以及
修复模块,用于在所述至少一个环境变量中包含预设环境变量的情况下,将所述至少一个环境变量中的预设环境变量删除,并将与该预设环境变量对应的设置项还原为默认项,以便根据所述默认项运行所述目标程序。
8.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至6中任一项的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6中任一项的方法。
10.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现根据权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010427789.4A CN113688384A (zh) | 2020-05-19 | 2020-05-19 | 程序的检测方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010427789.4A CN113688384A (zh) | 2020-05-19 | 2020-05-19 | 程序的检测方法、装置、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688384A true CN113688384A (zh) | 2021-11-23 |
Family
ID=78576033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010427789.4A Pending CN113688384A (zh) | 2020-05-19 | 2020-05-19 | 程序的检测方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688384A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244687A (zh) * | 2022-12-26 | 2023-06-09 | 安芯网盾(北京)科技有限公司 | 一种基于Linux内核的动态库劫持检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217258A1 (en) * | 2006-07-05 | 2009-08-27 | Michael Wenzinger | Malware automated removal system and method using a diagnostic operating system |
US7725882B1 (en) * | 2005-09-30 | 2010-05-25 | Symantec Operating Corporation | System and method for profiling processes in a computing system |
CN102663288A (zh) * | 2012-03-22 | 2012-09-12 | 奇智软件(北京)有限公司 | 病毒查杀方法及装置 |
CN106022117A (zh) * | 2016-05-18 | 2016-10-12 | 北京金山安全软件有限公司 | 防止***环境变量修改的方法、装置及电子设备 |
CN109815704A (zh) * | 2019-01-24 | 2019-05-28 | 中国—东盟信息港股份有限公司 | 一种Kubernetes云原生应用的安全检测方法及其*** |
-
2020
- 2020-05-19 CN CN202010427789.4A patent/CN113688384A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725882B1 (en) * | 2005-09-30 | 2010-05-25 | Symantec Operating Corporation | System and method for profiling processes in a computing system |
US20090217258A1 (en) * | 2006-07-05 | 2009-08-27 | Michael Wenzinger | Malware automated removal system and method using a diagnostic operating system |
CN102663288A (zh) * | 2012-03-22 | 2012-09-12 | 奇智软件(北京)有限公司 | 病毒查杀方法及装置 |
CN106022117A (zh) * | 2016-05-18 | 2016-10-12 | 北京金山安全软件有限公司 | 防止***环境变量修改的方法、装置及电子设备 |
CN109815704A (zh) * | 2019-01-24 | 2019-05-28 | 中国—东盟信息港股份有限公司 | 一种Kubernetes云原生应用的安全检测方法及其*** |
Non-Patent Citations (1)
Title |
---|
安全之光: "警惕利用Linux预加载型恶意动态链接库的后门", pages 1 - 8, Retrieved from the Internet <URL:https://www.freebuf.com/column/162604.html> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244687A (zh) * | 2022-12-26 | 2023-06-09 | 安芯网盾(北京)科技有限公司 | 一种基于Linux内核的动态库劫持检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789361B2 (en) | Ransomware attack remediation | |
US11645383B2 (en) | Early runtime detection and prevention of ransomware | |
US7971258B1 (en) | Methods and arrangement for efficiently detecting and removing malware | |
US6898712B2 (en) | Test driver ordering | |
US11675905B2 (en) | System and method for validating in-memory integrity of executable files to identify malicious activity | |
CN102629310A (zh) | 用于保护计算机***免遭恶意对象活动侵害的***和方法 | |
CN113761519B (zh) | 一种Web应用程序的检测方法、装置及存储介质 | |
JP2009238153A (ja) | マルウェア対処システム、方法及びプログラム | |
CN111291364A (zh) | 内核安全检测方法、装置、设备及存储介质 | |
CN107330328A (zh) | 防御病毒攻击的方法、装置及服务器 | |
US9129109B2 (en) | Method and apparatus for detecting a malware in files | |
US6938161B2 (en) | Test driver selection | |
KR101688632B1 (ko) | 라이브러리 적재 탐지를 위한 방법 및 장치 | |
CN113688384A (zh) | 程序的检测方法、装置、电子设备和介质 | |
CN114021115A (zh) | 恶意应用程序的检测方法、装置、存储介质及处理器 | |
CN113129004A (zh) | 交易安全性检测方法及装置 | |
CN108647516B (zh) | 一种防御漏洞非法提权方法及装置 | |
US20140189449A1 (en) | Method and system for checking software | |
US20170171224A1 (en) | Method and System for Determining Initial Execution of an Attack | |
CN115033869A (zh) | 一种文件防卸载方法及装置 | |
US20220237290A1 (en) | Systems and methods for malware detection | |
CN111897559B (zh) | 热更新代码检测方法、装置、电子设备及存储介质 | |
CN110765493B (zh) | 一种基于Linux预链接的文件基线防御方法、装置及存储设备 | |
CN113569240A (zh) | 恶意软件的检测方法、装置及设备 | |
CN106971112B (zh) | 文件读写方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |