WO2014071867A1 - 程序处理方法和系统,用于程序处理的客户端和服务器 - Google Patents

程序处理方法和系统,用于程序处理的客户端和服务器 Download PDF

Info

Publication number
WO2014071867A1
WO2014071867A1 PCT/CN2013/086777 CN2013086777W WO2014071867A1 WO 2014071867 A1 WO2014071867 A1 WO 2014071867A1 CN 2013086777 W CN2013086777 W CN 2013086777W WO 2014071867 A1 WO2014071867 A1 WO 2014071867A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
file
information
executed
level
Prior art date
Application number
PCT/CN2013/086777
Other languages
English (en)
French (fr)
Inventor
张晓霖
郑文彬
Original Assignee
北京奇虎科技有限公司
奇智软件(北京)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京奇虎科技有限公司, 奇智软件(北京)有限公司 filed Critical 北京奇虎科技有限公司
Publication of WO2014071867A1 publication Critical patent/WO2014071867A1/zh

Links

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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Definitions

  • the present application relates to the technical field of computer and network security, and in particular to a program processing method, a program processing system, a client for program processing, a server for program processing, a computer program and A computer readable medium. Background technique
  • a malicious program is a general term that refers to any software program that is deliberately created to perform unauthorized and often harmful behavior.
  • script viruses batch, windows shell, java, etc.
  • Trojans crime software
  • spyware and adware etc.
  • malicious programs There are some examples that can be called malicious programs.
  • Active defense technology is a real-time protection technology based on the behavior of the program for independent analysis and judgment. It starts from the most primitive definition and directly uses the behavior of the program as the basis for judging the malicious program, and then derives it by using the feature database locally and setting it locally. The behavior threshold and the local heuristic anti-virus method to discriminate and intercept the behavior of the malicious program, so as to achieve the purpose of protecting the client device to a certain extent.
  • the active defense technology only detects the program's exe file, not the dynamic link library (DLL) file loaded by the program. Therefore, some malicious programs take advantage of this, using DLL hijacking technology to package the malicious program's DLL file with a trusted whitelist of programs (such as the operating system's own program), when the user chooses to execute the whitelist. In the program, the DLL file of the malicious program is loaded, so that the active defense technology cannot successfully intercept the malicious program.
  • a program processing method including:
  • a program processing method including: receiving feature information of a to-be-executed program uploaded by a client, where the feature information of the to-be-executed program is when the client detects a process to be executed Obtain
  • the client is configured to determine, according to the matching result, whether the to-be-executed program has a hijacked DLL file.
  • a program processing system including a client and a server, where
  • Clients include:
  • a feature information acquiring module configured to acquire feature information of the to-be-executed program when detecting a process to be executed
  • a feature information uploading module configured to upload feature information of the to-be-executed program to a server
  • the server includes:
  • a matching module configured to match the feature information of the to-be-executed program with a preset cloud identification condition to obtain a matching result
  • the client also includes: And a determining module, configured to receive a matching result returned by the server, and determine, according to the matching result, whether the to-be-executed program has a hijacked DLL file.
  • a client for program processing is provided, the client is in communication with a server, and the server is configured to set feature information of a program to be executed uploaded by the client with a preset
  • the cloud authentication conditions are matched to obtain a matching result
  • the client includes:
  • a feature information acquiring module configured to acquire feature information of the to-be-executed program when detecting a process to be executed
  • a feature information uploading module configured to upload feature information of the to-be-executed program to a server
  • a determining module configured to receive a matching result returned by the server, and determine, according to the matching result, whether the to-be-executed program has a hijacked DLL file.
  • a server for program processing is provided, the server is in communication with a client, and the client is configured to determine, according to a matching result returned by the server, whether the to-be-executed program exists
  • the hijacked DLL file includes:
  • the feature information receiving module is configured to receive feature information of the to-be-executed program uploaded by the client, where the feature information of the to-be-executed program is obtained when the client detects the process to be executed by the client;
  • a matching module configured to match the feature information of the to-be-executed program with a preset cloud identification condition to obtain a matching result
  • the matching result sending module is configured to send the matching result to the client.
  • a computer program comprising computer readable code, when said computer readable code is run on a terminal device, causing said terminal device to perform according to claims 1 to 16
  • a computer readable medium storing the computer program according to claim 30 is provided.
  • the program processing method and system can detect the to-be-executed program creation process Checking whether the to-be-executed program has a hijacked DLL file by using a cloud authentication condition preset by the server. If the to-be-executed program has a hijacked DLL file, the hijacked DLL file is checked and killed by the server. Then, the corresponding operation is performed on the to-be-executed program according to the server killing result. Therefore, the problem that the malicious program uses the program in the trusted whitelist to load the malicious DLL file and the active defense cannot intercept the malicious program is solved, and the beneficial effect of intercepting the malicious program more effectively is obtained.
  • the cloud authentication condition of the present application is saved in the server.
  • the upgrade condition is met, the entire network can be upgraded immediately, the upgrade speed is fast, and the client upgrade file is not required to be effective, and the malicious program is very good for sudden malicious programs. Intercept the effect to avoid user losses.
  • FIG. 1 is a flow chart schematically showing a program processing method according to an embodiment of the present application
  • FIG. 2 is a flow chart schematically showing a program processing method according to an embodiment of the present application
  • FIG. 3 is a schematic diagram showing A flowchart of a program processing method of an embodiment of the present application
  • FIG. 4 is a schematic diagram showing a cloud authentication condition according to an embodiment of the present application
  • FIG. 5 is a schematic diagram showing program processing according to an embodiment of the present application.
  • the structural block diagram of the system ;
  • FIG. 6 is a block diagram showing the structure of a program processing system according to an embodiment of the present application.
  • FIG. 7 is a block diagram schematically showing a structure of a client for program processing according to an embodiment of the present application
  • FIG. 8 is a block diagram schematically showing a structure of a server for program processing according to an embodiment of the present application
  • FIG. 7 is a block diagram schematically showing a structure of a client for program processing according to an embodiment of the present application
  • FIG. 8 is a block diagram schematically showing a structure of a server for program processing according to an embodiment of the present application
  • FIG. 8 is a block diagram schematically showing a structure of a server for program processing according to an embodiment of the present application
  • Figure 9 is a block diagram schematically showing a terminal device for executing a program processing method according to the present application.
  • Fig. 10 schematically shows a storage unit for holding or carrying program code implementing the program processing method according to the present application. detailed description
  • the application can be applied to a computer system/server that can operate with numerous other general purpose or special computing system environments or configurations.
  • Examples of well-known computing systems, environments, and/or configurations configured for use with a computer system/server include, but are not limited to: a personal computer system, a server computer system, a client, a thick client, a handheld or a laptop, based on Microprocessor systems, set-top boxes, programmable consumer electronics, networked personal computers, small computer systems, large computer systems, and distributed cloud computing technology environments including any of the above, and the like.
  • the computer system/server can be described in the general context of computer system executable instructions (such as program modules) executed by the computer system.
  • program modules may include routines, programs, target programs, components, logic, data structures, and the like that perform particular tasks or implement particular abstract data types.
  • the computer system/server can be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communication network.
  • program modules may be located on a local or remote computing system storage medium including storage devices.
  • the method may specifically include:
  • Step S101 When detecting a to-be-executed program creation process, acquiring feature information of the to-be-executed program.
  • Step S102 Upload the feature information of the to-be-executed program to the server, and the server matches the feature information of the to-be-executed program with a preset cloud authentication condition to obtain a matching result.
  • Step S103 Receive a matching result returned by the server, and determine, according to the matching result, whether the to-be-executed program has a hijacked DLL file.
  • the cloud authentication condition in the server can be used to detect whether the program to be executed has a hijacked DLL file, and the program can be processed by the detection result. If it is detected that the to-be-executed program has a hijacked DLL file, the DLL file that is hijacked may be subsequently checked and killed by the server, and then the corresponding operation is performed on the to-be-executed program according to the server killing result.
  • Embodiment 2 Embodiment 2:
  • FIG. 2 a flow diagram of a method of program processing in accordance with one embodiment of the present application is shown.
  • active defense technology is generally used to kill malicious programs.
  • Active defense technology is a real-time protection technology based on the behavior of the program for independent analysis and judgment.
  • the key points of the system are protected by setting intercept points at key points in the system.
  • a program performs behaviors that modify these key locations (such as writing to the registry, creating a scheduled task, modifying the browser's home page, modifying the default browser, and registering a browser plug-in)
  • the program is intercepted and intercepted. It is necessary to judge whether the modification behavior is malicious.
  • the judgment of the behavior is realized by judging whether the procedure for executing the modification behavior is safe. If the program is malicious, the modification behavior is malicious, because This needs to intercept the execution of the program.
  • proactive defense technology checks the program's files to check program security.
  • you need to calculate the hash value of the file you also need to access the network.
  • the embodiment of the present application provides a program processing method. Specifically, the program processing method includes the following steps:
  • Step S201 When detecting the to-be-executed program creation process, check whether the to-be-executed program has a hijacked DLL file by using a cloud authentication condition preset by the server.
  • the step S201 is a process of checking whether the to-be-executed program has a DLL file that is hijacked.
  • the step S201 may include the step S101-S103 in the first embodiment. .
  • Step S202 if yes, killing the hijacked DLL file by the server.
  • Step S203 Perform a corresponding operation on the to-be-executed program according to the server killing result.
  • FIG. 3 a flowchart of a program processing method according to an embodiment of the present application is shown, where the method includes:
  • Step S301 When detecting the to-be-executed program creation process, check whether the to-be-executed program has a hijacked DLL file by using a cloud authentication condition preset by the server.
  • the embodiment of the present application mainly increases the query process of the DLL file when the program creation process is to be executed, and needs to check whether the to-be-executed program has a hijacked DLL file. If it exists, the executable program may be exploited by a malicious program. Therefore, it is necessary to further check whether these hijacked DLL files are safe.
  • the cloud authentication condition is stored in the server, and the cloud authentication condition includes a plurality of specific program matching conditions and specific DLL file information that needs to be checked after the specific program matching condition is met.
  • some feature information of the program to be executed is The cloud authentication conditions are matched, and then judged according to the matching result. For the specific matching process, it is executed in the server.
  • the step S301 can include the following sub-steps:
  • Sub-step al obtaining feature information of the program to be executed.
  • the feature information of the to-be-executed program may include at least one of the following information: file name information, file size information, file feature value information, file icon information, product name information, internal name information, and original file name of the program to be executed. Information, as well as command line information, process path information, and parent process path information for processes that are to be executed by the program.
  • the feature information of the to-be-executed program may further include other information, which is not limited in this embodiment.
  • Sub-step a2 uploading the feature information of the to-be-executed program to the server.
  • the embodiment needs to check the to-be-executed program by using a cloud identification condition set in advance. Whether there is a hijacked DLL file, the cloud authentication condition is stored in the server. Therefore, after acquiring the feature information of the to-be-executed program, the feature information needs to be uploaded to the server, and the server distinguishes the feature information of the to-be-executed program from the cloud. Conditions are matched.
  • Sub-step a3 matching the feature information of the to-be-executed program with the cloud-authentication condition by the server, obtaining the DLL file information that the to-be-executed program needs to check, and using the DLL file information that needs to be checked as a matching result;
  • the cloud authentication condition a plurality of specific program matching conditions and specific DLL file information that need to be checked after the specific program matching condition is met are included.
  • the feature information of the to-be-executed program may be specific to The program matching conditions are matched to obtain the DLL file information to be checked.
  • the specific program matching condition may also include some information corresponding to the feature information of the program, and the information to be executed can be found through the information.
  • the feature information matches the specific program matching criteria.
  • the specific program matching condition may include at least one of the following information:
  • File name information file size information, file feature value information, file icon information, product name information, internal name information, original file name information, and command line information of the process, process path information, and parent process path information.
  • the specific program matching condition may also include other information, which is not limited in this embodiment.
  • the process of matching conditions for a specific program by the server may include:
  • FIG. 4 it is a schematic diagram of a cloud authentication condition according to an embodiment of the present application.
  • the cloud identification condition includes two parts, a condition and a return value, wherein the condition one column contains a plurality of expressions, which are the specific program matching conditions described in the embodiment of the present application.
  • the return value column contains multiple strings that specify the specific DLL file information that needs to be checked after satisfying the corresponding specific program matching criteria.
  • the product name information (hi.GEN), file size information (hi.DSI), internal name information (hi.ITN), original file name information (hi.ORN), and process path information may be included in the expression of the condition column.
  • hi.DST a parent process path information
  • hi.SRC process command line information
  • hi.CLE process command line information
  • the specific DLL file information that needs to be checked after the corresponding specific program matching condition is satisfied is specified.
  • the DLL file information may be the name of the DLL file.
  • obtaining the feature information of the current to-be-executed program is the product name information "Jinshan Reloading Master", and then matching the product name information with the cloud authentication condition, and after judging, the specific program matching condition "(hi.GEN: Like, Jinshan reloading master) is a condition that matches the product name information "Jinshan reloading master", so the return value corresponding to the condition can be "return- extinfo: ⁇ hips>DLL: kdump.dll,irrlicht In dll ⁇ /hips> ), get the names of the DLL files that need to be checked as “kdump.dll” and "irrlicht.dll".
  • the cloud authentication condition in this embodiment may further include other information, such as whether it is valid, the condition serial number, the application ratio, etc., and the corresponding processing may be performed by a person skilled in the art according to the actual situation. There are no restrictions.
  • Sub-step a4 receiving the DLL file information that the to-be-executed program issued by the server needs to check.
  • the server After the server obtains the DLL file information to be checked by the to-be-executed program according to the cloud authentication condition, the server needs to send the DLL file information to be checked to the client, and then the client further determines the DLL file information that needs to be checked. , to determine the pending execution The program was hijacked by the DLL file.
  • Sub-step a5 determining whether the DLL file information to be checked exists in the specified directory, and if yes, determining that the to-be-executed program has a hijacked DLL file.
  • DLL files are stored in the system directory. If some DLL files need to be called during program execution, these DLL files are stored in the specified directory, so the DLL file stored in the specified directory is the program. Call the DLL file.
  • the specified directory may be the current directory or a specified relative directory.
  • the client after receiving the information of the DLL file to be checked by the server to be executed by the server, the client needs to further determine whether the DLL file information to be checked exists in the specified directory. If the DLL file information to be checked exists in the specified directory, indicating that the to-be-executed program has a hijacked DLL file, and the hijacked DLL file is a DLL file existing in the specified directory, the hijacked need to be hijacked. The DLL file is checked and killed; if the DLL file information to be checked does not exist in the specified directory, it means that the DLL files are not loaded by the program to be executed, so there is no need to check and kill them.
  • DLL file information to be executed by the server to be executed by the server is DLL file names "kdump.dll" and "irrlicht.dll", it is judged whether these DLLs exist in the specified directory. file name.
  • the DLL file "kdump.dll” is used as the DLL file to be hijacked by the program to be executed.
  • the sub-step a1 in the embodiment is the specific process of the step S101 in the first embodiment
  • the sub-step a2-sub-step a3 is the step S102 in the first embodiment
  • the specific process, sub-step a4 - sub-step a5 is the specific process of step S103 in the first embodiment, and the embodiment is not discussed in detail herein.
  • Step S302 Obtain an EXE file corresponding to the to-be-executed program.
  • Step S303 If the DLL file information to be checked exists in the specified directory, upload the information of the EXE file corresponding to the to-be-executed program and the information of the hijacked DLL file to the server.
  • the information of the uploaded file may include information such as a hash value of the file, a file path, and the like, which is not limited by the embodiment of the present application.
  • the existing active defense only checks the EXE file of the program without checking the DLL file of the program, if the malicious program uses the program in the trusted whitelist to load the malicious DLL file, the malicious program can bypass the active defense. Intercepted and successfully executed.
  • the embodiment of the present application proposes not only checking the EXE file of the program, but also checking the DLL file of the program, but not checking all the DLL files, but determining that the program is being matched by matching with the cloud authentication condition. Hijack the DLL files and then kill the hijacked DLL files.
  • the process of checking and killing the file is performed by the server. Therefore, if it is determined in step S201 that there is a hijacked DLL file in the to-be-executed program, and the hijacked DLL file is determined, the to-be-executed is executed.
  • the information of the EXE file corresponding to the program and the information of the hijacked DLL file are uploaded to the server, and the files are checked and killed by the server; if it is determined that the DLL file to be hijacked does not exist in the to-be-executed program, the The execution program is not used by the malicious program. In this case, only the information of the EXE file corresponding to the program to be executed needs to be uploaded to the server.
  • step S301 if it is determined in step S301 that the DLL file to be executed is "kdump.dll", the information of the DLL file "kdump.dll" and the product name information are corresponding to the program to be executed of "Jinshan Reloading Master". The information of the EXE file is uploaded to the server.
  • Step S304 the hijacked DLL file is checked and killed by the server.
  • the server After receiving the information of the EXE file corresponding to the program to be executed uploaded by the client and the information of the hijacked DLL file, the server checks and kills the corresponding file according to the file information.
  • the step S304 may specifically include:
  • Sub-step bl the level of the EXE file and the level of the hijacked DLL file are obtained by the server.
  • the level includes a security level, an unknown level, a suspicious/high suspicious level, and a malicious level.
  • level setting you can set the level to 10-29 for safety, etc.
  • Level (the file of this level is white file), the level is 30-49 is unknown level (the file of this level is gray file), the level is 50-69 is suspicious/high suspicious level (the file of this level is suspicious file) ), when the level is greater than or equal to 70, it is a malicious level (the file of this level is a malicious file).
  • the level can also be set to other forms, which is not limited in this application.
  • Sub-step b2 the hijacked DLL file is checked and killed according to the level of the EXE file and the level of the hijacked DLL file.
  • the EXE file and the hijacked DLL file may be performed by a cloud killing engine for checking a Portable Execute (PE) type file, or a Qihoo Virtual Machine (QVM). Kill and kill.
  • PE Portable Execute
  • QVM Qihoo Virtual Machine
  • kill the PE type file usually refers to the program file on the Windows operating system
  • the common PE type files include EXE, DLL, OCX, SYS, COM and other types of files.
  • the anti-virus engine can check and kill the corresponding files according to the recognition result of the file level according to the blacklist and/or white list saved in the anti-virus engine.
  • Step S305 Perform a corresponding operation on the to-be-executed program according to the server killing result.
  • the server After obtaining the level of the EXE file and the hijacked DLL file, the server sends the obtained level to the client, and the client performs the corresponding operation on the to-be-executed program according to the server killing result.
  • step S305 can include the following sub-steps:
  • Sub-step cl intercepting execution of the to-be-executed program when at least one of the level of the EXE file and the level of the hijacked DLL file is a malicious level.
  • the hijacked DLL file is one or more. If the level of the obtained EXE file and the level of the hijacked DLL file are malicious, the program to be executed is risky. At this time, it is necessary to intercept the execution of the program to be executed.
  • Sub-step c2 when the level of the EXE file and the level of the hijacked DLL file are both security levels, the execution of the program to be executed is allowed.
  • Sub-step c3 when the level of the EXE file and the level of the hijacked DLL file There is no malicious level, and when at least one hijacked DLL file is higher in level than the EXE file, the highest level is obtained, the level of the EXE file is modified to the highest level, and the waiting is allowed. Execute the execution of the program and intercept suspicious operations initiated after the execution of the program.
  • the level of the EXE file and the level of the hijacked DLL file do not satisfy the two cases in the above sub-step cl and sub-step c2, the level of the EXE file is modified to the highest level, and the program to be executed may be allowed. Execution, at this time, because the EXE file of the program to be executed may also be at risk, when the suspicious operation is initiated after the execution of the program to be executed, these suspicious operations can be intercepted.
  • step S301 it is determined that the DLL file to be executed by the program is "kdump.dll", and the level of the EXE file obtained by the server to be executed is a security level, and the level of "kdump.dll" is suspicious/height.
  • the suspicious level where the highest file level is suspicious/high suspicious level, at this time, the level of the EXE file is changed to a suspicious/high suspicious level.
  • the level of the EXE file is modified, when the pending program executes some suspicious operation, it can be judged whether the program is safe by the level of the EXE file. If the EXE file is suspicious, then these can be Suspicious operations are intercepted.
  • suspicious operations can be any of the following: file operations, registry operations, process operations, and network operations.
  • the file operation may be a file related to the Windows operating system, or some applications with a relatively large load (such as qq, Aliwangwang, etc.), or a shortcut to the desktop;
  • the operation of the registry can be that the program is written to the registry to automatically load, and the registry is destroyed;
  • process operations you can inject processes between each other (one process inserts and executes some code in another process), processes far-thread operations, and ends processes (for example, some malicious programs end the QQ process, re-login will intercept the password, or Some operations subsequent to the process), etc.; for network operations can be to install drivers or services, global hook injection, record keyboard operations, Modify the content of the webpage in the browser, etc.
  • this embodiment mainly deals with the situation that a malicious program loads a malicious DLL file by using a program in a trusted white list. Therefore, the level of the EXE file should be a security level, if the level of the DLL file is higher than The level of the EXE file, the level of the EXE file is modified.
  • Step S306 the server periodically detects whether the cloud authentication condition meets the upgrade condition. If yes, the server acquires a new authentication condition, and completes the upgrade update of the cloud authentication condition by reloading the new authentication condition.
  • the cloud authentication condition in this embodiment needs to be updated periodically.
  • the server may be configured with an upgrade condition, and the server periodically detects whether the cloud authentication condition meets the upgrade condition. When the server meets the condition, the server directly acquires a new cloud authentication condition, and replaces the original cloud authentication condition with the new cloud authentication condition. In order to upgrade the original cloud authentication conditions.
  • the upgrade condition may be determined according to the file version of the local authentication condition, for example, when the updated version is upgraded, or may be specified to be upgraded to a specified version when the local version meets a certain condition, which is not used in the embodiment of the present application. limit.
  • a specific program matching condition may be added to the cloud authentication condition, including the feature information of the program ("QQ" The game ”) and the DLL file information that needs to be checked after satisfying the matching condition of the specific program.
  • the cloud authentication condition can be upgraded and updated in other ways, which is not limited in this embodiment.
  • the cloud authentication condition is saved in the server, when the upgrade condition is met, the client upgrade file does not need to be valid, so the network can be upgraded immediately, the upgrade speed is fast, and the interception malicious program has a good interception effect. , thus avoiding the loss of the user.
  • the embodiment of the present application mainly deals with a situation in which a malicious program loads a malicious DLL file by using a program in a trusted white list. If the program to be executed is a program in the trusted whitelist, then the active defense technology only checks the EXE file of the program, The program is judged to be secure, allowing it to execute, but if the malicious program uses the program in the whitelist to load the malicious DLL file, the malicious program will also execute successfully.
  • the embodiment of the present application checks whether the to-be-executed program has a hijacked DLL file by using a cloud authentication condition preset by the server, if the program to be executed exists
  • the hijacked DLL file is used to check and kill the hijacked DLL file by the server, and then perform corresponding operations on the to-be-executed program according to the server killing result. Therefore, the problem that the malicious program uses the program in the trusted whitelist to load the malicious DLL file and the active defense cannot intercept the malicious program is solved, and the beneficial effect of intercepting the malicious program more effectively is obtained.
  • FIG. 5 a block diagram of a program processing system including a client 501 and a server 502 according to an embodiment of the present application is shown.
  • the client includes: a feature information obtaining module 5011, a feature information uploading module 5012, and a determining module 5013.
  • the server includes: a matching module 5021.
  • the feature information obtaining module 5011 is configured to obtain the feature information of the to-be-executed program when detecting the to-be-executed program creation process;
  • the feature information uploading module 5012 is configured to upload the feature information of the to-be-executed program to the server;
  • the matching module 5021 is configured to match the feature information of the to-be-executed program with a preset cloud authentication condition to obtain a matching result.
  • a determining module 5013 configured to receive a matching result returned by the server, and according to the The matching result determines whether the to-be-executed program has a hijacked DLL file.
  • the cloud authentication condition in the server can be used to detect whether the to-be-executed program has a hijacked DLL file. If it is detected that the to-be-executed program has a hijacked DLL file, the host can then check the hijacked DLL file through the server. Killing, and then performing corresponding operations on the to-be-executed program according to the server killing result. Therefore, it can solve the problem that the malicious program loads the malicious DLL file by using the program in the trusted white list, and the active defense cannot block the malicious program normally, and the malicious program is more effectively intercepted.
  • Embodiment 5 is
  • FIG. 6 there is shown a block diagram of a program processing system including a client 601 and a server 602 according to an embodiment of the present application.
  • the client 601 includes: an inspection module 6011, an EXE file obtaining module 6012, a uploading module 6013, and a processing module 6014.
  • the server 602 includes: a DLL file information obtaining module 6021, a killing module 6022, and an upgrading module 6023.
  • the checking module 6011 is configured to: when detecting the to-be-executed program creation process, check whether the to-be-executed program has a hijacked DLL file by using a cloud authentication condition preset by the server;
  • the foregoing checking module is mainly configured to check whether the to-be-executed program has a DLL file that is hijacked.
  • the function of the checking module may correspond to the feature in the fourth embodiment.
  • the information acquisition module 5011, the feature information uploading module 5022, the matching module 5021, and the determining module 5013 implement functions of several modules.
  • the program to be executed is a program in the whitelist, and the cloud authentication condition is stored in the server.
  • the inspection module 6011 includes:
  • the feature information obtaining module is configured to acquire the feature information of the to-be-executed program; wherein the feature information of the to-be-executed program may include at least one of the following information: file name information, file size information, and file of the to-be-executed program Feature value information, file icon information, product name information, internal name information, original file name information, and pending execution Command line information, process path information, and parent process path information for processes created by the program.
  • the feature information uploading module is configured to upload the feature information of the to-be-executed program to the server.
  • the server 602 includes:
  • the DLL file information obtaining module 6021 is configured to: obtain the DLL file information to be checked by the to-be-executed program by matching the feature information of the to-be-executed program with the cloud authentication condition, and set the DLL file information to be checked. As a match result;
  • the cloud authentication condition includes a plurality of specific program matching conditions and specific DLL file information that needs to be checked after the specific program matching condition is met.
  • the DLL file information obtaining module includes:
  • a matching operation module configured to match feature information of the to-be-executed program with the specific program matching condition
  • the specific program matching condition may include at least one of the following information:
  • File name information file size information, file feature value information, file icon information, product name information, internal name information, original file name information, and command line information of the process, process path information, and parent process path information.
  • a specific DLL file information obtaining module configured to obtain specific DLL file information that needs to be checked after satisfying a matching specific program matching condition
  • the checking module 6011 further includes:
  • a receiving module configured to receive DLL file information that is to be checked by the to-be-executed program delivered by the server
  • a judging module configured to determine whether the DLL file information to be checked exists in the specified directory, if yes, determining that the to-be-executed program has a hijacked DLL file; wherein the hijacked DLL file is in a specified directory
  • the existing DLL file, the specified directory is the current directory or the specified relative directory.
  • the feature information acquisition module in this embodiment The block may be the module included in the feature information obtaining module in the fourth embodiment, and the feature information uploading module may be the module included in the feature information uploading module in the fourth embodiment.
  • the DLL file information acquiring module may be the fourth embodiment.
  • the module included in the matching module, the receiving module and the judging module may be the modules included in the determining module in the above fourth embodiment, and the embodiment is not discussed in detail in J3 ⁇ 4.
  • the client 601 further includes:
  • the file obtaining module 6012 is configured to obtain an EXE file corresponding to the to-be-executed program before the killing module of the server checks and kills the hijacked DLL file;
  • the file information uploading module 6013 is configured to upload the information of the EXE file corresponding to the to-be-executed program and the information of the hijacked DLL file to the server;
  • the server 602 also includes:
  • the killing module 6022 is configured to: when the checking result of the determining module of the client is present, killing the hijacked DLL file;
  • the killing module 6022 includes:
  • a level query module configured to query a level of the EXE file and a level of the hijacked DLL file, the level including a security level, an unknown level, a suspicious/high suspicious level, and a malicious level;
  • the killing processing module is configured to check and kill the hijacked DLL file according to the level of the EXE file and the level of the hijacked DLL file.
  • the client also includes:
  • the processing module 6014 is configured to perform a corresponding operation on the to-be-executed program according to the server killing result;
  • the one of the hijacked DLL files is one or more, and the processing module 6014 includes:
  • a program intercepting module configured to intercept execution of the to-be-executed program when at least one of a level of the EXE file and a level of the hijacked DLL file is a malicious level
  • An execution module configured to allow execution of the to-be-executed program when a level of the EXE file and a level of the hijacked DLL file are both security levels; a suspicious operation intercepting module configured to: when there is no malicious level in the level of the EXE file and the level of the hijacked DLL file, and at least one hijacked DLL file has a higher level than the EXE file, obtain The highest level among them, the level of the EXE file is modified to the highest level, the execution of the program to be executed is allowed, and the suspicious operation initiated after the execution of the program to be executed is intercepted.
  • the suspicious operation may be any one of the following: a file operation, a registry operation, a process operation, and a network operation.
  • the suspicious operation may also be other operations, which are not limited by the embodiment of the present application. .
  • the server 602 also includes:
  • the upgrade module 6023 is configured to periodically detect whether the cloud authentication condition meets an upgrade condition, and if yes, obtain a new authentication condition, and complete an upgrade update of the cloud authentication condition by reloading the new authentication condition;
  • the upgrade condition is configured in the server.
  • the program processing system of the embodiment of the present application may check whether the to-be-executed program has a hijacked DLL file according to the cloud authentication condition, and check and kill the DLL file to be hijacked by the execution program, and then execute the corresponding program according to the server killing result. operating.
  • the cloud authentication condition in the embodiment of the present application is saved in the server.
  • the upgrade condition is met, the client upgrade file does not need to be valid, so the network can be upgraded immediately, and the upgrade speed is fast. For a malicious program. Good interception effect, thus avoiding user losses.
  • the client communicates with a server, and the server is configured to match feature information of the to-be-executed program uploaded by the client with a preset cloud authentication condition to obtain a matching result.
  • the client may include the following modules:
  • the feature information obtaining module 701 is configured to acquire feature information of the to-be-executed program when detecting a to-be-executed program creation process;
  • the feature information uploading module 702 is configured to upload feature information of the to-be-executed program to the server;
  • the determining module 703 is configured to receive the matching result returned by the server, and determine, according to the matching result, whether the to-be-executed program has a hijacked DLL file.
  • the client may further include the following modules:
  • a DLL file information uploading module configured to upload information of the hijacked DLL file to a server when a DLL file is hijacked, in which case the server is further configured to use the hijacked DLL The file is checked and returned and the result of the killing is returned;
  • the client may further include:
  • the processing module is configured to perform a corresponding operation on the to-be-executed program according to the killing result returned by the server.
  • the matching result may be DLL file information that needs to be checked by the to-be-executed program; in this case, the determining module 703 may specifically include the following modules:
  • a judging module configured to determine whether the DLL file information to be checked by the to-be-executed program exists in the specified directory, if yes, determining that the to-be-executed program has a hijacked DLL file; wherein the hijacked DLL file is Specifies the DLL file existing in the directory, and the specified directory is the current directory or the specified relative directory.
  • the cloud authentication condition may include a plurality of specific program matching conditions and specific DLL file information that needs to be checked after the specific program matching condition is met.
  • the specific program matching condition may include at least one of the following information: file name information, file size information, file feature value information, file icon information, and production Product name information, internal name information, original file name information, and command line information of the process, process path information, and parent process path information;
  • the feature information of the to-be-executed program may include at least one of the following information: file name information, file size information, file feature value information, file icon information, product name information, internal name information, and original file name of the program to be executed. Information, as well as command line information, process path information, and parent process path information for processes that are to be executed by the program.
  • the client may further include the following modules:
  • the EXE file obtaining module is configured to acquire an EXE file corresponding to the to-be-executed program before uploading the hijacked DLL file to the server;
  • the EXE file information uploading module is configured to upload information of the EXE file corresponding to the to-be-executed program to the server.
  • the hijacked DLL file may be one or more; in this case, the processing module includes:
  • a program intercepting module configured to intercept execution of the to-be-executed program when at least one of a level of the EXE file and a level of the hijacked DLL file is a malicious level
  • An execution module configured to allow execution of the to-be-executed program when a level of the EXE file and a level of the hijacked DLL file are both security levels;
  • a suspicious operation intercepting module configured to have no malicious level in a level of the EXE file and a level of the hijacked DLL file, and at least one hijacked DLL file is higher in level than the EXE file The highest level among them, the level of the EXE file is modified to the highest level, the execution of the program to be executed is allowed, and the suspicious operation initiated after the execution of the program to be executed is intercepted.
  • the suspicious operation may be any one of the following: file operations, registry operations, process operations, and network operations.
  • the to-be-executed program may be a program in a whitelist.
  • Example 7 For the above embodiment of the client for program processing, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant places are shown in FIG. 1, FIG. 2 and FIG. A part of the description of the method embodiment is sufficient.
  • Example 7
  • FIG. 8 a structural block diagram of a server for program processing according to an embodiment of the present application is shown.
  • the server communicates with a client, and the client is configured to return according to the server.
  • the matching result determines whether the to-be-executed program has a hijacked DLL file, and the server may include:
  • the feature information receiving module 801 is configured to receive feature information of the to-be-executed program uploaded by the client, where the feature information of the to-be-executed program is obtained when the client detects the process to be executed.
  • the matching module 802 is configured to match the feature information of the to-be-executed program with a preset cloud authentication condition to obtain a matching result.
  • the matching result sending module 803 is configured to send the matching result to the client.
  • the server may further include: an upgrade module, configured to periodically detect whether the cloud authentication condition meets an upgrade condition, and if yes, acquire a new authentication condition, and reload The new authentication condition completes an upgrade update of the cloud authentication condition; wherein the upgrade condition is configured in a server.
  • the cloud authentication condition may be stored in a server.
  • the cloud authentication condition may include a plurality of specific program matching conditions and specific DLL file information that needs to be checked after satisfying the specific program matching condition;
  • the matching module 802 can include the following modules:
  • a matching operation module configured to match feature information of the to-be-executed program with the specific program matching condition
  • a specific DLL file information obtaining module configured to obtain specific DLL file information that needs to be checked after satisfying a matching specific program matching condition
  • the server may further include:
  • a DLL file information receiving module configured to receive information of the hijacked DLL file uploaded by the client
  • a killing module configured to perform a killing of the hijacked DLL file and return a killing result; the client is further configured to perform a corresponding operation on the to-be-executed program according to the killing result returned by the server .
  • the server may further include the following modules:
  • the EXE file information receiving module is configured to receive the information of the EXE file corresponding to the to-be-executed program uploaded by the client before the hijacked DLL file is checked and returned and the killing result is returned.
  • the killing module of the server may include the following modules:
  • a level query module configured to obtain a level of the EXE file and a level of the hijacked DLL file, the level including a security level, an unknown level, a suspicious/high suspicious level, and a malicious level;
  • the killing processing module is configured to check and kill the hijacked DLL file according to the level of the EXE file and the level of the hijacked DLL file;
  • the result is returned to the module, configured to return the kill result.
  • any combination of the above various embodiments is possible, and therefore any combination between the above embodiments is an embodiment of the present application, but due to space limitations, the present specification is hereby No - detailed.
  • the various component embodiments of the present application can be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof.
  • a microprocessor or digital signal processor may be used in practice to implement some or all of the functionality of some or all of the components of the browser device in accordance with embodiments of the present application.
  • the application can also be implemented as a device or device program (e.g., a computer program and a computer program product) for performing some or all of the methods described herein.
  • Such a program implementing the present application may be stored on a computer readable medium or may be in the form of one or more signals. Such signals may be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.
  • Fig. 9 schematically shows a block diagram of a terminal device for executing a program processing method according to the present application.
  • the terminal device conventionally includes a processor 410 and a computer program product or computer readable medium in the form of a memory 420.
  • the memory 420 may be an electronic memory such as a flash memory, an EEPROM (Electrically Erasable Programmable Read Only Memory), an EPROM, a hard disk, or a ROM.
  • Memory 420 has a memory space 430 for program code 431 for performing any of the method steps described above.
  • storage space 430 for program code may include various program code 431 for implementing various steps in the above methods, respectively. These program code can be read from or written to one or more computer program products.
  • Such computer program products include program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks.
  • Such a computer program product is typically a portable or fixed storage unit as described with reference to Figure 10.
  • the storage unit may have a storage section, a storage space, and the like arranged similarly to the storage 420 in the terminal device of Fig. 9.
  • the program code can be compressed, for example, in an appropriate form.
  • the storage unit comprises computer readable code 43 ⁇ , ie code readable by a processor such as 410, which when executed by the terminal device causes the terminal device to perform each of the methods described above step.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种程序处理方法和系统,以及,一种用于程序处理的客户端和服务器,以解决恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题。其中,所述程序处理方法包括:当检测到待执行程序创建进程时,获取所述待执行程序的特征信息;将所述待执行程序的特征信息上传至服务器,由服务器将所述待执行程序的特征信息与预先设置的云端鉴别条件进行匹配,得到匹配结果;接收所述服务器返回的匹配结果,并依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。本申请实施例能够更加有效地拦截恶意程序。

