US20170083706A1 - Device, method, and storage medium - Google Patents
Device, method, and storage medium Download PDFInfo
- Publication number
- US20170083706A1 US20170083706A1 US15/246,878 US201615246878A US2017083706A1 US 20170083706 A1 US20170083706 A1 US 20170083706A1 US 201615246878 A US201615246878 A US 201615246878A US 2017083706 A1 US2017083706 A1 US 2017083706A1
- Authority
- US
- United States
- Prior art keywords
- malware
- command
- information
- verification device
- hardware
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/032—Protect output to user by software means
Definitions
- the embodiment discussed herein is related to a device, a method, and a storage medium.
- a security administrator in a company or organization is expected to suppress fraudulent acquisition, destruction, and so forth of information (hereinafter, referred to also as malignant operation) by malware for example.
- the malware is a generic term of software that carries out harmful operation, including computer virus.
- malware is transmitted in the form of being attached to an e-mail transmitted from an external terminal device (hereinafter, referred to also simply as external terminal) by a malicious person, and is executed in a terminal device that receives the e-mail to infect the terminal device.
- external terminal an external terminal device
- This allows the malicious person to use the terminal device infected with the malware as a steppingstone to gain unauthorized access to other terminal devices (for example, terminal device that stores confidential information, and so forth) coupled to the terminal device and carry out fraudulent acquisition of information and so forth.
- the administrator sets a verification device (for example, device having a virtual environment implemented by a virtual machine) that executes software when the software is attached to an e-mail transmitted from an external terminal to a terminal device for example.
- a verification device for example, device having a virtual environment implemented by a virtual machine
- the verification device When software is attached to an e-mail transmitted from an external terminal to a terminal device, the verification device acquires the e-mail before the e-mail is transmitted to the terminal device. Then, the verification device executes and analyzes the software attached to the acquired e-mail on a debugger (virtual environment) of the verification device. If it is determined that the software is not malware as the result, the verification device transmits the e-mail to which the software is attached to the terminal device. On the other hand, if determining that the software is malware, the verification device discards the e-mail to which the software is attached without transmitting the e-mail to the terminal device for example. This allows the administrator to suppress infection with the malware in the terminal device.
- a debugger virtual environment
- Japanese Laid-open Patent Publication No. 2011-233125 and Japanese Laid-open Patent Publication No. 2004-126854 are known.
- a device includes: a memory configured to store in advance a command transmitted from malware to hardware via an operating system; and a processor coupled to the memory and configured to: hook a first command transmitted from the operating system to the hardware, and transmit information that causes the malware to determine to terminate operation of the malware to the operating system when the hooked first command corresponds with the command stored in the memory.
- FIG. 1 is a diagram for explaining an overall configuration of an information processing system
- p FIGS. 2, 3, 4, 5, and 6 are diagrams for explaining one example of processing of a verification device in the case in which an e-mail to which malware is attached is received;
- FIG. 7 is a diagram for explaining one example of processing of a verification device in the case in which malware having an anti-analysis function is received;
- FIG. 8 is a diagram for explaining one example of processing of a terminal device in the case in which malware having an anti-analysis function is received;
- FIGS. 9 and 10 are diagrams for explaining one example of processing in the case of causing malware to make an erroneous determination
- FIG. 11 is a diagram for explaining a hardware configuration of a terminal device
- FIG. 12 is a functional block diagram of the terminal device in FIG. 11 .
- FIGS. 13 and 14 are flowchart diagrams for explaining outline of network protection processing in a first embodiment
- FIGS. 15, 16, and 17 are diagrams for explaining the outline of the network protection processing in the first embodiment
- FIGS. 18, 19, and 20 are flowchart diagrams for explaining details of the network protection processing in the first embodiment.
- FIGS. 21, 22, and 23 are one example of policy information.
- malware that terminates the operation of oneself (malware that does not carry out malignant operation) when detecting that the malware is executed on any program exists for example.
- malware determines that there is a possibility that the malware is being executed on a program (debugger) for analyzing the operation of the malware and terminates the operation in order to suppress the analysis of the operation of the malware when detecting that the malware is executed on any program (hereinafter, such a function will be referred to also as anti-analysis function).
- the existing verification device does not detect executed malware as malware when executing malware having the anti-analysis function on a debugger of the verification device. Therefore, in this case, the verification device transmits the e-mail to which the malware is attached to a terminal device and the terminal device becomes infected with the malware attached to the e-mail transmitted from the verification device.
- the embodiment discussed herein intends to suppress the operation of malware in one aspect.
- FIG. 1 is a diagram for explaining an overall configuration of an information processing system.
- An information processing system 10 illustrated in FIG. 1 includes terminal devices 1 a , 1 b , and is (hereinafter, the terminal devices 1 a , 1 b , and is will be referred to also as the terminal device 1 or the network protecting device 1 collectively), a verification device 2 , and a firewall device 3 .
- the terminal device 1 is a terminal used by a developer or administrator of a business operations system in a company or organization.
- the terminal device 1 is a desktop personal computer (PC) or notebook PC for example.
- the firewall device 3 controls communications between an external terminal 31 coupled to a network NW and the terminal device 1 . That is, the firewall device 3 defends against unauthorized access to the terminal device 1 by the external terminal 31 , and so forth, for example.
- the network NW is the Internet network for example.
- the verification device 2 acquires the transmitted e-mail and determines whether or not software is attached to the e-mail. Then, if software is attached to the e-mail transmitted from the external terminal 31 , the verification device 2 executes the software attached to the e-mail on a debugger of a verification environment constructed in the verification device 2 for example.
- the verification device 2 carries out the determination as to whether or not the software attached to the e-mail allowed to pass by the firewall device 3 is malware.
- the verification environment constructed in the verification device 2 is a virtual environment including a virtual machine (hereinafter, referred to also as VM) generated through allocation of a physical resource of the verification device 2 for example.
- VM virtual machine
- the verification device 2 transmits the e-mail transmitted from the external terminal 31 to the terminal device 1 .
- the verification device 2 discards the e-mail transmitted from the external terminal 31 without transmitting the e-mail to the terminal device 1 . Due to this, even when an e-mail to which malware is attached is transmitted from the external terminal 31 , the verification device 2 can keep the terminal device 1 from becoming infected with the malware transmitted from the external terminal 31 .
- FIGS. 2, 3, 4, 5, and 6 are diagrams for explaining one example of processing of a verification device in the case in which an e-mail to which malware is attached is received.
- the verification device illustrated in FIGS. 2, 3, 4, 5, and 6 may be the verification device 2 illustrated in FIG. 1 .
- the verification device 2 is a physical machine having physical resources (central processing unit (CPU) and memory) for generating a virtual machine.
- virtualization software 24 (hereinafter, referred to also as the hypervisor 24 ) for generating or deleting a virtual machine in the verification device 2 operates.
- virtual machines 21 , 22 , and 23 to which physical resources of the verification device 2 are allocated are deployed.
- virtualization software 14 (hereinafter, referred to also as the hypervisor 14 ) for managing generation or deletion of a virtual machine in the terminal device 1 operates.
- a virtual machine 11 to which a physical resource of the terminal device 1 is allocated is deployed.
- the verification device 2 acquires the e-mail transmitted from the external terminal 31 before the e-mail is transmitted to the terminal device 1 as illustrated in FIG. 2 . Then, the verification device 2 determines whether or not software is attached to the transmitted e-mail for example. As a result, if the software is attached, the verification device 2 executes the software on a debugger of the virtual machine 21 and carries out analysis for example. That is, the verification device 2 determines whether or not the software attached to the e-mail is malware.
- the virtual machine 21 transmits the e-mail transmitted from the external terminal 31 to the terminal device 1 as illustrated in FIG. 3 . Furthermore, the virtual machine 21 transmits the transmitted e-mail to the terminal device 1 also when software is not attached to the e-mail transmitted from the external terminal 31 for example.
- the virtual machine 21 discards the e-mail transmitted from the external terminal 31 without transmitting the e-mail to the terminal device 1 . This makes it possible to keep the terminal device 1 from becoming infected with the malware even when the software attached to the transmitted e-mail is the malware.
- the software attached to the transmitted e-mail is malware
- the verification device 2 deletes the virtual machine 21 infected with the malware as illustrated in FIG. 5 . This allows the verification device 2 to delete the environment infected with the malware from the verification device 2 .
- malware exists that has the anti-analysis function of determining to terminate the operation of oneself (determining not to carry out malignant operation) when detecting that the malware is executed on a debugger as illustrated in FIG. 6 .
- the verification device 2 does not detect the executed malware as malware in some cases. Therefore, in this case, there is a possibility that the verification device 2 transmits the e-mail to which the malware is attached to the terminal device 1 and causes the terminal device 1 to become infected with the malware as illustrated in FIG. 6 .
- a description will be made about one example of processing of the verification device 2 and the terminal device 1 for coping with the malware having the anti-analysis function.
- FIG. 7 is a diagram for explaining one example of processing of a verification device in the case in which malware having an anti-analysis function is received.
- the verification device illustrated in FIG. 7 may be the verification device 2 illustrated in FIG. 1 .
- the hypervisor 24 operates on hardware 25 (physical resource) of the verification device 2 and generates or deletes the virtual machine 21 .
- the hypervisor 24 generates a virtual operating system (OS) 21 c (hereinafter, referred to also as the guest OS 21 c ) on the hypervisor 24 and allocates part of the hardware 25 as hardware of the virtual machine 21 (hereinafter, referred to also as virtual hardware).
- OS virtual operating system
- the hypervisor 24 deletes the virtual OS 21 c generated on the hypervisor 24 and releases the virtual hardware of the virtual machine 21 .
- a debugger 21 b for executing and analyzing software 31 a (software having the possibility of being malware) or the like attached to the received e-mail operates on the virtual OS 21 c.
- the hypervisor 24 directly operates on the hardware 25 .
- the hypervisor 24 may be a hypervisor that operates on a host OS (not illustrated) that operates on the hardware 25 .
- the malware 31 a determines whether or not the present environment in which the malware 31 a is executed is the environment in which the malware 31 a is to continue the operation (environment in which the malware 31 a is to start malignant operation). In this case, the malware 31 a determines whether or not the environment in which the malware 31 a is executed is on any program for example. If determining that the environment in which the malware 31 a is executed is on any program as the result, the malware 31 a determines that the environment in which the malware 31 a is executed is not the terminal device 1 as the destination of the e-mail but a verification environment on another device.
- the malware 31 a determines that the environment in which the malware 31 a is executed is not the environment in which the malware 31 a is to continue the operation, and terminates the operation. This allows the malware 31 a to suppress the operation of oneself from being analyzed.
- the malware 31 a transmits an inquiry about whether or not the environment in which the malware 31 a is executed is on a program to the virtual OS 21 c . Then, the malware 31 a terminates the operation if receiving information indicating that the environment in which the malware 31 a is executed is on a program from the virtual OS 21 c . That is, in this case, the malware 31 a determines that the present environment in which the malware 31 a is executed is not the environment in which the malware 31 a is to continue the operation, and does not execute operation for carrying out malignant operation.
- the malware 31 a can keep the malware 31 a from being excluded by the verification device 2 and reach the terminal device 1 .
- FIG. 8 is a diagram for explaining one example of processing of a terminal device in the case in which malware having an anti-analysis function is received.
- the terminal device illustrated in FIG. 8 may be the terminal device 1 illustrated in FIG. 1 .
- the hypervisor 14 operates on hardware 15 (physical resource) of the terminal device 1 and generates or deletes the virtual machine 11 .
- the hypervisor 14 generates a virtual OS 11 c (hereinafter, referred to also as the guest OS 11 c ) on the hypervisor 14 and allocates part of the hardware 15 as virtual hardware of the virtual machine 11 .
- the hypervisor 14 deletes the virtual OS 11 c generated on the hypervisor 14 and releases the virtual hardware of the virtual machine 11 .
- the terminal device 1 illustrated in FIG. 8 is not a device for executing software attached to an e-mail and carrying out analysis and therefore does not include a debugger differently from the verification device 2 illustrated in FIG. 7 .
- the hypervisor 14 illustrated in FIG. 8 directly operates on the hardware 15 .
- the hypervisor 14 may be a hypervisor that operates on a host OS (not illustrated) that operates on the hardware 15 .
- the malware 31 a executed in the terminal device 1 determines whether or not the environment in which the malware 31 a is executed is on any program in order to determine whether or not the present environment in which the malware 31 a is executed is the environment in which the malware 31 a is to continue the operation (environment in which the malware 31 a is to carry out malignant operation).
- the malware 31 a transmits an inquiry about whether or not the environment in which the malware 31 a is executed is on a program to the virtual OS 11 c .
- the malware 31 a in the example of FIG. 8 is executed not on a program such as a debugger but on the virtual OS 11 c directly, differently from the case described with FIG. 7 .
- the malware 31 a receives information indicating that the environment in which the malware 31 a is executed is not on a program from the virtual OS 11 c . Therefore, in the example illustrated in FIG. 8 , the malware 31 a determines that the present environment in which the malware 31 a is executed is the environment in which the malware 31 a is to continue the operation, and starts malignant operation. This allows the malware 31 a to infect the terminal device 1 even when being preliminarily executed in the verification device 2 .
- the terminal device 1 causes the malware 31 a to erroneously determine that the terminal device 1 is a terminal in which the malware 31 a is not to operate, and causes the malware 31 a to terminate the operation (keeps the malware 31 a from starting malignant operation) in some cases.
- This allows the terminal device 1 to suppress infection with the malware 31 a .
- a description will be made about one example of processing in the case of causing the malware 31 a to make an erroneous determination.
- FIGS. 9 and 10 are diagrams for explaining one example of processing in the case of causing malware to make an erroneous determination.
- the malware illustrated in FIGS. 9 and 10 may be the malware 31 a illustrated in FIG. 7 . If an inquiry about whether or not the present environment in which the software 31 a is executed is on any program is transmitted from the software 31 a (having the possibility of being the malware 31 a ) to the virtual OS 11 c , a hook device 4 acquires the transmitted inquiry before the inquiry reaches the virtual OS 11 c as illustrated in FIG. 9 . Then, if the contents of the acquired inquiry correspond with information stored in a storing unit 4 a , the hook device 4 does not transmit the inquiry to the virtual OS 11 c . Moreover, in this case, the hook device 4 transmits, to the software 31 a , information indicating that the present environment in which the software 31 a is executed is on any program (information indicating that malignant operation is not to be started).
- the administrator stores, in the storing unit 4 a in advance, the respective pieces of information transmitted by various pieces of malware in order to determine whether or not to continue the operation. Then, if information transmitted from the software 31 a to the virtual OS 11 c is the same information as information stored in the storing unit 4 a , the hook device 4 determines that the software 31 a that has transmitted the inquiry to the virtual OS 11 c is malware (malware 31 a ). Thereafter, the hook device 4 transmits, to the malware 31 a , information indicating that the malware 31 a is not to continue the operation as a response to the inquiry transmitted to the virtual OS 11 c by the malware 31 a.
- the hook device 4 can cause the malware 31 a to determine that the present environment in which the malware 31 a is executed is the environment in which the malware 31 a is not to continue the operation and cause the malware 31 a to terminate the operation in the terminal device 1 (keep the malware 31 a from starting malignant operation).
- the hook device 4 can keep the terminal device 1 from becoming infected with the malware 31 a.
- the malware 31 a transmits an inquiry for determining whether or not to continue the operation to the hardware 15 via the virtual OS 11 c as illustrated in FIG. 10 .
- the hook device 4 is a device that only hooks information between the software 31 a (malware 31 a ) and the virtual OS 11 c , it is difficult to hook information transmitted to the hardware 15 by the malware 31 a . Therefore, in this case, it is difficult for the hook device 4 to terminate the operation of the malware 31 a in the terminal device 1 and keep the terminal device 1 from becoming infected with the malware 31 a.
- the hypervisor 14 of the terminal device 1 includes a storing unit that stores commands having the possibility of being transmitted from the malware 31 a to the hardware 15 via the virtual OS 11 c . Furthermore, the hypervisor 14 of the terminal device 1 hooks a command transmitted from the virtual OS 11 c to the hardware 15 (hereinafter, referred to also as first command). Then, if a command having the same contents as the hooked first command is stored in the storing unit, the hypervisor 14 of the terminal device 1 transmits information for causing the malware 31 a to determine to terminate the operation to the virtual OS 11 c.
- the terminal device 1 in the present embodiment hooks the first command transmitted from the virtual OS 11 c to the hardware 15 in the hypervisor 14 located between the virtual OS 11 c and the hardware 15 .
- This allows the terminal device 1 to hook a command transmitted from the virtual OS 11 c to the hardware 15 .
- the hypervisor 14 refers to the storing unit of the hypervisor 14 if the malware 31 a transmits a first command to the hardware 15 via the virtual OS 11 c .
- the hypervisor 14 transmits, to the malware 31 a , the same information as the information responded to the malware 31 a by hardware of another device when the malware 31 a transmitted the same command as the first command in this device.
- This allows the hypervisor 14 to cause the malware 31 a to determine that the environment in which the malware 31 a is being presently executed (terminal device 1 ) is the same environment as an environment in which the malware 31 a terminated the operation in the past (for example, verification device 2 ).
- the hypervisor 14 can suppress the start of malignant operation by the malware 31 a in the terminal device 1 .
- the administrator is set free from the need to preliminarily acquire all pieces of information having the possibility of being transmitted to the hardware 15 by the malware 31 a and store the pieces of information in the storing unit of the hypervisor 14 in advance.
- FIG. 11 is a diagram for explaining a hardware configuration of a terminal device.
- the terminal device illustrated in FIG. 11 may be the terminal device 1 illustrated in FIG. 1 .
- the terminal device 1 includes a CPU 101 that is a processor, a memory 102 , an external interface (input/output (I/O) unit) 103 , and a storage medium 104 .
- the respective units are coupled to each other via a bus 105 .
- the storage medium 104 stores a program 110 for executing processing of protecting the network by causing the operation of the malware 31 a to be terminated in the terminal device 1 (hereinafter, referred to also as network protection processing), and so forth, in a program storing area (not illustrated) in the storage medium 104 for example.
- the CPU 101 when executing the program 110 , the CPU 101 loads the program 110 from the storage medium 104 into the memory 102 and executes the network protection processing and so forth in cooperation with the program 110 .
- the storage medium 104 includes an information storing area 130 (hereinafter, referred to also as the storing unit 130 ) that stores information used when the network protection processing and so forth are executed for example.
- the storing unit 130 functions as the storing unit controlled by the hypervisor 14 for example.
- the external interface 103 carries out communications with the verification device 2 .
- the external interface 103 carries out communications with the network NW via the verification device 2 and the firewall device 3 .
- FIG. 12 is a functional block diagram of the terminal device 1 in FIG. 11 .
- the CPU 101 functions as a command hook unit 111 , a command determining unit 112 , a command converting unit 113 , a return value transmitting unit 114 , a policy receiving unit 115 , and a policy managing unit 116 that are functions of the hypervisor 14 of the terminal device 1 .
- policy information 131 is stored in the information storing area 130 .
- the command hook unit 111 , the command determining unit 112 , the command converting unit 113 , and the return value transmitting unit 114 will be referred to also as a processing unit 120 collectively.
- the command hook unit 111 hooks a first command transmitted from the virtual OS 11 c of the terminal device 1 to the hardware 15 .
- the command hook unit 111 hooks a first command transmitted to the hardware 15 via the virtual OS 11 c by the software 31 a (having the possibility of being the malware 31 a ) that operates on the virtual OS 11 c before the first command is transmitted to the hardware 15 .
- the command determining unit 112 determines whether or not the first command hooked by the command hook unit 111 is included in a command group (hereinafter, referred to also as the policy information 131 ) stored in the information storing area 130 . Then, the command determining unit 112 determines that the software 31 a is the malware 31 a if the first command is included in the policy information 131 stored in the information storing area 130 .
- the command converting unit 113 converts the first command to information for causing the malware 31 a to determine to terminate the operation (determine not to start malignant operation). That is, the command converting unit 113 creates information for causing the malware 31 a to terminate the operation (hereinafter, referred to also as return value information 132 ) if the software 31 a is the malware 31 a.
- the return value transmitting unit 114 transmits the return value information 132 created by the command converting unit 113 to the software 31 a via the virtual OS 11 c.
- the policy receiving unit 115 receives the policy information 131 created by the verification device 2 .
- the policy managing unit 116 stores the policy information 131 received by the policy receiving unit 115 in the information storing area 130 .
- FIGS. 13 and 14 are flowchart diagrams for explaining outline of network protection processing in the first embodiment. Furthermore, FIGS. 15, 16, and 17 are diagrams for explaining the outline of the network protection processing in the first embodiment. The outline of the network protection processing of FIGS. 13 and 14 will be described with reference to FIGS. 15 to 17 . The following description will be made based on the premise that the terminal device 1 receives the policy information 131 from the verification device 2 .
- the terminal device 1 waits until receiving the policy information 131 from the verification device 2 for example (S 1 ; NO).
- the verification device 2 creates the policy information 131 from information obtained by tallying commands transmitted to the hardware 25 via the virtual OS 21 c by the software 31 a (having the possibility of being the malware 31 a ) executed on the virtual OS 21 c for example. That is, in the policy information 131 , information on commands that were transmitted in the past to the hardware 25 by the software 31 a in the verification device 2 and with which malignant operation by malware was not carried out as the result of transmission of a response to the command to the software 31 a is included.
- policy information 131 information actually transmitted to the software 31 a by the hardware 25 (return value information 132 ) in response to information transmitted from the software 31 a may be included.
- the terminal device 1 (hypervisor 14 ) stores the policy information 131 received in the processing of S 1 in the information storing area 130 as illustrated in FIG. 15 (S 2 )
- the terminal device 1 (hypervisor 14 ) waits until detecting transmission of a first command transmitted from the virtual OS 11 c of the terminal device 1 to the hardware 15 (S 11 ; NO). That is, the terminal device 1 waits until detecting transmission of a first command transmitted to the hardware 15 via the virtual OS 11 c by the software 31 a executed on the virtual OS 11 c . Then, if detecting transmission of a first command (S 11 ; YES), the terminal device 1 (hypervisor 14 ) hooks the first command as illustrated in FIG. 16 (S 12 ).
- the terminal device 1 can cause the malware 31 a to determine to terminate the operation as described later.
- the terminal device 1 can keep the first command from being transmitted to the hardware 15 as the original transmission destination of the first command.
- the terminal device 1 can suppress transmission of a response from the hardware 15 as the original transmission destination of the first command to the software 31 a.
- the terminal device 1 determines whether or not the first command hooked in the processing of S 12 is stored in the information storing area 130 (S 13 ). That is, the terminal device 1 determines that the software 31 a is the malware 31 a if the first command is stored in the information storing area 130 .
- the terminal device 1 (hypervisor 14 ) transmits information for causing the software 31 a to determine to terminate the operation when the software 31 a is the malware 31 a to the software 31 a via the virtual OS 11 c (S 14 ).
- the terminal device 1 does not execute the processing of S 14 .
- the terminal device 1 transmits, to the malware 31 a ,information for causing the malware 31 a to determine to terminate the operation (information with which the malware 31 a determined to terminate the operation in the verification device 2 ) as the return value information 132 . Due to this, in the case in which the software 31 a is the malware 31 a , the terminal device 1 can cause the malware 31 a that has referred to the contents of the return value information 132 to determine that the terminal device 1 as the environment in which the malware 31 a is executed is an environment in which the malware 31 a is not to continue the operation (malware 31 a is not to carry out malignant operation). Thus, the terminal device 1 can cause the malware 31 a to terminate the operation.
- the hypervisor 14 of the terminal device 1 includes the storing unit 130 that stores commands transmitted from the malware 31 a to the hardware 25 via the virtual OS 21 c of the verification device 2 . Furthermore, the hypervisor 14 of the terminal device 1 hooks the first command transmitted from the virtual OS 11 c of the terminal device 1 to the hardware 15 . Furthermore, the hypervisor 14 of the terminal device 1 includes the processing unit 120 that transmits the return value information 132 for causing the malware 31 a to determine to terminate the operation to the virtual OS 11 c if the hooked first command is included in the commands stored in the storing unit 130 .
- the hypervisor 14 of the terminal device 1 can cause the malware 31 a to determine that the malware 31 a is being executed in the same environment as an environment in which the malware 31 a did not start malignant operation in the past (for example, verification device 2 ).
- the hypervisor 14 of the terminal device 1 can cause the malware 31 a to terminate the operation.
- the hypervisor 14 of the terminal device 1 causes the operation of the malware 31 a executed in the terminal device 1 to be terminated on the basis of the command transmitted by the malware 31 a in the verification device 2 .
- the administrator is set free from the need to preliminarily acquire all pieces of information having the possibility of being transmitted to the hardware 15 by the malware 31 a and store the pieces of information in the storing unit 130 in advance.
- the hypervisor 14 described with FIGS. 15 to 17 is not a hypervisor that operates on an OS but a hypervisor that operates directly on the hardware 15 (Type 1 hypervisor).
- the hypervisor 14 may be a hypervisor that operates on an OS (host OS: not illustrated) that operates directly on the hardware 15 (Type 2 hypervisor).
- FIGS. 18, 19, and 20 are flowchart diagrams for explaining details of the network protection processing in the first embodiment.
- FIGS. 21, 22, and 23 are diagrams for explaining details of the network protection processing in the first embodiment.
- the network protection processing of FIGS. 18 to 20 will be described with reference to FIGS. 21 to 23 .
- FIG. 18 is a flowchart diagram for explaining the network protection processing in the verification device 2 .
- the verification device 2 waits until receiving an e-mail (e-mail whose destination is the terminal device 1 ) to which the software 31 a is attached from the external terminal 31 (S 21 ; NO). Then, if receiving an e-mail to which the software 31 a is attached from the external terminal 31 (S 21 ; YES), the verification device 2 executes the software 31 a attached to the received e-mail (S 22 ). The verification device 2 executes the software 31 a in a virtual machine (verification environment) generated by the verification device 2 and carries out analysis as described with FIG. 2 and so forth.
- a virtual machine verification environment
- the verification device 2 deletes the virtual machine that has executed the software 31 a attached to the received e-mail without transmitting the received e-mail to the terminal device 1 (S 24 ). That is, if the software 31 a attached to the e-mail received in the processing of S 21 is the malware 31 a ,the verification device 2 discards the e-mail to which the software 31 a is attached without transmitting the e-mail to the terminal device 1 as the destination of the e-mail.
- the verification device 2 can keep the terminal device 1 from becoming infected with the malware 31 a . Furthermore, the verification device 2 can delete the environment infected with the malware 31 a from the verification device 2 by deleting the virtual machine that has executed the malware 31 a.
- the verification device 2 waits until detecting a command transmitted from the virtual OS 21 c of the verification device 2 to the hardware 25 (S 25 ; NO). Then, if detecting a command transmitted from the virtual OS 21 c to the hardware 25 (S 25 ; YES), the verification device 2 creates information in which the command detected in the processing of S 25 is associated with the return value information 132 transmitted to the virtual OS 21 c by the hardware 25 . Then, the verification device 2 stores the created information as part of the policy information 131 in an information storing area (not illustrated) of the verification device 2 (S 26 ).
- malware that is not determined to be malware by the analysis in the verification device 2 (malware that does not carry out malignant operation in the verification device 2 ) is included in the software 31 a determined not to be the malware 31 a in the processing of S 23 .
- the verification device 2 associates information on the command transmitted to the hardware 25 by the software 31 a determined not to be the malware 31 a with information transmitted to the software 31 a in response to the command (return value information 132 ) and stores these associated pieces of information as the policy information 131 . Then, the verification device 2 transmits the stored policy information 131 to the terminal device 1 . This allows the terminal device 1 to suppress malignant operation by the malware 31 a in the terminal device 1 as described later.
- the verification device 2 detects new information transmitted from the software 31 a to the hardware 25 and transmits the policy information 131 to the terminal device 1 (S 27 ). That is, the verification device 2 transmits the policy information 131 to the terminal device 1 every time the policy information 131 stored in the information storing area of the verification device 2 is updated for example. Due to this, when new malware transmits a new command to the hardware 25 in the verification device 2 , the terminal device 1 can rapidly respond to the new command.
- One example of the policy information 131 will be described below.
- FIGS. 21, 22, and 23 are one example of policy information.
- the policy information represented in FIGS. 21, 22, and 23 may be the policy information 131 illustrated in FIG. 12 .
- First, one example of the policy information 131 before the processing of S 26 is executed will be described.
- FIG. 21 is the one example of the policy information 131 before the processing of S 26 is executed.
- the policy information 131 represented in FIG. 21 includes, as items, “item number” for identification of each piece of information of the policy information 131 and “command” in which the contents of a command transmitted from the software 31 a to the hardware 25 are set.
- the policy information 131 represented in FIG. 21 includes, as an item, “return value” in which the return value information 132 transmitted to the software 31 a in response to the command set in “command” is set.
- the policy information 131 represented in FIG. 21 in the information whose “item number” is “1,”“reference to hard disk drive (HDD) name” is set as “command” and “VM-AAA-HDD” is set as “return value.” Furthermore, in the policy information 131 represented in FIG. 21 , in the information whose “item number” is “2,” “reference to the number of CPU cores” is set as “command” and “3” is set as “return value.” Moreover, in the policy information 131 represented in FIG. 21 , in the information whose “item number” is “3,” “reference to disc capacity” is set as “command” and “200 (gigabyte (GB))” is set as “return value.”
- FIG. 22 is the one example of the policy information 131 after the processing of S 26 is executed.
- the policy information 131 represented in FIG. 22 information whose “item number” is “4” (underlined part in FIG. 22 ) is added, compared with the policy information 131 represented in FIG. 21 .
- the policy information 131 represented in FIG. 22 in the information whose “item number” is “4,” “confirmation of existence of I/O-AAA” is set as “command” and “existence” is set as “return value.”
- the contents of the command transmitted to the hardware 25 by the software 31 a in the verification device 2 and the return value information 132 corresponding to the command are set in association with each other. Due to this, when a command to the hardware 15 is transmitted from the software 31 a , the terminal device 1 can create information that causes the malware 31 a to determine to terminate the operation and transmit the information to the software 31 a by referring to the policy information 131 .
- the policy information 131 may be information having environment information of the verification device 2 . Furthermore, when a command to the hardware 15 is transmitted from the software 31 a , the terminal device 1 may refer to the policy information 131 including the environment information and the terminal device 1 may create the return value information 132 and transmit the return value information 132 to the software 31 a .
- One example of the policy information 131 having environment information of the verification device 2 will be described below.
- FIG. 23 is the one example of the policy information 131 having environment information of the verification device 2 .
- the policy information 131 represented in FIG. 23 includes, as items, “item number” for identification of each piece of information of the policy information 131 , “environment information” in which the item of the environment information of the verification device 2 is set, and “contents” in which the contents of the environment information of the verification device 2 are set.
- the policy information 131 represented in FIG. 23 in the information whose “item number” is “1,” “HDD name” is set as “environment information” and “VM-AAA-HDD” is set as “contents.” Furthermore, in the policy information 131 represented in FIG. 23 , in the information whose “item number” is “2,” “the number of CPU cores” is set as “environment information” and “3” is set as “contents.” In addition, in the policy information 131 represented in FIG. 23 , in the information whose “item number” is “3,” “disc capacity” is set as “environment information” and “200 (GB)” is set as “contents.” Moreover, in the policy information 131 represented in FIG.
- the terminal device 1 if detecting transmission of a command to refer to the HDD name from the software 31 a , the terminal device 1 refers to the policy information 131 represented in FIG. 23 and acquires “VM-AAA-HDD” as “contents” of the information whose “environment information” is “HDD name.” Then, the terminal device 1 transmits “VM-AAA-HDD,” which is the HDD name, to the software 31 a as the return value information 132 .
- the terminal device 1 refers to the policy information 131 represented in FIG. 23 if detecting transmission of a command to determine whether or not I/O-BBB exists as an I/O port possessed by the virtual machine of the terminal device 1 that executes the software 31 a . Then, the terminal device 1 determines that “I/O-BBB” is set in “contents” of the information whose “environment information” is “I/O port.” Thus, in this case, the terminal device 1 transmits the return value information 132 indicating that “I/O-BBB” exists as an I/O port to the software 31 a.
- the terminal device 1 if detecting transmission of a command to determine whether or not I/O-CCC exists as an I/O port possessed by the virtual machine of the terminal device 1 that executes the software 31 a , the terminal device 1 refers to the policy information 131 represented in FIG. 23 similarly to the above-described case. Then, the terminal device 1 determines that “I/O-CCC” is not set in “contents” of the information whose “environment information” is “I/O port.” Thus, in this case, the terminal device 1 transmits the return value information 132 indicating that “I/O-CCC” does not exist as an I/O port to the software 31 a.
- FIGS. 19 and 20 are flowchart diagrams for explaining the network protection processing in the terminal device 1 .
- the policy receiving unit 115 of the terminal device 1 waits until receiving the policy information 131 from the verification device 2 for example (S 31 ; NO). Then, if receiving the policy information 131 (S 31 ; YES), the policy managing unit 116 of the terminal device 1 stores the policy information 131 received in the processing of S 31 in the information storing area 130 (S 32 ). The verification device 2 may transmit only updated information in pieces of the policy information 131 (information that has not been transmitted to the policy receiving unit 115 in pieces of the policy information 131 ) to the policy receiving unit 115 .
- the command hook unit 111 of the terminal device 1 waits until detecting transmission of a first command transmitted from the software 31 a of the terminal device 1 to the hardware 15 via the virtual OS 11 c (S 41 ; NO). Then, if detecting transmission of a first command (S 41 ; YES), the command hook unit 111 hooks the first command (S 42 ).
- the command determining unit 112 of the terminal device 1 determines whether or not the first command hooked in the processing of S 42 is included in the policy information 131 stored in the information storing area 130 (S 43 ). Then, if the first command is included in the policy information 131 (S 43 ; YES), the command converting unit 113 of the terminal device 1 refers to the policy information 131 stored in the information storing area 130 and carries out conversion of the first command. That is, the command converting unit 113 decides the return value information 132 to be transmitted to the software 31 a (S 44 ). Thereafter, the return value transmitting unit 114 transmits the return value information 132 decided in the processing of S 44 to the software 31 a (S 45 ).
- the command determining unit 112 refers to the policy information 131 described with FIG. 22 for example. Then, the command determining unit 112 determines that information whose “command” is “reference to disc capacity” (information whose “item number” is “3”) exists in the policy information 131 described with FIG. 22 .
- the command converting unit 113 acquires “200 (GB),” which is the information set in “return value” (return value information 132 ) of the information whose “item number” is “3.” Then, the return value transmitting unit 114 transmits “200 (GB)” as the return value information 132 acquired by the command converting unit 113 to the software 31 a via the virtual OS 11 c.
- the command converting unit 113 does not execute the processing of S 44 and S 45 .
- the command hook unit 111 waits until the software 31 a transmitted from the verification device 2 (software 31 a that has passed through the verification device 2 ) transmits, to the hardware 15 of the terminal device 1 , the same command (first command) as the command transmitted to the hardware 25 in the verification device 2 . Then, if the first command is transmitted from the software 31 a to the hardware 15 , the return value information 132 having the same contents as the information transmitted by the hardware 25 in the verification device 2 is transmitted to the software 31 a.
- the terminal device 1 can cause the malware 31 a to determine that the malware 31 a is being executed in the same environment as an environment in which the malware 31 a terminated the operation in the past (environment in which the malware 31 a did not start malignant operation in the past).
- the terminal device 1 can cause the operation of the malware 31 a in the terminal device 1 to be terminated.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-184676, filed on Sep. 18, 2015, the entire contents of which are incorporated herein by reference.
- The embodiment discussed herein is related to a device, a method, and a storage medium.
- A security administrator (hereinafter, referred to also simply as administrator) in a company or organization is expected to suppress fraudulent acquisition, destruction, and so forth of information (hereinafter, referred to also as malignant operation) by malware for example. The malware is a generic term of software that carries out harmful operation, including computer virus.
- For example, malware is transmitted in the form of being attached to an e-mail transmitted from an external terminal device (hereinafter, referred to also simply as external terminal) by a malicious person, and is executed in a terminal device that receives the e-mail to infect the terminal device. This allows the malicious person to use the terminal device infected with the malware as a steppingstone to gain unauthorized access to other terminal devices (for example, terminal device that stores confidential information, and so forth) coupled to the terminal device and carry out fraudulent acquisition of information and so forth.
- For this reason, the administrator sets a verification device (for example, device having a virtual environment implemented by a virtual machine) that executes software when the software is attached to an e-mail transmitted from an external terminal to a terminal device for example.
- When software is attached to an e-mail transmitted from an external terminal to a terminal device, the verification device acquires the e-mail before the e-mail is transmitted to the terminal device. Then, the verification device executes and analyzes the software attached to the acquired e-mail on a debugger (virtual environment) of the verification device. If it is determined that the software is not malware as the result, the verification device transmits the e-mail to which the software is attached to the terminal device. On the other hand, if determining that the software is malware, the verification device discards the e-mail to which the software is attached without transmitting the e-mail to the terminal device for example. This allows the administrator to suppress infection with the malware in the terminal device.
- As one example of the related art, Japanese Laid-open Patent Publication No. 2011-233125 and Japanese Laid-open Patent Publication No. 2004-126854 are known.
- According to an aspect of the embodiment, a device includes: a memory configured to store in advance a command transmitted from malware to hardware via an operating system; and a processor coupled to the memory and configured to: hook a first command transmitted from the operating system to the hardware, and transmit information that causes the malware to determine to terminate operation of the malware to the operating system when the hooked first command corresponds with the command stored in the memory.
- The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
-
FIG. 1 is a diagram for explaining an overall configuration of an information processing system; pFIGS. 2, 3, 4, 5, and 6 are diagrams for explaining one example of processing of a verification device in the case in which an e-mail to which malware is attached is received; -
FIG. 7 is a diagram for explaining one example of processing of a verification device in the case in which malware having an anti-analysis function is received; -
FIG. 8 is a diagram for explaining one example of processing of a terminal device in the case in which malware having an anti-analysis function is received; -
FIGS. 9 and 10 are diagrams for explaining one example of processing in the case of causing malware to make an erroneous determination; -
FIG. 11 is a diagram for explaining a hardware configuration of a terminal device; -
FIG. 12 is a functional block diagram of the terminal device inFIG. 11 , -
FIGS. 13 and 14 are flowchart diagrams for explaining outline of network protection processing in a first embodiment; -
FIGS. 15, 16, and 17 are diagrams for explaining the outline of the network protection processing in the first embodiment; -
FIGS. 18, 19, and 20 are flowchart diagrams for explaining details of the network protection processing in the first embodiment; and -
FIGS. 21, 22, and 23 are one example of policy information. - Among pieces of the above-described malware, malware that terminates the operation of oneself (malware that does not carry out malignant operation) when detecting that the malware is executed on any program exists for example. Such malware determines that there is a possibility that the malware is being executed on a program (debugger) for analyzing the operation of the malware and terminates the operation in order to suppress the analysis of the operation of the malware when detecting that the malware is executed on any program (hereinafter, such a function will be referred to also as anti-analysis function).
- For this reason, in some cases, the existing verification device does not detect executed malware as malware when executing malware having the anti-analysis function on a debugger of the verification device. Therefore, in this case, the verification device transmits the e-mail to which the malware is attached to a terminal device and the terminal device becomes infected with the malware attached to the e-mail transmitted from the verification device.
- The embodiment discussed herein intends to suppress the operation of malware in one aspect.
-
FIG. 1 is a diagram for explaining an overall configuration of an information processing system. Aninformation processing system 10 illustrated inFIG. 1 includesterminal devices 1 a, 1 b, and is (hereinafter, theterminal devices 1 a, 1 b, and is will be referred to also as theterminal device 1 or the network protectingdevice 1 collectively), averification device 2, and afirewall device 3. - The
terminal device 1 is a terminal used by a developer or administrator of a business operations system in a company or organization. Theterminal device 1 is a desktop personal computer (PC) or notebook PC for example. - The
firewall device 3 controls communications between anexternal terminal 31 coupled to a network NW and theterminal device 1. That is, thefirewall device 3 defends against unauthorized access to theterminal device 1 by theexternal terminal 31, and so forth, for example. The network NW is the Internet network for example. - For example, when an e-mail is transmitted from the
external terminal 31 to theterminal device 1, theverification device 2 acquires the transmitted e-mail and determines whether or not software is attached to the e-mail. Then, if software is attached to the e-mail transmitted from theexternal terminal 31, theverification device 2 executes the software attached to the e-mail on a debugger of a verification environment constructed in theverification device 2 for example. - That is, there is a possibility that the
firewall device 3 does not detect that the software attached to the e-mail is malware and permits communications. For this reason, theverification device 2 carries out the determination as to whether or not the software attached to the e-mail allowed to pass by thefirewall device 3 is malware. The verification environment constructed in theverification device 2 is a virtual environment including a virtual machine (hereinafter, referred to also as VM) generated through allocation of a physical resource of theverification device 2 for example. - Then, if determining that the software is not malware as the result of the execution of the software attached to the e-mail transmitted from the
external terminal 31, theverification device 2 transmits the e-mail transmitted from theexternal terminal 31 to theterminal device 1. On the other hand, if determining that the software attached to the e-mail transmitted from theexternal terminal 31 is malware, theverification device 2 discards the e-mail transmitted from theexternal terminal 31 without transmitting the e-mail to theterminal device 1. Due to this, even when an e-mail to which malware is attached is transmitted from theexternal terminal 31, theverification device 2 can keep theterminal device 1 from becoming infected with the malware transmitted from theexternal terminal 31. - Next, one example of processing of a verification device will be described.
FIGS. 2, 3, 4, 5, and 6 are diagrams for explaining one example of processing of a verification device in the case in which an e-mail to which malware is attached is received. The verification device illustrated inFIGS. 2, 3, 4, 5, and 6 may be theverification device 2 illustrated inFIG. 1 . - In the example illustrated in
FIG. 2 , theverification device 2 is a physical machine having physical resources (central processing unit (CPU) and memory) for generating a virtual machine. In theverification device 2 illustrated inFIG. 2 , virtualization software 24 (hereinafter, referred to also as the hypervisor 24) for generating or deleting a virtual machine in theverification device 2 operates. Furthermore, in theverification device 2 illustrated inFIG. 2 ,virtual machines verification device 2 are allocated are deployed. - Furthermore, in the
terminal device 1 illustrated inFIG. 2 , similarly to theverification device 2, virtualization software 14 (hereinafter, referred to also as the hypervisor 14) for managing generation or deletion of a virtual machine in theterminal device 1 operates. Moreover, in theterminal device 1 illustrated inFIG. 2 , avirtual machine 11 to which a physical resource of theterminal device 1 is allocated is deployed. - When the
external terminal 31 transmits an e-mail to theterminal device 1, theverification device 2 acquires the e-mail transmitted from theexternal terminal 31 before the e-mail is transmitted to theterminal device 1 as illustrated inFIG. 2 . Then, theverification device 2 determines whether or not software is attached to the transmitted e-mail for example. As a result, if the software is attached, theverification device 2 executes the software on a debugger of thevirtual machine 21 and carries out analysis for example. That is, theverification device 2 determines whether or not the software attached to the e-mail is malware. - Then, if the
verification device 2 determines that the software attached to the e-mail transmitted from theexternal terminal 31 is not malware, thevirtual machine 21 transmits the e-mail transmitted from theexternal terminal 31 to theterminal device 1 as illustrated inFIG. 3 . Furthermore, thevirtual machine 21 transmits the transmitted e-mail to theterminal device 1 also when software is not attached to the e-mail transmitted from theexternal terminal 31 for example. - On the other hand, if the software attached to the transmitted e-mail is malware, the
virtual machine 21 discards the e-mail transmitted from theexternal terminal 31 without transmitting the e-mail to theterminal device 1. This makes it possible to keep theterminal device 1 from becoming infected with the malware even when the software attached to the transmitted e-mail is the malware. - If the software attached to the transmitted e-mail is malware, possibly the
virtual machine 21 becomes infected with the malware as illustrated inFIG. 4 . In this case, theverification device 2 deletes thevirtual machine 21 infected with the malware as illustrated inFIG. 5 . This allows theverification device 2 to delete the environment infected with the malware from theverification device 2. - Here, among pieces of the above-described malware, malware exists that has the anti-analysis function of determining to terminate the operation of oneself (determining not to carry out malignant operation) when detecting that the malware is executed on a debugger as illustrated in
FIG. 6 . For this reason, when executing malware having the anti-analysis function on a debugger, theverification device 2 does not detect the executed malware as malware in some cases. Therefore, in this case, there is a possibility that theverification device 2 transmits the e-mail to which the malware is attached to theterminal device 1 and causes theterminal device 1 to become infected with the malware as illustrated inFIG. 6 . In the following, a description will be made about one example of processing of theverification device 2 and theterminal device 1 for coping with the malware having the anti-analysis function. -
FIG. 7 is a diagram for explaining one example of processing of a verification device in the case in which malware having an anti-analysis function is received. The verification device illustrated inFIG. 7 may be theverification device 2 illustrated inFIG. 1 . In theverification device 2 illustrated inFIG. 7 , thehypervisor 24 operates on hardware 25 (physical resource) of theverification device 2 and generates or deletes thevirtual machine 21. In the case of generating thevirtual machine 21, thehypervisor 24 generates a virtual operating system (OS) 21 c (hereinafter, referred to also as theguest OS 21 c) on thehypervisor 24 and allocates part of thehardware 25 as hardware of the virtual machine 21 (hereinafter, referred to also as virtual hardware). On the other hand, in the case of deleting thevirtual machine 21, thehypervisor 24 deletes thevirtual OS 21 c generated on thehypervisor 24 and releases the virtual hardware of thevirtual machine 21. - Furthermore, in the
verification device 2 illustrated inFIG. 7 , adebugger 21 b for executing and analyzingsoftware 31 a (software having the possibility of being malware) or the like attached to the received e-mail operates on thevirtual OS 21 c. - In the example illustrated in
FIG. 7 , thehypervisor 24 directly operates on thehardware 25. However, thehypervisor 24 may be a hypervisor that operates on a host OS (not illustrated) that operates on thehardware 25. - In the example illustrated in
FIG. 7 , if thesoftware 31 a executed on theverification device 2 is malware, the malware (hereinafter, referred to also as themalware 31 a) determines whether or not the present environment in which themalware 31 a is executed is the environment in which themalware 31 a is to continue the operation (environment in which themalware 31 a is to start malignant operation). In this case, themalware 31 a determines whether or not the environment in which themalware 31 a is executed is on any program for example. If determining that the environment in which themalware 31 a is executed is on any program as the result, themalware 31 a determines that the environment in which themalware 31 a is executed is not theterminal device 1 as the destination of the e-mail but a verification environment on another device. Then, in this case, themalware 31 a determines that the environment in which themalware 31 a is executed is not the environment in which themalware 31 a is to continue the operation, and terminates the operation. This allows themalware 31 a to suppress the operation of oneself from being analyzed. - In the example illustrated in
FIG. 7 , themalware 31 a transmits an inquiry about whether or not the environment in which themalware 31 a is executed is on a program to thevirtual OS 21 c. Then, themalware 31 a terminates the operation if receiving information indicating that the environment in which themalware 31 a is executed is on a program from thevirtual OS 21 c. That is, in this case, themalware 31 a determines that the present environment in which themalware 31 a is executed is not the environment in which themalware 31 a is to continue the operation, and does not execute operation for carrying out malignant operation. - This allows the
malware 31 a to cause theverification device 2 to erroneously determine that themalware 31 a is not malware. Thus, in this case, themalware 31 a can keep themalware 31 a from being excluded by theverification device 2 and reach theterminal device 1. - Next,
FIG. 8 is a diagram for explaining one example of processing of a terminal device in the case in which malware having an anti-analysis function is received. The terminal device illustrated inFIG. 8 may be theterminal device 1 illustrated inFIG. 1 . In theterminal device 1 illustrated inFIG. 8 , thehypervisor 14 operates on hardware 15 (physical resource) of theterminal device 1 and generates or deletes thevirtual machine 11. In the case of generating thevirtual machine 11, thehypervisor 14 generates avirtual OS 11 c (hereinafter, referred to also as theguest OS 11 c) on thehypervisor 14 and allocates part of thehardware 15 as virtual hardware of thevirtual machine 11. On the other hand, in the case of deleting thevirtual machine 11, thehypervisor 14 deletes thevirtual OS 11 c generated on thehypervisor 14 and releases the virtual hardware of thevirtual machine 11. - The
terminal device 1 illustrated inFIG. 8 is not a device for executing software attached to an e-mail and carrying out analysis and therefore does not include a debugger differently from theverification device 2 illustrated inFIG. 7 . Furthermore, thehypervisor 14 illustrated inFIG. 8 directly operates on thehardware 15. However, thehypervisor 14 may be a hypervisor that operates on a host OS (not illustrated) that operates on thehardware 15. - In the example illustrated in
FIG. 8 , themalware 31 a executed in theterminal device 1 determines whether or not the environment in which themalware 31 a is executed is on any program in order to determine whether or not the present environment in which themalware 31 a is executed is the environment in which themalware 31 a is to continue the operation (environment in which themalware 31 a is to carry out malignant operation). - In the example illustrated in
FIG. 8 , themalware 31 a transmits an inquiry about whether or not the environment in which themalware 31 a is executed is on a program to thevirtual OS 11 c. Here, themalware 31 a in the example ofFIG. 8 is executed not on a program such as a debugger but on thevirtual OS 11 c directly, differently from the case described withFIG. 7 . Thus, themalware 31 a receives information indicating that the environment in which themalware 31 a is executed is not on a program from thevirtual OS 11 c. Therefore, in the example illustrated inFIG. 8 , themalware 31 a determines that the present environment in which themalware 31 a is executed is the environment in which themalware 31 a is to continue the operation, and starts malignant operation. This allows themalware 31 a to infect theterminal device 1 even when being preliminarily executed in theverification device 2. - In contrast, the
terminal device 1 causes themalware 31 a to erroneously determine that theterminal device 1 is a terminal in which themalware 31 a is not to operate, and causes themalware 31 a to terminate the operation (keeps themalware 31 a from starting malignant operation) in some cases. This allows theterminal device 1 to suppress infection with themalware 31 a. In the following, a description will be made about one example of processing in the case of causing themalware 31 a to make an erroneous determination. -
FIGS. 9 and 10 are diagrams for explaining one example of processing in the case of causing malware to make an erroneous determination. The malware illustrated inFIGS. 9 and 10 may be themalware 31 a illustrated inFIG. 7 . If an inquiry about whether or not the present environment in which thesoftware 31 a is executed is on any program is transmitted from thesoftware 31 a (having the possibility of being themalware 31 a) to thevirtual OS 11 c, ahook device 4 acquires the transmitted inquiry before the inquiry reaches thevirtual OS 11 c as illustrated inFIG. 9 . Then, if the contents of the acquired inquiry correspond with information stored in astoring unit 4 a, thehook device 4 does not transmit the inquiry to thevirtual OS 11 c. Moreover, in this case, thehook device 4 transmits, to thesoftware 31 a, information indicating that the present environment in which thesoftware 31 a is executed is on any program (information indicating that malignant operation is not to be started). - That is, the administrator stores, in the
storing unit 4 a in advance, the respective pieces of information transmitted by various pieces of malware in order to determine whether or not to continue the operation. Then, if information transmitted from thesoftware 31 a to thevirtual OS 11 c is the same information as information stored in thestoring unit 4 a, thehook device 4 determines that thesoftware 31 a that has transmitted the inquiry to thevirtual OS 11 c is malware (malware 31 a). Thereafter, thehook device 4 transmits, to themalware 31 a, information indicating that themalware 31 a is not to continue the operation as a response to the inquiry transmitted to thevirtual OS 11 c by themalware 31 a. - This allows the
hook device 4 to cause themalware 31 a to determine that the present environment in which themalware 31 a is executed is the environment in which themalware 31 a is not to continue the operation and cause themalware 31 a to terminate the operation in the terminal device 1 (keep themalware 31 a from starting malignant operation). Thus, thehook device 4 can keep theterminal device 1 from becoming infected with themalware 31 a. - However, there is a possibility that the
malware 31 a transmits an inquiry for determining whether or not to continue the operation to thehardware 15 via thevirtual OS 11 c as illustrated inFIG. 10 . For this reason, if thehook device 4 is a device that only hooks information between thesoftware 31 a (malware 31 a) and thevirtual OS 11 c, it is difficult to hook information transmitted to thehardware 15 by themalware 31 a. Therefore, in this case, it is difficult for thehook device 4 to terminate the operation of themalware 31 a in theterminal device 1 and keep theterminal device 1 from becoming infected with themalware 31 a. - Thus, in the present embodiment, the
hypervisor 14 of theterminal device 1 includes a storing unit that stores commands having the possibility of being transmitted from themalware 31 a to thehardware 15 via thevirtual OS 11 c. Furthermore, thehypervisor 14 of theterminal device 1 hooks a command transmitted from thevirtual OS 11 c to the hardware 15 (hereinafter, referred to also as first command). Then, if a command having the same contents as the hooked first command is stored in the storing unit, thehypervisor 14 of theterminal device 1 transmits information for causing themalware 31 a to determine to terminate the operation to thevirtual OS 11 c. - That is, the
terminal device 1 in the present embodiment hooks the first command transmitted from thevirtual OS 11 c to thehardware 15 in thehypervisor 14 located between thevirtual OS 11 c and thehardware 15. This allows theterminal device 1 to hook a command transmitted from thevirtual OS 11 c to thehardware 15. - Furthermore, in the storing unit (as an entity, part of the hardware 15) of the
hypervisor 14 in the present embodiment, commands that were transmitted in the past by themalware 31 a in another device (for example, verification device 2) and with which themalware 31 a did not start malignant operation as the result of transmission of a response to the command to themalware 31 a are stored for example. For this reason, thehypervisor 14 refers to the storing unit of thehypervisor 14 if themalware 31 a transmits a first command to thehardware 15 via thevirtual OS 11 c. Then, if the first command is included in the commands stored in the storing unit of thehypervisor 14, thehypervisor 14 transmits, to themalware 31 a, the same information as the information responded to themalware 31 a by hardware of another device when themalware 31 a transmitted the same command as the first command in this device. This allows thehypervisor 14 to cause themalware 31 a to determine that the environment in which themalware 31 a is being presently executed (terminal device 1) is the same environment as an environment in which themalware 31 a terminated the operation in the past (for example, verification device 2). Thus, thehypervisor 14 can suppress the start of malignant operation by themalware 31 a in theterminal device 1. - Moreover, in this case, the administrator is set free from the need to preliminarily acquire all pieces of information having the possibility of being transmitted to the
hardware 15 by themalware 31 a and store the pieces of information in the storing unit of thehypervisor 14 in advance. - Next, the hardware configuration of a terminal device will be described.
FIG. 11 is a diagram for explaining a hardware configuration of a terminal device. The terminal device illustrated inFIG. 11 may be theterminal device 1 illustrated inFIG. 1 . - The
terminal device 1 includes aCPU 101 that is a processor, amemory 102, an external interface (input/output (I/O) unit) 103, and astorage medium 104. The respective units are coupled to each other via abus 105. - The
storage medium 104 stores aprogram 110 for executing processing of protecting the network by causing the operation of themalware 31 a to be terminated in the terminal device 1 (hereinafter, referred to also as network protection processing), and so forth, in a program storing area (not illustrated) in thestorage medium 104 for example. - As illustrated in
FIG. 11 , when executing theprogram 110, theCPU 101 loads theprogram 110 from thestorage medium 104 into thememory 102 and executes the network protection processing and so forth in cooperation with theprogram 110. - The
storage medium 104 includes an information storing area 130 (hereinafter, referred to also as the storing unit 130) that stores information used when the network protection processing and so forth are executed for example. The storingunit 130 functions as the storing unit controlled by thehypervisor 14 for example. - Furthermore, the
external interface 103 carries out communications with theverification device 2. In addition, theexternal interface 103 carries out communications with the network NW via theverification device 2 and thefirewall device 3. - Next, the software configuration of the
terminal device 1 will be described.FIG. 12 is a functional block diagram of theterminal device 1 inFIG. 11 . By cooperating with theprogram 110, theCPU 101 functions as acommand hook unit 111, acommand determining unit 112, acommand converting unit 113, a returnvalue transmitting unit 114, apolicy receiving unit 115, and apolicy managing unit 116 that are functions of thehypervisor 14 of theterminal device 1. Furthermore,policy information 131 is stored in theinformation storing area 130. Hereinafter, thecommand hook unit 111, thecommand determining unit 112, thecommand converting unit 113, and the returnvalue transmitting unit 114 will be referred to also as a processing unit 120 collectively. - The
command hook unit 111 hooks a first command transmitted from thevirtual OS 11 c of theterminal device 1 to thehardware 15. Thecommand hook unit 111 hooks a first command transmitted to thehardware 15 via thevirtual OS 11 c by thesoftware 31 a (having the possibility of being themalware 31 a) that operates on thevirtual OS 11 c before the first command is transmitted to thehardware 15. - The
command determining unit 112 determines whether or not the first command hooked by thecommand hook unit 111 is included in a command group (hereinafter, referred to also as the policy information 131) stored in theinformation storing area 130. Then, thecommand determining unit 112 determines that thesoftware 31 a is themalware 31 a if the first command is included in thepolicy information 131 stored in theinformation storing area 130. - Then, if it is determined that the
software 31 a is themalware 31 a, thecommand converting unit 113 converts the first command to information for causing themalware 31 a to determine to terminate the operation (determine not to start malignant operation). That is, thecommand converting unit 113 creates information for causing themalware 31 a to terminate the operation (hereinafter, referred to also as return value information 132) if thesoftware 31 a is themalware 31 a. - Thereafter, the return
value transmitting unit 114 transmits the return value information 132 created by thecommand converting unit 113 to thesoftware 31 a via thevirtual OS 11 c. - The
policy receiving unit 115 receives thepolicy information 131 created by theverification device 2. One example when theverification device 2 creates thepolicy information 131 will be described later. Furthermore, thepolicy managing unit 116 stores thepolicy information 131 received by thepolicy receiving unit 115 in theinformation storing area 130. - Next, the outline of a first embodiment will be described.
FIGS. 13 and 14 are flowchart diagrams for explaining outline of network protection processing in the first embodiment. Furthermore,FIGS. 15, 16, and 17 are diagrams for explaining the outline of the network protection processing in the first embodiment. The outline of the network protection processing ofFIGS. 13 and 14 will be described with reference toFIGS. 15 to 17 . The following description will be made based on the premise that theterminal device 1 receives thepolicy information 131 from theverification device 2. - First, processing when the
terminal device 1 stores thepolicy information 131 will be described. - As illustrated in
FIG. 13 , the terminal device 1 (hypervisor 14) waits until receiving thepolicy information 131 from theverification device 2 for example (S1; NO). Theverification device 2 creates thepolicy information 131 from information obtained by tallying commands transmitted to thehardware 25 via thevirtual OS 21 c by thesoftware 31 a (having the possibility of being themalware 31 a) executed on thevirtual OS 21 c for example. That is, in thepolicy information 131, information on commands that were transmitted in the past to thehardware 25 by thesoftware 31 a in theverification device 2 and with which malignant operation by malware was not carried out as the result of transmission of a response to the command to thesoftware 31 a is included. - In the
policy information 131, information actually transmitted to thesoftware 31 a by the hardware 25 (return value information 132) in response to information transmitted from thesoftware 31 a may be included. - Then, if receiving the policy information 131 (S1; YES), the terminal device 1 (hypervisor 14) stores the
policy information 131 received in the processing of S1 in theinformation storing area 130 as illustrated inFIG. 15 (S2) - Next, processing in hooking information transmitted to the
hardware 15 by thesoftware 31 a will be described. - The terminal device 1 (hypervisor 14) waits until detecting transmission of a first command transmitted from the
virtual OS 11 c of theterminal device 1 to the hardware 15 (S11; NO). That is, theterminal device 1 waits until detecting transmission of a first command transmitted to thehardware 15 via thevirtual OS 11 c by thesoftware 31 a executed on thevirtual OS 11 c. Then, if detecting transmission of a first command (S11; YES), the terminal device 1 (hypervisor 14) hooks the first command as illustrated inFIG. 16 (S12). - Due to this, even when the
malware 31 a transmits a command to thehardware 15 in order to determine whether or not to continue the operation (determine whether or not to start malignant operation), theterminal device 1 can cause themalware 31 a to determine to terminate the operation as described later. - Furthermore, the
terminal device 1 can keep the first command from being transmitted to thehardware 15 as the original transmission destination of the first command. Thus, theterminal device 1 can suppress transmission of a response from thehardware 15 as the original transmission destination of the first command to thesoftware 31 a. - Thereafter, as illustrated in
FIG. 17 , the terminal device 1 (hypervisor 14) determines whether or not the first command hooked in the processing of S12 is stored in the information storing area 130 (S13). That is, theterminal device 1 determines that thesoftware 31 a is themalware 31 a if the first command is stored in theinformation storing area 130. - Then, if the first command is stored in the information storing area 130 (S13; YES), the terminal device 1 (hypervisor 14) transmits information for causing the
software 31 a to determine to terminate the operation when thesoftware 31 a is themalware 31 a to thesoftware 31 a via thevirtual OS 11 c (S14). On the other hand, if the first command is not stored in the information storing area 130 (S13; NO), theterminal device 1 does not execute the processing of S14. - That is, if the
software 31 a is themalware 31 a,theterminal device 1 transmits, to themalware 31 a,information for causing themalware 31 a to determine to terminate the operation (information with which themalware 31 a determined to terminate the operation in the verification device 2) as the return value information 132. Due to this, in the case in which thesoftware 31 a is themalware 31 a,theterminal device 1 can cause themalware 31 a that has referred to the contents of the return value information 132 to determine that theterminal device 1 as the environment in which themalware 31 a is executed is an environment in which themalware 31 a is not to continue the operation (malware 31 a is not to carry out malignant operation). Thus, theterminal device 1 can cause themalware 31 a to terminate the operation. - As above, according to the first embodiment, the
hypervisor 14 of theterminal device 1 includes thestoring unit 130 that stores commands transmitted from themalware 31 a to thehardware 25 via thevirtual OS 21 c of theverification device 2. Furthermore, thehypervisor 14 of theterminal device 1 hooks the first command transmitted from thevirtual OS 11 c of theterminal device 1 to thehardware 15. Furthermore, thehypervisor 14 of theterminal device 1 includes the processing unit 120 that transmits the return value information 132 for causing themalware 31 a to determine to terminate the operation to thevirtual OS 11 c if the hooked first command is included in the commands stored in thestoring unit 130. - This allows the
hypervisor 14 of theterminal device 1 to cause themalware 31 a to determine that themalware 31 a is being executed in the same environment as an environment in which themalware 31 a did not start malignant operation in the past (for example, verification device 2). Thus, thehypervisor 14 of theterminal device 1 can cause themalware 31 a to terminate the operation. - Furthermore, the
hypervisor 14 of theterminal device 1 causes the operation of themalware 31 a executed in theterminal device 1 to be terminated on the basis of the command transmitted by themalware 31 a in theverification device 2. Thus, the administrator is set free from the need to preliminarily acquire all pieces of information having the possibility of being transmitted to thehardware 15 by themalware 31 a and store the pieces of information in thestoring unit 130 in advance. - The
hypervisor 14 described withFIGS. 15 to 17 is not a hypervisor that operates on an OS but a hypervisor that operates directly on the hardware 15 (Type 1 hypervisor). In contrast, thehypervisor 14 may be a hypervisor that operates on an OS (host OS: not illustrated) that operates directly on the hardware 15 (Type 2 hypervisor). - Next, details of the first embodiment will be described.
FIGS. 18, 19, and 20 are flowchart diagrams for explaining details of the network protection processing in the first embodiment. Furthermore,FIGS. 21, 22, and 23 are diagrams for explaining details of the network protection processing in the first embodiment. The network protection processing ofFIGS. 18 to 20 will be described with reference toFIGS. 21 to 23 . - First, the network protection processing in the
verification device 2 will be described.FIG. 18 is a flowchart diagram for explaining the network protection processing in theverification device 2. - As illustrated in
FIG. 18 , theverification device 2 waits until receiving an e-mail (e-mail whose destination is the terminal device 1) to which thesoftware 31 a is attached from the external terminal 31 (S21; NO). Then, if receiving an e-mail to which thesoftware 31 a is attached from the external terminal 31 (S21; YES), theverification device 2 executes thesoftware 31 a attached to the received e-mail (S22). Theverification device 2 executes thesoftware 31 a in a virtual machine (verification environment) generated by theverification device 2 and carries out analysis as described withFIG. 2 and so forth. - Then, if determining that the
software 31 a attached to the e-mail received in the processing of S21 is themalware 31 a (S23; YES), theverification device 2 deletes the virtual machine that has executed thesoftware 31 a attached to the received e-mail without transmitting the received e-mail to the terminal device 1 (S24). That is, if thesoftware 31 a attached to the e-mail received in the processing of S21 is themalware 31 a,theverification device 2 discards the e-mail to which thesoftware 31 a is attached without transmitting the e-mail to theterminal device 1 as the destination of the e-mail. - This allows the
verification device 2 to keep theterminal device 1 from becoming infected with themalware 31 a. Furthermore, theverification device 2 can delete the environment infected with themalware 31 a from theverification device 2 by deleting the virtual machine that has executed themalware 31 a. - On the other hand, if determining that the
software 31 a attached to the e-mail received in the processing of S21 is not themalware 31 a (S23; NO), theverification device 2 waits until detecting a command transmitted from thevirtual OS 21 c of theverification device 2 to the hardware 25 (S25; NO). Then, if detecting a command transmitted from thevirtual OS 21 c to the hardware 25 (S25; YES), theverification device 2 creates information in which the command detected in the processing of S25 is associated with the return value information 132 transmitted to thevirtual OS 21 c by thehardware 25. Then, theverification device 2 stores the created information as part of thepolicy information 131 in an information storing area (not illustrated) of the verification device 2 (S26). - That is, there is a possibility that malware that is not determined to be malware by the analysis in the verification device 2 (malware that does not carry out malignant operation in the verification device 2) is included in the
software 31 a determined not to be themalware 31 a in the processing of S23. For this reason, theverification device 2 associates information on the command transmitted to thehardware 25 by thesoftware 31 a determined not to be themalware 31 a with information transmitted to thesoftware 31 a in response to the command (return value information 132) and stores these associated pieces of information as thepolicy information 131. Then, theverification device 2 transmits the storedpolicy information 131 to theterminal device 1. This allows theterminal device 1 to suppress malignant operation by themalware 31 a in theterminal device 1 as described later. - Thereafter, the
verification device 2 detects new information transmitted from thesoftware 31 a to thehardware 25 and transmits thepolicy information 131 to the terminal device 1 (S27). That is, theverification device 2 transmits thepolicy information 131 to theterminal device 1 every time thepolicy information 131 stored in the information storing area of theverification device 2 is updated for example. Due to this, when new malware transmits a new command to thehardware 25 in theverification device 2, theterminal device 1 can rapidly respond to the new command. One example of thepolicy information 131 will be described below. -
FIGS. 21, 22, and 23 are one example of policy information. The policy information represented inFIGS. 21, 22, and 23 may be thepolicy information 131 illustrated inFIG. 12 . First, one example of thepolicy information 131 before the processing of S26 is executed will be described. -
FIG. 21 is the one example of thepolicy information 131 before the processing of S26 is executed. Thepolicy information 131 represented inFIG. 21 includes, as items, “item number” for identification of each piece of information of thepolicy information 131 and “command” in which the contents of a command transmitted from thesoftware 31 a to thehardware 25 are set. Furthermore, thepolicy information 131 represented inFIG. 21 includes, as an item, “return value” in which the return value information 132 transmitted to thesoftware 31 a in response to the command set in “command” is set. - In the
policy information 131 represented inFIG. 21 , in the information whose “item number” is “1,”“reference to hard disk drive (HDD) name” is set as “command” and “VM-AAA-HDD” is set as “return value.” Furthermore, in thepolicy information 131 represented inFIG. 21 , in the information whose “item number” is “2,” “reference to the number of CPU cores” is set as “command” and “3” is set as “return value.” Moreover, in thepolicy information 131 represented inFIG. 21 , in the information whose “item number” is “3,” “reference to disc capacity” is set as “command” and “200 (gigabyte (GB))” is set as “return value.” - Next, one example of the
policy information 131 after the processing of S26 is executed will be described.FIG. 22 is the one example of thepolicy information 131 after the processing of S26 is executed. - In the
policy information 131 represented inFIG. 22 , information whose “item number” is “4” (underlined part inFIG. 22 ) is added, compared with thepolicy information 131 represented inFIG. 21 . In thepolicy information 131 represented inFIG. 22 , in the information whose “item number” is “4,” “confirmation of existence of I/O-AAA” is set as “command” and “existence” is set as “return value.” - That is, in the
policy information 131 represented inFIGS. 21 and 22 , the contents of the command transmitted to thehardware 25 by thesoftware 31 a in theverification device 2 and the return value information 132 corresponding to the command are set in association with each other. Due to this, when a command to thehardware 15 is transmitted from thesoftware 31 a, theterminal device 1 can create information that causes themalware 31 a to determine to terminate the operation and transmit the information to thesoftware 31 a by referring to thepolicy information 131. - The
policy information 131 may be information having environment information of theverification device 2. Furthermore, when a command to thehardware 15 is transmitted from thesoftware 31 a,theterminal device 1 may refer to thepolicy information 131 including the environment information and theterminal device 1 may create the return value information 132 and transmit the return value information 132 to thesoftware 31 a. One example of thepolicy information 131 having environment information of theverification device 2 will be described below. -
FIG. 23 is the one example of thepolicy information 131 having environment information of theverification device 2. Thepolicy information 131 represented inFIG. 23 includes, as items, “item number” for identification of each piece of information of thepolicy information 131, “environment information” in which the item of the environment information of theverification device 2 is set, and “contents” in which the contents of the environment information of theverification device 2 are set. - In the
policy information 131 represented inFIG. 23 , in the information whose “item number” is “1,” “HDD name” is set as “environment information” and “VM-AAA-HDD” is set as “contents.” Furthermore, in thepolicy information 131 represented inFIG. 23 , in the information whose “item number” is “2,” “the number of CPU cores” is set as “environment information” and “3” is set as “contents.” In addition, in thepolicy information 131 represented inFIG. 23 , in the information whose “item number” is “3,” “disc capacity” is set as “environment information” and “200 (GB)” is set as “contents.” Moreover, in thepolicy information 131 represented inFIG. 23 , in the information whose “item number” is “4,”“I/O port” is set as “environment information” and “I/o-AAA, I/O-BBB” as I/O ports possessed by the virtual machine of theverification device 2 is set as “contents.” - That is, for example, if detecting transmission of a command to refer to the HDD name from the
software 31 a, theterminal device 1 refers to thepolicy information 131 represented inFIG. 23 and acquires “VM-AAA-HDD” as “contents” of the information whose “environment information” is “HDD name.” Then, theterminal device 1 transmits “VM-AAA-HDD,” which is the HDD name, to thesoftware 31 a as the return value information 132. - Furthermore, the
terminal device 1 refers to thepolicy information 131 represented inFIG. 23 if detecting transmission of a command to determine whether or not I/O-BBB exists as an I/O port possessed by the virtual machine of theterminal device 1 that executes thesoftware 31 a. Then, theterminal device 1 determines that “I/O-BBB” is set in “contents” of the information whose “environment information” is “I/O port.” Thus, in this case, theterminal device 1 transmits the return value information 132 indicating that “I/O-BBB” exists as an I/O port to thesoftware 31 a. - On the other hand, if detecting transmission of a command to determine whether or not I/O-CCC exists as an I/O port possessed by the virtual machine of the
terminal device 1 that executes thesoftware 31 a,theterminal device 1 refers to thepolicy information 131 represented inFIG. 23 similarly to the above-described case. Then, theterminal device 1 determines that “I/O-CCC” is not set in “contents” of the information whose “environment information” is “I/O port.” Thus, in this case, theterminal device 1 transmits the return value information 132 indicating that “I/O-CCC” does not exist as an I/O port to thesoftware 31 a. - Next, the network protection processing in the
terminal device 1 will be described.FIGS. 19 and 20 are flowchart diagrams for explaining the network protection processing in theterminal device 1. - As illustrated in
FIG. 19 , thepolicy receiving unit 115 of theterminal device 1 waits until receiving thepolicy information 131 from theverification device 2 for example (S31; NO). Then, if receiving the policy information 131 (S31; YES), thepolicy managing unit 116 of theterminal device 1 stores thepolicy information 131 received in the processing of S31 in the information storing area 130 (S32). Theverification device 2 may transmit only updated information in pieces of the policy information 131 (information that has not been transmitted to thepolicy receiving unit 115 in pieces of the policy information 131) to thepolicy receiving unit 115. - Furthermore, as illustrated in
FIG. 20 , thecommand hook unit 111 of theterminal device 1 waits until detecting transmission of a first command transmitted from thesoftware 31 a of theterminal device 1 to thehardware 15 via thevirtual OS 11 c (S41; NO). Then, if detecting transmission of a first command (S41; YES), thecommand hook unit 111 hooks the first command (S42). - Thereafter, the
command determining unit 112 of theterminal device 1 determines whether or not the first command hooked in the processing of S42 is included in thepolicy information 131 stored in the information storing area 130 (S43). Then, if the first command is included in the policy information 131 (S43; YES), thecommand converting unit 113 of theterminal device 1 refers to thepolicy information 131 stored in theinformation storing area 130 and carries out conversion of the first command. That is, thecommand converting unit 113 decides the return value information 132 to be transmitted to thesoftware 31 a (S44). Thereafter, the returnvalue transmitting unit 114 transmits the return value information 132 decided in the processing of S44 to thesoftware 31 a (S45). - If the contents of the first command hooked by the
command hook unit 111 are “reference to disc capacity,” thecommand determining unit 112 refers to thepolicy information 131 described withFIG. 22 for example. Then, thecommand determining unit 112 determines that information whose “command” is “reference to disc capacity” (information whose “item number” is “3”) exists in thepolicy information 131 described withFIG. 22 . Thus, thecommand converting unit 113 acquires “200 (GB),” which is the information set in “return value” (return value information 132) of the information whose “item number” is “3.” Then, the returnvalue transmitting unit 114 transmits “200 (GB)” as the return value information 132 acquired by thecommand converting unit 113 to thesoftware 31 a via thevirtual OS 11 c. - On the other hand, if the first command is not included in the policy information 131 (S43; NO), the
command converting unit 113 does not execute the processing of S44 and S45. - That is, the
command hook unit 111 waits until thesoftware 31 a transmitted from the verification device 2 (software 31 a that has passed through the verification device 2) transmits, to thehardware 15 of theterminal device 1, the same command (first command) as the command transmitted to thehardware 25 in theverification device 2. Then, if the first command is transmitted from thesoftware 31 a to thehardware 15, the return value information 132 having the same contents as the information transmitted by thehardware 25 in theverification device 2 is transmitted to thesoftware 31 a. - This allows the
terminal device 1 to cause themalware 31 a to determine that themalware 31 a is being executed in the same environment as an environment in which themalware 31 a terminated the operation in the past (environment in which themalware 31 a did not start malignant operation in the past). Thus, theterminal device 1 can cause the operation of themalware 31 a in theterminal device 1 to be terminated. - All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015184676A JP6631118B2 (en) | 2015-09-18 | 2015-09-18 | Network protection device, network protection method, network protection program, and information processing system |
JP2015-184676 | 2015-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170083706A1 true US20170083706A1 (en) | 2017-03-23 |
US10339314B2 US10339314B2 (en) | 2019-07-02 |
Family
ID=58282968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/246,878 Active 2037-02-04 US10339314B2 (en) | 2015-09-18 | 2016-08-25 | Device, method and storage medium for terminating operation of software that is not successfully verified |
Country Status (2)
Country | Link |
---|---|
US (1) | US10339314B2 (en) |
JP (1) | JP6631118B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271342A1 (en) * | 2010-04-28 | 2011-11-03 | Electronics And Telecommunications Research Institute | Defense method and device against intelligent bots using masqueraded virtual machine information |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004126854A (en) | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | Attack countermeasure system |
JP2008176352A (en) | 2007-01-16 | 2008-07-31 | Lac Co Ltd | Computer program, computer device and operation control method |
JP5382450B2 (en) | 2008-02-14 | 2014-01-08 | 日本電気株式会社 | Access control apparatus, method and information recording medium |
US9235705B2 (en) * | 2008-05-19 | 2016-01-12 | Wontok, Inc. | Secure virtualization system software |
US9396329B2 (en) * | 2011-10-17 | 2016-07-19 | Intel Corporation | Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage |
US9223962B1 (en) * | 2012-07-03 | 2015-12-29 | Bromium, Inc. | Micro-virtual machine forensics and detection |
-
2015
- 2015-09-18 JP JP2015184676A patent/JP6631118B2/en not_active Expired - Fee Related
-
2016
- 2016-08-25 US US15/246,878 patent/US10339314B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271342A1 (en) * | 2010-04-28 | 2011-11-03 | Electronics And Telecommunications Research Institute | Defense method and device against intelligent bots using masqueraded virtual machine information |
Non-Patent Citations (1)
Title |
---|
Freericks US pub no 2009/0288167 * |
Also Published As
Publication number | Publication date |
---|---|
JP6631118B2 (en) | 2020-01-15 |
US10339314B2 (en) | 2019-07-02 |
JP2017059083A (en) | 2017-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11562071B2 (en) | Detecting malware via scanning for dynamically generated function pointers in memory | |
JP5813743B2 (en) | Device and method capable of providing system-on-chip-based anti-malware service | |
US10417417B2 (en) | Digital protection that travels with data | |
US8739287B1 (en) | Determining a security status of potentially malicious files | |
US9239921B2 (en) | System and methods of performing antivirus checking in a virtual environment using different antivirus checking techniques | |
AU2012345948B2 (en) | Providing a malware analysis using a secure malware detection process | |
US20150089647A1 (en) | Distributed Sample Analysis | |
US20180253551A1 (en) | Multi-tiered sandbox based network threat detection | |
CN110659478B (en) | Method for detecting malicious files preventing analysis in isolated environment | |
US20180137274A1 (en) | Malware analysis method and storage medium | |
EP3079091B1 (en) | Method and device for virus identification, nonvolatile storage medium, and device | |
US8370941B1 (en) | Rootkit scanning system, method, and computer program product | |
CN111382043A (en) | System and method for journaling when executing a file with a leak in a virtual machine | |
WO2019013033A1 (en) | Call stack acquiring device, call stack acquiring method, and call stack acquiring program | |
US20170331857A1 (en) | Non-transitory recording medium storing data protection program, data protection method, and data protection apparatus | |
KR101723623B1 (en) | System and method for detecting malicious code | |
US10339314B2 (en) | Device, method and storage medium for terminating operation of software that is not successfully verified | |
US20170099317A1 (en) | Communication device, method and non-transitory computer-readable storage medium | |
US9696940B1 (en) | Technique for verifying virtual machine integrity using hypervisor-based memory snapshots | |
US20170302682A1 (en) | Device and method for analyzing malware | |
EP3588346B1 (en) | Method of detecting malicious files resisting analysis in an isolated environment | |
EP3674940B1 (en) | System and method of forming a log when executing a file with vulnerabilities in a virtual machine | |
US20180068120A1 (en) | Recording medium for storing program for malware detection, and apparatus and method for malware detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OIKAWA, TAKANORI;FURUKAWA, KAZUYOSHI;KOKUBO, HIROTAKA;AND OTHERS;SIGNING DATES FROM 20160801 TO 20160815;REEL/FRAME:039550/0678 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: WITHDRAW FROM ISSUE AWAITING ACTION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |