WO2017126786A1 - 악성 코드 분석을 위한 전자 장치 및 이의 방법 - Google Patents

악성 코드 분석을 위한 전자 장치 및 이의 방법 Download PDF

Info

Publication number
WO2017126786A1
WO2017126786A1 PCT/KR2016/012443 KR2016012443W WO2017126786A1 WO 2017126786 A1 WO2017126786 A1 WO 2017126786A1 KR 2016012443 W KR2016012443 W KR 2016012443W WO 2017126786 A1 WO2017126786 A1 WO 2017126786A1
Authority
WO
WIPO (PCT)
Prior art keywords
executable file
data
malicious code
electronic device
code
Prior art date
Application number
PCT/KR2016/012443
Other languages
English (en)
French (fr)
Inventor
박형진
이경재
여인춘
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020160072230A external-priority patent/KR102582580B1/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US16/068,263 priority Critical patent/US20190005239A1/en
Publication of WO2017126786A1 publication Critical patent/WO2017126786A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models

Definitions

  • the present invention provides a method, apparatus, and method for providing a risk to a user by electronically detecting malicious code by statistically calculating a hacking exposure level of an executable file through a probability model algorithm in a local area of a user terminal device.
  • the present invention relates to a computer-readable recording medium having recorded thereon a program.
  • APIs application program interfaces
  • a malicious code detection program is installed, and the installed program is the latest malicious code and virus related search engine or data when connected to communication such as Wifi.
  • the base must be downloaded from the server and updated periodically.
  • the related art infers the risk of malicious code by comparing existing malicious codes existing in the database with feature data (eg, metadata, source file names, signatures, etc.) included in a user's application. Therefore, the prior art has a problem that the server has a high dependency on the database and cannot reflect the latest hacking trend.
  • the purpose of the present disclosure is to solve the above-described problems of the prior art, and is based on a terminal device, not a server, to decompile an executable file to analyze source code and include the executable file.
  • the present invention provides a method and apparatus for providing a user with an inference result of a malicious code suspect file.
  • a malicious code analysis method of an electronic device includes: receiving an executable file; Before the received executable file is installed, analyzing the executable file to collect malicious code suspect data from the executable file, normalizing the collected malicious code suspect data based on a probability model algorithm to suspect malicious code Determining data; And outputting the determination result.
  • the collecting may include decompiling the machine code of the executable file to restore the source code level, and collect data suspected of malicious code of the executable file at the restored source code level.
  • the machine code may be decrypted to restore the decrypted machine code to a source code level.
  • the collecting may include collecting a symbol table and a character constant of the executable file to analyze data suspected of malicious code at a native source level.
  • the collecting may include decompiling the executable file into an intermediate representation code level using a low level virtual machine (LLVM) compiler to analyze data suspected of malicious code at a native source level.
  • LLVM low level virtual machine
  • the collecting may include analyzing malicious code suspicious data based on metadata of the executable file and execution permission information of the executable file in a mobile operating system.
  • the collecting step may be performed based on different information data inside the file by decoding, decompressing, checking header files, and checking byte values for each specific file to detect another executable file or a command hidden in another file format in the executable file. It may include analyzing the suspicious data as malicious code.
  • the method may further include a data normalization step of normalizing the collected data so that the normalized data may be input to the probability model algorithm.
  • the outputting may include outputting at least one of the type and probability information of the determined malicious code data when it is determined that the malicious code data exists.
  • the probability model algorithm may be at least one of a deep learning engine, a support vector machine (SVM), and a neural network algorithm.
  • SVM support vector machine
  • an electronic device for performing malicious code analysis receives a display and an executable file, and analyzes the executable file and installs the malicious code from the executable file before the received executable file is installed.
  • a processor configured to collect suspicious data, analyze the normalized collected malicious code suspicious data based on a probability model algorithm, determine malicious code suspicious data, and output the determination result.
  • the processor may decompile the machine code of the executable file to restore the source code level, and collect malicious code suspicious data of the executable file at the restored source code level.
  • the processor may restore the decrypted machine code to the source code level by decrypting the executable file.
  • the processor may collect malicious code suspect data by analyzing a symbol table and a character constant of the executable file to analyze data suspected of malicious code at a native source level.
  • the processor may collect malicious code suspect data by analyzing the native source level by decompiling the executable file into an intermediate representation code level using a low level virtual machine (LLVM) compiler.
  • LLVM low level virtual machine
  • the processor may collect malicious code suspect data by analyzing metadata of the executable file and execution permission information of the executable file in a mobile operating system.
  • the processor analyzes different information data inside the file through decryption, decompression, header file checking, and byte value matching for each specific file to detect another executable file or command hidden in another file format in the executable file. Code suspect data can be collected.
  • the apparatus may further include a memory configured to normalize the collected data to store the normalized data so that the normalized data may be input to the probability model algorithm.
  • the processor may output at least one of the type and probability information of the determined malicious code data.
  • the computer-readable recording medium having stored thereon a program for performing a malicious code analysis method of an electronic device according to an embodiment of the present disclosure, wherein the malicious code analysis method comprises: receiving an executable file; Collecting malicious code suspicious data from the executable file by analyzing a file, analyzing the collected malicious code suspicious data based on a probability algorithm, determining malicious code data, and outputting the judgment result; Computer-readable recording medium.
  • the malicious code detection method by using a decompiler in the terminal device to statically analyze the source code of the executable file to determine whether the malicious code is infected in the source code more quickly and accurately An apparatus and method can be provided.
  • FIG. 1 is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram showing the configuration of a malicious code detection program according to an embodiment of the present disclosure
  • FIG. 3 is a view for explaining the configuration of a low level virtual machine (LLVM) compiler according to an embodiment of the present disclosure
  • FIG. 4 is a view for explaining a method of showing a malicious code analysis result to a user according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart illustrating a method of detecting malicious code suspicious data according to an embodiment of the present disclosure
  • FIG. 6 is a flowchart illustrating a method of collecting malicious code suspicious data according to an embodiment of the present disclosure
  • FIG. 7 is a flowchart illustrating a method of statistically collecting collected malicious code suspicious data according to an embodiment of the present disclosure
  • FIG. 8 is a diagram for describing a situation of detecting malicious code suspect data in a first electronic device and transmitting a test result to a second electronic device according to an embodiment of the present disclosure
  • 9 and 10 are diagrams for describing a situation of detecting malicious code suspect data when there is no malicious code detection program in an electronic device according to an embodiment of the present disclosure
  • 11 is a diagram for describing another situation in which the electronic device detects malicious code suspect data according to an embodiment of the present disclosure.
  • Embodiments of the present disclosure may be variously modified and have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the scope to the specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the scope of the disclosed spirit and technology. In describing the embodiments, when it is determined that the detailed description of the related known technology may obscure the gist, the detailed description thereof will be omitted.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from another.
  • a "module” or “unit” performs at least one function or operation, and may be implemented in hardware or software or in a combination of hardware and software.
  • a plurality of “modules” or a plurality of “units” may be integrated into at least one module except for "modules” or “units”, which need to be implemented with specific hardware, and are implemented with at least one processor (not shown). Can be.
  • the methods described in this disclosure refer to one or more computer programs of a particular purpose stored in storage.
  • the program software performs the functions it is implemented to perform by giving instructions directly to the computer hardware or providing input to other software.
  • an executable file is not only a file containing data but also a computer file for performing an operation according to an encrypted command.
  • Files containing instructions for the interpreter, CPU, or virtual machine can be thought of as executables.
  • Executables are also scripts or bytecodes. Executables are called binary files, as opposed to the program's source code.
  • executable files interact within an operating system, and some operating systems identify executable files by file extension or by metadata. Most operating systems can ensure that the file is in the correct executable file format to protect arbitrary bit sequences from being inadvertently performed as a command. Modern operating systems have control over the computer's resources, requiring each program to make system calls to access authorized resources. Because each operating system family has its own call structure, executables are usually specific to a particular operating system.
  • an "executable file” is an executable file used in computer science and includes a computer file for performing an operation in accordance with an instruction coded.
  • the executable file in the present disclosure includes an application to be installed on the electronic device.
  • the "executable file” may also include content files such as games, pictures, music, and the like.
  • the term “user” may refer to a person who uses an electronic device or a device that uses an electronic device (eg, an artificial intelligence electronic device).
  • FIG. 1 is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 100 may include a display 110, a processor 120, a memory 130, an input unit 140, and a communication unit 150.
  • the display 110 may display an executable file received by the electronic device 100 on the touch screen according to an embodiment of the present disclosure.
  • the display 110 may display various input commands through a user interface (UI) so that a user may receive a command for installing an executable file displayed on the display 110 through the input unit 140.
  • UI user interface
  • the display 110 may be a liquid-crystal display (LCD) or an active-matrix organic light-emitting diode (AM-OLED).
  • LCD liquid-crystal display
  • AM-OLED active-matrix organic light-emitting diode
  • the display 150 may be implemented to be flexible, transparent, or wearable.
  • the processor 120 may receive a command from the display 110, the memory 130, the input unit 140, and the communication unit 150, decode the received command, and execute an operation or data processing according to the decoded command. have.
  • the processor 120 may receive the executable file and collect malicious code suspect data from the executable file by analyzing the executable file before installing the received executable file.
  • the analysis of the executable file may decompile the machine code of the executable file through static analysis to restore the source code level, and collect suspicious data of the executable file at the restored source code level.
  • the processor 120 may determine the malicious code suspicious data by analyzing the normalized malicious code suspicious data stored in the memory 130 based on a probability model algorithm. In this case, the processor 120 may induce malicious code suspicious data through an artificial probabilistic model algorithm such as a deep learning algorithm.
  • the processor 120 may control the display 110 to output at least one of the type and probability information of the determined malicious code data. A detailed description of the processor 120 according to an embodiment of the present disclosure will be described later with reference to FIGS. 5 to 7.
  • the memory 130 may store instructions or data received from or generated by the processor 120 or other components (eg, the display 110, the input unit 140, the communication unit 150, etc.). have.
  • the memory 130 may include a programming module such as a kernel (not shown), middleware (not shown), an application programming interface (API), or an application (not shown) or an executable file (not shown). It may include.
  • a programming module such as a kernel (not shown), middleware (not shown), an application programming interface (API), or an application (not shown) or an executable file (not shown). It may include.
  • Each of the above-described programming modules may be composed of software, firmware, hardware, or a combination of two or more thereof.
  • the memory 130 may store malicious code analysis data of an executable file according to an embodiment of the present disclosure.
  • the malicious code analysis data may be malicious data containing malicious code and clean data not containing malicious code.
  • the memory 130 is normalized and deduced from the data collected by the processor 120 through a probabilistic model algorithm such as a deep learning engine, a support vector machine (SVM), and a neural network engine. Data can be stored.
  • a probabilistic model algorithm such as a deep learning engine, a support vector machine (SVM), and a neural network engine. Data can be stored.
  • the memory 130 may include an internal memory (not shown) or an external memory (not shown).
  • the internal memory may include at least one of volatile memory and non-volatile memory.
  • the volatile memory may be, for example, a dynamic RAM (DRAM), a static RAM (SRAM), a synchronous dynamic RAM (SDRAM), or the like.
  • Non-volatile memory is, for example, one time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EPEROM), mask ROM, flash ROM, NAN flash memory, NOR flash memory, etc.
  • the internal memory may be a solid state drive (SSD).
  • External memory may be a flash drive, compact flash (CF), secure digital (SD), micro secure digital (Micro-SD), mini secure digital (Mini-SD), extreme digital (XD), or Memory Stick. It may include.
  • the external memory (not shown) may be functionally connected to the electronic device 100 through various interfaces.
  • the electronic device 100 may further include a storage device such as a hard drive.
  • the input unit 140 may transmit a command or data input from a user through an input / output device (eg, a sensor, a keyboard, or a touch screen) to the processor 120, the memory 130, the communication unit 150, or the like.
  • the input unit 140 may provide data about the touch of the user input through the touch screen to the processor 120.
  • the input unit 140 may generate input data for controlling the operation of the electronic device 100 by the user.
  • the electronic device 100 may select an executable file through the input unit 140 and receive a command for installing or canceling the installation of the selected executable file.
  • the communication unit 150 may perform communication between the electronic device 100 and an external device (for example, a server or another electronic device).
  • the communicator 150 may be connected to a network (not shown) through wireless or wired communication to communicate with an external device (not shown).
  • the electronic device 100 may be a device including a communication function.
  • the electronic device 100 may be a smartphone, a tablet PC, a mobile phone, a video phone, an e-book reader, a netbook computer, a PDA, a portable multimedia player, a MP3 player, or a wearable device. It may include at least one of (wearable device).
  • Wireless communication can be wireless fidelity (WiFi), Bluetooth (BT), near field communication (NFC), global positioning system (GPS) or cellular communication (e.g. LTE, LTE-A, CDMA, WCDMA, UMTS, Wibro, or GSM) It may include at least one of. Wired communication may include at least one of a universal serial bus (USB), a high definition multimedia interface (HDMI), a reduced standard 232 (RS-232), or a plain old telephone service (POTS).
  • USB universal serial bus
  • HDMI high definition multimedia interface
  • RS-232 reduced standard 232
  • POTS plain old telephone service
  • FIG. 2 is a block diagram illustrating a configuration of a malicious code detection program according to an embodiment of the present disclosure.
  • the electronic device 100 may include at least one or more program modules to perform at least one task.
  • the above-described modules are only an example for describing the present disclosure and the present disclosure is not limited thereto and may be implemented in various modifications.
  • the above-described modules may be stored in the memory 130 as a computer-readable recording medium that can be controlled by the processor 120.
  • the mobile operating system will be described by taking Android TM , iOS TM, and the like as an example.
  • the executable file receiving module 201 may receive the executable file from the external server or the external device by the electronic device 100.
  • the electronic device 100 may input a command for selecting whether to install the received executable file or not.
  • the electronic device 100 may perform the malicious code suspect data collection module 202.
  • the malicious code suspect data collection module 202 may collect various information of an executable file received from the electronic device 100. According to an embodiment of the present disclosure, the malicious code suspect data collection module 202 may decompile the machine code of the executable file and restore the source code level. At this time, the malicious code suspect data collection module 202 may analyze the restored source code to collect data suspected of malicious code included in the executable file.
  • the malicious code suspect data collection module 202 may collect data suspected of malicious code included in the executable file by analyzing the restored source code by decompiling the machine code. .
  • the malicious code suspect data collection module 202 may collect data suspected of malicious code included in the executable by analyzing the data at a native source level by collecting a symbol table and character constant by decompiling the executable file.
  • the malicious code suspect data collection module 202 decompiles the executable file to the IR (Intermediate Representation) code level by using a low level virtual machine (LLVM) compiler to analyze the suspected data at the native source level and execute the executable file. Can collect data suspected of malicious code contained in.
  • LLVM low level virtual machine
  • Malicious code suspect data collection module 202 analyzes the malicious code suspicious data based on the metadata of the executable file and the execution permission information of the executable file in the mobile operating system to collect the data suspected of malicious code included in the executable file. You can also collect.
  • the executable's metadata may include the executable's header file and / or other data fields, and may contain malicious code included in the executable through analysis of the heap size and stack size. Suspicious data can be collected.
  • the executable file analyzes whether the executable file has access to a specific application in a mobile operating system (eg, Android TM , iOS TM , Tizen TM, etc.) and analyzes the access permission information to detect data suspected of malicious code included in the executable file. Can be collected.
  • a mobile operating system eg, Android TM , iOS TM , Tizen TM, etc.
  • Malware suspicious data collection module 202 detects another executable file or command hidden in another file format in the executable file. By analyzing suspicious data of malicious code based on different information data of, it is possible to collect suspicious data included in executable file.
  • the malicious code suspicious data determination module 203 may receive the data collected by the malicious code suspicious data collection module 202 into a probability model algorithm. At this time, the malicious code suspicious data determination module 203 may deduce whether the executable file contains malicious code suspicious data based on the received data.
  • one embodiment of the present disclosure may be implemented using an artificial probability model algorithm such as deep learning, support vector machine (SVM), and neural network algorithm.
  • an artificial probability model algorithm such as deep learning, support vector machine (SVM), and neural network algorithm.
  • SVM support vector machine
  • neural network algorithm The above-described artificial intelligence probabilistic model algorithm is an extended form of machine learning.
  • the malicious code suspicious data result output module 204 may display probability data on the display of the electronic device 100 as to the probability of malicious code of an executable file deduced from the malicious code suspicious data determination module 203.
  • the displayed probability data may be displayed to the user through a graph, a chart, or an image, and may include detailed information about an executable file (eg, a developer, a distributor, a recommendation score, etc.).
  • Various methods of displaying the inferred result on the electronic device 100 may be variously changed by those skilled in the art, and thus detailed description thereof will be omitted.
  • LLVM low level virtual machine
  • the present disclosure may be implemented using a low level virtual machine (LLVM) compiler, according to an embodiment.
  • LLVM low level virtual machine
  • the LLVM is an open source solution, and may be code optimized independently of the processor 120 of the electronic device 100, and may convert various source codes into various machine codes.
  • the LLVM 300 compiler converts the input source code 301 into IR (Intermediate Representation) code through the frontend 302.
  • the middle end 305 optimizes the received IR 304 code, converts it into an IR 306 code, and transmits the IR 304 code to the backend 307.
  • the backend 307 generates the target code 308 which is a machine code using the input optimization IR 306 code using a predefined target description file.
  • Intermediate Representation (IR) code 304, 306 is a program representing an intermediate step between the source code and the target code, which enables faster and easier analysis of source code that is difficult to translate.
  • the malicious code suspect data collection module 202 described above with reference to FIG. 2 decompiles an executable file to an IR (Intermediate Representation) code level using a low level virtual machine (LLVM) compiler to generate a native source.
  • LLVM low level virtual machine
  • the suspected malicious data may be analyzed and collected at the IR code level. Also, for example, it is possible to gather data of suspected malware Android native TM (Native) or a JNI (Java Native Interface) TM level in the IR code level, as described above in FIG.
  • FIG. 4 is a view for explaining a method of showing a malicious code analysis result to a user according to an embodiment of the present disclosure.
  • the electronic device 100 may display that an executable file is being examined 401 on a display. At this time, the source path of the process of analyzing the source code and the header file analysis by decompiling the machine code of the executable file can be quickly shown on the screen. In this case, the electronic device 100 may store the analyzed malicious code analysis data in a memory.
  • the electronic device 100 may display a warning message 402 indicating that the malicious code was found to the user. In this case, the user may proceed with the installation of the executable file (402) or cancel the installation (402, minimum).
  • the electronic device 100 may change the screen by using an application download program API.
  • the electronic device 100 may display the probability data 403 of the malicious code suspect data in the executable file as malicious code to the user.
  • the electronic device 100 may provide a malicious code suspicion probability based on the statistics extracted through the probability model algorithm.
  • the electronic device 100 may display a warning message on whether to install the executable file or cancel the installation based on the malicious code suspect probability value.
  • the electronic device 100 may display a message or a GUI (Graphic User Interface) that proposes to limit the installation of an executable file according to a preset probability value by dividing the suspected malicious code by section.
  • GUI Graphic User Interface
  • the electronic device 100 may display a red warning in the warning window, or may warn the user to cancel the installation of the executable file. Can also be displayed.
  • the electronic device 100 may display an orange warning in the warning window or display a warning message to cancel the installation of the executable file. have.
  • the electronic device 100 may display a green warning in the warning window or display a warning message to cancel the installation of the executable file. have.
  • the electronic device 100 may also display a blue warning in the warning window, or may display a warning message to proceed with or cancel the installation of the executable file.
  • the warning message GUI display and the probability interval of the electronic device 100 are only exemplary embodiments for describing the present disclosure, and the electronic device 100 may be implemented to output malicious code suspect result data of an executable file through various GUIs. Can be.
  • the above-described malicious code suspicion result data may be implemented as a UI (User Interface) in various ways such that detailed information and description of an executable file are displayed based on the analyzed result.
  • UI User Interface
  • FIG. 5 is a flowchart illustrating a method of detecting malicious code suspicious data according to an embodiment of the present disclosure.
  • the electronic device 100 may determine whether to install a received new executable file (S501).
  • the electronic device 100 may receive an executable file from an external server or an external device.
  • the electronic device 100 may receive various executable files through an application store in Android TM and iOS TM .
  • the electronic device 100 may receive an executable file from another terminal device through an API such as SMS.
  • the electronic device 100 may input a command for selecting whether to install the received executable file or not.
  • the electronic device 100 may collect malicious code suspect data (S502).
  • the electronic device 100 may collect various information included in the received executable file. According to an embodiment of the present disclosure, the electronic device 100 may analyze the executable file and collect malicious code suspect data through static analysis. Static analysis is a method for analyzing malicious suspicious data from the restored source code (raw code) by decompiling the machine code of an executable file and restoring the source code (raw code).
  • the electronic device 100 may decompile the manifest, the DEX, and the native library of the Android TM to perform source code analysis.
  • the electronic device 100 may collect data suspected of malicious code included in the executable file by analyzing the restored source code by decompiling the machine code even when the machine code of the executable file is encrypted. For example, in the Android TM operating system, if encryption and obfuscation (eg proguard TM, etc.) are applied to the source code, interpretation of the source code becomes difficult. However, if you decompile the encrypted executable, you can get the classes.dex file. You can check the source code by converting MainActivity.class into a java file in the classes.dex file obtained by decompiling.
  • encryption and obfuscation eg proguard TM, etc.
  • the electronic device 100 may decompile an executable file to collect symbol tables and character constants to analyze data at a native source level to collect suspected malicious code included in the executable file.
  • source code When compiling source code to obtain binaries, source code has symbol tables and character constants that contain functions and variables used in the executable. Therefore, the compiled binary file can be decompiled and restored back to source code to collect the symbol table and character constants of the executable file.
  • JNI Java Native Interface
  • C / C ++ the (Application Program Interface) API written in C / C ++ on the Android TM allows calls in JAVA TM.
  • Java source code is driven in Dalvik virtual machine in the Android TM, such as sensors or the kernel of the digital device 100 to use the operating system, the Android TM approaches to C / C ++ through the JNI. Therefore, it is possible to collect data suspected of malicious code included in JNI, the native source level of Android TM through source code written in C / C ++ by decompiling the executable file.
  • the electronic device 100 decompiles the executable file into an intermediate representation code (IR) code level using a LLVM (Low Level Virtual Machine) compiler to analyze data suspected of malicious code at a native source level and includes malicious data contained in the executable file. You can collect data suspected of being code.
  • IR intermediate representation code
  • LLVM Low Level Virtual Machine
  • the electronic device 100 may analyze and collect malicious code suspicious data at the IR code level. For example, the electronic device 100 may collect data suspected of malicious code at a native or Java Native Interface (JNI) level of the Android TM at the IR code level.
  • JNI Java Native Interface
  • the electronic device 100 may analyze the malicious code suspect data based on the metadata of the executable file and the execution authority information of the executable file in the mobile operating system and collect data suspected of malicious code included in the executable file.
  • the executable's metadata may include the executable's header file and / or other data fields, and may contain malicious code included in the executable through analysis of the heap size and stack size. Suspicious data can be collected.
  • the executable file analyzes whether the executable file has access to a specific application in a mobile operating system (eg, Android TM , iOS TM , Tizen TM, etc.) and analyzes the access permission information to detect data suspected of malicious code included in the executable file. Can be collected.
  • a mobile operating system eg, Android TM , iOS TM , Tizen TM, etc.
  • the permission information of the executable file in each operating system is included in the manifest file AndroidManifest.xml for Android TM , Info.plist file for iOS TM , and privilege_desc file for Tizen TM .
  • the electronic device 100 is based on different information data inside the file through decoding, decompression, header file checking, byte value matching, etc. for each specific file to detect another executable file or command hidden in another file format in the executable file. By analyzing suspicious data, malicious data included in the executable file can be collected.
  • an APK may contain a .so file, an executable linking format (ELF), compiled for ARM.
  • ELF executable linking format
  • source code analysis of the ELF file may be performed using a decompiler tool through static analysis according to an embodiment of the present disclosure.
  • the magic number can be used to identify and collect property suspected malicious code data by checking the feature information inside the ELF file.
  • the magic number is a magic byte that identifies data fields in the header of the file according to the file format.
  • the ELF header contains information about the executable, and the magic number of the ELF is .ELF (0x7F 0x45 0x4C 0x46).
  • the ELF magic number includes data and information on whether the file is an object file, an executable file, an ELF version, or a file compiled for an operating system and a bit.
  • the suspected malware collection module 202 may collect data suspected of malicious code included in the executable file.
  • the executable file when the extension of the executable file is a photo file such as .png or .jpg, the executable file may include another executable file or a command to impersonate the photo file format.
  • the malicious code suspect data collection module 202 decompresses when a specific file (for example, a picture file format such as .jpg or .png) is compressed, and decrypts each specific file when the specific file is encrypted. It can analyze suspicious data of malicious code. Decode and decompile the decompressed executable file to check the header file and byte value of the executable file to analyze suspicious data in the file and collect suspicious data included in the executable file.
  • the electronic device 100 may determine the malicious code suspicious data by receiving the normalized data through the preprocessing process into the probability model algorithm (S504). At this time, the electronic device 100 may infer whether the executable file contains malicious code suspect data based on the received data.
  • one embodiment of the present disclosure may be implemented using an artificial probability model algorithm such as deep learning, support vector machine (SVM), and neural network algorithm.
  • an artificial probability model algorithm such as deep learning, support vector machine (SVM), and neural network algorithm.
  • SVM support vector machine
  • neural network algorithm The above-described artificial intelligence probabilistic model algorithm is an extended form of machine learning.
  • a general machine learning probability model algorithm normalizes the collected data and normalizes the collected data through a pre-processing process and inputs it into the probability model algorithm.
  • the main process of preprocessing can be a data cleaning process that fills in missing values.
  • Bayesian fomula can be used to fill in missing values.
  • the data integration process can correct inconsistent data and duplicate data can be solved for redundancy.
  • the expression can be stored as a rule and data duplication can be solved through correlation analysis.
  • various methods may be used to perform data normalization using data preprocessing.
  • the machine learning algorithm collects and analyzes data, performs preprocessing of the analyzed data, extracts characteristics of the preprocessed data, selects an algorithm that is suitable for the purpose, and repeats the final result. Will be derived.
  • machine learning solves the problem by creating algorithms that allow experts to assume and extract characteristics of the data.
  • deep learning used in the present disclosure is an algorithm for learning the data extraction itself by including the preprocessing process in the machine learning in the neural network architecture. Therefore, when the deep learning algorithm is used as a probabilistic model algorithm, the preprocessing process used in the present disclosure can be omitted, thereby obtaining faster and more accurate inference results.
  • a general machine learning algorithm calculates a linear combination of values associated with each feature to derive an inference result.
  • Deep learning algorithms can achieve a high level of abstraction through a combination of non-linear transform techniques. In other words, deep learning algorithms can automatically perform the task of summarizing key contents or functions in a large amount of data or complex data without preprocessing.
  • the electronic device 100 may output a probability that the executable file is malicious code suspect data through a probability model algorithm (S505). As described above with reference to FIG. 4, the electronic device 100 may display the probability data on the display of the probability of malicious code of the deducted executable file. Various methods of displaying the inferred result on the electronic device 100 may be variously changed by those skilled in the art, and thus detailed description thereof will be omitted.
  • the electronic device 100 may store the output malicious code and suspected malicious code data and file information in a memory in operation S506.
  • the stored malicious code-related data may be used as a big data-based database when implementing a probability model algorithm.
  • FIG. 6 is a flowchart illustrating a method of collecting malicious code suspicious data according to an embodiment of the present disclosure.
  • the electronic device 100 may analyze whether the executable file contains malicious code or whether there is a risk of malicious code (S601). According to an embodiment of the present disclosure, the electronic device 100 may receive the executable file and analyze the executable file before the executable file is installed.
  • the electronic device 100 may receive an executable file from an application market of Android TM or an APP Store of IOS TM .
  • the electronic device 100 may receive an executable file from an external device or a server through various APIs such as an SMS API, an album API, a MUSIC API, and a game API.
  • an Android TM operating system will be described as an example.
  • the executable file of Android TM has a package file structure called APK.
  • the electronic device 100 may analyze the internal structure of the APK by decompressing the Android TM APK compressed in the zip format.
  • the electronic device 100 may collect malicious code suspicious data by performing a static analysis of the executable file (S602).
  • Static analysis can extract and collect malicious data suspect data included in the source code by analyzing the source code (raw code) obtained by decompiling / disassembling the executable code of the executable file that is the target of malware analysis.
  • the decompiled source code may include byte codes or assembly languages to determine what operation the executable will perform.
  • the electronic device 100 may collect malicious code suspect data by analyzing native instructions, byte codes, function names, data flows, and the like of the restored source code.
  • the electronic device 100 may collect whether malicious actions, such as stealing the root authority from the restored source code or sending private data of the user to the outside, are included in the executable file. That is, the electronic device 100 analyzes whether the executable file transmits the user's personal information to the outside without the user's permission, performs SMS transmission, GPS information use, external transmission of the photo file, and the like, and suspects malicious code data. Can be collected.
  • the electronic device 100 decompiles the decompressed APK of the Android TM to generate a manifest file, a DEX (Dalvik Executable) file, and a native library file. Can be collected.
  • the electronic device 100 may analyze the source code by decompiling the Dex file for code analysis after analyzing the manifest in Android TM . At this time, even if a part of the machine code is encrypted, the encrypted code is decrypted, and the electronic device 100 may decompile the decrypted code and restore the source code.
  • the electronic device 100 may collect suspected malicious code data of an executable file by analyzing the restored source code.
  • the signature of the decoded dex file and the signature string of the dex file stored in memory may be searched to compare the mapped address.
  • the electronic device 100 may check the signature of the optimized Dex at the mapped address and check whether the dex found in the memory is the decoded dex through the dex header. Through this, the electronic device 100 may decompile the encrypted machine code and analyze the restored source code to collect malicious code suspect data included in the executable file.
  • the electronic device 100 may collect malicious code suspicious data at a native source level by collecting a symbol table and a character constant through source codes of a decompiled native library file.
  • the electronic device 100 compiles source code to obtain binaries
  • the source code has a symbol table and a character constant including functions and variables used in an executable file. Therefore, the compiled binary file can be decompiled and restored back to source code to collect the symbol table and character constants of the executable file. Since a specific example has been described above with reference to FIG. 5, a description thereof will be omitted here.
  • the electronic device 100 may decompile the executable file into the LLVM IR code by using the LLVM compiler to analyze and collect suspicious data by analyzing native source code of the executable file at the LLVM IR code level (S604). ).
  • the electronic device 100 may convert the machine code of the executable file into an IR (Intermediate Representation) code, which is a LLVM byte code, through the LLVM compiler.
  • IR Intermediate Representation
  • the electronic device 100 may collect data suspected of malicious code at a native or Java Native Interface (JNI) level of the Android TM at the IR code level. Since the detailed description of the LLVM IR code has been described above with reference to FIGS. 3 and 5, the description thereof will be omitted.
  • JNI Java Native Interface
  • the electronic device 100 may collect malicious code suspicious data through analysis of execution permission information and metadata on a mobile operating system (eg, Android TM , IOS TM , Tizen TM , etc.) of an executable file (S605). .
  • a mobile operating system eg, Android TM , IOS TM , Tizen TM , etc.
  • the execution permission information for the mobile operating system is a manifest file for Android TM , a privilege_desc file for Tizen TM , and an Info.plist file for IOS TM .
  • the Android TM Manifest file describes the permissions and components and application entry points used by the application's executable. Therefore, according to one embodiment of the present disclosure, in order to analyze malicious code suspicious data of an executable file, the electronic device 100 may collect data by analyzing an entry point of a manifest.
  • the code of the Android TM manifest is as follows. ⁇ application
  • the attribute described between ⁇ activity> ⁇ / activity> is the entry point of the executable file, and the code executed first when the executable file is executed. Therefore, the electronic device 100 may collect suspicious data while analyzing the classes to be subsequently called through the analysis of the MainActivity class between ⁇ activity> and ⁇ / activity>.
  • the electronic device 100 may detect and analyze suspected malicious data by detecting a file or a command hidden in another file format.
  • the APK file which is a hidden file of the Android TM
  • the unzipped APK file may contain a Native Development Kit (NDK) library file.
  • the NDK file may include ELF (Executable Linking Format), which is an executable file format for Linux with a .so file extension, for arm.
  • the electronic device 100 may collect malicious code suspect data included in an executable file by analyzing a source code restored by decompiling the ELF file through static analysis. At this time, the electronic device 100 may collect suspected malicious code data through a symbol table or a character constant of the ELF. Alternatively, the electronic device 100 may collect suspicious data through IR codes or source codes restored by decompiling the ELF file.
  • the malicious code is detected by detecting the command of the executable file to determine the root authority of the specific file. You can collect data. At this time, obtaining root authority means that a specific file enters a path where a specific file can be executed in Android TM and has access to a corresponding API.
  • a specific file eg image, video file, etc.
  • the electronic device 100 may extract the file structure of the specific file by decoding and decompressing the specific file in order to detect the root authority of the specific file format.
  • the electronic device 100 may collect suspected malicious code data by analyzing different extension information intended inside the specific file by comparing the byte value of the extracted specific file.
  • the executable file may acquire root authority to an API to which a photo file such as an album of the user is accessible.
  • the executable file may be a file intentionally disguised as a picture file containing malicious code. Accordingly, the electronic device 100 may collect executable malicious code suspect data in the file format by collating byte values through decryption and decompression even for an executable file having an extension of the image file format.
  • the above-described examples are only embodiments for describing the present disclosure, and the present disclosure may be applied to various file formats.
  • the electronic device 100 may analyze the malicious code suspect data through the metadata of the executable file.
  • the metadata may include header files and / or other data fields of the executable. Metadata can represent various characteristics of an executable file.
  • the metadata may include various characteristic fields, such as a heap size, a stack size, a header size, an image size, a code section size, an initialization data size, and the like.
  • the electronic device 100 may collect data suspected of malicious code included in the executable file by analyzing characteristic fields (eg, heap size, stack size, etc.) of the executable file.
  • the electronic device 100 may generate a thread and simultaneously collect suspect data of the malicious code of the analyzed executable file as described above.
  • the electronic device 100 may store the collected malicious code suspect data in a memory and use it as a database.
  • FIG. 7 is a flowchart illustrating a method of statistically collecting collected malicious code suspicion data according to an embodiment of the present disclosure.
  • the electronic device 100 may normalize collected malicious code suspect data through a preprocessing process and store it in a memory (S701).
  • General machine learning algorithms use data by normalizing the data through pre-processing. Since the pretreatment process has been described above with reference to FIG. 5, a description thereof will be omitted here.
  • the electronic device 100 receives normalized data through a preprocessing process into a probability model algorithm (S702).
  • the probability model algorithm may be implemented using an artificial probability model algorithm such as deep learning, support vector machine (SVM), and neural network.
  • SVM support vector machine
  • the above-described artificial intelligence probabilistic model algorithm is an extended form of machine learning.
  • the electronic device 100 may determine the malicious code suspicious data through the probability model algorithm (S703).
  • the deep learning algorithm used in the present disclosure includes an algorithm for pre-processing the machine learning in the neural network architecture and learning data by itself. Therefore, when the deep learning algorithm is used as a probabilistic model algorithm, the preprocessing process used in the present disclosure can be omitted, so that a faster and more accurate inference result can be obtained.
  • the result of determining whether malicious code is disclosed through the present disclosure may lead to high accuracy.
  • the electronic device 100 may output a probability value of the malicious code suspect data obtained through the probability model algorithm (S704).
  • the electronic device 100 may provide a user interface (UI) including various information on malicious codes, but may provide a simple user interface (UI) by quantifying the probability of suspecting malicious codes of an executable file through the present disclosure. have. Since the UI through the present disclosure has been described in detail with reference to FIGS. 4 and 5, a description thereof will be omitted herein.
  • FIG. 8 is a diagram for describing a situation in which malicious code suspect data is detected by a first electronic device and a test result is transmitted to a second electronic device, according to an embodiment of the present disclosure.
  • the electronic device 100 described above may take various forms.
  • the electronic device 100 may be a printer 820, a refrigerator 830, a smart phone 850, a tablet 860, or the like.
  • the printer 820 and the refrigerator 830 are assumed to be the first electronic device 810
  • the smartphone 850 and the tablet 860 are assumed to be the second electronic device 840.
  • the first electronic device 810 may include, for example, an electronic device having a large volume or a large mass, which makes it difficult for a user to carry the device, and which is difficult to move when the position is determined once due to the characteristics of the device.
  • the second electronic device 840 may include, for example, an electronic device that is small in volume and can be carried by a user.
  • the above-described example is not limited thereto, and the electronic devices included in the first electronic device 810 and the second electronic device 840 may be interchanged with each other and may include various electronic devices.
  • the first electronic device 810 and the second electronic device 840 may refer to the electronic device 100 of FIG. 1. Accordingly, each of the first electronic device 810 and the second electronic device 840 may include a display, a processor (not shown), a memory (not shown), an input unit (not shown), and a communication unit (not shown). . Since the functions of the components of the electronic device 100 have been described with reference to FIG. 1, detailed descriptions thereof will be omitted. Also, the first electronic device 810 and the second electronic device 840 may detect malicious code in an executable file and display an analysis result in the same or similar process as the electronic device 100 of FIG. 1. Since the process of detecting the malicious code and displaying the analysis result in the electronic device 100 has been described above, a detailed description thereof will be omitted.
  • the first electronic device 810 may transmit a result of detecting a malicious code to the second electronic device 840.
  • the printer 820 which is the first electronic device 810, downloads an executable file that adds an output option, scans malicious code before the executable file is installed, and outputs the malicious code scan result to the second electronic device ( 840 may be transmitted to the smart phone 850.
  • the smartphone 850 or the tablet 860 may display warning messages 856 and 866 on the respective displays 855 and 865 based on the result of the malware inspection received from the printer 820.
  • the first electronic device 810 may transmit the malicious code analysis result to the second electronic device 840 in various ways.
  • the first electronic device 810 may designate the second electronic device 840 to transmit the malicious code analysis result in advance.
  • the first electronic device 810 may transmit the malicious code analysis result to the second electronic device 840 using a communication unit (not shown) of the first electronic device 810. have.
  • the first electronic device 810 may search for the second electronic device 840 and then transmit a malicious code analysis result to the searched second electronic device 840.
  • the first electronic device 810 may search for a plurality of second electronic devices 840 within a preset distance from the first electronic device 810, and then search for at least one of the found second electronic devices 840.
  • the malicious code analysis result may be transmitted to the second electronic device 840 of FIG.
  • the first electronic device 810 may search for the second electronic device 840 using a short range communication method such as BT, Wifi, or NFC.
  • the first electronic device 810 may transmit a malicious code analysis result to the searched second electronic device 840.
  • the first electronic device 810 may use various cellular communication (eg, LTE, LTE-A, CDMA, WCDMA, UMTS, Wibro, or GSM), wired communication (eg, Searching for the second electronic device 840 using a universal serial bus (USB), high definition multimedia interface (HDMI), reduced standard 232 (RS-232) or plain old telephone service (POTS) method, and The malicious code analysis result may be transmitted to the electronic device 840.
  • various cellular communication eg, LTE, LTE-A, CDMA, WCDMA, UMTS, Wibro, or GSM
  • wired communication eg, Searching for the second electronic device 840 using a universal serial bus (USB), high definition multimedia interface (HDMI), reduced standard 232 (RS-232) or plain old telephone service (POTS) method, and
  • USB universal serial bus
  • HDMI high definition multimedia interface
  • RS-232 reduced standard 232
  • POTS plain old telephone service
  • the first electronic device 810 may transmit a malicious code analysis result to the second electronic device 840 that is logged in with the same ID as the first electronic device 810. .
  • the first electronic device 810 and the second electronic device 840 may share the same malicious code analysis program.
  • Each of the first electronic device 810 and the second electronic device 840 downloads and installs a malicious code analysis program from a server that provides a malicious code analysis program, and accordingly to the situation, the first electronic device 810 and / or the first electronic device 810 and / or the second electronic device 840. 2, the electronic device 840 may execute a malicious code analysis.
  • the first electronic device 810 may transmit a malicious code analysis result to the server.
  • the server may transmit the received malicious code analysis result of the first electronic device 810 to the second electronic device 840.
  • the first electronic device 810 and the second electronic device 820 may install different malicious code analysis programs.
  • the first electronic device 810 and the second electronic device 820 are different malware programs using a single sign-on method that can execute various services or various applications with one ID. You can install it to analyze malware and share the results.
  • the first electronic device 810 may share a malicious code analysis result with the second electronic device 840 using various methods.
  • the user carrying the second electronic device 840 may check whether there is malicious code included in a file to be installed in the first electronic device 810 even when the user is physically separated from the first electronic device 810. You can judge.
  • 9 and 10 are diagrams for describing a situation of detecting malicious code suspect data when there is no malicious code detection program in an electronic device according to an embodiment of the present disclosure.
  • the first electronic device 810 may download and install a new executable file in operation S910.
  • the first electronic device 810 may receive various executable files through an application store in Android TM and iOS TM .
  • the first electronic device 810 may check whether the received executable file has been scanned for malicious code (S920: Y). For example, the first electronic device 810 may store a record of whether the malicious code has been scanned in a predetermined region of the executable file with respect to the executable file that has been scanned for malicious code. In this case, when the first electronic device 810 receives a command to install an executable file from a user, the first electronic device 810 may check a record of whether the malicious code has been scanned in the executable file. .
  • the first electronic device 810 may be a second electronic device 840 capable of checking the malicious code using various wireless communication, wired communication, or cellular communication methods. It can be confirmed (S930). For example, the first electronic device 810 searches for the second electronic device 840 within the designated area, presets the specified second electronic device 840, or has the same ID as the first electronic device 810. In operation S930, the logged-in second electronic device 840 may be checked.
  • the first electronic device 810 may transmit an executable file to the identified second electronic device 840 (S940).
  • the second electronic device 840 may perform a malicious code check on the received executable file and display the result on each display 855 or 865 of the second electronic device 840.
  • the second electronic device 840 may transmit the execution file of which the malicious code check is completed to the first electronic device 810 through a wireless communication method and a user command with the first electronic device 810.
  • the first electronic device 810 may receive an executable file that has been scanned for malicious code from the second electronic device 840.
  • the first electronic device 810 may install an executable file received from the second electronic device 840 (S960).
  • the first electronic device 810 may be connected to the first electronic device 810 by wire or wirelessly.
  • the malicious code may be detected before installing the executable file by using the second electronic device 840.
  • 11 is a diagram for describing another situation in which the electronic device detects malicious code suspect data according to an embodiment of the present disclosure.
  • the first electronic device 810 may be a device related to the Internet of Things disposed in a building.
  • the IoT may mean that a person, an object, a space, data, and the like are connected to each other through the Internet, so that information is generated, collected, shared, and utilized.
  • the first electronic device 810 may be an IoT sensor device that collects and generates various data and then transmits the data to another electronic device using various communication technologies.
  • the first electronic device 810 may be a sensor device that collects information and transmits the information to the outside in association with the temperature device 811, the security camera 813, the light 815, the TV 817, and the like.
  • the temperature device 811, the security camera 813, the lamp 815, the TV 817, and the like may be integrally formed with the above-described sensor.
  • the above-described examples are merely examples for describing the present disclosure and are not limited thereto.
  • Each sensor device 810 may transmit the generated data to a device associated with each sensor, or may transmit the generated data to another device to be used for the operation of each device. Each sensor device 810 may transmit the generated data to the second electronic device 840.
  • the sensor device 810 associated with the security camera 813 may be a resident of the sensor device 810 associated with the light. Data can be sent to indicate that this access has been made.
  • the sensor device 810 associated with the lamp 815 may transmit the received data to the lamp 815 to activate the lamp 815 inside the building.
  • the sensor devices 810 related to the IoT may perform software (SW) software update or firmware update if necessary.
  • the sensor device 810 may download and install a file required for SW update.
  • the sensor device 810 may not have a program installed to detect malicious code.
  • the second electronic device 840 may perform a malicious code check on a file to be installed in the sensor device 810, and then transmit the completed file to the sensor device 810.
  • the sensor device 810 may perform a SW update using the received file.
  • the sensor device 810 may receive a file necessary for software (SW) update and perform a malicious code check. In this case, the sensor device 810 may transmit a test result to the second electronic device 840.
  • SW software
  • the malicious code recognition rate of the executable file may be obtained through a malicious code analysis data (feature data) input to the deep learning engine.
  • the electronic device 100 may store data collected for malware analysis in a specific memory location within the electronic device 100 that drives the executable file.
  • the collected information may be data for analyzing a native source, for example, header file information and a function name. That is, it may be malicious code suspect data analyzed through symbol table of executable file, suspected malicious data collected through character constant, and decompiled executable file to IR code level using LLVM compiler.
  • the electronic device 100 may acquire malicious code suspect data collected by obtaining a root right to the operating system with respect to the data for analyzing the above-described native source in a RAM or a hard disk.
  • the electronic device 100 may store the data in a specific location or the entire memory through a memory dump generation process.
  • Android TM can be a quick dump using the (Direct Memory Access) DMA method.
  • You can also use JTAG to use hardware methods that are less likely to be affected by operating system (OS) versions or affected by rootkits.
  • OS operating system
  • rootkits Other mobile operating systems may store and verify data in the same manner as described above.
  • the electronic device 100 may store the data in a specific location when operating at the application level.
  • Android TM can store collected data in internal memory (/ data / data / package name / databases /) or in external memory (/ mnt / sdcard / package name /). Accordingly, the electronic device 100 may store data in a specific location of the external memory and the external memory and check the location of the data.
  • IOS TM it is possible to check the location of the analysis data by saving the analyzed file as suspected malware in the current folder and the Documents folder.
  • the electronic device 100 may update the collected data to a database of a server to perform dynamic analysis.
  • the electronic device 100 may read the analysis data sent to the server and check the analysis data.
  • the electronic device 100 may not be able to update a database related to malicious code through the electronic device 100.
  • SVM, neural networks, etc. can be used to analyze suspicious data.
  • the cognitive engine is configured in the form of artificial intelligence capable of self-learning, there is an effect that does not need additional data base update.
  • the present disclosure in terms of the overall scenario, has the effect of reducing the inspection time than the existing malware detection technology that includes the process of updating the database and sending the executable file to the server.
  • the malware analysis and detection time running on the user device has an advantage of using a scan time of about 1 second.
  • the methods described in this disclosure can be executed by the above functions by being recorded on a recording medium readable by a computer and executed by a computer.
  • the above-described methods may include code coded in a computer language such as C, C ++, Java, or machine language, which the processor (CPU) of the computer may read. It may include.
  • Such code may further include memory reference related code for additional information or media required for the computer (processor) to execute the methods described above at which location (address address) of the computer's internal or external memory.
  • the code means that the processor of the computer is a communication module of the computer (eg, a wired and / or wireless communication module). It may further include communication-related code, such as how to communicate with any other computer or server in the remote (remote), what information or media should be transmitted and received during communication.
  • an apparatus eg, modules or electronic device 100
  • a method eg, operations
  • the at least one computer may perform a function corresponding to the command.
  • the computer-readable storage medium may be, for example, the memory 130.
  • Programs include, for example, hard disks, floppy disks, magnetic media (such as magnetic tape), optical media (such as compact disc read only memory) and digital versatile disc (DVD). ), Magneto-optical media (e.g. floptical disks), hardware devices (e.g. read only memory (ROM), random access memory (RAM), or flash memory, etc.)
  • the storage medium is generally included as part of the configuration of the electronic device 100, but may be mounted through a port of the electronic device 100, or
  • the program may be included in an external device (eg, a cloud, a server, or another electronic device) that is located outside the apparatus 100.
  • the program may be stored in a plurality of storage media, wherein at least one of the plurality of storage media is stored. Some are electronic devices (100 ) May be located on an external device.
  • Instructions can include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler.
  • the aforementioned hardware device may be configured to operate as one or more software modules to perform the operations of the various embodiments, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Computational Mathematics (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시는 전자 장치의 악성 코드 분석 방법에 있어서, 실행 파일을 수신하는 단계, 상기 수신된 실행 파일이 설치되기 전에, 상기 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하는 단계, 정규화된 상기 수집된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단하는 단계 및 상기 판단 결과를 출력하는 단계를 포함하는 악성 코드 분석 방법에 관한 것이다.

Description

악성 코드 분석을 위한 전자 장치 및 이의 방법
본 발명은 악성 코드 검출을 하는 전자 장치에 있어서, 사용자 단말 장치의 로컬 영역 내에서 확률 모델 알고리즘을 통해 실행 파일의 해킹 노출 정도를 통계화하여 사용자에게 위험성을 제공하는 방법, 장치 및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
모바일 디바이스(예: 스마트폰, 태블릿 PC, 등)의 사용이 증가함에 따라 다양한 API(Application Program Interface)가 개발되고 있다. 이에 따라, 사용자는 직접 애플리케이션(Application)을 개발하여 공개할 수 있고, 공개된 다른 애플리케이션(Application)을 자유롭게 설치(install)하여 사용할 수 있다.
그러나, 공개된 애플리케이션 안에는 사용자 단말 내부의 정보를 수집해 외부로 송신할 수 있는 악성 애플리케이션이 존재한다. 또한, 최근의 악성 애플리케이션은 정상적인 애플리케이션을 가장하여 사용자도 모르는 사이에 사용자의 개인 정보가 누설되는 가능성이 높아지고 있다.
종래에는, 모바일 디바이스에 설치되는 애플리케이션의 악성 코드를 감지하는 방법에 있어서, 악성 코드 감지 프로그램을 설치하고, 설치된 프로그램은 Wifi등의 통신에 연결되어 있을 때 최신의 악성 코드 및 바이러스 관련 검색 엔진 또는 데이터 베이스를 서버로부터 다운로드 받아서 주기적으로 업데이트해야 하는 문제점이 있다. 그리고 종래의 기술은 데이터 베이스에 존재하는 기존의 악성 코드와 사용자의 애플리케이션에 포함된 특징(feature) 데이터(예: 메타 데이터, 소스파일의 이름, 시그니처등)를 비교하여 악성 코드 위험성을 유추하였다. 따라서, 종래의 기술은 서버의 데이터 베이스에 대한 의존성이 높으며 최신 해킹 동향을 반영하기 힘든 문제점이 있다.
본 개시의 목적은, 상술한 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 서버 기반이 아닌 단말 장치 기반으로, 실행파일(executable file)을 디컴파일하여 소스 코드를 분석하고 실행파일에 포함되어 있는 악성 코드 의심 파일을 유추한 결과를 사용자에게 제공하는 방법 및 장치를 제공함에 있다.
상술한 목적을 달성하기 위한 본 개시의 일 실시예에 따른, 전자 장치의 악성 코드 분석 방법은, 실행 파일을 수신하는 단계; 상기 수신된 실행 파일이 설치되기 전에, 상기 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하는 단계, 정규화된 상기 수집된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단하는 단계; 및 상기 판단 결과를 출력하는 단계를 포함한다.
상기 수집하는 단계는, 상기 실행 파일의 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하는 단계를 포함하고, 상기 복원된 소스 코드 레벨에서 상기 실행 파일의 악성 코드로 의심되는 데이터를 수집할 수 있다.
상기 복원하는 단계는, 상기 실행 파일의 기계 코드가 암호화된 경우, 상기 기계 코드를 복호화하여 상기 복호화된 기계 코드를 소스 코드 레벨로 복원할 수 있다.
상기 수집하는 단계는, 상기 실행 파일의 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하는 단계를 포함할 수 있다.
상기 수집하는 단계는, 상기 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하는 단계;를 포함할 수 있다.
상기 수집하는 단계는, 상기 실행 파일의 메타 데이터 및 모바일 운영체제 내에서의 상기 실행 파일의 실행 권한 정보를 바탕으로 악성 코드 의심 데이터를 분석하는 단계를 포함할 수 있다.
상기 수집하는 단계는, 상기 실행 파일 내 다른 파일 포맷에 숨겨진 또 다른 실행 파일 혹은 커맨드를 검출하도록 특정 파일마다 복호화, 압축 해제, 헤더 파일 확인, 바이트 값 대조를 통해 상기 파일 내부의 상이한 정보 데이터를 바탕으로 악성 코드 의심 데이터를 분석하는 단계를 포함할 수 있다.
상기 수집된 데이터를 정규화하여 상기 정규화된 데이터가 상기 확률 모델 알고리즘에 입력될 수 있도록 하는 데이터 정규화 단계를 더 포함할 수 있다.
상기 출력하는 단계는, 상기 판단 결과 악성 코드 데이터가 존재하는 것으로 판단되면, 상기 판단된 악성 코드 데이터의 유형 및 확률 정보 중 적어도 하나를 출력할 수 있다.
상기 확률 모델 알고리즘은, 딥러닝(deep learning) 엔진, SVM(Support Vector Machine), 신경망 알고리즘 중 적어도 하나일 수 있다.
반면, 본 개시의 일 실시예에 따른, 악성 코드 분석을 하는 전자 장치는, 디스플레이 및 실행 파일을 수신하고, 상기 수신된 실행 파일이 설치되기 전에, 상기 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하고, 정규화된 상기 수집된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단하고, 상기 판단 결과를 출력하는 프로세서를 포함한다.
상기 프로세서는, 상기 실행 파일의 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하고, 상기 복원된 소스 코드 레벨에서 상기 실행 파일의 악성 코드 의심 데이터를 수집할 수 있다.
이때, 상기 프로세서는, 상기 실행 파일의 기계 코드가 암호화된 경우, 상기 실행 파일을 복호화하여 상기 복호화된 기계 코드를 소스 코드 레벨로 복원할 수 있다.
상기 프로세서는, 상기 실행 파일의 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하여 악성 코드 의심 데이터를 수집할 수 있다.
상기 프로세서는, 상기 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨을 분석하여 악성 코드 의심 데이터를 수집할 수 있다.
상기 프로세서는, 상기 실행 파일의 메타 데이터 및 모바일 운영체제 내에서의 상기 실행 파일의 실행 권한 정보를 분석하여 악성 코드 의심 데이터를 수집할 수 있다.
상기 프로세서는, 상기 실행 파일 내 다른 파일 포맷에 숨겨진 또 다른 실행 파일 혹은 커맨드를 검출하도록 특정 파일마다 복호화, 압축 해제, 헤더 파일 확인, 바이트 값 대조를 통해 상기 파일 내부의 상이한 정보 데이터를 분석하여 악성 코드 의심 데이터를 수집할 수 있다.
      상기 수집된 데이터를 정규화하여 상기 정규화된 데이터가 상기 확률 모델 알고리즘에 입력될 수 있도록 상기 정규화된 데이터를 저장하는 메모리를 더 포함할 수 있다.
상기 프로세서는, 상기 판단 결과 악성 코드 데이터가 존재하는 것으로 판단되면, 상기 판단된 악성 코드 데이터의 유형 및 확률 정보 중 적어도 하나를 출력할 수 있다.
그리고 본 개시의 일 실시 예에 따른, 전자 장치의 악성 코드 분석 방법을 수행하기 위한 프로그램이 저장된 컴퓨터 판독 가능 기록 매체에 있어서, 상기 악성 코드 분석 방법은, 실행 파일을 수신하는 단계, 상기 수신된 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하는 단계, 확률 알고리즘을 바탕으로 상기 수집된 악성 코드 의심 데이터를 분석하여 악성 코드 데이터를 판단하는 단계 및 상기 판단 결과를 출력하는 단계를 포함하는 컴퓨터 판독 가능 기록매체일 수 있다.
상술한 바와 같이, 본 개시의 실시 예들에 따른 악성 코드 검출 방법은, 단말 장치에서 디컴파일러를 활용하여 실행파일의 소스코드를 정적 분석하여 소스 코드에서 악성 코드 감염 여부를 더욱 빠르고 정확하게 판단할 수 있는 장치 및 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략히 나타내는 블록도,
도 2는 본 개시의 일 실시 예에 따른 악성 코드 검출 프로그램의 구성을 나타내는 블록도,
도 3은 본 개시의 일 실시 예에 따른 LLVM(Low Level Virtual Machine) 컴파일러의 구성을 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른 사용자에게 악성 코드 분석 결과를 보여주는 방법을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 악성 코드 의심 데이터를 검출하는 방법을 설명하기 위한 순서도,
도 6은 본 개시의 일 실시 예에 따른 악성 코드 의심 데이터를 수집하는 방법을 설명하기 위한 순서도,
도 7은 본 개시의 일 실시 예에 따른 수집된 악성 코드 의심 데이터를 통계화하는 방법을 설명하기 위한 순서도,
도 8은 본 개시의 일 실시예에 따른 제 1 전자 장치에서 악성 코드 의심 데이터를 검출하고, 제 2 전자 장치로 검사 결과를 전송하는 상황을 설명하기 위한 도면,
도 9 및 10은 본 개시의 일 실시예에 따른 전자 장치에 악성 코드 검출 프로그램이 없을 때, 악성 코드 의심 데이터를 검출하는 상황을 설명하기 위한 도면,
그리고
도 11은 본 개시의 일 실시예에 따른 전자 장치가 악성 코드 의심 데이터를 검출하는 다른 상황을 설명하기 위한 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다.  또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 기술되는 방법들은 저장장치에 저장된 특정한 목적의 하나 또는 다수의 컴퓨터 프로그램을 뜻한다. 프로그램 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공함으로써, 그것이 수행하도록 구현된 기능을 수행한다. 또한, 실행파일은 단순히 데이터만 담고 있는 파일뿐만 아니라 암호화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일을 의미한다. 인터프리터나 CPU, 또는 가상 머신을 위한 명령을 포함하는 파일들은 실행파일로 생각할 수 있다. 또한 실행파일은 스크립트나 바이트코드이다. 실행파일들은 이진 파일로 불리며 이는 프로그램의 원시 코드와는 대비되는 용어이다.
일반적으로, 운영 체제 속에서 실행 파일은 상호 작용을 하고, 일부 운영 체제가 파일 확장자로 실행 파일을 구분하거나 메타데이터에 따라 파일을 인지한다. 대부분의 운영 체제는 해당 파일이 올바른 실행 파일 형식인지 확인하여 명령으로서 우발적으로 부주의하게 수행하는 데서 임의의 비트 시퀀스를 보호할 수 있다. 최근의 운영 체제들은 컴퓨터의 리소스에 대한 제어권을 보유하며 이로써 각 프로그램이 시스템 호출을 하여 권한을 받은 리소스에 접근할 것을 요구한다. 각 운영체제 계열이 자체적인 호출 구조를 갖고 있으므로 실행 파일들은 일반적으로 특정 운영 체제에 한정된다.
본 개시에서 사용한 "실행 파일"은 컴퓨터 과학에서 사용되는 실행파일로서 코드화된 명령에 따라 지시된 작업을 수행하도록 하는 컴퓨터 파일을 포함한다. 또한, 본 개시에서 실행파일은 전자 장치에 설치하고자 하는 애플리케이션을 포함한다. 그리고 "실행 파일"은 게임, 그림, 음악 등과 같은 콘텐츠 파일을 포함할 수도 있다.
본 개시에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예 인공지능 전자 장치)를 지칭할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.  그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은, 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 간략히 나타내는 블록도이다.
도1을 참조하면, 전자 장치(100)는 디스플레이(110), 프로세서(120), 메모리(130), 입력부(140), 및 통신부(150)을 포함할 수 있다.
디스플레이(110)는, 본 개시의 일 실시 예에 따라, 전자 장치(100)에서 수신한 실행 파일을 터치 스크린에 표시할 수 있다. 디스플레이(110)는 입력부(140)를 통해 디스플레이(110)에 표시된 실행파일의 설치에 대한 명령을 사용자로부터 입력 받도록 다양한 입력 명령을 User Interface(UI)를 통해 표시할 수 있다.
디스플레이(110)는 LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 디스플레이(150)는 플렉서블(flexible), 투명(transparent) 또는 웨어러블(wearable)하게 구현될 수 있다.
프로세서(120)는, 디스플레이(110), 메모리(130), 입력부(140), 통신부(150)로부터 명령을 수신하여, 수신된 명령을 해독하고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.
프로세서(120)는, 본 개시의 일 실시 예에 따라, 실행 파일을 수신하고, 수신된 실행 파일이 설치되기 전에, 실행 파일을 분석하여 실행 파일로부터 악성 코드 의심 데이터를 수집할 수 있다. 이때, 실행파일의 분석은 정적 분석(static analysis)을 통해 실행 파일의 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하고, 복원된 소스 코드 레벨에서 실행 파일의 악성 코드 의심 데이터를 수집할 수 있다.
또한, 프로세서(120)는, 메모리(130)에 저장된 정규화된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단할 수 있다. 이때, 프로세서(120)는 딥러닝 알고리즘과 같은 인공지능 확률 모델 알고리즘을 통해 악성 코드 의심 데이터를 추론(deduce)할 수 있다.
그리고 프로세서(120)는, 판단 결과 악성 코드 데이터가 존재하는 것으로 판단되면, 판단된 악성 코드 데이터의 유형 및 확률 정보 중 적어도 하나를 출력하도록 디스플레이(110)를 제어할 수 있다. 본 개시의 일 실시 예에 따른 프로세서(120)에 대한 상세한 설명은 도5 내지 도7에서 후술하기로 한다.
메모리(130)는, 프로세서(120) 또는 다른 구성 요소들(예: 디스플레이 110, 입력부 140, 통신부 150 등)로부터 수신되거나 프로세서(120) 또는 다른 구성 요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 메모리(130)는 커널(미도시), 미들웨어(미도시), 어플리케이션 프로그래밍 인터페이스(API, application programming interface)(미도시), 또는 애플리케이션(미도시), 실행파일(미도시) 등의 프로그래밍 모듈을 포함할 수 있다. 상술한 각각의 프로그래밍 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.
메모리(130)는, 본 개시의 일 실시 예에 따라, 실행파일의 악성 코드 분석용 데이터를 저장할 수 있다. 악성 코드 분석용 데이터는 악성코드가 포함된 악성 데이터(malicious data) 및 악성코드가 포함되지 않은 클린 데이터(clean data)일 수 있다. 메모리(130)는, 프로세서(120)에 의해 수집된 데이터를 딥러닝(Deep Learning) 엔진, Support Vector Machine(SVM), 신경망 엔진 등의 확률 모델 알고리즘을 통해 정규화되고(normalized) 추론된(deduced) 데이터를 저장할 수 있다.
메모리(130)는 내장 메모리(미도시) 또는 외장 메모리(미도시)를 포함할 수 있다. 내장 메모리(미도시)는, 휘발성 메모리 또는 비휘발성 메모리(non-volatile Memory) 중 적어도 하나를 포함할 수 있다. 휘발성 메모리는 예를 들어 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등일 수 있다. 비휘발성 메모리는 예를 들어 OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAN flash memory, NOR flash memory 등일 수 있다. 또한, 내장 메모리(미도시)는 Solid State Drive(SSD)일 수 있다.
외장 메모리(미도시)는 flash drive, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 등을 포함할 수 있다. 외장 메모리(미도시)는 다양한 인터페이스를 통하여 전자 장치(100)와 기능적으로 연결될 수 있다. 또한, 전자 장치(100)는 하드 드라이브와 같은 저장 장치를 더 포함할 수 있다.
입력부(140)는, 입출력 장치(예: 센서, 키보드 또는 터치 스크린)를 통하여 사용자로부터 입력된 명령 또는 데이터를 프로세서(120), 메모리(130), 통신부(150) 등에 전달할 수 있다. 입력부(140)는 터치 스크린을 통하여 입력된 사용자의 터치에 대한 데이터를 프로세서(120)로 제공할 수 있다.
입력부(140)는, 본 개시의 일 실시 예에 따라, 사용자가 전자 장치(100)의 동작 제어를 위한 입력 데이터를 발생시킬 수 있다. 예를 들어, 전자 장치(100)는 입력부(140)를 통해 실행파일을 선택할 수 있고, 선택한 실행파일을 설치할 지 설치를 취소할 지에 대한 명령을 입력 받을 수 있다.
통신부(150)는, 전자 장치(100)와 외부 장치(예: 서버, 다른 전자 장치 등) 간의 통신을 수행하도록 할 수 있다. 통신부(150)는 무선 통신 또는 유선 통신을 통해서 네트워크(미도시)에 연결되어 외부 장치(미도시)와 통신할 수 있다.
본 개시에 따른 전자 장치(100)는 통신 기능이 포함된 장치일 수 있다. 예를 들어, 전자 장치(100)는 스마트폰, 태블릿 PC, 이동 전화기, 화상 전화기, 전자북 리더기(e-book reader), 넷북 컴퓨터, PDA, PMP(portable multimedia player), MP3 플레이어, 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다.
무선 통신은 Wifi(wireless fidelity), BT(Bluetooth), NFC(near field communication), GPS(global positioning system) 또는 cellular 통신(예: LTE, LTE-A, CDMA, WCDMA, UMTS, Wibro 또는 GSM 등) 중 적어도 하나를 포함할 수 있다. 유선 통신은 USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 중 적어도 하나를 포함할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 악성 코드 검출 프로그램의 구성을 나타내는 블록도이다.
도2를 참조하면, 본 개시의 일 실시 예에 따른 프로그램은, 실행 파일 수신 모듈(201), 악성코드 의심 데이터 수집 모듈(202), 악성 코드 의심 데이터 판단 모듈(203), 및 악성코드 의심 데이터 결과 출력 모듈(204)을 포함할 수 있다. 전자 장치(100)는 적어도 하나의 기능(tasks)를 수행(perform)하기 위해 적어도 하나 이상의 프로그램 모듈을 포함할 수 있다. 그러나, 상술한 모듈들은 본 개시를 설명하기 위한 일 실시 예일 뿐, 이에 한정되지 않고 다양한 변형으로 구현될 수 있다. 또한, 상술한 모듈들은 프로세서(120)에 의해 제어될 수 있는 컴퓨터로 판독 가능한 기록매체로서 메모리(130)에 저장될 수 있다.
본 개시에서는 모바일 운영체제 중 AndroidTM, iOSTM 등을 예로 들어 설명하기로 한다.
실행 파일 수신 모듈(201)은 전자 장치(100)가 외부 서버 또는 외부 장치로부터 실행파일을 수신할 수 있다. 전자장치(100)는 수신된 실행파일을 설치할 지, 설치하지 않을 지 선택하는 명령을 사용자로부터 입력할 수 있다. 전자장치(100)가 수신된 실행파일을 설치하고자 하는 명령을 사용자로부터 입력 받을 때, 전자장치(100)는 악성코드 의심 데이터 수집 모듈(202)을 수행할 수 있다.
악성코드 의심 데이터 수집 모듈(202)은 전자장치(100)에서 수신된 실행파일의 다양한 정보를 수집할 수 있다. 본 개시의 일 실시 예에 따라, 악성코드 의심 데이터 수집 모듈(202)은 실행파일의 기계코드를 디컴파일하여 소스코드 레벨로 복원할 수 있다. 이때, 악성코드 의심 데이터 수집 모듈(202)은 복원된 소스 코드를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
그리고 악성코드 의심 데이터 수집 모듈(202)은 실행파일의 기계코드가 암호화된 경우에도 기계코드를 디컴파일하여 복원된 소스 코드를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
    악성코드 의심 데이터 수집 모듈(202)은 실행 파일을 디컴파일을 하여 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
그리고 악성코드 의심 데이터 수집 모듈(202)은 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다. 본 개시의 일 실시 예에 따른, LLVM(low level virtual machine) IR 코드에 대해서는 도3에서 상술하기로 한다.
      악성코드 의심 데이터 수집 모듈(202)은 실행 파일의 메타데이터 및 모바일 운영체제 내에서의 상기 실행 파일의 실행 권한 정보를 바탕으로 악성 코드 의심 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수도 있다. 실행파일의 메타데이터는 실행파일의 헤더파일 및/또는 다른 데이터 필드를 포함할 수 있고, 힙(heap) 크기(size), 스택 크기(stack size)의 분석을 통해 실행파일에 포함된 악성 코드로 의심되는 데이터를 수집할 수 있다.
또한, 실행파일이 모바일 운영체제(예, AndroidTM, iOSTM, 타이젠TM등)에서 특정 애플리케이션에 접근 권한이 있는 지, 해당 접근 권한 정보를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
악성코드 의심 데이터 수집 모듈(202)은 실행 파일 내 다른 파일 포맷에 숨겨진 또 다른 실행 파일 혹은 커맨드를 검출하도록 특정 파일마다 복호화, 압축 해제, 헤더 파일 확인, 바이트 값 대조, 매직 넘버 등을 통해 파일 내부의 상이한 정보 데이터를 바탕으로 악성 코드 의심 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
또한, 악성 코드 의심 데이터 판단 모듈(203)은 악성코드 의심 데이터 수집 모듈(202)에서 수집된 데이터를 확률 모델 알고리즘에 입력 받을 수 있다. 이때, 악성 코드 의심 데이터 판단 모듈(203)은 입력 받은 데이터를 바탕으로 실행 파일이 악성 코드 의심 데이터를 포함하고 있는 지 추론(deducing)할 수 있다.
본 개시의 일 실시 예로, 본 개시의 일 실시 예들은 딥러닝(deep learning), SVM(Support Vector Machine), 신경망(Neural Network) 알고리즘 등의 인공지능 확률 모델 알고리즘을 이용하여 구현할 수 있다. 상술한 인공지능 확률 모델 알고리즘은 머신 러닝(Machine Learning)이 확장된 형태이다.
악성코드 의심 데이터 결과 출력 모듈(204)은 악성 코드 의심 데이터 판단 모듈(203)로부터 추론된(deducted) 실행파일의 악성코드 가능성을 확률 데이터를 전자장치(100)의 디스플레이를 통해 표시할 수 있다. 이때, 표시된 확률 데이터는 그래프, 도표, 또는 이미지를 통해 사용자에게 표시될 수 있고, 실행파일에 대한 세부적인 정보(예를 들어, 개발자, 배포자, 추천 점수(rate) 등)등을 포함할 수 있다. 추론된 결과를 전자 장치(100)에 표시하는 다양한 방법은 당업자들에게 다양하게 응용 변경될 수 있으므로 상세한 설명을 생략하기로 한다.
도 3은 LLVM(Low Level Virtual Machine) 컴파일러의 구성을 설명하기 위한 도면이다.
본 개시는 일 실시 예에 따라, LLVM(Low Level Virtual Machine) 컴파일러를 이용하여 구현할 수 있다. LLVM은 오픈 소스 솔루션으로서, 전자 장치(100)의 프로세서(120)와는 독립적으로 코드 최적화가 가능하고, 다양한 소스 코드를 다양한 머신 코드로 변환할 수 있다.
도3을 참조하면, LLVM(300) 컴파일러는 입력 받은 소스 코드(301)를 Frontend(302)를 통해 IR(Intermediate Representation)(304) 코드로 변환한다. Middle end(305)는 입력 받은 IR(304)코드를 최적화(optimizer)하여 IR(306)코드로 변환하여 Backend(307)에 전송한다. Backend(307)는 입력 받은 최적화 IR(306)코드를 미리 정의된 타겟 디스크립션(target description) 파일을 이용하여 기계 코드인 타겟 코드(308)를 생성한다.
IR(Intermediate Representation)(304, 306) 코드는 소스 코드와 타겟 코드의 중간 단계를 나타내는 프로그램으로서, 번역(translation)하기 어려운 소스 코드를 보다 빠르고 쉽게 분석할 수 있다.
본 개시의 일 실시 예에 따라, 도2에서 상술한 악성코드 의심 데이터 수집 모듈(202)은 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
즉, 실행파일의 기계 코드인 타겟 코드(308)을 LLVM 컴파일러를 이용해 디컴파일하면 IR 코드 레벨에서 악성코드 의심 데이터를 분석하여 수집할 수 있다. 도2에서 상술한 바와 같이, 예를 들어, IR 코드 레벨에서 안드로이드TM의 네이티브(Native) 또는 JNI(Java Native Interface) TM 레벨에서 악성 코드로 의심되는 데이터를 수집할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 사용자에게 악성 코드 분석 결과를 보여주는 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(100)는 디스플레이에 실행 파일이 검사 중(401)인 것을 표시할 수 있다. 이때, 실행 파일의 기계 코드를 디컴파일하여 소스 코드를 분석하는 과정 및 헤더파일 분석 등의 소스 경로를 빠르게 화면에 도시할 수 있다. 이때, 전자 장치(100)는 분석된 악성 코드 분석용 데이터를 메모리에 저장할 수 있다.
전자 장치(100)는 실행 파일에서 악성 코드 데이터가 발견될 때, 악성 코드가 발견되었다는 경고 메시지(402)를 사용자에게 표시할 수 있다. 이때, 사용자는 실행파일의 설치를 계속 진행(402, 설치)하거나 설치를 취소(402, 최소)할 수 있다. 사용자가 실행파일 설치를 취소(402, 취소) 명령을 입력할 때, 전자 장치(100)는 애플리케이션 다운로드 프로그램 API로 화면이 변경될 수 있다.
또한, 전자 장치(100)는 실행 파일에서 악성 코드 의심 데이터가 악성 코드일 확률 데이터(403)를 사용자에게 표시할 수 있다. 이때, 전자 장치(100)는 확률 모델 알고리즘을 통해 추출된 통계를 바탕으로 악성 코드 의심 확률을 제공할 수 있다. 전자 장치(100)는 악성 코드 의심 확률 수치를 바탕으로 실행 파일을 설치할 것인지 설치를 취소할 것인지 경고 메시지를 표시할 수 있다. 전자 장치(100)는 악성 코드 의심 확률을 구간별로 구분하여 기 설정된 확률 수치(threshold)에 따라 실행파일의 설치를 제한하도록 제안하는 메시지 또는 GUI(Graphic User Interface)를 표시할 수 있다.
예를 들어, 실행파일이 악성 코드 의심 파일일 확률이 70%이상일 때, 전자 장치(100)는 경고 창에 적색(red) 경고를 함께 표시할 수도 있고, 실행 파일의 설치를 취소하라는 경고 메시지를 표시할 수도 있다. 실행 파일이 악성 코드 의심 파일일 확률이 50%이상이고 70%미만일 때, 전자 장치(100)는 경고 창에 오렌지색 경고를 함께 표시할 수도 있고, 실행 파일의 설치를 취소하라는 경고 메시지를 표시할 수 있다.
실행 파일이 악성 코드 의심 파일일 확률이 30%이상이고 50%미만일 때, 전자 장치(100)는 경고 창에 녹색 경고를 함께 표시할 수도 있고, 실행 파일의 설치를 취소하라는 경고 메시지를 표시할 수 있다. 실행 파일이 악성 코드 의심 파일일 확률이 30%미만일 때, 전자 장치(100)는 경고 창에 파랑색 경고를 함께 표시할 수도 있고, 실행 파일의 설치를 진행하거나 취소하라는 경고 메시지를 표시할 수 있다. 그러나, 전자 장치(100)의 경고 메시지 GUI 표시 및 확률 구간은 본 개시를 설명하기 위한 일 실시 예일 뿐, 전자 장치(100)는 다양한 GUI를 통해 실행파일의 악성 코드 의심 결과 데이터를 출력되도록 구현될 수 있다.
상술한 악성 코드 의심 결과 데이터를 UI(User Interface)로 구현하는 방법은 분석된 결과를 바탕으로 실행 파일에 대한 상세한 정보 및 설명 등이 표시되도록 다양한 방법으로 구현될 수 있다.
도 5는 본 개시의 일 실시 예에 따른 악성 코드 의심 데이터를 검출하는 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 전자장치(100)는 수신한 새로운 실행 파일을 설치할 지 판단할 수 있다(S501). 전자장치(100)는 외부 서버 또는 외부 장치로부터 실행파일을 수신할 수 있다. 예를 들어, 전자장치(100)는 AndroidTM 및 iOSTM에서 애플리케이션 스토어(application store)를 통해 다양한 실행파일을 수신할 수 있다. 또한, 일 실시 예로, 전자장치(100)는 다른 단말장치로부터 SMS등의 API를 통해 실행파일을 수신할 수도 있다. 이때, 전자장치(100)는 수신된 실행파일을 설치할 지, 설치하지 않을 지 선택하는 명령을 사용자로부터 입력할 수 있다.
전자장치(100)가 수신된 실행파일을 설치하고자 하는 명령을 사용자로부터 입력 받을 때, 전자장치(100)는 악성코드 의심 데이터 수집을 수행할 수 있다(S502).
전자장치(100)는 수신된 실행파일에 포함된 다양한 정보를 수집할 수 있다. 본 개시의 일 실시 예에 따라, 전자장치(100)는 정적 분석(static analysis)를 통해 실행파일을 분석하고 악성코드 의심 데이터를 수집할 수 있다. 정적 분석(static analysis)는, 실행파일의 기계코드를 디컴파일하여 소스코드(원시 코드)로 복원하여, 복원된 소스 코드(원시 코드)로부터 악성 의심 데이터를 분석하는 방법이다.
예를 들어, 안드로이드 TM 운영체제에서는 안드로이드TM 플랫폼에서 애플리케이션 설치를 위해 배포되는 패키지 파일인 APK(Android Package)를 압축 해제하면, 메니페스트(Manifest)와 DEX(Dalvik Executable)와 네이티브 라이브러리(Native Library) 파일을 수집할 수 있다. Dex 파일은 달빅(Dalvik) 가상머신에 맞게 클래스 파일을 바이트 코드로 변환한 파일이다. 본 개시의 실시 예에서, 전자장치(100)는 안드로이드TM의 메니페스트와 DEX와 네이티브 라이브러리(Native Library)를 디컴파일 하여 소스 코드분석을 수행할 수 있다.
그리고 전자장치(100)는 실행파일의 기계코드가 암호화된 경우에도 기계코드를 디컴파일하여 복원된 소스 코드를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다. 예를 들어, 안드로이드TM 운영체제에서 소스코드에 암호화 및 난독화(예: proguardTM 등)가 적용되어 있다면 소스코드에 대한 해석이 어렵게 된다. 그러나, 암호화된 실행파일을 디컴파일하면 classes.dex파일을 얻을 수 있다. 디컴파일하여 획득한 classes.dex 파일에서 MainActivity.class를 java 파일로 변환해 소스코드를 확인할 수 있다.
    전자장치(100)는 실행 파일을 디컴파일을 하여 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다. 소스 코드를 컴파일하여 바이너리를 획득할 때, 소스코드는 실행파일에 이용되는 함수 및 변수 등이 포함된 심볼 테이블 및 문자 상수를 가진다. 따라서, 컴파일 된 바이너리 파일을 디컴파일하여 다시 소스코드로 복원하여, 실행파일의 심볼 테이블 및 문자 상수를 수집할 수 있다.
예를 들어, 안드로이드TM 운영체제에서 JAVATM로 코딩 시 C 라이브러리를 사용해야 할 때(예: 오디오, 영상처리 등), JAVATM와 C 라이브러리를 연결해주는 JNI(Java Native Interface)가 필요하다. 즉, JNI는 안드로이드TM에서 C/C++로 작성한 API(Application Program Interface)를 JAVATM에서 호출하게 해준다. Java 소스 코드는 안드로이드TM 내에 있는 Dalvik 가상 머신에서 구동되지만, 안드로이드TM 운영체제를 사용하는 전자장치(100) 내의 센서나 커널 등은 JNI를 통해 C/C++로 접근한다. 따라서, 실행파일을 디컴파일하여 C/C++로 작성된 소스코드를 통해 안드로이드TM의 네이티브 소스 레벨인 JNI에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
그리고 전자 장치(100)는 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
즉, 전자장치(100)는 실행파일의 기계 코드인 타겟 코드(308)을 LLVM 컴파일러를 이용해 디컴파일하면 IR 코드 레벨에서 악성코드 의심 데이터를 분석하여 수집할 수 있다. 예를 들어, 전자장치(100)는 IR 코드 레벨에서 안드로이드TM의 네이티브(Native) 또는JNI(Java Native Interface) 레벨에서 악성 코드로 의심되는 데이터를 수집할 수 있다.
      전자장치(100)는 실행 파일의 메타데이터 및 모바일 운영체제 내에서의 상기 실행 파일의 실행 권한 정보를 바탕으로 악성 코드 의심 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수도 있다. 실행파일의 메타데이터는 실행파일의 헤더파일 및/또는 다른 데이터 필드를 포함할 수 있고, 힙(heap) 크기(size), 스택 크기(stack size)의 분석을 통해 실행파일에 포함된 악성 코드로 의심되는 데이터를 수집할 수 있다.
또한, 실행파일이 모바일 운영체제(예, AndroidTM, iOSTM, 타이젠TM 등)에서 특정 애플리케이션에 접근 권한이 있는 지, 해당 접근 권한 정보를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다. 예를 들어, 각각의 운영체제에서 실행 파일의 권한 정보는 안드로이드TM의 경우 메니페스트 파일인 AndroidManifest.xml, iOSTM의 경우 Info.plist 파일, 타이젠TM의 경우 privilege_desc파일에 포함된다.
전자장치(100)는 실행 파일 내 다른 파일 포맷에 숨겨진 또 다른 실행 파일 혹은 커맨드를 검출하도록 특정 파일마다 복호화, 압축 해제, 헤더 파일 확인, 바이트 값 대조 등을 통해 파일 내부의 상이한 정보 데이터를 바탕으로 악성 코드 의심 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
예를 들어, AndroidTM의 패키지 파일인 APK에는 리눅스용 실행 파일 포맷인 ELF(Executable Linking Format)인 .so 파일이 ARM용으로 컴파일 되어 포함될 수 있다. 이때, 본 개시의 일 실시 예에 따른, 정적 분석(static analysis)를 통한 디컴파일러 툴을 이용하여 ELF파일에 대한 소스 코드 분석을 수행할 수 있다. 특히, ELF 파일의 경우 매직넘버를 통해 ELF 파일 내부의 속성(feature) 정보를 확인하여 악성 코드 의심 데이터를 분석하고 수집할 수 있다.
매직 넘버는 파일 포맷에 따라 파일의 헤더에 데이터 필드(fields)를 식별하는 매직 바이트이다. ELF 헤더는 실행파일에 대한 정보를 가지고 있으며, ELF의 매직넘버는 .ELF(0x7F 0x45 0x4C 0x46)이다. 이때, ELF 매직넘버는 파일이 오브젝트 파일인지, 실행파일인지, ELF 버전, 또는 어떤 운영체제와 비트를 위해 컴파일 된 파일인지 등에 대한 데이터 및 정보가 포함되어 있다.
또 다른 예로, 매직 넘버(Magic Number) 상의 실제 파일 포맷(예: 악성 .so 파일)과 파일의 확장자(예: .png 또는.jpg 등과 같은 사진 파일)가 상이할 경우, 악성 코드 의심 데이터 수집 모듈(202)은 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
또 다른 예로, 실행파일의 확장자가 .png 또는.jpg 등과 같은 사진 파일일 때, 실행파일은 사진 파일 포맷을 위장하여 다른 실행 파일 혹은 커맨드를 포함할 수 있다. 이때, 악성코드 의심 데이터 수집 모듈(202)은 특정 파일(예: .jpg 또는.png 등과 같은 사진 파일 포맷)이 압축되어 있을 때 압축을 해제하고, 특정 파일이 암호화되어 있을 때 특정 파일마다 복호화하여, 악성 코드 의심데이터를 분석할 수 있다. 그리고 복호화하고 압축 해제된 실행파일을 디컴파일하여 실행파일의 헤더파일 및 바이트 값을 대조하여 파일 내부에 악성 코드 의심 데이터를 분석하여 실행파일에 포함된 악성코드로 의심되는 데이터를 수집할 수 있다.
전자장치(100)는 전처리 과정을 통해 정규화된 데이터를 확률 모델 알고리즘에 입력 받아 악성 코드 의심 데이터를 판단할 수 있다(S504). 이때, 전자장치(100)는 입력 받은 데이터를 바탕으로 실행 파일이 악성 코드 의심 데이터를 포함하고 있는 지 추론(deducing)할 수 있다.
본 개시의 일 실시 예로, 본 개시의 일 실시 예들은 딥러닝(deep learning), SVM(Support Vector Machine), 신경망(Neural Network) 알고리즘 등의 인공지능 확률 모델 알고리즘을 이용하여 구현할 수 있다. 상술한 인공지능 확률 모델 알고리즘은 머신 러닝(Machine Learning)이 확장된 형태이다.
일반적인 머신 러닝(Machine Learning) 확률 모델 알고리즘은 수집된 데이터를 정규화 수집된 데이터를 전처리(pre-processing)과정을 통해 정규화하여 확률 모델 알고리즘에 입력한다.
전처리 주요 과정으로 누락된 값(missing value)를 채우는 데이터 클리닝 과정을 수행할 수 있다. 예를 들어, 베이즈 공식(Bayesian fomula)이용하여 누락된 값을 채울 수 있다. 또한, 데이터 통합(integration)과정으로 일관성이 없는 데이터를 수정하고, 중복되는 데이터는 중복성을 해결할 수 있다. 이때, 같은 의미를 갖는 속성(feature) 데이터의 표현법이 다를 때, 표현을 하나의 규칙으로 저장할 수 있으며 correlation analysis 를 통해 데이터의 중복을 해결할 수 있다. 이외에도 다양한 방법을 통해 데이터 전처리 과정을 이용한 데이터의 정규화를 수행하도록 구현할 수 있다.
즉, 머신 러닝(Machine Learning) 알고리즘은 데이터를 수집하여 분석하고, 분석된 데이터의 전처리를 수행하여, 전처리된 데이터들의 특징을 추출하여, 목적에 맞는 알고리즘을 선택하여 반복 학습을 통해 최종의 결과를 도출하게 된다. 따라서, 머신 러닝은 전문가에 의해 해당 데이터에 대한 특징을 가정하고 추출해 낼 수 있도록 알고리즘을 직접 만들어 문제를 해결할 수 있다.
반면, 본 개시에서 사용되는 딥러닝(Deep Learning)은 상술한 머신 러닝에서의 전처리 과정을 신경망 아키텍처 내에 포함 시켜 데이터 추출 자체도 스스로 학습하는 알고리즘이다. 따라서, 딥러닝 알고리즘을 확률 모델 알고리즘으로 이용할 경우 본 개시에서 이용한 전처리 과정을 생략할 수 있어 더 빠르고 정확한 추론 결과를 획득할 수 있다.
또한, 일반적인 머신 러닝(Machine Learning) 알고리즘은 각 특성(feature)에 관련된(associated) 값(value)의 선형 조합(linear combination)을 계산하여 추론 결과를 도출한다. 반면, 딥러닝 알고리즘은 비선형(non-linear) 변환기법의 조합을 통해 높은 수준의 추상화(abstractions)를 할 수 있다. 즉, 딥러닝 알고리즘은 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업을 전처리 과정 없이 자동으로 수행할 수 있다.
전자장치(100)는 실행파일이 확률 모델 알고리즘을 통해 악성 코드 의심 데이터일 확률을 출력할 수 있다(S505). 전자장치(100)는, 도4에 상술한 바와 같이 추론된(deducted) 실행파일의 악성코드 가능성을 확률 데이터를 디스플레이를 통해 표시할 수 있다. 추론된 결과를 전자 장치(100)에 표시하는 다양한 방법은 당업자들에게 다양하게 응용 변경될 수 있으므로 상세한 설명을 생략하기로 한다.
그리고 전자장치(100)는 출력된 악성코드 및 악성코드 의심 데이터 및 파일 정보를 메모리에 메모리에 저장할 수 있다(S506). 이때, 저장된 악성코드 관련 데이터는 확률 모델 알고리즘을 구현할 때 빅데이터 기반의 데이터베이스로 이용될 수 있다.
도 6은 본 개시의 일 실시 예에 따른 악성 코드 의심 데이터를 수집하는 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 전자장치(100)는 실행 파일이 악성코드를 포함하고 있는지, 악성코드일 위험성이 있는지를 분석할 수 있다(S601). 본 개시의 일 실시 예에 따라, 전자장치(100)는 실행파일을 수신하고 실행파일이 설치되기 전에 실행파일을 분석할 수 있다.
예를 들어, 전자장치(100)는 안드로이드TM의 애플리케이션 마켓 또는 IOSTM의 APP Store에서 실행파일을 수신할 수 있다. 다른 예로, 전자장치(100)는 SMS API, 앨범 API, MUSIC API, 게임 API 등의 다양한 API를 통해서 외부장치 또는 서버로부터 실행파일을 수신할 수 있다.
본 개시의 일 실시 예로, 안드로이드TM 운영체제를 예로 들어 설명하기로 한다. 안드로이드TM의 실행파일은 APK라는 패키지 파일 구조를 가진다. 이때, 전자장치(100)는 zip 포맷으로 압축된 안드로이드TM APK의 압축을 해제하여 APK 내부 구조를 분석할 수 있다.
본 개시의 일 실시 예에 따라, 전자 장치(100)는 실행파일의 정적 분석을 수행하여 악성코드 의심 데이터를 수집할 수 있다(S602). 정적 분석은 악성코드 분석 대상인 실행파일의 실행 코드를 디컴파일/디스어셈블링하여 얻어진 소스 코드(원시 코드)를 해석해서 소스 코드에 포함된 악성 코드 의심 데이터를 추출하여 수집할 수 있다. 디컴파일된 소스 코드는 실행파일이 무슨 동작을 수행할 것인지 판단할 수 있는 바이트 코드(Byte Codes) 또는 어셈블리 랭귀지(Assembly languages)가 포함될 수 있다.
또한, 전자장치(100)는 복원된 소스코드의 네이티브 명령(native instructions), 바이트 코드(Byte Codes), 함수 이름들, 데이터 흐름 등을 분석하여 악성코드 의심 데이터를 수집할 수 있다.
또한, 전자장치(100)는 복원된 소스 코드에서 루트 권한을 탈취하거나 사용자의 사적인(private) 데이터를 외부로 보내는 등의 악성 행위가 실행파일에 포함되어 있는지 수집할 수 있다. 즉, 전자장치(100)는 실행파일이 사용자의 허락(permission)없이 사용자의 개인정보를 외부로 보내거나, SMS 전송, GPS 정보 사용, 사진 파일 외부 전송 등을 수행하는 지 분석하여 악성 코드 의심 데이터를 수집할 수 있다.
도 5에서 상술한 바와 같이, 본 개시의 일 실시 예로, 전자장치(100)는 안드로이드TM의 압축 해제된 APK를 디컴파일하여 Manifest 파일 및 DEX(Dalvik Executable)파일 및 네이티브 라이브러리(Native Library) 파일을 수집할 수 있다.
본 개시의 일 실시 예에 따라, 전자장치(100)는 안드로이드TM에서 메니페스트 분석 후, 코드 분석을 위해 Dex파일을 디컴파일하여 소스코드를 분석할 수 있다. 이때, 기계코드의 일부가 암호화되어 있더라도, 암호화된 코드를 복호화하고, 전자장치(100)는 복호화된 코드를 디컴파일하여 소스코드로 복원할 수 있다. 전자장치(100)는 복원된 소스코드를 분석하여 실행파일의 악성코드 의심 데이터를 수집할 수 있다.
예를 들어, 복호화된 dex파일의 시그니처(signature)와 메모리에 저장된 dex파일의 시그니처(signature) 스트링을 검색하여 매핑 된 주소를 비교할 수 있다. 전자장치(100)는 매핑 된 주소에서 최적화된 Dex의 시그니처를 확인하고, dex 헤더를 통해 메모리에서 찾은 dex가 복호화된 dex의 것인지 확인할 수 있다. 이를 통해, 전자장치(100)는 암호화된 기계 코드를 디컴파일하여 복원된 소스 코드를 분석하여 실행파일에 포함된 악성코드 의심 데이터를 수집할 수 있다.
그리고 전자 장치(100)는 디컴파일된 네이티브 라이브러리(Native Library) 파일의 소스코드를 통해 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 악성코드 의심 데이터를 수집할 수 있다(S603).
도5에서 상술한 바와 같이, 전자장치(100)는 소스 코드를 컴파일하여 바이너리를 획득할 때, 소스코드는 실행파일에 이용되는 함수 및 변수 등이 포함된 심볼 테이블 및 문자 상수를 가진다. 따라서, 컴파일 된 바이너리 파일을 디컴파일하여 다시 소스코드로 복원하여, 실행파일의 심볼 테이블 및 문자 상수를 수집할 수 있다. 구체적인 예시는 도5에 상술하였으므로 여기에서는 이에 대한 설명은 생략하기로 한다.
또한, 전자장치(100)는 LLVM 컴파일러를 이용하여 실행파일을 LLVM IR 코드로 디컴파일하여 LLVM IR 코드 레벨에서 실행파일의 네이티브 소스 코드를 분석하여 악성코드 의심 데이터를 분석하여 수집할 수 있다(S604). 이때, 전자장치(100)는 LLVM 컴파일러를 통해 실행파일의 기계 코드를 LLVM 바이트 코드(Bytes Code)인 IR(Intermediate Representation) 코드로 변환할 수 있다.
 예를 들어, 전자장치(100)는 IR 코드 레벨에서 안드로이드TM의 네이티브(Native) 또는JNI(Java Native Interface) 레벨에서 악성 코드로 의심되는 데이터를 수집할 수 있다. LLVM IR 코드에 대한 구체적인 설명은 도3 및 도5에서 상술하였으므로 여기에서는 이에 대한 설명은 생략하기로 한다.
그리고 전자장치(100)는 실행파일의 모바일 운영체제(예: AndroidTM, IOSTM, 타이젠TM, 등)에 대한 실행 권한 정보 및 메타데이터 분석을 통해 악성코드 의심 데이터를 수집할 수 있다(S605).
본 개시의 일 실시 예에서, 모바일 운영체제에 대한 실행 권한 정보는, 안드로이드TM의 경우 메니페스트 파일이며, 타이젠TM의 경우 privilege_desc 파일, IOSTM의 경우 Info.plist 파일이다.
예를 들어, 안드로이드TM의 메니페스트(Manifest) 파일은 애플리케이션의 실행파일에서 사용하는 권한과 컴포턴트 및 애플리케이션의 엔트리 포인트(entry point)를 기술하고 있다. 따라서, 본 개시의 일 실시 예에 따라, 실행파일의 악성코드 의심 데이터를 분석하기 위해, 전자장치(100)는 메니페스트의 엔트리 포인트를 분석하여 데이터를 수집할 수 있다.
구체적으로 예를 들어, 안드로이드TM의 메니페스트의 코드는 다음과 같다. <application
  android:theme= "@android:0103000F"
  android:label="@7F050000"
  android:icon="@7F020001"
  android:name="APKPMainAPP1345F"
  android:debuggable="true"
  android:allowBackup="true"
  >
  <activity
     android:label="@7F050000"
     android:name="com.goolge.xps.gfcfc.MainActivity"
     >
     <intent-filter
        >
        <action
           android:name="android.intent.action.MAIN"
           >
        </action>
        <category
           android:name="android.intent.category.LAUNCHER"
           >
        </category>
     </intent-filter>
  </activity>
이때, <activity></activity> 사이에 기술된 속성은 실행파일의 엔트리 포인트이며, 실행파일 실행 시 최초로 실행되는 코드이다. 따라서, 전자장치(100)는  <activity>와 </activity> 사이의 MainActivity 클래스의 분석을 통해 이후 호출되는 클래스들을 순서대로 분석하면서 악성코드 의심 데이터를 수집할 수 있다.
그리고 전자장치(100)는 다른 파일 포맷에 숨겨진 파일 또는 커맨드를 검출하여 악성코드 의심 데이터를 분석하고 수집할 수 있다(S606).
구체적으로 예를 들어, 안드로이드TM의 숨겨진 파일인 APK 파일에는 dex파일과는 다른 ELF와 같은 다른 파일 포맷으로 파일이 포함될 수 있다. 압축 해제된 APK파일에는 NDK(Native Development Kit) 라이브러리 파일이 있을 수 있다. 이때, NDK파일에는 .so 파일 확장자를 가진 리눅스용 실행파일 포맷인 ELF(Executable Linking Format)이 arm용으로 컴파일 되어 있을 수 있다. 이때, 전자 장치(100)는 본 개시의 일 실시 예에 따라, 정적 분석을 통해 ELF파일을 디컴파일하여 복원한 소스코드를 분석하여 실행파일에 포함된 악성코드 의심 데이터를 수집할 수 있다. 이때, 전자장치(100)는 ELF의 심볼 테이블 또는 문자상수를 통해 악성코드 의심 데이터를 수집할 수 있다. 또는, 전자장치(100)는 ELF 파일을 디컴파일하여 복원된 IR 코드 또는 소스 코드를 통해 악성코드 의심 데이터를 수집할 수 있다.
또한, 안드로이드TM에서 실행파일이 특정 파일(예: 이미지, 동영상 파일 등)의 확장자로 표현되어 있을 때, 특정파일의 루트 권한 획득을 판단하기 위해 실행파일의 커맨드(command)를 검출하여 악성코드 의심 데이터를 수집할 수 있다. 이때, 루트 권한 획득이란 특정 파일이 안드로이드TM에서 특정 파일이 실행될 수 있는 경로에 진입하고 해당 API에 접근할 수 있는 권한을 의미한다.
이때, 전자장치(100)는 특정 파일 포맷의 루트 권한을 검출하기 위해서 특정 파일에 대해서 복호화, 압축해제를 통해 특정파일의 파일 구조를 추출할 수 있다. 전자장치(100)는 추출된 특정파일의 바이트 값을 대조하여 특정 파일 내부에 의도된 상이한 확장자 정보를 분석하여 악성코드 의심 데이터를 수집할 수 있다.
예를 들어, 실행파일이 .png 또는 .jpg 파일 확장자를 가진 이미지 파일을 경우, 실행파일은 사용자의 앨범 등과 같은 사진파일이 접근 가능한 API에 루트 권한을 획득할 수 있다. 그러나, 실행파일이 의도적으로 악성코드를 포함하는 사진파일로 위장된 파일일 수 있다. 따라서, 전자장치(100)는 이미지 파일 포맷의 확장자를 지닌 실행파일도 복호화 및 압축해제를 통해 바이트 값을 대조함으로써, 파일 포맷에 의도된 악성코드 의심 데이터가 있는지 수집할 수 있다. 그러나, 상술한 예시들은 본 개시를 설명하기 위한 일 실시 예일 뿐, 다양한 파일 포맷에 본 개시는 적용될 수 있다.
또한, 전자장치(100)는 실행파일의 메타데이터를 통해 악성코드 의심 데이터를 분석할 수 있다. 메타데이터는 실행파일의 헤더파일 및/또는 다른 데이터 필드를 포함할 수 있다. 메타데이터는 실행파일의 다양한 특성(characteristics)를 나타낼 수 있다. 예를 들어, 메타데이터는 힙(heap) 크기(size), 스택 크기(stack size), 헤더 사이즈, 이미지 사이즈, 코드 섹션 사이즈, 초기화 데이터 사이즈 등 다양한 특성 필드(characteristics fields)를 포함할 수 있다. 전자 장치(100)는 실행파일의 특성 필드들(예, heap size, stack size, etc.)의 분석을 통해 실행파일에 포함된 악성 코드로 의심되는 데이터를 수집할 수 있다.
그리고 전자장치(100)는 상술한 바와 같이 분석된 실행파일의 악성코드 의심 데이터를 쓰레드(thread)를 생성하여 동시에 수집할 수 있다(S607). 전자장치(100)는 수집된 악성 코드 의심 데이터를 메모리에 저장하여 데이터베이스로 이용할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 수집된 악성 코드 의심 데이터를 통계화하는 방법을 설명하기 위한 순서도이다.
도7을 참조하면, 전자장치(100)는 수집된 악성 코드 의심 데이터를 전처리 과정을 통해 정규화하여 및 메모리에 저장할 수 있다(S701). 일반적인 머신 러닝 알고리즘은 수집된 데이터의 전처리(pre-processing)을 통해 데이터를 정규화(normalization)하여 사용한다. 전처리과정에 대해서는 도5에서 상술하였으므로 여기에서는 이에 대한 설명은 생략하기로 한다.
전자장치(100)는 전처리 과정을 거쳐 정규화된 데이터를 확률 모델 알고리즘에 입력 받는다(S702). 본 개시의 실시 예에 따라, 확률 모델 알고리즘은 딥러닝(deep learning), SVM(Support Vector Machine), 신경망(Neural Network) 등의 인공지능 확률 모델 알고리즘을 이용하여 구현할 수 있다. 상술한 인공지능 확률 모델 알고리즘은 머신 러닝(Machine Learning)이 확장된 형태이다.
전자장치(100)는 확률 모델 알고리즘을 통해 악성 코드 의심 데이터 판단할 수 있다(S703). 도5에서 상술한 바와 같이, 본 개시에서 사용되는 딥러닝(Deep Learning) 알고리즘에서는 상술한 머신 러닝(Machine Learning)에서의 전처리 과정을 신경망 아키텍처 내에 포함시켜, 데이터 추출 자체도 스스로 학습하는 알고리즘이다. 따라서, 딥러닝 알고리즘을 확률 모델 알고리즘으로 이용할 경우, 본 개시에서 이용한 전처리 과정을 생략할 수 있어 더 빠르고 정확한 추론 결과를 획득할 수 있다.
구체적으로, 표1 및 표2에서 개시된 바와 같이 본 개시를 통한 악성코드 여부 판단 결과는 높은 정확도를 도출할 수 있다.
테스트 환경
운영체제 안드로이드TM
악성코드 출처 Contagio MobileTM
악성코드 생성 시기 2014년 이후
악성 코드 개수 137
기존 악성코드 검출 프로그램과 본 개시의 테스트 결과 비교
구분 정확도
기존 악성 코드 탐지 기술(McAfeeTM) 83.94%
 본 개시 False-Positive 1% 94.16%
Threshold 49.7%
False-Positive 2% 96.35%
Threshold 28.5%
그리고 전자장치(100)는 확률 모델 알고리즘을 통해 획득한 악성코드 의심 데이터의 확률 수치를 출력할 수 있다(S704). 전자장치(100)는 악성코드에 대한 다양한 정보를 포함하는 UI(User Interface)를 제공할 수도 있으나, 본 개시를 통해 실행파일의 악성코드 의심 확률을 수치화하여 간단한 UI(User Interface)를 제공할 수도 있다. 본 개시를 통한 UI는 도4 및 도5에서 구체적으로 개시하였으므로 여기에서는 이에 대한 설명은 생략하기로 한다.
도 8은 본 개시의 일 실시예에 따른 제 1 전자 장치에서 악성 코드 의심 데이터를 검출하고, 제 2 전자 장치로 검사 결과를 전송하는 상황을 설명하기 위한 도면이다.
상술한 전자 장치(100)는 다양한 형태일 수 있다. 도 8을 참조하면, 전자 장치(100)는 프린터(820), 냉장고(830), 스마트 폰(850), 태블릿(860) 등일 수 있다. 이하에서는 프린터(820), 냉장고(830)를 제 1 전자 장치(810)로 가정하고 스마트 폰(850), 태블릿(860)을 제 2 전자 장치(840)로 가정하여 설명한다. 제 1 전자 장치(810)는, 예를 들면, 부피가 크거나 질량이 커서 사용자의 휴대가 어렵고 또한 장치의 특성상 한번 위치가 정해지면 위치 이동이 어려운 전자 장치를 포함할 수 있다. 제 2 전자 장치(840)는, 예를 들면, 부피가 작아 사용자가 휴대할 수 있는 전자 장치를 포함할 수 있다. 그러나 상술한 예는 이에 한정되지 않고 제 1 전자 장치(810)와 제 2 전자 장치(840)에 속한 전자 장치들은 상호 변경이 가능하며 또한 다양한 전자 장치들을 포함할 수 있다.
제 1 전자 장치(810) 및 제 2 전자 장치(840)는 도 1의 전자 장치(100)를 참조할 수 있다. 따라서, 제 1 전자 장치(810) 및 제 2 전자 장치(840) 각각은 디스플레이, 프로세서(미도시), 메모리(미도시), 입력부(미도시), 및 통신부(미도시)를 포함할 수 있다. 전자 장치(100)의 각 구성 요소의 기능은 도 1 에서 설명하였으므로 자세한 설명은 생략한다. 또한, 제 1 전자 장치(810) 및 제 2 전자 장치(840)는 도 1의 전자 장치(100)와 동일 또는 유사한 과정으로 실행 파일에서 악성 코드를 검출하고, 분석 결과를 표시할 수 있다. 전자 장치(100)에서 악성 코드를 검출하고, 분석 결과를 표시하는 과정은 상술하였으므로 자세한 설명은 생략한다.
도 8을 참조하면, 제 1 전자 장치(810)는 악성 코드를 검출한 결과를 제 2 전자 장치(840)로 전송할 수 있다. 예를 들어, 제1 전자 장치(810)인 프린터(820)는 출력 옵션을 추가하는 실행 파일을 다운로드 하고, 실행 파일이 설치되기 전 악성 코드를 검사하여, 악성 코드 검사 결과를 제2 전자 장치(840)인 스마트 폰(850)으로 전송할 수 있다. 스마트 폰(850) 또는 태블릿(860)은 프린터(820)로부터 수신 받은 악성 코드 검사 결과에 기반하여 각각의 디스플레이(855, 865)에 경고 메시지(856, 866)를 표시할 수 있다.
제 1 전자 장치(810)는 제 2 전자 장치(840)로 악성 코드 분석 결과를 다양한 방법으로 전송할 수 있다. 예를 들어, 제 1 전자 장치(810)는 악성 코드 분석 결과를 전송할 제 2 전자 장치(840)를 사전에 지정할 수 있다. 이 경우, 제 1 전자 장치(810)는 악성 코드 분석 결과가 도출되면, 제1 전자 장치(810)의 통신부(미도시)를 이용하여 제 2 전자 장치(840)로 악성 코드 분석 결과를 전송할 수 있다.
본 개시의 다른 실시 예에 따라, 제 1 전자 장치(810)는 제 2 전자 장치(840)를 검색한 후, 검색된 제2 전자 장치(840)에 악성 코드 분석 결과를 전송할 수 있다. 예를 들어, 제 1 전자 장치(810)는, 제1 전자 장치(810)로부터 기 설정된 거리 내에 있는 복수의 제 2 전자 장치(840)를 검색한 후 검색된 제 2 전자 장치(840) 중 적어도 하나의 제2 전자 장치(840)에 악성 코드 분석 결과를 전송할 수 있다. 제 1 전자 장치(810)는 BT, Wifi, NFC 등의 근거리 통신 방법을 이용하여 제 2 전자 장치(840)를 검색할 수 있다. 그리고, 제 1 전자 장치(810)는 검색된 제 2 전자 장치(840)에 악성 코드 분석 결과를 전송할 수 있다.
그러나 상술한 예들은 이에 한정되지 않고, 제 1 전자 장치(810)는 다양한 셀룰러(cellular) 통신(예: LTE, LTE-A, CDMA, WCDMA, UMTS, Wibro 또는 GSM 등), 유선 통신(예: USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service)) 방법을 이용하여 제 2 전자 장치(840)를 검색하고, 검색된 제2 전자 장치(840)에 악성 코드 분석 결과를 전송할 수 있다.
본 개시의 다른 실시예에 따르면, 제 1 전자 장치(810)는 제1 전자 장치(810)와 동일한 ID(Identification)로 로그인 되어 있는 제 2 전자 장치(840)에 악성 코드 분석 결과를 전송할 수 있다. 예를 들어, 제 1 전자 장치(810)와 제 2 전자 장치(840)는 동일한 악성 코드 분석 프로그램을 공유할 수 있다. 제 1 전자 장치(810)와 제 2 전자 장치(840) 각각은 악성 코드 분석 프로그램을 제공하는 서버로부터 악성 코드 분석 프로그램을 다운로드 하여 설치하고, 상황에 맞추어 제 1 전자 장치(810) 및/또는 제 2 전자 장치(840)에서 악성 코드 분석을 실행할 수 있다. 이 경우, 제 1 전자 장치(810)는 악성 코드 분석 결과를 상기 서버에 전송할 수 있다. 서버는 수신된 제 1 전자 장치(810)의 악성 코드 분석 결과를 제 2 전자 장치(840)로 전송할 수 있다.
또한, 다른 실시예에 따르면, 제 1 전자 장치(810)와 제 2 전자 장치(820)는 서로 다른 악성 코드 분석 프로그램을 설치할 수 있다. 예를 들어, 제 1 전자 장치(810)와 제 2 전자 장치(820)는 하나의 ID로 다양한 서비스 또는 다양한 어플리케이션을 실행할 수 있는 싱글 사인 온(Single Sign On) 방법을 사용하여 서로 다른 악성 코드 프로그램을 설치하여 악성 코드 분석을 하고 그 결과를 공유할 수 있다.
상기와 같이 다양한 방법을 이용하여 제 1 전자 장치(810)는 악성 코드 분석 결과를 제 2 전자 장치(840)와 공유할 수 있다. 이로 인해, 제 2 전자 장치(840)를 휴대하고 있는 사용자는 제 1 전자 장치(810)와 물리적으로 이격되어 있는 상황에서도 제 1 전자 장치(810)에 설치하고자 하는 파일에 포함된 악성 코드 유무를 판단할 수 있다.
도 9 및 도 10은 본 개시의 일 실시예에 따른 전자 장치에 악성 코드 검출 프로그램이 없을 때, 악성 코드 의심 데이터를 검출하는 상황을 설명하기 위한 도면이다.
도 9 및 도 10을 참조하면, 제 1 전자 장치(810)는 새로운 실행 파일을 다운로드 하여 설치할 수 있다(S910). 예를 들어, 제 1 전자 장치(810)는 AndroidTM 및 iOSTM에서 애플리케이션 스토어(application store)를 통해 다양한 실행 파일을 수신할 수 있다.
제 1 전자 장치(810)는 악성 코드를 검출할 수 있는 프로그램이 설치되어 있지 않지만, 수신된 실행 파일이 악성 코드 검사를 받았는지 확인할 수 있다(S920:Y). 예를 들어, 제1 전자 장치(810)는 악성 코드 여부에 대한 검사를 받은 실행 파일에 대하여, 실행 파일의 기 설정된 영역에 악성 코드 검사를 진행했는지 여부에 대한 기록을 저장할 수 있다. 이 경우, 제 1 전자 장치(810)가 실행 파일을 설치하고자 하는 명령을 사용자로부터 입력 받을 때, 제 1 전자 장치(810)는 실행 파일에서 악성 코드 검사를 진행했는지 여부에 대한 기록을 확인할 수 있다.
악성 코드 검사가 진행되지 않은 경우(S920:N), 제 1 전자 장치(810)는 다양한 무선 통신, 유선 통신, 셀룰러(Cellular) 통신 방법을 이용하여 악성 코드 검사가 가능한 제 2 전자 장치(840)를 확인할 수 있다(S930). 예를 들어, 제1 전자 장치(810)는 지정된 영역 내에서 제2 전자 장치(840)를 검색하거나, 지정된 제2 전자 장치(840)를 기 설정하거나, 제1 전자 장치(810)와 동일한 ID로 로그인 된 제 2 전자 장치(840)를 확인할 수 있다(S930).
제 1 전자 장치(810)는 확인된 제 2 전자 장치(840)로 실행 파일을 전송할 수 있다(S940). 제 2 전자 장치(840)는 수신된 실행 파일에 대하여 악성 코드 검사를 수행하고, 그 결과를 제2 전자 장치(840)의 각각의 디스플레이(855, 865)에 표시할 수 있다. 이때, 제2 전자 장치(840)는 제1 전자 장치(810)와의 무선 통신 방법 및 사용자 명령 등을 통하여 악성 코드 검사가 완료된 실행 파일을 제1 전자 장치(810)에 전송할 수 있다. 제 1 전자 장치(810)는 제 2 전자 장치(840)로부터 악성 코드 검사가 끝난 실행 파일을 수신할 수 있다(S950). 제 1 전자 장치(810)는 제2 전자 장치(840)로부터 수신된 실행 파일을 설치할 수 있다(S960).
상술한 바와 같이, 본 개시의 실시 예들에 따라, 제 1 전자 장치(810)는 악성 코드를 검출할 수 있는 프로그램을 설치하고 있지 않더라도, 제 1 전자 장치(810)와 유선 또는 무선으로 연결이 가능한 제 2 전자 장치(840)를 이용하여 실행 파일 설치 전에 악성 코드를 검출할 수 있다.
도 11은 본 개시의 일 실시예에 따른 전자 장치가 악성 코드 의심 데이터를 검출하는 다른 상황을 설명하기 위한 도면이다.
도 11을 참조하면, 제 1 전자 장치(810)는 건물 안에 배치된 사물 인터넷(Internet Of Things)과 관련된 장치일 수 있다. 사물 인터넷은, 예를 들면, 사람, 사물, 공간, 데이터 등이 인터넷으로 서로 연결되어, 정보가 생성, 수집, 공유, 활용 되는 것을 의미할 수 있다.
본 개시의 일 실시 예에 따라, 제 1 전자 장치(810)는 다양한 데이터를 수집하고 생성한 후 다양한 통신 기술을 이용하여 타 전자 장치로 데이터를 전송하는 사물 인터넷 센서 장치일 수 있다. 예를 들어, 제 1 전자 장치(810)는 온도 장치(811), 보안 카메라(813), 전등(815), TV(817) 등과 연관되어 정보를 수집하고 외부로 전송하는 센서 장치일 수 있다. 예를 들어, 온도 장치(811), 보안 카메라(813), 전등(815), TV(817) 등은 상술한 센서를 내장한 일체형으로 구성될 수 있다. 그러나 상술한 예들은 본 개시를 설명하기 위한 예일 뿐 이에 한정되지 않는다.
각각의 센서 장치(810)들은 생성한 데이터를 각 센서와 연관된 장치로 전송하거나, 다른 장치로 전송하여 각 장치들의 동작에 활용될 수 있다. 또한 각각의 센서 장치(810)들은 생성한 데이터를 제 2 전자 장치(840)로 전송할 수 있다.
예를 들어, 보안 카메라(813)가 인식한 피사체의 얼굴이 기 인식된 건물에 주거하는 사람이라면, 보안 카메라(813)와 연관된 센서 장치(810)는 전등과 연관된 센서 장치(810)에 거주인이 접근했음을 알리는 데이터를 전송할 수 있다. 전등(815)과 관련된 센서 장치(810)는 수신된 데이터를 전등(815)에 전송하여 건물 내부의 전등(815)을 활성화 시킬 수 있다.
이와 같은 사물 인터넷과 관련된 센서 장치(810)들은 필요한 경우 소프트웨어(SW, Software) 업데이트 또는 펌웨어 업데이트 등을 수행할 수 있다. 센서 장치(810)는 SW 업데이트를 위해서 필요한 파일을 다운로드 받아 설치될 수 있다. 센서 장치(810)는 악성 코드를 검출할 수 있는 프로그램이 설치되어 있지 않을 수 있다. 이 경우, 제 2 전자 장치(840)는 센서 장치(810)에 설치할 파일에 대하여 악성 코드 검사를 수행한 후, 검사가 완료된 파일을 센서 장치(810)에 전송할 수 있다. 센서 장치(810)는 수신된 파일을 이용하여 SW 업데이트를 진행할 수 있다.
또한, 다양한 실시예에 따라, 센서 장치(810)에 악성 코드 검출 프로그램이 설치된 경우, 센서 장치(810)는 SW (software) 업데이트를 위해 필요한 파일을 수신 받아 악성 코드 검사를 진행할 수 있다. 이 경우, 센서 장치(810)는 검사 결과를 제 2 전자 장치(840)로 전송할 수 있다.
      도1 내지 도11에서 상술한 바와 같이 본 개시에서 실행파일의 악성 코드 인식률은 딥러닝 엔진에 입력되는 악성코드 분석용 데이터(특징 데이터)를 통해 높은 악성코드 인식률을 획득할 수 있다. 이를 위해, 전자 장치(100)는 실행파일을 구동하는 전자장치(100) 내부의 특정 메모리 위치에 악성코드 분석용으로 수집된 데이터들을 저장시킬 수 있다. 구체적으로 수집된 정보들은 네이티브 소스를 분석하기 위한 데이터로 예를 들어 헤더파일 정보 및 함수 이름 등일 수 있다. 즉, 실행파일의 심볼 테이블, 문자 상수를 통해 수집된 악성 코드 의심 데이터, LLVM 컴파일러를 이용해 실행 파일을 IR 코드 레벨로 디컴파일하여 분석된 악성코드 의심 데이터일 수 있다.
      전자장치(100)는 상술한 네이티브 소스를 분석하기 위한 데이터에 대해 운영 체제에 루트 권한을 획득하여 수집된 악성 코드 의심 데이터를 램 또는 하드 디스크에 저장할 수 있다.