Description

程序处理方法和系统, 用于程序处理的客户端和服务器 技术领域
本申请涉及计算机及网络安全的技术领域, 特别是涉及一种程序处理 方法、 一种程序处理系统, 一种用于程序处理的客户端, 一种用于程序处 理的服务器, 一种计算机程序及一种计算机可读介质。 背景技术
恶意程序是一个概括性的术语, 指任何故意创建用来执行未经授权并 通常是有害行为的软件程序。 计算机病毒、 后门程序、 键盘记录器、 密码 盗取者、 Word和 Excel宏病毒、 引导区病毒、脚本病毒 (batch, windows shell, java 等)、 木马、 犯罪软件、 间谍软件和广告软件等等, 都是一些 可以称之为恶意程序的例子。
现今全球恶意程序数量呈几何级增长,为了适应恶意程序的更新速度, 以快速地识别和查杀恶意程序, 目前普遍利用主动防御技术查杀恶意程序。 主动防御技术是基于程序的行为进行自主分析判断的实时防护技术, 其从 最原始的定义出发, 直接将程序的行为作为判断恶意程序的依据, 进而衍 生出通过在本地使用特征库、 在本地设置行为阈值以及在本地启发式杀毒 等方式来判别、 拦截恶意程序的行为, 从而在一定程度上达到保护客户端 设备的目的。
但是, 为了尽可能减小对程序性能的影响, 主动防御技术只对程序的 exe文件进行检测,而不检查程序加载的动态链接库( Dynamic Link Library, DLL ) 文件。 因此, 一些恶意程序就利用这一点, 通过 DLL劫持技术将该 恶意程序的 DLL文件与可信任的白名单中的程序(例如操作系统自带的程 序) 打包在一起, 当用户选择执行该白名单中的程序时, 其中的恶意程序 的 DLL文件就会被加载, 从而使主动防御技术不能成功拦截该恶意程序。 发明内容
鉴于上述问题, 提出了本申请以便提供一种克服上述问题或者至少部 分地解决上述问题的程序处理方法和相应的程序处理系统, 一种用于程序 处理的客户端和相应的服务器, 一种计算机程序, 以及一种计算机可读介 质。 依据本申请的一个方面, 提供了一种程序处理方法, 包括:
当检测到待执行程序创建进程时, 获取所述待执行程序的特征信息; 将所述待执行程序的特征信息上传至服务器, 所述服务器用于将所述 待执行程序的特征信息与预先设置的云端鉴别条件进行匹配, 得到匹配结 果;
接收所述服务器返回的匹配结果, 并依据所述匹配结果确定所述待执 行程序是否存在被劫持的 DLL文件。
依据本申请的另一个方面, 提供了一种程序处理方法, 包括: 接收客户端上传的待执行程序的特征信息, 所述待执行程序的特征信 息为客户端在检测到待执行程序创建进程时获得;
将所述待执行程序的特征信息与预先设置的云端鉴别条件进行匹配, 得到匹配结果;
将所述匹配结果发送给所述客户端, 所述客户端用于依据所述匹配结 果确定所述待执行程序是否存在被劫持的 DLL文件。
依据本申请的另一个方面, 提供了一种程序处理系统, 包括客户端和 服务器, 其中,
客户端包括:
特征信息获取模块, 配置为在检测到待执行程序创建进程时, 获取所 述待执行程序的特征信息;
特征信息上传模块, 配置为将所述待执行程序的特征信息上传至服务 器;
所述服务器包括:
匹配模块, 配置为将所述待执行程序的特征信息与预先设置的云端鉴 别条件进行匹配, 得到匹配结果;
所述客户端还包括: 确定模块, 配置为接收所述服务器返回的匹配结果, 并依据所述匹配 结果确定所述待执行程序是否存在被劫持的 DLL文件。
依据本申请的另一个方面, 提供了一种用于程序处理的客户端, 所述 客户端与服务器通信, 所述服务器用于将所述客户端上传的待执行程序的 特征信息与预先设置的云端鉴别条件进行匹配, 得到匹配结果, 所述客户 端包括:
特征信息获取模块, 配置为在检测到待执行程序创建进程时, 获取所 述待执行程序的特征信息;
特征信息上传模块, 配置为将所述待执行程序的特征信息上传至服务 器;
确定模块, 配置为接收所述服务器返回的匹配结果, 并依据所述匹配 结果确定所述待执行程序是否存在被劫持的 DLL文件。
依据本申请的另一个方面, 提供了一种用于程序处理的服务器, 所述 服务器与客户端通信, 所述客户端用于依据所述服务器返回的匹配结果确 定所述待执行程序是否存在被劫持的 DLL文件, 所述服务器包括:
特征信息接收模块, 用于接收客户端上传的待执行程序的特征信息, 所述待执行程序的特征信息为客户端在检测到待执行程序创建进程时获 付;
匹配模块, 配置为将所述待执行程序的特征信息与预先设置的云端鉴 别条件进行匹配, 得到匹配结果;
匹配结果发送模块, 配置为将所述匹配结果发送给所述客户端。
根据本申请的又一个方面, 提供了一种计算机程序, 其包括计算机可 读代码, 当所述计算机可读代码在终端设备上运行时, 导致所述终端设备 执行根据权利要求 1〜16中的任一项所述的程序处理方法。
根据本申请的再一个方面, 提供了一种计算机可读介质, 其中存储了 如权利要求 30所述的计算机程序。
本申请的有益效果为:
根据本申请的程序处理方法和系统可以在检测到待执行程序创建进程 时, 通过服务器预先设置的云端鉴别条件检查所述待执行程序是否存在被 劫持的 DLL文件, 如果待执行程序存在被劫持的 DLL文件, 则通过服务 器对所述被劫持的 DLL文件进行查杀, 然后依据服务器查杀结果对所述待 执行程序执行相应的操作。 由此解决了恶意程序利用可信的白名单中的程 序加载恶意 DLL文件而导致主动防御无法正常拦截恶意程序的问题, 取得 了更加有效地拦截恶意程序的有益效果。
其次, 本申请的云端鉴别条件保存在服务器中, 当满足升级条件时, 可以立刻全网升级, 升级速度较快, 不需要客户端升级文件即可生效, 对 于突发的恶意程序有很好的拦截效果, 从而避免用户的损失。
上述说明仅是本申请技术方案的概述, 为了能够更清楚了解本申请的 技术手段, 而可依照说明书的内容予以实施, 并且为了让本申请的上述和 其它目的、 特征和优点能够更明显易懂, 以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对于 本领域普通技术人员将变得清楚明了。 附图仅设置为示出优选实施方式的 目的, 而并不认为是对本申请的限制。 而且在整个附图中, 用相同的参考 符号表示相同的部件。 在附图中:
图 1示意性示出了根据本申请一个实施例的程序处理方法的流程图; 图 2示意性示出了根据本申请一个实施例的程序处理方法的流程图; 图 3示意性示出了根据本申请一个实施例的程序处理方法的流程图; 图 4示意性示出了根据本申请实施例所述的云端鉴别条件的示意图; 图 5 示意性示出了根据本申请一个实施例的程序处理系统的结构框 图;
图 6 示意性示出了根据本申请一个实施例的程序处理系统的结构框 图;
图 7示意性示出了根据本申请一个实施例的用于程序处理的客户端的 结构框图; 图 8示意性示出了根据本申请一个实施例的用于程序处理的服务器的 结构框图;
图 9示意性地示出了用于执行根据本申请的程序处理方法的终端设备 的框图;
图 10示意性地示出了用于保持或者携带实现根据本申请的程序处理方 法的程序代码的存储单元。 具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。 虽然附图中显 示了本公开的示例性实施例, 然而应当理解, 可以以各种形式实现本公开 而不应被这里阐述的实施例所限制。 相反, 提供这些实施例是为了能够更 透彻地理解本公开, 并且能够将本公开的范围完整的传达给本领域的技术 人员。
本申请可以应用于计算机系统 /服务器, 其可与众多其它通用或专用计 算系统环境或配置一起操作。 配置为与计算机系统 /服务器一起使用的众所 周知的计算系统、 环境和 /或配置的例子包括但不限于: 个人计算机系统、 服务器计算机系统、 痩客户机、 厚客户机、 手持或膝上设备、 基于微处理 器的系统、 机顶盒、 可编程消费电子产品、 网络个人电脑、 小型计算机系 统、 大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统 /服务器可以在由计算机系统执行的计算机系统可执行指 令 (诸如程序模块) 的一般语境下描述。 通常, 程序模块可以包括例程、 程序、 目标程序、 组件、 逻辑、 数据结构等等, 它们执行特定的任务或者 实现特定的抽象数据类型。 计算机系统 /服务器可以在分布式云计算环境中 实施, 分布式云计算环境中, 任务是由通过通信网络链接的远程处理设备 执行的。 在分布式云计算环境中, 程序模块可以位于包括存储设备的本地 或远程计算系统存储介质上。 实施例一:
参照图 1 , 示出了根据本申请一个实施例的程序处理方法的流程图, 该方法具体可以包括:
步骤 S101 , 当检测到待执行程序创建进程时, 获取所述待执行程序的 特征信息。
步骤 S102, 将所述待执行程序的特征信息上传至服务器, 由服务器将 所述待执行程序的特征信息与预先设置的云端鉴别条件进行匹配, 得到匹 配结果。
步骤 S103 , 接收所述服务器返回的匹配结果, 并依据所述匹配结果确 定所述待执行程序是否存在被劫持的 DLL文件。 详细介绍。
通过上述步骤 S101-步骤 S103可以利用服务器中的云端鉴别条件检测 待执行程序是否存在被劫持的 DLL文件, 后续可以通过检测结果对待执行 程序进行处理。 如果检测到待执行程序存在被劫持的 DLL文件, 则后续可 以通过服务器对被劫持的 DLL文件进行查杀, 然后依据服务器查杀结果对 所述待执行程序执行相应的操作。 由此解决了恶意程序利用可信的白名单 中的程序加载恶意 DLL 文件而导致主动防御无法正常拦截恶意程序的问 题, 能够更加有效地拦截恶意程序。 实施例二:
参照图 2, 示出了根据本申请一个实施例的程序处理方法的流程图。 为了适应恶意程序的更新速度, 以快速地识别和查杀恶意程序, 目前 普遍利用主动防御技术查杀恶意程序。 主动防御技术是基于程序的行为进 行自主分析判断的实时防护技术, 通过在系统的关键位置设置拦截点对系 统的关键位置进行保护。 当有程序执行修改这些关键位置的行为 (例如写 入注册表、 创建计划任务、 修改浏览器首页、 修改默认浏览器和注册浏览 器插件等行为) 时, 就会对该程序进行拦截, 拦截后需要判断此次修改行 为是否为恶意的, 通常对行为的判断是通过判断执行此次修改行为的程序 是否安全来实现的, 如果程序是恶意的, 则说明该修改行为是恶意的, 因 此需要拦截该程序的执行。
一般来说, 主动防御技术通过对程序的文件进行检查, 以检测程序的 安全性。 但是在检查程序文件时, 需要计算文件的哈希值, 还需要访问网 络, 这些都是比较耗费时间的操作, 并且一般的程序会加载几十个甚至上 百个 DLL文件, 即使使用緩存技术进行优化, 还是会明显延长程序的启动 时间。 因此, 为了尽可能减小对程序性能的影响, 主动防御技术只对程序 的 EXE文件进行检测, 而不检查程序加载的 DLL文件。 因此, 一些恶意 程序就利用这一点, 通过 DLL劫持技术将该恶意程序的 DLL文件与可信 任的白名单中的程序 (例如操作系统自带的程序) 打包在一起, 当用户选 择执行该白名单中的程序时, 其中的恶意程序的 DLL文件就会被加载, 从 而使主动防御技术不能成功拦截该恶意程序。
为了防止恶意程序利用可信任的白名单中的程序突破主动防御而成功 执行, 本申请实施例提出了一种程序处理方法, 具体的, 该程序处理方法 包括以下步骤:
步骤 S201 , 当检测到待执行程序创建进程时, 通过服务器预先设置的 云端鉴别条件检查所述待执行程序是否存在被劫持的 DLL文件。
需要说明的是,该步骤 S201为检查所述待执行程序是否存在被劫持的 DLL文件的过程,相对于上述实施例一来说,该步骤 S201可以包括上述实 施例一中的步骤 S101-步骤 S103。
步骤 S202,若存在,则通过服务器对所述被劫持的 DLL文件进行查杀。 步骤 S203 , 依据服务器查杀结果对所述待执行程序执行相应的操作。 通过上述步骤 S201-步骤 S203可以在待执行程序存在被劫持的 DLL文 件时, 进一步通过服务器对这些被劫持的 DLL文件进行查杀, 然后依据服 务器查杀结果对所述待执行程序执行相应的操作。 对于具体的处理过程, 将在下面的实施例中详细介绍。 文件进行检查, 能够解决恶意程序利用可信任的白名单中的程序加载恶意 DLL文件而导致主动防御无法正常拦截恶意程序的问题, 取得了更加有效 实施例三:
下面, 对于具体的程序处理方法进行详细描述。
参照图 3 , 示出了根据本申请一个实施例的程序处理方法的流程图, 所述方法包括:
步骤 S301 , 当检测到待执行程序创建进程时, 通过服务器预先设置的 云端鉴别条件检查所述待执行程序是否存在被劫持的 DLL文件。
本申请实施例主要是在待执行程序创建进程时, 增加对 DLL文件的查 询过程, 需要检查待执行程序是否存在被劫持的 DLL文件, 如果存在, 则 说明该待执行程序有可能被恶意程序利用, 因此要进一步检查这些被劫持 的 DLL文件是否安全。
在本实施例中, 通过服务器预先设置的云端鉴别条件检查所述待执行 程序是否存在被劫持的 DLL文件。
云端鉴别条件存储在服务器中, 在云端鉴别条件中包括多个特定程序 匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL文件信息, 本 实施例就是要将待执行程序的一些特征信息与云端鉴别条件进行匹配, 然 后再依据匹配结果进行判断。 对于具体的匹配过程, 是在服务器中执行的。
具体的, 该步骤 S301可以包括以下子步骤:
子步骤 al , 获取所述待执行程序的特征信息。
其中, 待执行程序的特征信息可以包括以下信息中的至少一种: 待执行程序的文件名称信息、 文件大小信息、 文件特征值信息、 文件 图标信息、 产品名称信息、 内部名称信息、 原始文件名信息, 以及待执行 程序创建的进程的命令行信息、 进程路径信息和父进程路径信息。
当然, 所述待执行程序的特征信息还可以包括其他信息, 本实施例对 此并不加以限制。
子步骤 a2, 将所述待执行程序的特征信息上传至服务器。
由于本实施例需要通过预先设置的云端鉴别条件检查所述待执行程序 是否存在被劫持的 DLL文件, 云端鉴别条件存储在服务器中, 因此在获取 到待执行程序的特征信息之后, 首先需要将这些特征信息上传至服务器, 由服务器将待执行程序的特征信息与云端鉴别条件进行匹配。
子步骤 a3 , 通过服务器将所述待执行程序的特征信息与所述云端鉴别 条件进行匹配, 获得所述待执行程序需要检查的 DLL文件信息, 将所述需 要检查的 DLL文件信息作为匹配结果;
下面, 具体介绍一下与云端鉴别条件进行匹配的过程。
由上述描述可知, 在云端鉴别条件中包括多个特定程序匹配条件和满 足该特定程序匹配条件后需要检查的特定 DLL文件信息, 在本申请实施例 中, 可以将待执行程序的特征信息与特定程序匹配条件进行匹配, 从而获 得需要检查的 DLL文件信息。
由于特定程序匹配条件需要与待执行程序的特征信息进行匹配, 因此, 在所述特定程序匹配条件中也可以包括一些与程序的特征信息相对应的信 息, 通过这些信息即可找到与待执行程序的特征信息相匹配的特定程序匹 配条件。
在本实施例中, 所述特定程序匹配条件可以包括以下信息中的至少一 种:
文件名称信息、 文件大小信息、 文件特征值信息、 文件图标信息、 产 品名称信息、 内部名称信息、 原始文件名信息, 以及进程的命令行信息、 进程路径信息和父进程路径信息。 当然, 所述特定程序匹配条件还可以包 括其他信息, 本实施例对此并不加以限制。
具体的, 通过服务器针对特定程序匹配条件的处理过程可以包括:
( i )将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;
( ii ) 获取满足相匹配的特定程序匹配条件后需要检查的特定 DLL文 件信息;
( iii )将所述特定 DLL文件信息作为所述待执行程序需要检查的 DLL 文件信息。
具体的, 可以通过以下实例进行说明。 如图 4所示, 是本申请实施例所述的云端鉴别条件的示意图。 从图中可以看出, 在该云端鉴别条件中包括条件和返回值两个部分, 其中条件一列中包含了多个表达式, 这些表达式即为本申请实施例所述的 特定程序匹配条件, 返回值一列包含了多个字符串, 这些字符串中指定了 满足对应的特定程序匹配条件后需要检查的特定 DLL文件信息。
在条件一列的表达式中可以包括产品名称信息(hi.GEN )、 文件大小信 息 (hi.DSI )、 内部名称信息 (hi.ITN )、 原始文件名信息 (hi.ORN )、 进程 路径信息 ( hi.DST )、 父进程路径信息 ( hi.SRC )、 进程命令行信息 ( hi.CLE ) 等信息 (图 3是云端鉴别条件的部分截图, 其中有些信息在图 3 中没有显 示), 这些信息适于与待执行程序的特征信息进行匹配。
在返回值一列的字符串中 "DLL:" 后指定了满足对应的特定程序匹配 条件后需要检查的特定 DLL文件信息, 在本实施例中, 所述 DLL文件信 息可以为 DLL文件的名称。 另外, 在返回值一列的字符串中, 可以指定多 个需要检查的特定 DLL文件信息, 每个 DLL文件信息之间以逗号相隔。
例如, 获取到当前待执行程序的特征信息为产品名称信息 "金山重装 高手", 然后将该产品名称信息与云端鉴别条件进行匹配, 经过判断, 特定 程序匹配条件中的 "(hi.GEN:like, 金山重装高手)"是与产品名称信息 "金 山重装高手" 相匹配的条件, 因此, 可以从该条件对应的返回值 "( return— extinfo: <hips>DLL: kdump. dll,irrlicht. dll</hips> )" 中获取需要检 查的 DLL文件名称为 "kdump.dll" 和 "irrlicht.dll"。
需要说明的是, 本实施例所述的云端鉴别条件还可以包括其他的信息, 例如是否生效、 条件序号、 应用比例等, 本领域技术人员根据实际情况进 行相应处理即可, 本实施例对此并不加以限制。
子步骤 a4,接收服务器下发的所述待执行程序需要检查的 DLL文件信 息。
服务器依据云端鉴别条件获取到所述待执行程序需要检查的 DLL文件 信息之后, 需要将所述需要检查的 DLL文件信息下发至客户端, 然后客户 端进一步对这些需要检查的 DLL文件信息进行判断, 以确定出所述待执行 程序被劫持的 DLL文件。
子步骤 a5 , 判断指定目录下是否存在所述需要检查的 DLL文件信息, 若存在, 则确定所述待执行程序存在被劫持的 DLL文件。
一般来说, DLL文件会存储在系统目录中, 如果在程序执行时需要调 用某些 DLL文件, 则将这些 DLL文件存储在指定目录下, 因此存储在指 定目录下的 DLL文件即为该程序所调用的 DLL文件。 在本实施例中, 所 述指定目录可以为当前目录或者指定的相对目录。
所以, 客户端在接收到服务器下发的待执行程序需要检查的 DLL文件 信息之后, 还需要进一步判断指定目录下是否存在所述需要检查的 DLL文 件信息。 如果指定目录下存在所述需要检查的 DLL文件信息, 说明所述待 执行程序存在被劫持的 DLL文件, 并且所述被劫持的 DLL文件即为指定 目录下存在的 DLL文件, 需要对这些被劫持的 DLL文件进行查杀; 如果 指定目录下不存在所述需要检查的 DLL文件信息, 说明这些 DLL文件不 会被待执行程序加载, 因此不需要对其进行查杀。
例如, 仍然以上述举例进行说明, 如果服务器下发给客户端的待执行 程序需要检查的 DLL文件信息为 DLL文件名称" kdump.dll"和" irrlicht.dll" , 则判断指定目录下是否存在这些 DLL文件名称。
例如, 判断出指定目 录下存在其中的一个 DLL 文件名称为 "kdump.dll" , 则将 DLL文件 "kdump.dll" 作为待执行程序被劫持的 DLL 文件。
需要说明的是, 对应于上述实施例一, 本实施例中的子步骤 al为上述 实施例一中的步骤 S101的具体过程,子步骤 a2-子步骤 a3为上述实施例一 中的步骤 S102的具体过程,子步骤 a4-子步骤 a5为上述实施例一中的步骤 S103的具体过程, 本实施例在此不再详细论述。
步骤 S302, 获取所述待执行程序对应的 EXE文件。
步骤 S303 , 若指定目录下存在所述需要检查的 DLL文件信息, 则将所 述待执行程序对应的 EXE文件的信息和所述被劫持的 DLL文件的信息上 传至服务器。 其中, 上传的文件的信息可以包括文件的哈希值、 文件路径等信息, 本申请实施例对此并不加以限制。
由于现有的主动防御只对程序的 EXE文件进行检查, 而不检查程序的 DLL文件, 如果恶意程序利用可信的白名单中的程序加载恶意 DLL文件, 则恶意程序就能绕过主动防御的拦截而成功执行。
因此, 本申请实施例提出不仅对程序的 EXE文件进行检查, 对程序的 DLL文件也进行检查, 但是并不是对所有的 DLL文件进行检查, 而是通过 与云端鉴别条件匹配, 确定出程序中被劫持的 DLL文件, 然后对这些被劫 持的 DLL文件进行查杀。
具体的,对文件进行查杀的过程由服务器执行,因此,如果在步骤 S201 中判断出待执行程序中存在被劫持的 DLL 文件, 并且确定出了被劫持的 DLL文件, 则将所述待执行程序对应的 EXE文件的信息和所述被劫持的 DLL文件的信息均上传至服务器, 通过服务器对这些文件进行查杀; 如果 判断出待执行程序中不存在被劫持的 DLL文件, 则说明该待执行程序没有 被恶意程序利用, 此时只需要将待执行程序对应的 EXE文件的信息上传至 服务器即可。
例如, 在步骤 S301 中判断出待执行程序被劫持的 DLL 文件为 "kdump.dll" , 则将 DLL文件 "kdump.dll"的信息和产品名称信息为 "金 山重装高手" 的待执行程序对应的 EXE文件的信息上传至服务器。
步骤 S304, 通过服务器对所述被劫持的 DLL文件进行查杀。
服务器在接收到客户端上传的待执行程序对应的 EXE文件的信息和所 述被劫持的 DLL文件的信息之后, 即依据所述文件信息对相应的文件进行 查杀。
该步骤 S304具体可以包括:
子步骤 bl ,通过服务器获取所述 EXE文件的等级和所述被劫持的 DLL 文件的等级。
在本实施例中, 所述等级包括安全等级、 未知等级、 可疑 /高度可疑等 级、 以及恶意等级。 对于等级的设置, 可以设置等级为 10-29 时为安全等 级(该等级的文件为白文件), 等级为 30-49时为未知等级(该等级的文件 为灰文件), 等级为 50-69时为可疑 /高度可疑等级(该等级的文件为可疑文 件),等级大于或等于 70时为恶意等级(该等级的文件为恶意文件)。 当然, 还可以设置所述等级为其他形式, 本申请对此并不加以限制。
子步骤 b2, 依据所述 EXE文件的等级和所述被劫持的 DLL文件的等 级对所述被劫持的 DLL文件进行查杀。
具体的, 可以通过用于查杀可移植执行体 (Portable Execute, PE ) 类 型文件的云查杀引擎, 或者人工智能引擎 ( Qihoo Virtual Machine, QVM ) 对所述 EXE文件和被劫持的 DLL文件进行查杀。 其中, PE类型文件通常 指 Windows操作系统上的程序文件, 常见的 PE类型文件包括 EXE、 DLL、 OCX, SYS , COM等类型文件。
杀毒引擎可以根据对文件等级的识别结果, 按照杀毒引擎中保存的黑 名单, 和 /或白名单对相应文件进行查杀。
对于具体的查杀过程, 本领域技术人员根据实际经验进行相应处理即 可, 本实施例在此不再详细论述。
步骤 S305 , 依据服务器查杀结果对所述待执行程序执行相应的操作。 服务器在获取到 EXE文件和被劫持的 DLL文件的等级之后, 将获取 到的等级下发给客户端, 客户端依据服务器查杀结果对所述待执行程序执 行相应的操作。
具体的, 该步骤 S305可以包括以下子步骤:
子步骤 cl , 当所述 EXE文件的等级和所述被劫持的 DLL文件的等级 中至少一个为恶意等级时, 拦截所述待执行程序的执行。
在本实施例中, 所述被劫持的 DLL文件为一个或多个, 如果获取到的 EXE文件的等级和被劫持的 DLL文件的等级中存在恶意等级,则说明该待 执行程序是有风险的, 此时需要拦截所述待执行程序的执行。
子步骤 c2, 当所述 EXE文件的等级和所述被劫持的 DLL文件的等级 均为安全等级时, 允许所述待执行程序的执行。
子步骤 c3 , 当所述 EXE文件的等级和所述被劫持的 DLL文件的等级 中没有恶意等级, 并且至少一个被劫持的 DLL 文件的等级高于所述 EXE 文件的等级时, 获取其中最高的等级, 将所述 EXE文件的等级修改为所述 最高的等级, 允许所述待执行程序的执行, 并拦截待执行程序执行后发起 的可疑操作。
如果 EXE文件的等级和被劫持的 DLL文件的等级不满足上述子步骤 cl和子步骤 c2中的两种情况, 则将 EXE文件的等级修改为所述最高的等 级, 并且可以允许所述待执行程序的执行, 此时由于待执行程序的 EXE文 件可能也存在风险, 因此当待执行程序执行后发起可疑操作时, 可以对这 些可疑的操作进行拦截。
例如, 在步骤 S301 中确定出待执行程序被劫持的 DLL 文件为 "kdump.dll" , 通过服务器获取到待执行程序的 EXE文件的等级为安全等 级, "kdump.dll" 的等级为可疑 /高度可疑等级, 其中最高的文件等级为可 疑 /高度可疑等级, 此时, 即将所述 EXE文件的等级修改为可疑 /高度可疑 等级。
并且, 由于 EXE文件的等级被修改了, 因此后续当该待执行程序执行 某些可疑的操作时, 即可通过 EXE文件的等级判断该程序是否安全, 如果 EXE文件是可疑的, 则可以对这些可疑操作进行拦截。
其中, 可疑的操作可以为以下任意一种: 文件操作、 注册表操作、 进 程操作和网络操作。
例如, 对于文件操作可以为对 windows操作系统相关的文件, 或者一 些装载量比较大的应用软件 (如 qq、 阿里旺旺等), 或者桌面的快捷方式 等的操作;
对于注册表的操作可以是程序写入注册表自动加载, 以及破坏注册表 等;
对于进程操作可以是进程之间相互注入(一个进程在另一个进程中插 入并执行一些代码)、 进程远线程操作、 结束进程(例如有些恶意程序结束 掉 QQ进程, 重新登录会截取到密码, 或者进程后续的一些操作) 等; 对于网络操作可以是安装驱动或服务、 全局钩子注入, 记录键盘操作、 修改浏览器中网页内容等。
当然, 还可以包括其他一些操作, 本申请实施例对此并不加以限制。 需要说明的是, 本实施例主要是针对恶意程序利用可信任的白名单中 的程序加载恶意 DLL文件的情况进行处理, 因此, EXE文件的等级应为安 全等级, 如果有 DLL文件的等级高于该 EXE文件的等级, 则修改 EXE文 件的等级。
步骤 S306, 服务器定期检测所述云端鉴别条件是否满足升级条件, 若 满足, 则服务器获取新的鉴别条件, 并通过重新加载所述新的鉴别条件完 成所述云端鉴别条件的升级更新。
本实施例中的云端鉴别条件是需要定期升级更新的。 具体的, 可以在 服务器中配置升级条件, 服务器定期检测所述云端鉴别条件是否满足升级 条件, 当满足时, 服务器直接获取新的云端鉴别条件, 并用新的云端鉴别 条件替换原有的云端鉴别条件,从而对原有的云端鉴别条件进行升级更新。
其中, 升级条件可以根据本地鉴别条件的文件版本来判断, 比如有更 新的版本时则升级, 也可以指定当本地版本满足某个条件时升级为一个指 定版本 , 本申请实施例对此并不加以限制。
例如, 如果发现了新的被利用的程序 (QQ游戏), 但是云端鉴别条件 中不存在该程序, 则可以在云端鉴别条件中增加一个特定程序匹配条件, 其中包括该程序的特征信息 ( "QQ游戏" )以及满足该特定程序匹配条件后 需要检查的 DLL文件信息。
当然, 还可以釆用其他的方式对云端鉴别条件进行升级更新, 本实施 例对此并不加以限制。
由于云端鉴别条件保存在服务器中, 因此当满足升级条件时, 不需要 客户端升级文件即可生效, 因此可以立刻全网升级, 升级速度较快, 对于 突发的恶意程序有很好的拦截效果, 从而避免用户的损失。
最后, 需要说明的是, 本申请实施例主要是针对恶意程序利用可信任 的白名单中的程序加载恶意 DLL文件的情况进行处理。 如果待执行程序是 可信任的白名单中的程序, 此时主动防御技术只检查程序的 EXE文件, 将 会判断该程序是安全的, 从而允许其执行, 但是如果恶意程序利用该白名 单中的程序加载恶意 DLL文件, 则该恶意程序也会成功执行。
因此, 对于这种情况, 本申请实施例通过在检测到待执行程序创建进 程时, 通过服务器预先设置的云端鉴别条件检查所述待执行程序是否存在 被劫持的 DLL文件, 如果待执行程序存在被劫持的 DLL文件, 则通过服 务器对所述被劫持的 DLL文件进行查杀, 然后依据服务器查杀结果对所述 待执行程序执行相应的操作。 由此解决了恶意程序利用可信的白名单中的 程序加载恶意 DLL文件而导致主动防御无法正常拦截恶意程序的问题, 取 得了更加有效地拦截恶意程序的有益效果。 需要说明的是, 对于前述的方法实施例, 为了简单描述, 故将其都表 述为一系列的动作组合, 但是本领域技术人员应该知悉, 本申请并不受所 描述的动作顺序的限制, 因为依据本申请, 某些步骤可以釆用其他顺序或 者同时进行。 其次, 本领域技术人员也应该知悉, 说明书中所描述的实施 例均属于优选实施例, 所涉及的动作并不一定是本申请所必需的。 实施例四:
参照图 5 , 示出了根据本申请一个实施例的程序处理系统的结构框图, 所述系统包括客户端 501和服务器 502。
其中, 客户端包括: 特征信息获取模块 5011、 特征信息上传模块 5012 和确定模块 5013 , 所述服务器包括: 匹配模块 5021。
特征信息获取模块 5011 , 配置为当检测到待执行程序创建进程时, 获 取所述待执行程序的特征信息;
特征信息上传模块 5012, 配置为将所述待执行程序的特征信息上传至 服务器;
匹配模块 5021 , 配置为将所述待执行程序的特征信息与预先设置的云 端鉴别条件进行匹配, 得到匹配结果;
确定模块 5013 , 配置为接收所述服务器返回的匹配结果, 并依据所述 匹配结果确定所述待执行程序是否存在被劫持的 DLL文件。
通过上述各个模块可以利用服务器中的云端鉴别条件检测待执行程序 是否存在被劫持的 DLL 文件, 如果检测到待执行程序存在被劫持的 DLL 文件, 则后续可以通过服务器对被劫持的 DLL文件进行查杀, 然后依据服 务器查杀结果对所述待执行程序执行相应的操作。 从而能够解决恶意程序 利用可信的白名单中的程序加载恶意 DLL文件而导致主动防御无法正常拦 截恶意程序的问题, 更加有效地拦截恶意程序。 实施例五:
参照图 6, 示出了根据本申请一个实施例的程序处理系统的结构框图, 所述系统包括客户端 601和服务器 602。
其中, 客户端 601包括: 检查模块 6011、 EXE文件获取模块 6012、 上 传模块 6013和处理模块 6014; 服务器 602包括: DLL文件信息获取模块 6021、 查杀模块 6022和升级模块 6023。
检查模块 6011 , 配置为当检测到待执行程序创建进程时, 通过服务器 预先设置的云端鉴别条件检查所述待执行程序是否存在被劫持的 DLL 文 件;
需要说明的是, 上述检查模块主要是配置为检查所述待执行程序是否 存在被劫持的 DLL文件, 相对于上述实施例四来说, 该检查模块的功能可 以对应于上述实施例四中的特征信息获取模块 5011、 特征信息上传模块 5012、 匹配模块 5021和确定模块 5013几个模块实现的功能。
其中, 所述待执行程序为白名单中的程序, 所述云端鉴别条件存储服 务器中。
所述检查模块 6011包括:
特征信息获取模块, 配置为获取所述待执行程序的特征信息; 其中, 所述待执行程序的特征信息可以包括以下信息中的至少一种: 待执行程序的文件名称信息、 文件大小信息、 文件特征值信息、 文件 图标信息、 产品名称信息、 内部名称信息、 原始文件名信息, 以及待执行 程序创建的进程的命令行信息、 进程路径信息和父进程路径信息。 特征信息上传模块, 配置为将所述待执行程序的特征信息上传至服务 器。
所述服务器 602包括:
DLL文件信息获取模块 6021 , 配置为通过将所述待执行程序的特征信 息与所述云端鉴别条件进行匹配, 获得所述待执行程序需要检查的 DLL文 件信息, 将所述需要检查的 DLL文件信息作为匹配结果;
其中, 所述云端鉴别条件中包括多个特定程序匹配条件和满足该特定 程序匹配条件后需要检查的特定 DLL文件信息。
所述 DLL文件信息获取模块包括:
匹配操作模块, 配置为将所述待执行程序的特征信息与所述特定程序 匹配条件进行匹配;
所述特定程序匹配条件可以包括以下信息中的至少一种:
文件名称信息、 文件大小信息、 文件特征值信息、 文件图标信息、 产 品名称信息、 内部名称信息、 原始文件名信息, 以及进程的命令行信息、 进程路径信息和父进程路径信息。
特定 DLL文件信息获取模块, 配置为获取满足相匹配的特定程序匹配 条件后需要检查的特定 DLL文件信息;
确定操作模块, 配置为将所述特定 DLL文件信息作为所述待执行程序 需要检查的 DLL文件信息。
所述检查模块 6011还包括:
接收模块, 配置为接收服务器下发的所述待执行程序需要检查的 DLL 文件信息;
判断模块, 配置为判断指定目录下是否存在所述需要检查的 DLL文件 信息, 若存在, 则确定所述待执行程序存在被劫持的 DLL文件; 其中, 所 述被劫持的 DLL文件为指定目录下存在的 DLL文件, 所述指定目录为当 前目录或者指定的相对目录。
需要说明的是, 对应于上述实施例四, 本实施例中的特征信息获取模 块可以为上述实施例四中的特征信息获取模块中包括的模块, 特征信息上 传模块可以为上述实施例四中的特征信息上传模块中包括的模块, DLL文 件信息获取模块可以为上述实施例四中的匹配模块中包括的模块, 接收模 块和判断模块可以为上述实施例四中的确定模块中包括的模块, 本实施例 在 J¾不再详细论述。
所述客户端 601还包括:
文件获取模块 6012, 配置为在服务器的查杀模块对所述被劫持的 DLL 文件进行查杀之前, 获取所述待执行程序对应的 EXE文件;
文件信息上传模块 6013 ,配置为将所述待执行程序对应的 EXE文件的 信息和所述被劫持的 DLL文件的信息上传至服务器;
所述服务器 602还包括:
查杀模块 6022, 配置为当客户端的确定模块的检查结果为存在时, 对 所述被劫持的 DLL文件进行查杀;
所述查杀模块 6022包括:
等级查询模块,配置为查询所述 EXE文件的等级和所述被劫持的 DLL 文件的等级, 所述等级包括安全等级、 未知等级、 可疑 /高度可疑等级、 以 及恶意等级;
查杀处理模块,配置为依据所述 EXE文件的等级和所述被劫持的 DLL 文件的等级对所述被劫持的 DLL文件进行查杀。
所述客户端还包括:
处理模块 6014, 配置为依据服务器查杀结果对所述待执行程序执行相 应的操作;
其中, 所述被劫持的 DLL文件为一个或多个, 所述处理模块 6014包 括:
程序拦截模块, 配置为当所述 EXE 文件的等级和所述被劫持的 DLL 文件的等级中至少一个为恶意等级时, 拦截所述待执行程序的执行;
执行模块, 配置为当所述 EXE文件的等级和所述被劫持的 DLL文件 的等级均为安全等级时, 允许所述待执行程序的执行; 可疑操作拦截模块, 配置为当所述 EXE 文件的等级和所述被劫持的 DLL文件的等级中没有恶意等级,并且至少一个被劫持的 DLL文件的等级 高于所述 EXE文件的等级时, 获取其中最高的等级, 将所述 EXE文件的 等级修改为所述最高的等级, 允许所述待执行程序的执行, 并拦截待执行 程序执行后发起的可疑操作。
其中, 所述可疑操作可以为以下任意一种: 文件操作、 注册表操作、 进程操作和网络操作, 当然, 所述可疑操作还可以为其他的一些操作, 本 申请实施例对此并不加以限制。
所述服务器 602还包括:
升级模块 6023 ,配置为定期检测所述云端鉴别条件是否满足升级条件, 若满足, 则获取新的鉴别条件, 并通过重新加载所述新的鉴别条件完成所 述云端鉴别条件的升级更新;
其中, 所述升级条件在服务器中进行配置。
本申请实施例的程序处理系统可以依据云端鉴别条件检查待执行程序 是否存在被劫持的 DLL文件, 并且对待执行程序被劫持的 DLL文件进行 查杀, 然后依据服务器查杀结果对待执行程序执行相应的操作。 由此解决 了恶意程序利用可信的白名单中的程序加载恶意 DLL文件而导致主动防御 无法正常拦截恶意程序的问题, 取得了更加有效地拦截恶意程序的有益效 果。
其次, 本申请实施例的云端鉴别条件保存在服务器中, 当满足升级条 件时, 不需要客户端升级文件即可生效, 因此可以立刻全网升级, 升级速 度较快, 对于突发的恶意程序有很好的拦截效果, 从而避免用户的损失。
对于上述程序处理系统实施例而言, 由于其与方法实施例基本相似, 所以描述的比较简单, 相关之处参见图 1、 图 2和图 3所示方法实施例的 部分说明即可。 实施例六:
参照图 7,示出了根据本申请一个实施例的用于程序处理的客户端的结 构框图, 在本申请实施例中, 所述客户端与服务器通信, 所述服务器用于 将所述客户端上传的待执行程序的特征信息与预先设置的云端鉴别条件进 行匹配, 得到匹配结果, 所述客户端可以包括如下模块:
特征信息获取模块 701 , 配置为在检测到待执行程序创建进程时, 获取 所述待执行程序的特征信息;
特征信息上传模块 702,配置为将所述待执行程序的特征信息上传至服 务器;
确定模块 703 , 配置为接收所述服务器返回的匹配结果, 并依据所述匹 配结果确定所述待执行程序是否存在被劫持的 DLL文件。
在具体实现中, 所述客户端还可以包括如下模块:
DLL文件信息上传模块, 配置为在存在被劫持的 DLL文件时, 将所述 被劫持的 DLL文件的信息上传至服务器, 在这种情况下, 所述服务器还用 于对所述被劫持的 DLL文件进行查杀并返回查杀结果;
所述客户端还可以包括:
处理模块, 配置为依据所述服务器返回的查杀结果对所述待执行程序 执行相应的操作。
在本申请的一种优选实施例中, 所述匹配结果可以为所述待执行程序 需要检查的 DLL文件信息; 在这种情况下, 所述确定模块 703具体可以包 括如下模块:
判断模块, 配置为判断指定目录下是否存在所述待执行程序需要检查 的 DLL文件信息, 若存在, 则确定所述待执行程序存在被劫持的 DLL文 件; 其中, 所述被劫持的 DLL文件为指定目录下存在的 DLL文件, 所述 指定目录为当前目录或者指定的相对目录。
作为本申请具体应用的一种示例, 所述云端鉴别条件中可以包括多个 特定程序匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL文件 信息。
具体而言, 所述特定程序匹配条件可以包括以下信息中的至少一种: 文件名称信息、 文件大小信息、 文件特征值信息、 文件图标信息、 产 品名称信息、 内部名称信息、 原始文件名信息, 以及进程的命令行信息、 进程路径信息和父进程路径信息;
所述待执行程序的特征信息可以包括以下信息中的至少一种: 待执行程序的文件名称信息、 文件大小信息、 文件特征值信息、 文件 图标信息、 产品名称信息、 内部名称信息、 原始文件名信息, 以及待执行 程序创建的进程的命令行信息、 进程路径信息和父进程路径信息。
在本申请的一种优选实施例中, 所述客户端还可以包括如下模块:
EXE文件获取模块,配置为在将所述被劫持的 DLL文件上传至服务器 之前, 获取所述待执行程序对应的 EXE文件;
EXE文件信息上传模块,配置为将所述待执行程序对应的 EXE文件的 信息上传至服务器。
在具体实现中, 所述被劫持的 DLL文件可以为一个或多个; 在这种情 况下, 所述处理模块包括:
程序拦截模块, 配置为在所述 EXE 文件的等级和所述被劫持的 DLL 文件的等级中至少一个为恶意等级时, 拦截所述待执行程序的执行;
执行模块, 配置为在所述 EXE文件的等级和所述被劫持的 DLL文件 的等级均为安全等级时, 允许所述待执行程序的执行;
可疑操作拦截模块, 配置为在所述 EXE 文件的等级和所述被劫持的 DLL文件的等级中没有恶意等级,并且至少一个被劫持的 DLL文件的等级 高于所述 EXE文件的等级时, 获取其中最高的等级, 将所述 EXE文件的 等级修改为所述最高的等级, 允许所述待执行程序的执行, 并拦截待执行 程序执行后发起的可疑操作。
作为本申请具体应用的一种示例, 所述可疑操作可以为以下任意一种: 文件操作、 注册表操作、 进程操作和网络操作。
作为本申请的一种优选实施例, 所述待执行程序可以为白名单中的程 序。
对于上述用于程序处理的客户端的实施例而言, 由于其与方法实施例 基本相似, 所以描述的比较简单, 相关之处参见图 1、 图 2和图 3所示方 法实施例的部分说明即可。 实施例七:
参照图 8,示出了根据本申请一个实施例的用于程序处理的服务器的结 构框图, 在本申请实施例中, 所述服务器与客户端通信, 所述客户端用于 依据所述服务器返回的匹配结果确定所述待执行程序是否存在被劫持的 DLL文件, 所述服务器可以包括:
特征信息接收模块 801 , 用于接收客户端上传的待执行程序的特征信 息, 所述待执行程序的特征信息为客户端在检测到待执行程序创建进程时 获得;
匹配模块 802,配置为将所述待执行程序的特征信息与预先设置的云端 鉴别条件进行匹配, 得到匹配结果;
匹配结果发送模块 803 , 配置为将所述匹配结果发送给所述客户端。 作为本申请的另一优选实施例, 所述服务器还可以包括如下模块: 升级模块, 配置为定期检测所述云端鉴别条件是否满足升级条件, 若 满足, 则获取新的鉴别条件, 并通过重新加载所述新的鉴别条件完成所述 云端鉴别条件的升级更新; 其中, 所述升级条件在服务器中进行配置。
在具体实现中, 所述云端鉴别条件可以存储在服务器中。
作为本申请具体应用的一种示例, 所述云端鉴别条件中可以包括多个 特定程序匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL文件 信息;
所述匹配模块 802可以包括如下模块:
匹配操作模块, 配置为将所述待执行程序的特征信息与所述特定程序 匹配条件进行匹配;
特定 DLL文件信息获取模块, 配置为获取满足相匹配的特定程序匹配 条件后需要检查的特定 DLL文件信息;
确定操作模块, 配置为将所述特定 DLL文件信息作为所述待执行程序 需要检查的 DLL文件信息。 在本申请的一种优选实施例中, 所述服务器还可以包括:
DLL文件信息接收模块,用于接收客户端上传的被劫持的 DLL文件的 信息;
查杀模块, 配置为在对所述被劫持的 DLL文件进行查杀并返回查杀结 果; 所述客户端还用于依据所述服务器返回的查杀结果对所述待执行程序 执行相应的操作。
在具体实现中, 所述服务器还可以包括如下模块:
EXE文件信息接收模块,配置为在对所述被劫持的 DLL文件进行查杀 并返回查杀结果之前,接收客户端上传的待执行程序对应的 EXE文件的信 息。
作为本申请实施例具体应用的一种示例, 所述服务器的查杀模块可以 包括如下模块:
等级查询模块,配置为获取所述 EXE文件的等级和所述被劫持的 DLL 文件的等级, 所述等级包括安全等级、 未知等级、 可疑 /高度可疑等级、 以 及恶意等级;
查杀处理模块,配置为依据所述 EXE文件的等级和所述被劫持的 DLL 文件的等级对所述被劫持的 DLL文件进行查杀;
结果返回模块, 配置为返回查杀结果。
对于上述用于程序处理的服务器的实施例而言, 由于其与方法实施例 基本相似, 所以描述的比较简单, 相关之处参见图 1、 图 2和图 3所示方 法实施例的部分说明即可。
本说明书中的各个实施例均釆用递进的方式描述, 每个实施例重点说 明的都是与其他实施例的不同之处, 各个实施例之间相同相似的部分互相 参见即可。
本领域技术人员易于想到的是: 上述各个实施例的任意组合应用都是 可行的, 故上述各个实施例之间的任意组合都是本申请的实施方案, 但是 由于篇幅限制, 本说明书在此就不——详述了。 本申请的各个部件实施例可以以硬件实现, 或者以在一个或者多个处 理器上运行的软件模块实现, 或者以它们的组合实现。 本领域的技术人员 应当理解, 可以在实践中使用微处理器或者数字信号处理器 (DSP ) 来实 现根据本申请实施例的浏览器设备中的一些或者全部部件的一些或者全部 功能。 本申请还可以实现为用于执行这里所描述的方法的一部分或者全部 的设备或者装置程序(例如, 计算机程序和计算机程序产品)。 这样的实现 本申请的程序可以存储在计算机可读介质上, 或者可以具有一个或者多个 信号的形式。 这样的信号可以从因特网网站上下载得到, 或者在载体信号 上提供, 或者以任何其他形式提供。
例如, 图 9示意性地示出了用于执行根据本申请的程序处理方法的终 端设备的框图。 该终端设备传统上包括处理器 410和以存储器 420形式的 计算机程序产品或者计算机可读介质。 存储器 420 可以是诸如闪存、 EEPROM (电可擦除可编程只读存储器)、 EPROM、 硬盘或者 ROM之类的 电子存储器。 存储器 420具有用于执行上述方法中的任何方法步骤的程序 代码 431 的存储空间 430。 例如, 用于程序代码的存储空间 430可以包括 分别用于实现上面的方法中的各种步骤的各个程序代码 431。 这些程序代 码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个 计算机程序产品中。 这些计算机程序产品包括诸如硬盘, 紧致盘 (CD )、 存储卡或者软盘之类的程序代码载体。 这样的计算机程序产品通常为如参 考图 10所述的便携式或者固定存储单元。该存储单元可以具有与图 9的终 端设备中的存储器 420类似布置的存储段、 存储空间等。 程序代码可以例 如以适当形式进行压缩。 通常, 存储单元包括计算机可读代码 43 Γ , 即可 以由例如诸如 410之类的处理器读取的代码, 这些代码当由终端设备运行 时, 导致该终端设备执行上面所描述的方法中的各个步骤。
本文中所称的 "一个实施例"、 "实施例"或者"一个或者多个实施例"意味 着, 结合实施例描述的特定特征、 结构或者特性包括在本申请的至少一个 实施例中。 此外, 请注意, 这里"在一个实施例中"的词语例子不一定全指 同一个实施例。 在此处所提供的说明书中, 说明了大量具体细节。 然而, 能够理解, 本申请的实施例可以在没有这些具体细节的情况下被实践。在一些实例中, 并未详细示出公知的方法、 结构和技术, 以便不模糊对本说明书的理解。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限 制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出 替换实施例。 在权利要求中, 不应将位于括号之间的任何参考符号构造成 对权利要求的限制。 单词"包含"不排除存在未列在权利要求中的元件或步 骤。 位于元件之前的单词 "一"或"一个"不排除存在多个这样的元件。 本申 请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来 实现。 在列举了若干装置的单元权利要求中, 这些装置中的若干个可以是 通过同一个硬件项来具体体现。 单词第一、 第二、 以及第三等的使用不表 示任何顺序。 可将这些单词解释为名称。
此外, 还应当注意, 本说明书中使用的语言主要是为了可读性和教导 的目的而选择的, 而不是为了解释或者限定本申请的主题而选择的。 因此, 在不偏离所附权利要求书的范围和精神的情况下, 对于本技术领域的普通 技术人员来说许多修改和变更都是显而易见的。 对于本申请的范围, 对本 申请所做的公开是说明性的, 而非限制性的, 本申请的范围由所附权利要 求书限定。

