WO2018194198A1 - Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité - Google Patents
Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité Download PDFInfo
- Publication number
- WO2018194198A1 WO2018194198A1 PCT/KR2017/004243 KR2017004243W WO2018194198A1 WO 2018194198 A1 WO2018194198 A1 WO 2018194198A1 KR 2017004243 W KR2017004243 W KR 2017004243W WO 2018194198 A1 WO2018194198 A1 WO 2018194198A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- obfuscation
- security
- security evaluation
- application
- Prior art date
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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Definitions
- the following description relates to a method and system for detecting and evaluating the application of obfuscation of a PE file and to a computer program stored in a computer readable recording medium in combination with a computer for executing the security evaluation method on a computer. .
- the App store is an online content marketplace that sells various applications that can be mounted on a terminal such as a smartphone.
- a terminal such as a smartphone.
- the developer of an application registers a file (for example, an Android Application Package (Apk)) for installing a developed application on a terminal in an app store, and users of the application are required through the app store.
- By downloading a file for the application it is possible to install and run the application on their terminal.
- various game applications such as game publishers are distributed to users.
- the first risk of an application is that the application contains information developed by malicious intentions, such as malicious code, to perform malicious functions on the terminal of the application publisher or the user on which the application is installed and run.
- Korean Patent Laid-Open No. 10-2014-0098025 relates to a system and method for security evaluation of an application uploaded to an app store, and when an application to be registered in an app store detects a malicious function, the application Disclosed is a technique for rejecting entry into an app store.
- the second risk of an application is the risk to the security of the application itself.
- the application performs a function other than the function originally intended by the developer, thereby reducing the reliability of the service to be provided through the application. This exists. Therefore, there is a need for application publishers to provide a certain level of security for applications in distributing various applications (installation files of applications) that they did not develop directly.
- each application may be equipped with security solutions of different security levels and may not include any security measures.
- security solutions of different security levels and may not include any security measures.
- security levels provided by the security solutions mounted in each application.
- Java-level vulnerability check can be performed at the programming language level (for example, Android Application Package (Apk)), and from the application publisher's point of view, each of the numerous registered applications There is a problem that it is difficult to provide security that is maintained above a certain level.
- programming language level for example, Android Application Package (Apk)
- the level of security applied to the registered application is analyzed and identified in an objective manner in terms of obfuscation, vulnerability, and / or security solution, and the analyzed information is provided to provide security for the application. It provides a method and system for evaluating security that can be used to improve gender.
- PE Portable Executable
- DLL Dynamic Linking Library
- a method of evaluating security of an application comprising: registering a package file for installing and running an application; Identifying a portable executable file (PE) file included in the registered package file; Extracting a body instruction of a method from a text section included in the PE file by using a metadata table included in the PE file; And analyzing the extracted body instructions to determine whether to apply obfuscation to the method.
- PE portable executable file
- a computer program for recording a computer program for executing the security evaluation method is provided.
- a computer program stored in a computer readable recording medium for executing the security evaluation method in a computer in combination with a computer is provided.
- a system for evaluating the security of an application comprising: at least one processor implemented to execute computer readable instructions, the at least one processor registering a package file for installation and running of the application, Identify a PE (Portable Executable) file included in a registered package file, and use a metadata table included in the PE file to use a body instruction of a method in a text section included in the PE file. Extracting and analyzing the extracted body instructions to determine whether to apply obfuscation to the method.
- PE Portable Executable
- the level of security applied to the registered application is analyzed and identified in an objective manner in terms of obfuscation, vulnerability, and / or security solution, and the analyzed information is provided to provide security for the application. Can be used to improve sex.
- PE portable executable file
- DLL dynamic linking library
- FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
- FIG. 3 is a block diagram of a security evaluation system according to an embodiment of the present invention.
- FIG. 4 is a diagram illustrating an example of a PE file included in a registered package file according to one embodiment of the present invention.
- FIG. 5 is a diagram for one example of a process of determining whether to apply obfuscation to a PE file in which an entire binary is encrypted according to an embodiment of the present invention.
- FIG. 6 illustrates an example of a PE file in which a specific class or a specific method is encrypted according to an embodiment of the present invention.
- FIG. 7 is a block diagram illustrating an example of components that may be included in a processor of a server according to an embodiment of the present invention.
- FIG. 8 is a flowchart illustrating an example of a security evaluation method that can be performed by a server according to an embodiment of the present invention.
- FIG. 9 is a flowchart illustrating an example of a method of extracting a body instruction according to an embodiment of the present invention.
- FIG. 10 is a diagram illustrating an example of determining whether to apply obfuscation to a PE file according to an embodiment of the present invention.
- the security evaluation system may be implemented through a server to be described later, and the security evaluation method according to the embodiments of the present invention may be performed through the server described above.
- a computer program according to an embodiment of the present invention may be installed and run on a server, and the server may perform a security evaluation method according to an embodiment of the present invention under control of the driven computer program.
- the computer program described above may be stored in a computer-readable recording medium in combination with a computer-implemented server to execute a security evaluation method on a computer.
- FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
- the network environment of FIG. 1 illustrates an example including a plurality of electronic devices 110, 120, 130, and 140, a plurality of servers 150 and 160, and a network 170.
- 1 is an example for describing the present invention, and the number of electronic devices or the number of servers is not limited as shown in FIG. 1.
- the plurality of electronic devices 110, 120, 130, and 140 may be fixed terminals or mobile terminals implemented as computer devices.
- Examples of the plurality of electronic devices 110, 120, 130, and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook computer, a digital broadcasting terminal, a personal digital assistant (PDA), and a portable multimedia player (PMP). Tablet PC).
- FIG. 1 illustrates the shape of a smart phone as an example of the electronic device 1 110, in the embodiments of the present invention, the electronic device 1 110 may use a wireless or wired communication method to substantially connect the network 170. It may mean one of various physical devices that can communicate with other electronic devices 120, 130, 140 and / or servers 150, 160.
- the communication method is not limited, and may include not only a communication method using a communication network (for example, a mobile communication network, a wired internet, a wireless internet, a broadcasting network) that the network 170 may include, but also a short range wireless communication between devices.
- the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). And one or more of networks such as the Internet.
- the network 170 may also include any one or more of network topologies, including bus networks, star networks, ring networks, mesh networks, star-bus networks, trees, or hierarchical networks, but It is not limited.
- Each of the servers 150 and 160 communicates with the plurality of electronic devices 110, 120, 130, and 140 through the network 170 to provide a command, code, file, content, service, or the like. It may be implemented in devices.
- the server 150 may be a system that provides a first service to a plurality of electronic devices 110, 120, 130, and 140 connected through the network 170, and the server 160 may also have a network ( It may be a system that provides a second service to the plurality of electronic devices 110, 120, 130, and 140 connected through the 170.
- the server 150 may be at least some of the devices constituting the system of the application publisher, and receives a package file of an application installed and operated on the plurality of electronic devices 110, 120, 130, and 140.
- the service to be distributed can be provided as the first service.
- the server 160 may provide a service associated with the application as the second service to a plurality of electronic devices 110, 120, 130, and 140 that install and run the application through the distributed package file.
- the server 150 may be implemented as a dedicated system for evaluating the security of a package file to be registered to provide information about the evaluated security for the package file to be registered.
- 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. 2 illustrates an internal configuration of the electronic device 1 110 and the server 150 as an example of the electronic device. In addition, the other electronic devices 120, 130, 140, or the server 160 may also have the same or similar internal configuration as the aforementioned electronic device 1 110 or the server 150.
- the electronic device 1 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223, and input / output interfaces 214 and 224.
- the memories 211 and 221 may be computer-readable recording media, and may include a permanent mass storage device such as random access memory (RAM), read only memory (ROM), and a disk drive.
- RAM random access memory
- ROM read only memory
- the non-volatile mass storage device such as a ROM and a disk drive may be included in the electronic device 1 110 or the server 150 as a separate permanent storage device that is separated from the memories 211 and 221.
- the memory 211, 221 includes an operating system and at least one program code (for example, a browser installed and driven in the electronic device 1 110 or an application installed in the electronic device 1 110 to provide a specific service). Code) can be stored.
- These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221.
- Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, disk, tape, DVD / CD-ROM drive, memory card, and the like.
- software components may be loaded into the memory 211, 221 through a communication module 213, 223 that is not a computer readable recording medium.
- At least one program is a computer program that is installed by files provided by a file distribution system (for example, the server 160 described above) through the network 170 to distribute installation files of developers or applications. It may be loaded into the memories 211 and 221 based on (for example, the above-described application).
- a file distribution system for example, the server 160 described above
- the network 170 to distribute installation files of developers or applications. It may be loaded into the memories 211 and 221 based on (for example, the above-described application).
- Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to the processors 212, 222 by the memory 211, 221 or the communication modules 213, 223. For example, the processors 212 and 222 may be configured to execute a command received according to a program code stored in a recording device such as the memory 211 and 221.
- the communication modules 213 and 223 may provide a function for the electronic device 1 110 and the server 150 to communicate with each other through the network 170, and the electronic device 1 110 and / or the server 150 may communicate with each other. May provide a function for communicating with another electronic device (eg, electronic device 2 120) or another server (eg, server 160). For example, a request generated by the processor 212 of the electronic device 1 110 according to a program code stored in a recording device such as the memory 211 may be controlled by the server 170 through the network 170 under the control of the communication module 213. 150).
- control signals, commands, contents, files, and the like provided according to the control of the processor 222 of the server 150 are transmitted to the communication module of the electronic device 1 110 via the communication module 223 and the network 170 ( It may be received by the electronic device 1110 through 213.
- the control signal, command, content, file, etc. of the server 150 received through the communication module 213 may be transmitted to the processor 212 or the memory 211, and the content, file, etc. may be transferred to the electronic device 1.
- 110 may be stored as a storage medium (permanent storage described above) that may further include.
- the input / output interface 214 may be a means for interfacing with the input / output device 215.
- the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display or a speaker.
- the input / output interface 214 may be a means for interfacing with a device in which functions for input and output are integrated into one, such as a touch screen.
- the input / output device 215 may be configured as one device with the electronic device 1110.
- the input / output interface 224 of the server 150 may be a means for interfacing with an apparatus (not shown) for input or output that may be connected to or included in the server 150.
- the processor 212 of the electronic device 1110 uses data provided by the server 150 or the electronic device 2 120 in processing a command of a computer program loaded in the memory 211.
- the service screen or the content may be displayed on the display through the input / output interface 214.
- the electronic device 1 110 and the server 150 may include more components than those of FIG. 2. However, it is not necessary to clearly show most of the prior art components.
- the electronic device 1 110 may be implemented to include at least some of the above-described input / output devices 215 or other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, a database, and the like. It may further include elements.
- GPS global positioning system
- an acceleration sensor when the electronic device 1 110 is a smartphone, an acceleration sensor, a gyro sensor, a camera module, various physical buttons, a button using a touch panel, an input / output port, and vibration for a smartphone generally include Various components such as a vibrator may be implemented to be further included in the electronic device 1 110.
- FIG. 3 is a block diagram of a security evaluation system according to an embodiment of the present invention.
- the security evaluation system 300 of FIG. 3 may be implemented through the server 150 described above.
- the server 150 includes the package decomposition module 310, the file identification module 320, the parsing module 330, the analysis module 340, and the report module 350 included in the security evaluation system 300. May be representations of the different functions of the processor 222.
- the package disassembly module 310 may be used as a function of the processor 222 in which the processor 222 of the server 150 disassembles a package file according to a control command included in a computer program.
- the vulnerability detection module 342 included in the analysis module 340 may be implemented as a core module for vulnerability detection.
- the server 150 may provide a service for distributing package files of applications registered by developers to users.
- the package disassembly module 310 may disassemble the registered package files.
- an Android application package (Apk) is a file format of a package file used for distributing software and middleware of Android, which is a mobile operating system, and has a '.apk' extension.
- APK Android application package
- embodiments of the present invention will be described based on a package file such as an APK, but it will be readily understood by those skilled in the art that the same or similar features may be applied to other kinds of package files through this description. .
- the file identification module 320 may identify files included in the disassembled package file.
- the extensions shown in Figure 3 ('dex', 'so', 'dll', 'json', 'ini', 'apk', 'xml', 'cert') as described previously, It will be readily understood by those skilled in the art.
- the parsing module 330 may parse the identified files.
- the parser 331 may parse files of a specific extension (eg, 'dex', 'so', 'dll') among the identified files, and the collector 332 may parse a specific extension (eg, You can collect the necessary information from the files of 'json', 'ini', 'apk', 'xml', and 'cert').
- the parsing module 330 may identify each of the classes and methods included in the 'dex' file, and track a number of masses by instructing the instructions contained in the method. Can be identified by separating. The mass of instructions can be divided based on branch instructions such as the 'goto' statement, the 'switch' statement, or the 'if' statement.
- the parsing module 330 may generate and manage information on call relationships between these instruction masses. For example, the call relations between the instruction masses may be managed in a tree structure, and the information on the call relations may include information on a method called by a specific instruction mass. The generation and management of such information may be processed for each of files included in a package file such as an APK file, and the parsing method may vary according to the characteristics of the file.
- the parsed information and the collected information may be passed to the analysis module 340.
- the analysis module 340 obfuscates a corresponding package file (or an application installed and driven in a user terminal such as the electronic device 1 110 through the package file) based on the information transmitted from the parsing module 330. It can generate and provide analysis information from an obfuscation point of view, a vulnerability point of view, and a security solution point of view.
- the obfuscation detection module 341 may generate analysis information on the level of obfuscation applied to files of a specific extension (eg, 'dex', 'so', 'dll'). Can be. To this end, the obfuscation detection module 341 may determine whether obfuscation is applied for each preset item according to the type of file.
- a specific extension eg, 'dex', 'so', 'dll'.
- the vulnerability detection module 342 generates analysis information on whether there are any vulnerabilities in files of a specific extension (for example, 'dex', 'so', or 'config' which is a configuration file extension). can do.
- the security evaluation system 300 may manage information about known vulnerabilities, and the vulnerability detection module 342 uses information about these vulnerabilities to determine which vulnerabilities exist in which files. Analyze information can be generated.
- the platform detection module 343 may extract information about the platform on which the corresponding application is developed and / or the platform on which the corresponding application operates.
- the security evaluation system 300 may use different analysis methods depending on which platform the application is developed on, for example, a development tool such as Unity or Cocos.
- the security evaluation system 300 may use a different analysis method for each platform because the file format included in the package file may vary for each platform on which the application operates.
- the security evaluation system 300 may extract information about the platform for the package file, and may analyze the package file or provide information about the extracted platform to the outside based on such information.
- the security tool detection module 344 can detect the security solution that the developer of the package file has inserted into the package file. For example, a first security tool provided in a library form by a third party may be added to a corresponding package file by a developer. As another example, a second security tool developed by the developer may be added to the package file by the developer. In other words, the security tool detection module 344 may generate analysis information about whether the security tool is applied to the package file.
- the relationship analysis module 345 may generate analysis information about a reference relationship between files included in the package file. For example, when the first file includes code for calling the second file, the analysis information may be generated such that the information about the reference relationship between the first file and the second file is included in the analysis information.
- the report module 350 collects the analysis information generated by the analysis module 340 and provides a report for the person of the security evaluation system 300 (for example, an administrator of the server 150 or a security inspection team of an application publisher). Can be generated. Such a report may be provided to terminals of related parties using Hypertext Markup Language (HTML) or eXtensible Markup Language (XML) as in the example of FIG. 3.
- HTML Hypertext Markup Language
- XML eXtensible Markup Language
- the package file registered in the security evaluation system 300 may include a PE file in which obfuscation is applied or a PE file in which obfuscation is not applied. In this case, the security evaluation system 300 may determine whether obfuscation is applied to the PE file included in the package file.
- the structure of the PE file is well known and will be readily understood by those skilled in the art without further explanation. For example, a DLL (Dynamic Linking Library) included in an Android application package (Apk) may be included as a PE file of a registered package file.
- the registered package file includes the second PE file 420
- the registered package file further includes information for decrypting the information encrypted in the second PE file 420 in another file. It may be.
- an application is installed and driven in an electronic device (for example, the electronic device 1 110) through a package file
- information for decrypting the encrypted information of the second PE file 420 is included in another file. As decrypted through the application, the application can run normally.
- FIG. 5 is a diagram for one example of a process of determining whether to apply obfuscation to a PE file in which an entire binary is encrypted according to an embodiment of the present invention.
- a normal value for example, a value always constantly included in the header of the PE file
- a header of a general PE file may be implemented as a dos header, a dos stub, a PE header, and a section table.
- the DOS header is composed of a total of 64 bytes, and the first part is defined to start with the signature of the DOS header called MZ.
- the security evaluation system 300 may recognize that the PE file is obfuscated when MZ, which is a predetermined value, is not extracted by attempting to extract the signature from the DOS header.
- MZ which is a predetermined value
- BSJB a signature called BSJB is used in the .Net header.
- FIG. 5 illustrates an example in which the security evaluation system 300 attempts to extract a signature from the header of the second PE file 420 described with reference to FIG. 4.
- the security evaluation system 300 can confirm that obfuscation is applied to the second PE file 420.
- the security evaluation system 300 may attempt to extract a plurality of different signatures.
- a score may be assigned according to whether each of the signatures attempted to be extracted is extracted, and a risk level for security of the PE file may be set based on the score.
- the lower the score the higher the security of the PE file and conversely, the lower the risk level may be set.
- encryption or obfuscation
- obfuscation can be applied to PE files by encrypting by specifying only certain classes or specific methods in the executable code.
- Such executable code may be included in the '.text' section shown in FIG.
- FIG. 6 illustrates an example of a PE file in which a specific class or a specific method is encrypted according to an embodiment of the present invention.
- FIG. 6 shows an example of including a code 630 which is encrypted as a specific method is encrypted in the text section (.test, 620) of the PE file 610.
- FIG. Since the security evaluation system 300 does not know whether the obfuscation through encryption is applied to the PE file 610, a process for determining whether to apply the obfuscation needs to be performed.
- the security evaluation system 300 may first parse and analyze the metadata table included in the PE file 610. For example, the security evaluation system 300 parses / analyzes the 'MethodDef' table, the 'ModuleRef' table, the 'TypeRef' table, and the 'TypeDef' table among a total of 42 metadata tables included in .NET 2.0 to analyze the class list. You can get it and map classes and methods. That is, the security evaluation system 300 may determine which classes exist in the PE file 610 and which methods are included in each class through analyzing the metadata table.
- the security evaluation system 300 may identify the entire methods and determine whether encryption (or obfuscation) is applied to each of these entire methods. To this end, the security evaluation system 300 may obtain a RVA (Relative Virtual Address) representing a relative address value in the virtual memory of the method, and extract the body instruction of the method from the text section 620. .
- RVA Relative Virtual Address
- the security evaluation system 300 may determine whether to apply obfuscation to a method corresponding to the extracted body instruction by analyzing the consistency of the operation code (operation code, opcode) included in the extracted body instruction.
- the next instruction can be obtained by analyzing additional operation codes corresponding to each instruction. For example, if it is a 1 byte instruction and an instruction of 'int32 type', the next instruction can be obtained at a position 5 bytes behind (1 byte + 4 bytes (32 bits)).
- the security evaluation system 300 proceeds with general parsing on the extracted body instructions, and when normal parsing is not performed on at least one instruction, the security evaluation system 300 can determine that obfuscation is applied to the corresponding method. .
- the security evaluation system 300 may perform such a parsing operation on each of the entire methods to determine the obfuscated methods among all the methods. In this case, the security evaluation system 300 may determine the security level of the PE file 610 based on the ratio of obfuscated methods among all the methods.
- FIG. 7 is a block diagram illustrating an example of components that may be included in a processor of a server according to an embodiment of the present invention
- FIG. 8 is a security evaluation that may be performed by a server according to an embodiment of the present invention.
- the security evaluation system 300 may be implemented in the form of a computer device such as the server 150 described above.
- the processor 222 of the server 150 is a package file register 710, a PE file identifier 720, and body instructions as components for implementing the security evaluation system 300.
- An extractor 730, an obfuscation determiner 740, a security determiner 750, and an information provider 760 may be included.
- the processor 222 and the components of the processor 222 may perform steps 810 to 860 included in the security evaluation method of FIG. 8.
- the processor 222 and the components of the processor 222 may be implemented to execute a control instruction according to a code of an operating system included in the memory 221 or a code of at least one program.
- the components of the processor 222 may be representations of different functions of the processor 222 performed by the processor 222 according to a control command provided by a code stored in the server 150.
- the package file registration unit 710 may be used as a functional representation of the processor 222 in which the processor 222 registers the package file according to the above-described control command.
- the package file registration unit 710 may register a package file for installing and driving an application.
- the package file can be registered with the application publisher for distribution to users of the application.
- the security evaluation system 300 may be implemented in a device that provides a service for distributing package files of applications for which an application publisher is registered, or as a separate system that communicates with the aforementioned device through the network 170. Can be implemented.
- the security evaluation system 300 may receive and register a package file registered with an application publisher through the network 170.
- a package file may include an Android application package (Apk) as described above.
- the PE file identification unit 720 may identify a portable executable file included in the registered package file.
- the PE file may be a DLL file.
- the PE file to be identified may be identified through an extension of the file among the files identified through the package decomposition module 310 and the file identification module 320.
- the body instruction extractor 730 may extract a body instruction of the method from a text section included in the PE file by using a metadata table included in the PE file. As already explained, the body instruction extractor 730 first recognizes the classes and methods contained in the text section of the PE file, and then obtains the RVA Relative Virtual Address (RVA) for each method, and then takes the necessary methods from the text section. Extract body instructions
- the obfuscation determination unit 740 may analyze the extracted body instruction to determine whether to apply obfuscation to the method. As described above, whether or not obfuscation is applied to the method corresponding to the extracted body instruction may be determined by analyzing the consistency of the operation code (opcode) included in the extracted body instruction. Whether or not such obfuscation is applied may be determined for each of the entire methods to be identified.
- opcode operation code
- the security determiner 750 may determine a security level of at least one of a package file and a PE file based on whether obfuscation is applied. For example, the security determiner 750 may determine a security grade (or risk grade) based on a ratio of methods determined to be obfuscated among all methods included in the text section. At this time, the higher the ratio, the higher the security rating may be, and conversely, the risk rating may be lowered.
- the information provider 760 may report information on whether obfuscation is applied and information on the determined security level. For example, for an identified PE file, whether or not obfuscation is applied to the method, the total number of classes, the number of obfuscated classes, the total number of methods, the number of obfuscated methods, the ratio, the security Information such as a rating (or risk rating) may be provided to an administrator or user of the security assessment system 300.
- Steps 910 to 930 of FIG. 9 may be included in step 830 described with reference to FIG. 8 and may be performed by the body instruction extractor 730.
- the body instruction extractor 730 may obtain a class list by parsing the metadata table.
- the security evaluation system 300 parses / analyzes the 'MethodDef' table, the 'ModuleRef' table, the 'TypeRef' table, and the 'TypeDef' table among a total of 42 metadata tables included in .NET 2.0. You can get a list of classes, and map classes and methods.
- information about classes and methods in the PE file is included in the format of the metadata table in the header of the PE file, and the body instruction extractor 730 is included in the header of the PE file according to the form or structure of the PE file.
- the security evaluation system 300 parses / analyzes the 'MethodDef' table, the 'ModuleRef' table, the 'TypeRef' table, and the 'TypeDef' table among a total of 42 metadata tables included in .NET 2.0.
- information about classes and methods in the PE file is
- the body instruction extractor 730 may map a class and a method based on the class list. For example, if class A includes method a, method b, and method c, the body instruction extractor 730 may map such class A with method a, method b, and method c. If method a, method b and method c are all obfuscated (or encrypted), it may be interpreted that obfuscation (or encryption) is applied to class A. The number of obfuscated classes described above can be determined based on this interpretation.
- the body instruction extractor 730 may parse the header of the PE file to extract the body instructions of each mapped method.
- the extraction of such body instructions can be handled by searching for the corresponding method in the text section through the RVA (Relative Virtual Address), which represents the relative address value in the virtual memory of the method.
- RVA Relative Virtual Address
- FIG. 10 is a diagram illustrating an example of determining whether to apply obfuscation to a PE file according to an embodiment of the present invention.
- FIG. 4 and 5 illustrate an example in which the entire binary of the PE file is obfuscated (or encrypted).
- a PE file such as a .Net file
- ELF Executable and Linkable Format
- a mono file for example, the mono.so file
- step 1010 is executed between steps 820 and 830 described with reference to FIG. 8, but step 1010 is another step after step 820. They can also be run in parallel.
- another embodiment of the security evaluation method may be implemented, including steps 810, 820, and 1010.
- the obfuscation determiner 740 may determine that the obfuscation is applied to the PE file when the signature is not extracted by attempting to extract the signature from the header of the portable executable file. If obfuscation (or encryption) is done for the entire binary of the PE file, the signature cannot be extracted. Accordingly, the obfuscation determination unit 740 may determine whether obfuscation is applied to the PE file in a simple manner such as whether the signature is extracted. In addition, as described above, an attempt may be made to extract a plurality of predefined signatures, and a security level or a risk level may be set and provided through scoring the extracted signatures.
- the security level applied to the registered application is determined in an objective manner in accordance with obfuscation, vulnerability, and / or security solution. It can be used to improve the security of the application by analyzing and understanding and providing the analyzed information. In addition, it is possible to detect whether obfuscation is applied to a Portable Executable (PE) file such as a DLL (Dynamic Linking Library).
- PE Portable Executable
- the system or apparatus described above may be implemented as a hardware component, a software component or a combination of hardware components and software components.
- the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
- ALUs arithmetic logic units
- FPGAs field programmable gate arrays
- PLU programmable logic unit
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
- the processing device may include a plurality of processors or one processor and one controller.
- other processing configurations are possible, such as parallel processors.
- the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
- Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. It can be embodied in.
- the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
- Software and data may be stored on one or more computer readable media.
- the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- Such a recording medium may be various recording means or storage means in the form of a single or several hardware combined, and is not limited to a medium directly connected to any computer system, but may be distributed on a network.
- Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé et un système pour détecter l'application d'un brouillage à un fichier PE et évaluer sa sécurité. Un procédé d'évaluation de sécurité peut comprendre les étapes suivantes : enregistrement d'un fichier de progiciel pour installer et exécuter une application; identification d'un fichier exécutable portable (PE) inclus dans le fichier de progiciel enregistré; extraction d'une instruction de corps d'une méthode à partir d'une section de texte incluse dans le fichier PE à l'aide d'une table de métadonnées incluse dans le fichier PE; et analyse de l'instruction de corps extraite pour déterminer si un brouillage a ou non été appliqué à la méthode.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2017/004243 WO2018194198A1 (fr) | 2017-04-20 | 2017-04-20 | Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité |
JP2018080912A JP7131946B2 (ja) | 2017-04-20 | 2018-04-19 | アプリケーションの保安性を評価する方法およびシステム |
US15/958,115 US10963563B2 (en) | 2017-04-20 | 2018-04-20 | Method and system for evaluating security of application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2017/004243 WO2018194198A1 (fr) | 2017-04-20 | 2017-04-20 | Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/004236 Continuation WO2018194196A1 (fr) | 2017-04-20 | 2017-04-20 | Procédé et système de détection d'application d'obfuscation et d'évaluation de la sécurité d'un fichier elf |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/004236 Continuation WO2018194196A1 (fr) | 2017-04-20 | 2017-04-20 | Procédé et système de détection d'application d'obfuscation et d'évaluation de la sécurité d'un fichier elf |
PCT/KR2017/004584 Continuation WO2018199366A1 (fr) | 2017-04-20 | 2017-04-28 | Procédé et système permettant de détecter si un obscurcissement a été appliqué à un fichier dex et d'évaluer la sécurité |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018194198A1 true WO2018194198A1 (fr) | 2018-10-25 |
Family
ID=63855800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/004243 WO2018194198A1 (fr) | 2017-04-20 | 2017-04-20 | Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018194198A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668325B1 (en) * | 1997-06-09 | 2003-12-23 | Intertrust Technologies | Obfuscation techniques for enhancing software security |
KR101203245B1 (ko) * | 2004-06-12 | 2012-11-20 | 마이크로소프트 코포레이션 | 소프트웨어 보안 |
KR20160117183A (ko) * | 2015-03-30 | 2016-10-10 | 홍동철 | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 |
KR101667774B1 (ko) * | 2015-04-23 | 2016-10-19 | (주)잉카엔트웍스 | 스크립트 프로그램을 위한 보안 제공 장치 및 방법 |
KR20170018744A (ko) * | 2015-08-10 | 2017-02-20 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
-
2017
- 2017-04-20 WO PCT/KR2017/004243 patent/WO2018194198A1/fr active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668325B1 (en) * | 1997-06-09 | 2003-12-23 | Intertrust Technologies | Obfuscation techniques for enhancing software security |
KR101203245B1 (ko) * | 2004-06-12 | 2012-11-20 | 마이크로소프트 코포레이션 | 소프트웨어 보안 |
KR20160117183A (ko) * | 2015-03-30 | 2016-10-10 | 홍동철 | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 |
KR101667774B1 (ko) * | 2015-04-23 | 2016-10-19 | (주)잉카엔트웍스 | 스크립트 프로그램을 위한 보안 제공 장치 및 방법 |
KR20170018744A (ko) * | 2015-08-10 | 2017-02-20 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7131946B2 (ja) | アプリケーションの保安性を評価する方法およびシステム | |
CN106161381B (zh) | 用于去混淆脚本化语言的设备和方法以及计算机可读介质 | |
WO2013089340A1 (fr) | Appareil et procédé de détection de similarité entre applications | |
WO2017026739A1 (fr) | Système et procédé d'obscurcissement de code d'application | |
CN111831538B (zh) | 调试方法、装置以及存储介质 | |
US11956264B2 (en) | Method and system for verifying validity of detection result | |
WO2014035043A1 (fr) | Appareil et procédé permettant de diagnostiquer des applications malveillantes | |
WO2013137616A1 (fr) | Procédé et appareil d'évaluation de permissions requises pour une application | |
WO2019054613A1 (fr) | Procédé et système d'identification de progiciel source libre en fonction d'un fichier binaire | |
WO2017026738A1 (fr) | Système et procédé de protection de codes pour une application | |
WO2018199366A1 (fr) | Procédé et système permettant de détecter si un obscurcissement a été appliqué à un fichier dex et d'évaluer la sécurité | |
WO2014088262A1 (fr) | Dispositif et procédé de détection d'applications frauduleuses/modifiées | |
WO2019066222A1 (fr) | Procédé et système pour identifier un progiciel libre sur la base d'un fichier binaire | |
KR102011725B1 (ko) | 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치 | |
CN113961919B (zh) | 恶意软件检测方法和装置 | |
WO2018194196A1 (fr) | Procédé et système de détection d'application d'obfuscation et d'évaluation de la sécurité d'un fichier elf | |
WO2018160039A1 (fr) | Procédé et système de traitement d'authentification automatique utilisant une fonction de division | |
WO2019135425A1 (fr) | Procédé et système de vérification de licence de logiciel à source ouverte | |
CN107102885A (zh) | 利用adb方式检测安卓模拟器的方法及装置 | |
WO2019147101A1 (fr) | Dispositif électronique de classification de code malveillant et son procédé de fonctionnement | |
KR102382889B1 (ko) | 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템 | |
WO2018194198A1 (fr) | Procédé et système pour détecter l'application d'un brouillage à un fichier pe et évaluer sa sécurité | |
CN116881173B (zh) | 接口参数的检测方法、装置、电子设备和计算机可读介质 | |
WO2020111482A1 (fr) | Procédé et système d'ingénierie inverse utilisant des mégadonnées en fonction du contexte d'exécution de programme | |
WO2022065525A1 (fr) | Procédé et système de surveillance de communication de réseau par accrochage de procédé |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17906065 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17906065 Country of ref document: EP Kind code of ref document: A1 |