수집된 악성 코드 의심 데이터가 램에 저장되는 경우, 전자 장치(100)는 메모리 덤프 생성 과정을 통해 특정 위치 혹은 전체 메모리에 데이터를 저장할 수 있다. 예를 들어, 안드로이드TM는 DMA(Direct Memory Access) 방식을 이용하여 빠른 덤프가 가능하다. 또한, JTAG을 이용하여 OS(Operating System) 버전에 제한 받거나 루트 킷에 영향을 받는 가능성이 낮은 하드웨어적인 방법을 이용할 수도 있다. 다른 모바일 운영체제의 경우도 상술한 방법과 같은 방식으로 데이터를 저장하고 확인할 수 있다.
      반면, 수집된 악성 코드 의심 데이터가 하드 디스크에 저장되는 경우, 전자 장치(100)는 애플리케이션 레벨에서 동작할 때 특정 위치에 데이터를 저장할 수 있다. 예를 들어, 안드로이드TM는 수집된 데이터를 내장 메모리(/data/data/패키지명/databases/)에 저장할 수 있고, 외장메모리(/mnt/sdcard/패키지명/)에 저장할 수도 있다. 따라서, 전자장치(100)는 외장 메모리 및 외장 메모리의 특정 위치에 데이터를 저장하고 데이터의 위치를 확인할 수 있다. IOSTM의 경우에는 현재 폴더와 Documents 폴더에 악성코드 의심 파일로 분석된 파일을 저장하여 분석용 데이터의 위치를 확인할 수 있다.
      또 다른 예로, 클라우드 기반의 경우, 전자장치(100)는 수집된 데이터를 서버의 데이터 베이스에 업데이트하여 동적 분석(dynamic analysis)을 수행하도록 할 수 있다. 이때, 전자장치(100)는 서버로 보내는 분석용 데이터를 읽어 분석용 데이터를 확인할 수 있다.
      상술한 본 개시를 통한 방법들 및 전자장치(100)를 통해, 인터넷에 접속하여 악성 코드와 관련된 데이터 베이스를 업데이트하지 않더라도, 전자장치(100)는 사용자 디바이스의 로컬에서 인지 엔진(예: 딥러닝, SVM, 신경망 등)을 통해 악성 코드 의심 데이터를 분석할 수 있다. 또한, 인지 엔진은 자가 학습이 가능한 인공지능 형태로 구성되어 추가적인 데이트 베이스 업데이트가 불필요한 효과가 있다.
      또한 본 개시는, 전체적인 시나리오 관점에서, 데이터 베이스를 업데이트하고 서버로 실행파일을 전송하는 과정이 포함된 기존 악성 코드 탐지 기술보다 검사 시간을 줄일 수 있는 효과가 있다. 본 개시를 통한 방법들을 이용할 경우, 사용자 디바이스에서 구동되는 악성코드 분석 및 탐지 시간은 약1초 정도의 검사 시간이 사용되는 장점을 지닌다.