Claims

1、 一种程序处理方法, 包括步骤:
当检测到待执行程序创建进程时, 获取所述待执行程序的特征信息; 将所述待执行程序的特征信息上传至服务器, 所述服务器用于将所述 待执行程序的特征信息与预先设置的云端鉴别条件进行匹配, 得到匹配结 果; 权
接收所述服务器返回的匹配结果, 并依据所述匹配结果确定所述待执 行程序是否存在被劫持的 DLL文件。
2、 根据权利要求 1所述的方法, 还包括步骤:
若存在, 则将所述被劫持的 DLL文件的信息上传至服务器, 所述服务 器还用于对所述被劫持的 DLL文件进行查杀并返回查杀结果;
依据所述服务器返回的查杀结果对所述待执行程序执行相应的操作。
3、 根据权利要求 1所述的方法, 所述匹配结果为所述待执行程序需要 检查的 DLL文件信息;
所述依据所述匹配结果确定所述待执行程序是否存在被劫持的 DLL文 件的步骤包括:
判断指定目录下是否存在所述待执行程序需要检查的 DLL文件信息, 若存在, 则确定所述待执行程序存在被劫持的 DLL文件; 其中, 所述被劫 持的 DLL文件为指定目录下存在的 DLL文件, 所述指定目录为当前目录 或者指定的相对目录。
4、 根据权利要求 3所述的方法, 所述云端鉴别条件中包括多个特定程 序匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL文件信息。
5、 根据权利要求 4所述的方法, 所述特定程序匹配条件包括以下信息 中的至少一种:
文件名称信息、 文件大小信息、 文件特征值信息、 文件图标信息、 产 品名称信息、 内部名称信息、 原始文件名信息, 以及进程的命令行信息、 进程路径信息和父进程路径信息;
所述待执行程序的特征信息包括以下信息中的至少一种:
待执行程序的文件名称信息、 文件大小信息、 文件特征值信息、 文件 图标信息、 产品名称信息、 内部名称信息、 原始文件名信息, 以及待执行 程序创建的进程的命令行信息、 进程路径信息和父进程路径信息。
6、 根据权利要求 2所述的方法, 在将所述被劫持的 DLL文件上传至 服务器之前, 还包括步骤:
获取所述待执行程序对应的 EXE文件;
将所述待执行程序对应的 EXE文件的信息上传至服务器。
7、 根据权利要求 6所述的方法, 所述被劫持的 DLL文件为一个或多 个;
所述依据所述服务器返回的查杀结果对所述待执行程序执行相应的操 作的步骤包括:
当所述 EXE文件的等级和所述被劫持的 DLL文件的等级中至少一个 为恶意等级时, 拦截所述待执行程序的执行;
当所述 EXE文件的等级和所述被劫持的 DLL文件的等级均为安全等 级时, 允许所述待执行程序的执行;
当所述 EXE文件的等级和所述被劫持的 DLL文件的等级中没有恶意 等级, 并且至少一个被劫持的 DLL文件的等级高于所述 EXE文件的等级 时,获取其中最高的等级,将所述 EXE文件的等级修改为所述最高的等级, 允许所述待执行程序的执行, 并拦截待执行程序执行后发起的可疑操作。
8、 根据权利要求 7所述的方法, 所述可疑操作为以下任意一种: 文件操作、 注册表操作、 进程操作和网络操作。
9、 根据权利要求 1所述的方法, 所述待执行程序为白名单中的程序。
10、 一种程序处理方法, 包括步骤:
接收客户端上传的待执行程序的特征信息, 所述待执行程序的特征信 息为客户端在检测到待执行程序创建进程时获得;
将所述待执行程序的特征信息与预先设置的云端鉴别条件进行匹配, 得到匹配结果;
将所述匹配结果发送给所述客户端, 所述客户端用于依据所述匹配结 果确定所述待执行程序是否存在被劫持的 DLL文件。
11、 根据权利要求 10所述的方法, 还包括步骤:
定期检测所述云端鉴别条件是否满足升级条件, 若满足, 则获取新的 鉴别条件, 并通过重新加载所述新的鉴别条件完成所述云端鉴别条件的升 级更新;
其中, 所述升级条件在服务器中进行配置。
12、 根据权利要求 10或 11所述的方法, 所述云端鉴别条件存储在服 务器中。
13、 根据权利要求 10或 11所述的方法, 所述云端鉴别条件中包括多 个特定程序匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL文 件信息;
所述将所述待执行程序的特征信息与预先设置的云端鉴别条件进行匹 配, 得到匹配结果的步骤包括:
将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配; 获取满足相匹配的特定程序匹配条件后需要检查的特定 DLL 文件信 息;
将所述特定 DLL文件信息作为所述待执行程序需要检查的 DLL文件 信息。
14、 根据权利要求 10或 11所述的方法, 还包括步骤:
接收客户端上传的被劫持的 DLL文件的信息;
对所述被劫持的 DLL文件进行查杀并返回查杀结果; 所述客户端还用 于依据所述服务器返回的查杀结果对所述待执行程序执行相应的操作。
15、 根据权利要求 14所述的方法, 在对所述被劫持的 DLL文件进行 查杀并返回查杀结果之前, 还包括步骤:
接收客户端上传的待执行程序对应的 EXE文件的信息。
16、 根据权利要求 15所述的方法, 所述对所述被劫持的 DLL文件进 行查杀并返回查杀结果的步骤包括:
查询所述 EXE文件的等级和所述被劫持的 DLL文件的等级, 所述等 级包括安全等级、 未知等级、 可疑 /高度可疑等级、 以及恶意等级; 依据所述 EXE文件的等级和所述被劫持的 DLL文件的等级对所述被 劫持的 DLL文件进行查杀;
返回查杀结果。
17、 一种程序处理系统, 包括客户端和服务器, 其中,
客户端包括:
特征信息获取模块, 配置为在检测到待执行程序创建进程时, 获取所 述待执行程序的特征信息;
特征信息上传模块, 配置为将所述待执行程序的特征信息上传至服务 器;
所述服务器包括:
匹配模块, 配置为将所述待执行程序的特征信息与预先设置的云端鉴 别条件进行匹配, 得到匹配结果;
所述客户端还包括:
确定模块, 配置为接收所述服务器返回的匹配结果, 并依据所述匹配 结果确定所述待执行程序是否存在被劫持的 DLL文件。
18、 根据权利要求 17所述的系统, 所述服务器还包括:
查杀模块, 配置为在客户端的确定模块的检查结果为存在时, 对所述 被劫持的 DLL文件进行查杀并返回查杀结果;
所述客户端还包括:
处理模块, 配置为依据所述服务器返回的查杀结果对所述待执行程序 执行相应的操作。
19、 根据权利要求 17所述的系统, 所述匹配结果为所述待执行程序需 要检查的 DLL文件信息;
所述确定模块包括:
判断模块, 配置为判断指定目录下是否存在所述需要检查的 DLL文件 信息, 若存在, 则确定所述待执行程序存在被劫持的 DLL文件; 其中, 所 述被劫持的 DLL文件为指定目录下存在的 DLL文件, 所述指定目录为当 前目录或者指定的相对目录。
20、 根据权利要求 19所述的系统, 所述云端鉴别条件中包括多个特定 程序匹配条件和满足该特定程序匹配条件后需要检查的特定 DLL 文件信 息。
21、 根据权利要求 20所述的系统, 所述匹配模块包括:
匹配操作模块, 配置为将所述待执行程序的特征信息与所述特定程序 匹配条件进行匹配;
特定 DLL文件信息获取模块, 配置为获取满足相匹配的特定程序匹配 条件后需要检查的特定 DLL文件信息;
确定操作模块, 配置为将所述特定 DLL文件信息作为所述待执行程序 需要检查的 DLL文件信息。
22、 根据权利要求 21所述的系统, 所述特定程序匹配条件包括以下信 息中的至少一种:
文件名称信息、 文件大小信息、 文件特征值信息、 文件图标信息、 产 品名称信息、 内部名称信息、 原始文件名信息, 以及进程的命令行信息、 进程路径信息和父进程路径信息;
所述待执行程序的特征信息包括以下信息中的至少一种:
待执行程序的文件名称信息、 文件大小信息、 文件特征值信息、 文件 图标信息、 产品名称信息、 内部名称信息、 原始文件名信息, 以及待执行 程序创建的进程的命令行信息、 进程路径信息和父进程路径信息。
23、 根据权利要求 18所述的系统, 所述客户端还包括:
文件获取模块, 配置为在服务器的查杀模块对所述被劫持的 DLL文件 进行查杀之前, 获取所述待执行程序对应的 EXE文件;
文件信息上传模块, 配置为将所述待执行程序对应的 EXE文件的信息 和所述被劫持的 DLL文件的信息上传至服务器;
所述服务器的查杀模块包括:
等级查询模块,配置为查询所述 EXE文件的等级和所述被劫持的 DLL 文件的等级, 所述等级包括安全等级、 未知等级、 可疑 /高度可疑等级、 以 及恶意等级;
查杀处理模块,配置为依据所述 EXE文件的等级和所述被劫持的 DLL 文件的等级对所述被劫持的 DLL文件进行查杀。
24、 根据权利要求 23所述的系统, 所述被劫持的 DLL文件为一个或 多个,
所述处理模块包括:
程序拦截模块, 配置为在所述 EXE 文件的等级和所述被劫持的 DLL 文件的等级中至少一个为恶意等级时, 拦截所述待执行程序的执行;
执行模块, 配置为在所述 EXE文件的等级和所述被劫持的 DLL文件 的等级均为安全等级时, 允许所述待执行程序的执行;
可疑操作拦截模块, 配置为在所述 EXE 文件的等级和所述被劫持的 DLL文件的等级中没有恶意等级,并且至少一个被劫持的 DLL文件的等级 高于所述 EXE文件的等级时, 获取其中最高的等级, 将所述 EXE文件的 等级修改为所述最高的等级, 允许所述待执行程序的执行, 并拦截待执行 程序执行后发起的可疑操作。
25、 根据权利要求 24所述的系统, 所述可疑操作为以下任意一种: 文件操作、 注册表操作、 进程操作和网络操作。
26、根据权利要求 17所述的系统,所述待执行程序为白名单中的程序。
27、 根据权利要求 17所述的系统, 所述服务器还包括:
升级模块, 配置为定期检测所述云端鉴别条件是否满足升级条件, 若 满足, 则获取新的鉴别条件, 并通过重新加载所述新的鉴别条件完成所述 云端鉴别条件的升级更新;
其中, 所述升级条件在服务器中进行配置。
28、 一种用于程序处理的客户端, 所述客户端与服务器通信, 所述服 务器用于将所述客户端上传的待执行程序的特征信息与预先设置的云端鉴 别条件进行匹配, 得到匹配结果, 所述客户端包括: 特征信息获取模块, 配置为在检测到待执行程序创建进程时, 获取所 述待执行程序的特征信息;
特征信息上传模块, 配置为将所述待执行程序的特征信息上传至服务 器;
确定模块, 配置为接收所述服务器返回的匹配结果, 并依据所述匹配 结果确定所述待执行程序是否存在被劫持的 DLL文件。
29、 一种用于程序处理的服务器, 所述服务器与客户端通信, 所述客 户端用于依据所述服务器返回的匹配结果确定所述待执行程序是否存在被 劫持的 DLL文件, 所述服务器包括:
特征信息接收模块, 用于接收客户端上传的待执行程序的特征信息, 所述待执行程序的特征信息为客户端在检测到待执行程序创建进程时获 付;
匹配模块, 配置为将所述待执行程序的特征信息与预先设置的云端鉴 别条件进行匹配, 得到匹配结果;
匹配结果发送模块, 配置为将所述匹配结果发送给所述客户端。
30、 一种计算机程序, 包括计算机可读代码, 当所述计算机可读代码 在终端设备上运行时,导致所述终端设备执行根据权利要求 1〜16中的任一 项所述的程序处理方法。
31、 一种计算机可读介质, 其中存储了如权利要求 30所述的计算机程 序。
PCT/CN2013/086777 2012-11-09 2013-11-08 程序处理方法和系统,用于程序处理的客户端和服务器 WO2014071867A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210448512.5A CN103001947B (zh) 2012-11-09 2012-11-09 一种程序处理方法和系统
CN201210448512.5 2012-11-09