본 개시에 설명된 방법들은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 본 개시의 각 실시 예에 따른 방법을 실행시키기 위하여, 상술한 방법들은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, Java, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 상술한 방법들을 컴퓨터(프로세서)가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위한 원격(remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
본 개시의 다양한 실시 예에 따른 장치 (예: 모듈들 또는 전자 장치(100)) 또는 방법 (예: 동작들)은, 예컨대, 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 유지되는(maintain) 프로그램들 중 적어도 하나의 프로그램에 포함된 명령어(instructions)를 실행하는 적어도 하나의 컴퓨터(예: 프로세서 120)에 의하여 수행될 수 있다.
상기 명령어가 컴퓨터(예: 프로세서 120)에 의해 실행될 경우, 상기 적어도 하나의 컴퓨터는 상기 명령어에 해당하는 기능을 수행할 수 있다. 이 때, 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리(130)가 될 수 있다.
프로그램은, 예로, 하드디스크, 플로피디스크, 마그네틱 매체 (magnetic media)(예: 자기테이프), 광기록 매체 (optical media)(예: CD-ROM (compact disc read only memory), DVD (digital versatile disc), 자기-광 매체 (magneto-optical media)(예: 플롭티컬 디스크 (floptical disk)), 하드웨어 장치 (예: ROM (read only memory), RAM (random access memory), 또는 플래시 메모리 등) 등과 같은 컴퓨터로 읽을 수 저장 매체에 포함될 수 있다.  이 경우, 저장 매체는 일반적으로 전자 장치(100)의 구성의 일부로 포함되나, 전자 장치(100)의 포트(port)를 통하여 장착될 수도 있으며, 또는 전자 장치(100)의 외부에 위치한 외부 기기(예로, 클라우드, 서버 또는 다른 전자 기기)에 포함될 수도 있다.  또한, 프로그램은 복수의 저장 매체에 나누어 저장될 수도 있으며, 이 때, 복수의 저장 매체의 적어도 일부는 전자 장치(100)의 외부 기기에 위치할 수도 있다.
명령어는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 전자 장치의 악성 코드 분석 방법에 있어서,
    실행 파일을 수신하는 단계;
    상기 수신된 실행 파일이 설치되기 전에, 상기 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하는 단계;
    정규화된 상기 수집된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단하는 단계; 및
    상기 판단 결과를 출력하는 단계;를 포함하는 악성 코드 분석 방법.
  2. 제1항에 있어서,
    상기 수집하는 단계는,
    상기 실행 파일의 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하는 단계; 를 포함하고,
    상기 복원된 소스 코드 레벨에서 상기 실행 파일의 악성 코드로 의심되는 데이터를 수집하는 악성 코드 분석 방법.
  3. 제2항에 있어서,
    상기 복원하는 단계는,
    상기 실행 파일의 기계 코드가 암호화된 경우, 상기 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하는 악성 코드 분석 방법.
  4. 제1항에 있어서,
    상기 수집하는 단계는,
    상기 실행 파일의 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하는 단계;를 포함하는 악성 코드 분석 방법.
  5. 제1항에 있어서,
    상기 수집하는 단계는,
    상기 실행 파일을 LLVM(Low Level Virtual Machine) 컴파일러를 이용해 IR(Intermediate Representation) 코드 레벨로 디컴파일하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하는 단계;를 포함하는 악성 코드 분석 방법.
  6. 제1항에 있어서,
    상기 수집하는 단계는,
    상기 실행 파일의 메타 데이터 및 모바일 운영체제 내에서의 상기 실행 파일의 실행 권한 정보를 바탕으로 악성 코드 의심 데이터를 분석하는 단계;를 포함하는 악성 코드 분석 방법.
  7. 제1항에 있어서,
    상기 수집하는 단계는,
    상기 실행 파일 내 다른 파일 포맷에 숨겨진 또 다른 실행 파일 혹은 커맨드를 검출하도록 특정 파일마다 복호화, 압축 해제, 헤더 파일 확인, 바이트 값 대조를 통해 상기 파일 내부의 상이한 정보 데이터를 바탕으로 악성 코드 의심 데이터를 분석하는 단계;를 포함하는 악성 코드 분석 방법.
  8. 제1항에 있어서,
    상기 수집된 데이터를 정규화하여 상기 정규화된 데이터가 상기 확률 모델 알고리즘에 입력될 수 있도록 하는 데이터 정규화 단계;를 더 포함하는 악성 코드 분석 방법.
  9. 제1항에 있어서,
    상기 출력하는 단계는,
    상기 판단 결과 악성 코드 데이터가 존재하는 것으로 판단되면, 상기 판단된 악성 코드 데이터의 유형 및 확률 정보 중 적어도 하나를 출력하는 악성 코드 분석 방법.
  10. 제1항에 있어서,
    상기 확률 모델 알고리즘은, 딥 러닝 엔진, SVM(Support Vector Machine), 신경망 알고리즘 중 적어도 하나인 악성 코드 분석 방법.
  11. 악성 코드 분석을 하는 전자 장치에 있어서,
    디스플레이; 및
    실행 파일을 수신하고, 상기 수신된 실행 파일이 설치되기 전에, 상기 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하고, 정규화된 상기 수집된 악성 코드 의심 데이터를 확률 모델 알고리즘을 바탕으로 분석하여 악성 코드 의심 데이터를 판단하고, 상기 판단 결과를 출력하는 프로세서;를 포함하는 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 실행 파일의 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하고, 상기 복원된 소스 코드 레벨에서 상기 실행 파일의 악성 코드 의심 데이터를 수집하는 전자 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 실행 파일의 기계 코드가 암호화된 경우, 상기 기계 코드를 디컴파일하여 소스 코드 레벨로 복원하는 전자 장치.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 실행 파일의 심볼 테이블, 문자 상수를 수집하여 네이티브 소스 레벨에서 악성 코드로 의심되는 데이터를 분석하여 악성 코드 의심 데이터를 수집하는 전자 장치.
  15. 전자 장치의 악성 코드 분석 방법을 수행하기 위한 프로그램이 저장된 컴퓨터 판독 가능 기록 매체에 있어서,
    상기 악성 코드 분석 방법은,
    실행 파일을 수신하는 단계;
    상기 수신된 실행 파일을 분석하여 상기 실행 파일로부터 악성 코드 의심 데이터를 수집하는 단계;
    확률 알고리즘을 바탕으로 상기 수집된 악성 코드 의심 데이터를 분석하여 악성 코드 데이터를 판단하는 단계; 및
    상기 판단 결과를 출력하는 단계;를 포함하는 컴퓨터 판독 가능 기록매체.
PCT/KR2016/012443 2016-01-19 2016-11-01 악성 코드 분석을 위한 전자 장치 및 이의 방법 WO2017126786A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/068,263 US20190005239A1 (en) 2016-01-19 2016-11-01 Electronic device for analyzing malicious code and method therefor

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2016-0006257 2016-01-19
KR20160006257 2016-01-19
KR10-2016-0072230 2016-06-10
KR1020160072230A KR102582580B1 (ko) 2016-01-19 2016-06-10 악성 코드 분석을 위한 전자 장치 및 이의 방법

Publications (1)

Publication Number Publication Date
WO2017126786A1 true WO2017126786A1 (ko) 2017-07-27

Family

ID=59362462

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/012443 WO2017126786A1 (ko) 2016-01-19 2016-11-01 악성 코드 분석을 위한 전자 장치 및 이의 방법

Country Status (1)

Country Link
WO (1) WO2017126786A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020013354A1 (ko) * 2018-07-10 2020-01-16 엘지전자 주식회사 차량용 방화벽의 동작 방법
EP3647981A4 (en) * 2017-10-09 2020-05-06 Alibaba Group Holding Limited SAFETY SCAN METHOD AND DEVICE FOR MINI-PROGRAM AND ELECTRONIC DEVICE
CN111459822A (zh) * 2020-04-01 2020-07-28 北京字节跳动网络技术有限公司 ***组件数据的提取方法、装置、设备及可读介质
US10846403B2 (en) 2018-05-15 2020-11-24 International Business Machines Corporation Detecting malicious executable files by performing static analysis on executable files' overlay
CN113206849A (zh) * 2021-04-29 2021-08-03 杭州安恒信息安全技术有限公司 一种基于ghidra的漏洞扫描方法、装置及相关设备
CN113641939A (zh) * 2021-08-19 2021-11-12 阿里巴巴(中国)有限公司 数据安全处理方法、浏览器***、电子设备及存储介质
US11222114B2 (en) 2018-08-01 2022-01-11 International Business Machines Corporation Time and frequency domain analysis of bytecode for malware detection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240221A1 (en) * 2006-04-06 2007-10-11 George Tuvell Non-Signature Malware Detection System and Method for Mobile Platforms
US20090144702A1 (en) * 2004-06-30 2009-06-04 International Business Machines Corporation System And Program Product for Determining Java Software Code Plagiarism and Infringement
WO2009148724A1 (en) * 2008-06-03 2009-12-10 Isight Partners, Inc. Electronic crime detection and tracking
US20130326625A1 (en) * 2012-06-05 2013-12-05 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US20150363196A1 (en) * 2014-06-13 2015-12-17 The Charles Stark Draper Laboratory Inc. Systems And Methods For Software Corpora

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144702A1 (en) * 2004-06-30 2009-06-04 International Business Machines Corporation System And Program Product for Determining Java Software Code Plagiarism and Infringement
US20070240221A1 (en) * 2006-04-06 2007-10-11 George Tuvell Non-Signature Malware Detection System and Method for Mobile Platforms
WO2009148724A1 (en) * 2008-06-03 2009-12-10 Isight Partners, Inc. Electronic crime detection and tracking
US20130326625A1 (en) * 2012-06-05 2013-12-05 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US20150363196A1 (en) * 2014-06-13 2015-12-17 The Charles Stark Draper Laboratory Inc. Systems And Methods For Software Corpora

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3647981A4 (en) * 2017-10-09 2020-05-06 Alibaba Group Holding Limited SAFETY SCAN METHOD AND DEVICE FOR MINI-PROGRAM AND ELECTRONIC DEVICE
US10846402B2 (en) 2017-10-09 2020-11-24 Advanced New Technologies Co., Ltd. Security scanning method and apparatus for mini program, and electronic device
US10846403B2 (en) 2018-05-15 2020-11-24 International Business Machines Corporation Detecting malicious executable files by performing static analysis on executable files' overlay
WO2020013354A1 (ko) * 2018-07-10 2020-01-16 엘지전자 주식회사 차량용 방화벽의 동작 방법
US11222114B2 (en) 2018-08-01 2022-01-11 International Business Machines Corporation Time and frequency domain analysis of bytecode for malware detection
CN111459822A (zh) * 2020-04-01 2020-07-28 北京字节跳动网络技术有限公司 ***组件数据的提取方法、装置、设备及可读介质
CN111459822B (zh) * 2020-04-01 2023-10-03 抖音视界有限公司 ***组件数据的提取方法、装置、设备及可读介质
CN113206849A (zh) * 2021-04-29 2021-08-03 杭州安恒信息安全技术有限公司 一种基于ghidra的漏洞扫描方法、装置及相关设备
CN113206849B (zh) * 2021-04-29 2022-12-20 杭州安恒信息安全技术有限公司 一种基于ghidra的漏洞扫描方法、装置及相关设备
CN113641939A (zh) * 2021-08-19 2021-11-12 阿里巴巴(中国)有限公司 数据安全处理方法、浏览器***、电子设备及存储介质
CN113641939B (zh) * 2021-08-19 2024-04-12 阿里巴巴(中国)有限公司 数据安全处理方法、浏览器***、电子设备及存储介质

Similar Documents

Publication Publication Date Title
WO2017126786A1 (ko) 악성 코드 분석을 위한 전자 장치 및 이의 방법
KR102582580B1 (ko) 악성 코드 분석을 위한 전자 장치 및 이의 방법
WO2018097662A1 (en) Method and apparatus for managing program of electronic device
WO2018038385A2 (ko) 음성 인식 방법 및 이를 수행하는 전자 장치
WO2017069489A1 (ko) 선택적 암호화 방법 및 그를 이용한 전자 장치
WO2018117376A1 (ko) 컨텐츠 운용 방법 및 이를 구현한 전자 장치
WO2017213400A1 (en) Malware detection by exploiting malware re-composition variations
WO2013168951A1 (ko) 악성 파일 검사 장치 및 방법
WO2017142256A1 (en) Electronic device for authenticating based on biometric data and operating method thereof
WO2017086676A1 (ko) 전자 장치 및 전자 장치의 컨텐츠 출력 방법
EP3610406A1 (en) Method and electronic device for controlling permission of application program
WO2017047928A1 (en) Server and user terminal
EP3539046A1 (en) Electronic device and method for managing data in electronic device
WO2017131469A1 (ko) 어플리케이션을 제어하는 전자 장치와 이의 동작 방법
WO2018128432A1 (ko) 전자 장치 간 콘텐츠 공유 시스템 및 전자 장치의 콘텐츠 공유 방법
WO2018021806A1 (en) Method of detecting similar applications and electronic device adapted to the same
WO2020027413A1 (ko) 팩토리 데이터 리셋 기능에 의해 제거된 어플리케이션을 복원하는 장치 및 방법
WO2017126878A1 (ko) 사용자 인터페이스를 표시하는 방법 및 이를 지원하는 전자 장치
WO2018164445A1 (en) Electronic device and method for controlling application thereof
WO2017104902A1 (ko) 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법
WO2016200058A1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
WO2015005744A1 (ko) 디나이얼 발생시 대응 메뉴얼을 제안하는 전자 장치 및 방법
WO2018079999A1 (en) Electronic device and method for operating the same
WO2018194196A1 (ko) Elf 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템
WO2017026645A1 (en) Content security processing method and electronic device supporting the same

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: 16886629

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: 16886629

Country of ref document: EP

Kind code of ref document: A1