Publications (1)

Publication Number Publication Date
WO2014071867A1 true WO2014071867A1 (zh) 2014-05-15

Family

ID=47930091

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/086777 WO2014071867A1 (zh) 2012-11-09 2013-11-08 程序处理方法和系统,用于程序处理的客户端和服务器

Country Status (2)

Country Link
CN (1) CN103001947B (zh)
WO (1) WO2014071867A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982281B (zh) * 2012-11-09 2016-03-30 北京奇虎科技有限公司 程序状况检测方法和系统
CN103001947B (zh) * 2012-11-09 2015-09-30 北京奇虎科技有限公司 一种程序处理方法和系统
CN103294955B (zh) * 2013-06-28 2016-06-08 北京奇虎科技有限公司 宏病毒查杀方法及系统
CN103713945B (zh) * 2013-12-17 2018-05-25 北京奇虎科技有限公司 游戏的识别方法和装置
CN104134143B (zh) * 2014-07-15 2017-05-03 北京奇付通科技有限公司 移动支付安全的保护方法、装置及云服务器
CN104021339A (zh) * 2014-06-10 2014-09-03 北京奇虎科技有限公司 移动终端的安全支付方法及装置
CN104123489A (zh) * 2014-07-02 2014-10-29 珠海市君天电子科技有限公司 可执行程序的监控方法和装置
CN104079673B (zh) * 2014-07-30 2018-12-07 北京奇虎科技有限公司 一种应用下载中防止dns劫持的方法、装置和系统
CN105160247B (zh) * 2015-09-30 2019-05-31 北京奇虎科技有限公司 一种识别浏览器被劫持的方法
CN105631334A (zh) * 2015-12-25 2016-06-01 北京奇虎科技有限公司 应用的安全检测处理方法和系统
CN109313645B (zh) * 2017-08-25 2022-05-24 深圳市大富智慧健康科技有限公司 人工智能终端系统、服务器及其行为控制方法
CN107506645A (zh) * 2017-08-30 2017-12-22 北京明朝万达科技股份有限公司 一种勒索病毒的检测方法和装置
CN108667855B (zh) * 2018-07-19 2021-12-03 百度在线网络技术(北京)有限公司 网络流量异常监测方法、装置、电子设备及存储介质
CN111191270A (zh) * 2019-10-09 2020-05-22 浙江中控技术股份有限公司 一种基于白名单防护的敏感文件访问控制方法
CN113760393A (zh) * 2021-09-22 2021-12-07 杭州安恒信息技术股份有限公司 一种动态链接库的防护方法、装置、设备和介质
CN113792294B (zh) * 2021-11-15 2022-03-08 北京升鑫网络科技有限公司 一种恶意类检测方法、系统、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838136A (zh) * 2006-04-24 2006-09-27 南京树声科技有限公司 在计算机存储设备上查找有害程序的方法
US20090199297A1 (en) * 2008-02-04 2009-08-06 Microsoft Corporation Thread scanning and patching to disable injected malware threats
CN102081722A (zh) * 2011-01-04 2011-06-01 奇智软件(北京)有限公司 一种保护指定应用程序的方法及装置
CN102663288A (zh) * 2012-03-22 2012-09-12 奇智软件(北京)有限公司 病毒查杀方法及装置
CN103001947A (zh) * 2012-11-09 2013-03-27 北京奇虎科技有限公司 一种程序处理方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353928B1 (en) * 1999-01-04 2002-03-05 Microsoft Corporation First run installer
JP2002373077A (ja) * 2001-06-14 2002-12-26 Nec Corp 実行時ライブラリ検索方法及び装置、動的リンカ並びにプログラム
US20040123308A1 (en) * 2002-12-20 2004-06-24 Siemens Information And Communication Networks, Inc. Hybird of implicit and explicit linkage of windows dynamic link labraries
CN101950336B (zh) * 2010-08-18 2015-08-26 北京奇虎科技有限公司 一种清除恶意程序的方法和装置
CN102592103B (zh) * 2011-01-17 2015-04-08 中国电信股份有限公司 文件安全处理方法、设备及系统
CN102413142A (zh) * 2011-11-30 2012-04-11 华中科技大学 基于云平台的主动防御方法
CN102736978B (zh) * 2012-06-26 2015-09-30 北京奇虎科技有限公司 一种检测应用程序的安装状态的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838136A (zh) * 2006-04-24 2006-09-27 南京树声科技有限公司 在计算机存储设备上查找有害程序的方法
US20090199297A1 (en) * 2008-02-04 2009-08-06 Microsoft Corporation Thread scanning and patching to disable injected malware threats
CN102081722A (zh) * 2011-01-04 2011-06-01 奇智软件(北京)有限公司 一种保护指定应用程序的方法及装置
CN102663288A (zh) * 2012-03-22 2012-09-12 奇智软件(北京)有限公司 病毒查杀方法及装置
CN103001947A (zh) * 2012-11-09 2013-03-27 北京奇虎科技有限公司 一种程序处理方法和系统

Also Published As

Publication number Publication date
CN103001947A (zh) 2013-03-27
CN103001947B (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
WO2014071867A1 (zh) 程序处理方法和系统,用于程序处理的客户端和服务器
US9596257B2 (en) Detection and prevention of installation of malicious mobile applications
US10528735B2 (en) Malicious code protection for computer systems based on process modification
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
US11068591B2 (en) Cybersecurity systems and techniques
KR101880375B1 (ko) 네트워크 활동을 보이는 실행파일들의 분리
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US9355246B1 (en) Tuning sandbox behavior based on static characteristics of malware
JP6346632B2 (ja) モバイルデバイスでの悪質なファイルを検出するシステム及び方法
US11409884B2 (en) Security profiling of system firmware and applications from an OOB appliance at a differentiated trust boundary
US8590041B2 (en) Application sandboxing using a dynamic optimization framework
EP3230919B1 (en) Automated classification of exploits based on runtime environmental features
US10027704B2 (en) Malicious program finding and killing device, method and server based on cloud security
US20100306851A1 (en) Method and apparatus for preventing a vulnerability of a web browser from being exploited
JP2019067372A (ja) プロセスのアドレス空間内の悪意のあるコードの検出のためのシステムおよび方法
EP3127036B1 (en) Systems and methods for identifying a source of a suspect event
CN108028843B (zh) 保护计算机实现的功能的递送的方法、系统和计算设备
CN105791221B (zh) 规则下发方法及装置
WO2016095671A1 (zh) 一种应用程序的消息处理方法和装置
US11263309B2 (en) Block device signature-based integrity protection for containerized applications
US10467417B2 (en) Automated and secure module building system
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
US10467404B2 (en) Apparatus and method for secure module build
CN117494110A (zh) 一种代码检测方法及相关系统
JP6498413B2 (ja) 情報処理システム、情報処理装置、制御サーバ、生成サーバ、動作制御方法及び動作制御プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13852515

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13852515

Country of ref document: EP

Kind code of ref document: A1