WO2019004502A1 - Application security assessment method and system - Google Patents

Application security assessment method and system Download PDF

Info

Publication number
WO2019004502A1
WO2019004502A1 PCT/KR2017/006903 KR2017006903W WO2019004502A1 WO 2019004502 A1 WO2019004502 A1 WO 2019004502A1 KR 2017006903 W KR2017006903 W KR 2017006903W WO 2019004502 A1 WO2019004502 A1 WO 2019004502A1
Authority
WO
WIPO (PCT)
Prior art keywords
obfuscation
view
information
point
pattern information
Prior art date
Application number
PCT/KR2017/006903
Other languages
French (fr)
Korean (ko)
Inventor
안성범
정명주
김태우
정상민
임성열
전상훈
한광희
서동필
류주현
Original Assignee
라인 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라인 가부시키가이샤 filed Critical 라인 가부시키가이샤
Priority to PCT/KR2017/006903 priority Critical patent/WO2019004502A1/en
Priority to JP2018080912A priority patent/JP7131946B2/en
Priority to US15/958,115 priority patent/US10963563B2/en
Publication of WO2019004502A1 publication Critical patent/WO2019004502A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Definitions

  • the following description relates to a method of evaluating the security of an application and to a computer program stored on a computer-readable recording medium for causing a computer to execute the security evaluation method in combination with the system and the computer.
  • the App store is an online content market that sells a variety of applications that can be loaded on terminals such as smart phones.
  • an application developer registers a file (for example, an Android application package (APK)) for installing the developed application on a terminal in the App Store, and users of the application The user can download the file for the application and install and operate the application in his / her terminal.
  • various game applications such as game publishers are distributed to users. As such, there are application publishers that register various applications that developers themselves have not developed and distribute registered applications to users.
  • the first risk of an application is that the application contains information developed with malicious intent, such as malicious code, so that the application publisher in which the application is registered, or a malicious function in the terminal of the user This is the risk of the case.
  • Korean Patent Laid-Open No. 10-2014-0098025 relates to a system and method for security evaluation of an application uploaded to an application store. When an application to be registered in the application store is detected as performing a malicious function, (Registration in the AppStore) of the application.
  • the second risk of an application is the risk to the security of the application itself.
  • the application performs functions other than those originally intended by the developer, thereby reducing the reliability of the service to be provided through the application Lt; / RTI > Accordingly, there is a need for application publishers to provide a certain level of security to applications in distributing various applications (installation files of applications) that they have not developed directly.
  • each application may have security solutions at different security levels and may not include any security measures.
  • a method of evaluating security of an application comprising: storing pattern information for each point of view for analyzing a package file according to obfuscation and vulnerability; Registering a package file for distribution to users for installation and operation of an application; Analyzing the registered package file according to the per-view pattern information to generate analytical information on the obfuscation point and analyzed information on the point of view of the vulnerability; And providing the generated analysis information.
  • ≪ RTI ID 0.0 > [10] < / RTI >
  • a system for assessing the security of an application comprising: at least one processor implemented to execute computer readable instructions, the at least one processor being operable to cause a package file to be viewed in an obfuscation perspective and vulnerability,
  • the method includes storing pattern information for each point of view for analysis according to a point of view, registering a package file for distribution to users for installing and running an application, analyzing the registered package file according to the point-of-view pattern information, And generates analysis information of the analysis viewpoint and the vulnerability viewpoint, and provides the generated analysis information.
  • a computer program stored in a computer-readable recording medium for causing a computer to execute the security evaluation method in combination with a computer.
  • the application publisher From the viewpoint of the application publisher, it analyzes and grasps the security level applied to the registered application in an objective way according to each viewpoint of obfuscation, vulnerability and / or security solution, and provides analyzed information, It can be utilized for improving security.
  • FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of a security evaluation system according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of information included in a report for providing analysis information in an embodiment of the present invention.
  • FIG. 5 is a diagram showing an example of analysis information of a viewpoint of a vulnerability in an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an example of a class and a method included in a parsed dll file according to an exemplary embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an example of analysis information in terms of obfuscation based on classes and methods identified in a parsed dll file according to an exemplary embodiment of the present invention.
  • FIG. 8 is a diagram showing an example of analysis information in terms of obfuscation with respect to a parsed so file, according to an embodiment of the present invention.
  • FIG. 9 is a diagram showing another example of analysis information in terms of obfuscation with respect to a parsed so file, in an embodiment of the present invention.
  • FIG. 10 is a block diagram illustrating an example of components that a processor of a server according to an embodiment of the present invention may include.
  • FIG. 11 is a flowchart illustrating an example of a security evaluation method that can be performed by a server according to an embodiment of the present invention.
  • the security evaluation system can be implemented through a server to be described later, and a security evaluation method according to embodiments of the present invention can be performed through the server described above.
  • a computer program according to an embodiment of the present invention may be installed and operated on a server, and the server may perform a security evaluation method according to an embodiment of the present invention under the control of a computer program have.
  • the above-described computer program may be stored in a computer-readable recording medium in combination with a computer-implemented server to execute a security evaluation method on the computer.
  • 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. 1 shows an example in which a plurality of electronic devices 110, 120, 130, 140, a plurality of servers 150, 160, and a network 170 are included. 1, the number of electronic devices and the number of servers are not limited to those shown in FIG.
  • the plurality of electronic devices 110, 120, 130, 140 may be a fixed terminal implemented as a computer device or a mobile terminal.
  • Examples of the plurality of electronic devices 110, 120, 130 and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook, a digital broadcast terminal, a PDA (Personal Digital Assistants) ), And tablet PCs.
  • FIG. 1 illustrates the shape of a smartphone as an example of the first electronic device 110, but in the embodiments of the present invention, the first electronic device 110 transmits the network 170 using a wireless or wired communication method. May refer to any one of a variety of physical devices capable of communicating with other electronic devices 120, 130, 140 and / or servers 150,
  • the communication method is not limited, and may include a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, as well as a short-range wireless communication between the devices.
  • the network 170 may be a personal area network (LAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN) , A network such as the Internet, and the like.
  • the network 170 may also include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, It is not limited.
  • Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130 and 140 through a network 170 to provide commands, codes, files, Lt; / RTI > devices.
  • the server 150 may be a system that provides a first service to a plurality of electronic devices 110, 120, 130, 140 connected through a network 170, 170, and 140 to the first and second electronic devices 110, 120, 130, and 140, respectively. More specifically, the server 150 may be at least a part of the apparatuses constituting the system of the application publisher, and the package file of the application installed and operated in the plurality of electronic apparatuses 110, 120, 130 and 140 may be registered And distribute the service as the first service.
  • the server 160 may provide a service associated with the application as a second service to a plurality of electronic devices 110, 120, 130, 140 that install and operate the application through the distributed package file .
  • 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. 2 illustrates an internal configuration of the electronic device 1 (110) and the server 150 as an example of the electronic device. Other electronic devices 120, 130, 140 and server 160 may also have the same or similar internal configuration as electronic device 1 110 or server 150 described above.
  • the electronic device 1 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223 and input / output interfaces 214 and 224.
  • the memories 211 and 221 may be a computer-readable recording medium and may include a permanent mass storage device such as a random access memory (RAM), a read only memory (ROM), and a disk drive.
  • the non-decaying mass storage device such as a ROM and a disk drive may be included in the electronic device 110 or the server 150 as a separate persistent storage device different from the memory 211 or 221.
  • the memory 211 and the memory 221 are provided with an operating system and at least one program code (for example, a program installed in the electronic device 1 (110) and used for a browser or an application installed in the electronic device 1 Code) can be stored.
  • These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221.
  • a computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, and a memory card.
  • the software components may be loaded into memory 211, 221 via communication modules 213, 223 rather than a computer readable recording medium.
  • At least one program may be a computer program installed by files provided by a file distribution system (e.g., the server 160 described above) that distributes installation files of developers or applications, May be loaded into the memory 211, 221 based on the application (e.g., the application described above).
  • a file distribution system e.g., the server 160 described above
  • the application e.g., the application described above.
  • Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations.
  • the instructions may be provided to the processors 212 and 222 by the memories 211 and 221 or the communication modules 213 and 223.
  • the processor 212, 222 may be configured to execute a command received in accordance with a program code stored in a recording device, such as the memory 211, 221.
  • the communication modules 213 and 223 may provide functions for the electronic device 1 110 and the server 150 to communicate with each other through the network 170 and may be provided to the electronic device 1 110 and / May provide a function for communicating with another electronic device (e.g., electronic device 2 120) or another server (e.g., server 160).
  • another electronic device e.g., electronic device 2 120
  • another server e.g., server 160
  • the request generated by the processor 212 of the electronic device 1 110 according to the program code stored in the recording device such as the memory 211 is transmitted to the server 170 via the network 170 under the control of the communication module 213 150 < / RTI > Conversely, control signals, commands, contents, files, and the like provided under the control of the processor 222 of the server 150 are transmitted to the communication module 223 of the electronic device 110 via the communication module 223 and the network 170 213 to the electronic device 1 (110).
  • control signals, commands, contents, files, and the like of the server 150 received through the communication module 213 can be transmitted to the processor 212 or the memory 211, (The above-mentioned persistent storage device), which may further include a storage medium 110.
  • the input / output interface 214 may be a means for interfacing with the input / output device 215.
  • the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display, a speaker, and the like.
  • the input / output interface 214 may be a means for interfacing with a device having integrated functions for input and output, such as a touch screen.
  • the input / output device 215 may be composed of the electronic device 1 (110) and one device.
  • the input / output interface 224 of the server 150 may be a means for interfacing with the server 150 or an interface with a device (not shown) for input or output that the server 150 may include.
  • the configuration is performed using the data provided by the server 150 or the electronic device 2 (120)
  • a service screen or contents can be displayed on the display through the input / output interface 214.
  • electronic device 1 110 and server 150 may include more components than the components of FIG. However, there is no need to clearly illustrate most prior art components.
  • electronic device 1 110 may be implemented to include at least a portion of input / output devices 215 described above, or may be implemented with other components such as a transceiver, Global Positioning System (GPS) module, camera, Elements. More specifically, when the electronic device 1 (110) is a smart phone, the acceleration sensor, the gyro sensor, the camera module, various physical buttons, buttons using a touch panel, input / output ports, A vibrator, and the like may be further included in the electronic device 1 (110).
  • GPS Global Positioning System
  • FIG. 3 is a block diagram of a security evaluation system according to an embodiment of the present invention.
  • the security evaluation system 300 shown in FIG. 3 can be implemented through the server 150 described above.
  • the security evaluation system 300 includes a package decomposition module 310, a file identification module 320,
  • the analysis module 340 and the report module 350 may be representations of different functions of the processor 222 of the server 150. For example,
  • the package decomposition module 310 may be used as a function of the processor 222 in which the processor 222 of the server 150 decomposes the package file according to control commands included in the computer program.
  • the server 150 may provide a service for distributing package files of applications registered by developers to users.
  • the package decomposition module 310 can decompose the registered package files.
  • the Android Application Package has a file extension of '.apk' as the file format of the package file used for Android's software and middleware distribution, the mobile operating system.
  • the file identification module 320 can identify files included in the decomposed package file.
  • the extensions ('dex', 'so', 'dll', 'json', 'ini', 'apk', 'xml', 'cert') shown in FIG. 3, It will be readily apparent to those skilled in the art.
  • the parsing module 330 may parse the identified files. To do this, the parser 331 may parse files of a particular extension (e.g., 'dex', 'so', 'dll') of the identified files and the collector 332 may parse the files of a particular extension You can gather the necessary information from the files 'json', 'ini', 'apk', 'xml', 'cert'
  • a particular extension e.g., 'dex', 'so', 'dll'
  • the parsed information and the collected information may be passed to the analysis module 340.
  • the analyzing module 340 analyzes the package file (or the application installed and operated on the user terminal such as the electronic device 1 110 through the package file) based on the information transmitted from the parsing module 330, vulnerability viewpoints, and security solutions from the viewpoints of security, obfuscation, vulnerability, and security solution.
  • obfuscation detection module 341 may generate analysis information about how much obfuscation is applied to files of a particular extension (e.g., 'dex', 'so', 'dll') .
  • the obfuscation detection module 341 can determine whether obfuscation is applied to each item set in advance according to the type of the file.
  • the vulnerability detection module 342 generates analysis information as to what vulnerability exists in the files of a specific extension (for example, 'dex', 'so', or the extension of the configuration file 'config' can do.
  • the security evaluation system 300 can manage information on already known vulnerabilities, and the vulnerability detection module 342 uses information on the vulnerabilities to determine what vulnerabilities exist in which files Can be generated.
  • the platform detection module 343 can extract information about a platform on which the application is developed and / or a platform on which the application operates.
  • the security assessment system 300 can utilize different analysis methods depending on the platform in which the application is developed (for example, a development tool such as Unity or Cocos).
  • the security evaluation system 300 may utilize different analysis methods for each platform.
  • the security evaluation system 300 can extract information about the platform for the package file, analyze the package file based on the information, or provide the extracted platform information to the outside.
  • the security tool detection module 344 may detect the security solution that the developers of the package file themselves have inserted into the package file. For example, a first security tool provided in the form of a library by a third party may be added to the corresponding package file by the developer. As another example, the second security tool developed by the developer may be added to the corresponding package file by the developer. In other words, the security tool detection module 344 can generate analysis information on whether the security tool is applied to the package file.
  • the relationship analysis module 345 can generate analysis information on a reference relationship between files included in the package file. For example, when the first file includes a code for calling a second file, analysis information may be generated such that information about a reference relationship between the first file and the second file is included in the analysis information.
  • the report module 350 collects analysis information generated by the analysis module 340 and provides a report for providing the analysis information to the persons concerned (for example, the administrator of the server 150 or the security inspection team of the application publisher) of the security evaluation system 300 Lt; / RTI > Such a report can be provided to a terminal of an interested party using Hypertext Markup Language (HTML) or XML (extensible Markup Language) as in the example of FIG.
  • HTML Hypertext Markup Language
  • XML extensible Markup Language
  • FIG. 4 is a diagram illustrating an example of information included in a report for providing analysis information in an embodiment of the present invention.
  • FIG. 4 is a diagram for explaining an embodiment of the invention.
  • the analysis information included in the report and the method of transmitting analysis information may vary according to the embodiment.
  • the file format of the package file is a file format for an operating system other than Android
  • the information about the files included in the package file and the configuration method thereof may vary depending on the file format.
  • the files 410 to 480 to be described later may include template information for organizing the information included in the files so as to be meaningful to the user.
  • the 'Report.html' file 410 may include information on the overall vulnerability class of the target package file and information on the security tool applied to the package file.
  • the 'WikiReport.html' file 420 may include information on the obfuscation level for each module or file included in the package file, and other information about obfuscation.
  • the 'Packages.html' file 430 may include information on files included in the package file (for example, plist file, so file, xml file, json file, etc.).
  • the 'Platfrom.html' file 440 may include information about the platform on which the corresponding package file is developed, such as a development tool such as Unity or Cocos.
  • the ' Perm.html ' file 450 may include information about a list of usage of Android permits.
  • the 'Correlation.html' file 460 may include information about the relationship between the modules of the package file or between the files.
  • the 'AppliedSecurityTool.html' file 470 may contain list information about security tools applied to the package file. In addition, the 'AppliedSecurityTool.html' file 470 may further include information on the type and version of each applied security tool.
  • files information' (480) may contain information about a particular item contained in each file. For example, if information about an IAT (Import Address Table), an EAT (Export Address Table), a section header, a program header, a symbol, etc. of a so file is 'dll, so files information' (480). ≪ / RTI >
  • FIG. 5 is a diagram showing an example of analysis information of a viewpoint of a vulnerability in an embodiment of the present invention.
  • 'type' indicates that the item is analysis information of the vulnerability viewpoint.
  • 'name' may indicate an identifier indicating a certain vulnerability.
  • 'dangerous grade' in the table 500 of FIG. 5 may indicate the severity of the detected vulnerability.
  • 'detected log' indicates a vulnerability associated with an identifier (a file name including a path) of the corresponding file and a vulnerability associated with the vulnerability so as to indicate which one of the files included in the package file, Information (e.g., an identifier for a vulnerability found in any open source).
  • FIG. 6 is a diagram illustrating an example of a class and a method included in a parsed dll file according to an exemplary embodiment of the present invention.
  • FIG. 7 illustrates an example of a class And methods based on obfuscation analysis information.
  • the square box 600 of FIG. 6 shows identification information of each of classes and methods extracted from a so file included in the package file.
  • the obfuscation detection module 341 described with reference to FIG. 3 can identify the obfuscated class and the obfuscated method by analyzing the extracted classes and methods as shown in FIG.
  • the security evaluation system 300 can generate analysis information on the obfuscation point as shown in the table 700 of FIG.
  • 'name' indicates the identifier of the corresponding dll file
  • 'dangerous grade' indicates the degree of danger of tampering of the corresponding dll file
  • 'detected log' indicates information about obfuscation have.
  • 'MethodCrypted' in the table 700 of FIG. 7 may indicate whether obfuscation is applied to the method, and 'yes' may be a value indicating that obfuscation is applied to the method.
  • 'TotalClassNum 23' means that the number of classes extracted from the corresponding dll file is 23
  • 'TotalMethodNum 23' means that the number of methods extracted from the corresponding dll file is 23 . ≪ / RTI >
  • the security evaluation system 300 or the obfuscation detection module 341 can determine the degree of danger of obfuscation of the corresponding dll file based on the number of obfuscated classes and / or the number of obfuscated methods have.
  • the severity of obfuscation can be determined based on the ratio of the number of classes / methods to the number of obfuscated classes across all classes / methods. As a more specific example, the higher the ratio, the lower the degree of risk of relative obfuscation.
  • FIG. 8 is a diagram showing an example of analysis information in terms of obfuscation with respect to a parsed so file according to an embodiment of the present invention. And shows another example of analysis information in terms of obfuscation.
  • the table 800 in FIG. 8 indicates that the danger level of the obfuscation point for the file 'libopenal.so' is a safe (SAFE) rating, and the table 900 in FIG. 9 indicates that the file 'libnmscrash64-v1.so' And the risk level of obfuscation is CRITICAL.
  • the security evaluation system 300 or the obfuscation detection module 341 determines whether obfuscation is applied to the items included in each of the so files, and determines whether obfuscation is applied according to the degree of obfuscation.
  • the risk level can be determined.
  • items included in each of the so files are a section header, a string, a string table, a symbol table, and a code.
  • 'yes' may be a value indicating that obfuscation is applied
  • 'no' may be a value indicating that obfuscation is not applied.
  • the security evaluation system 300 is a system in which different types of items (for example, items of a class or method in a dll file, a session header, a string, a string table, a symbol table and / Or code), and the analysis information can be generated by automatically determining the risk level of the obfuscation point of the files according to whether the obfuscation is applied or not.
  • items of a class or method in a dll file, a session header, a string, a string table, a symbol table and / Or code for example, items of a class or method in a dll file, a session header, a string, a string table, a symbol table and / Or code
  • the security evaluation system 300 generates and manages pattern information for each point of view in terms of the obfuscation point, the vulnerability point of view, and / or the security solution point of view, and analyzes the obfuscation point of view Analysis information from information and vulnerability viewpoints, and / or analysis information from a security solution perspective.
  • the generated analysis information can be provided to the persons concerned.
  • pattern information for each additional viewpoint may be further input through the participant. For example, new pattern information may be developed for analyzing obfuscation and vulnerability based on existing open source new vulnerabilities or already provided analysis information.
  • the security evaluation system 300 can update the previously stored pattern information for each viewpoint by adding the inputted pattern information for each viewpoint to the previously stored pattern information for each viewpoint. At this time, additional analysis may be performed on the registered package files for further analysis according to the new pattern information.
  • FIG. 10 is a block diagram illustrating an example of a component that a processor of a server according to an exemplary embodiment of the present invention may include;
  • FIG. 11 is a diagram illustrating a security evaluation performed by a server according to an exemplary embodiment of the present invention;
  • Fig. 2 is a flowchart showing an example of a method. Fig.
  • the security evaluation system may be implemented in the form of a computer device such as the server 150 described above.
  • the processor 222 of the server 150 is a component for implementing the security evaluation system.
  • the processor 222 of the server 150 includes a per-view pattern information storage unit 1010, a package file registration unit 1020, 1030, an analysis information providing unit 1040, and an additional pattern information processing unit 1050.
  • the components of the processor 222 and the processor 222 may perform the steps 1110 to 1180 included in the security evaluation method of FIG.
  • the components of the processor 222 and the processor 222 may be implemented to execute control instructions according to code of the operating system or code of at least one program that the memory 221 includes.
  • processor 222 may be representations of different functions of processor 222 performed by processor 222 in accordance with the control instructions provided by the code stored in server 150 .
  • the per-perspective pattern information storage unit 1010 may be used as a functional representation of the processor 222 in which the processor 222 stores per-view pattern information according to the control command described above.
  • the per-view pattern information storage unit 1010 may store per-view pattern information for analyzing the package file in terms of obfuscation and vulnerability.
  • the pattern information may include information on how to analyze the registered package file according to the viewpoint, the file type, and / or the platform type.
  • the package file registration unit 1020 may register a package file for distribution to users for installation and operation of the application.
  • the package file registration unit 1020 can register a package file input to the server 150 through a package file transmitted from the developer terminal to the server 150 via the network or a separate recording medium.
  • the registered package files may be distributed to users who want to use the application, but the security evaluation may be performed before providing a certain level of security.
  • the analysis information generation unit 1030 analyzes the registered package file according to the pattern information for each point of view, and generates analysis information on the obfuscation point and analysis information on the point of view of the vulnerability.
  • the analysis information generation unit 1030 may identify the files included in the package file by decomposing the registered package file.
  • the analysis information generation unit 1030 can identify the files for which analysis is requested based on the extensions of the identified files, and generate analysis information of the viewpoints corresponding to the files identified by the viewpoints.
  • the obfuscation-based pattern information among the per-view pattern information includes pattern information for identifying whether obfuscation is applied for each item from a file identified as an obfuscation out of the files included in the registered package file can do.
  • whether or not obfuscation is applied to each item may include obfuscation for each of the methods and classes included in the file identified in terms of obfuscation.
  • the analysis information generation unit 1030 identifies the obfuscated method and class in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view in step 1230, (2) the number of obfuscated classes, (3) the number of obfuscated methods, and (4) the degree of danger determined based on the number of obfuscated classes. can do.
  • the generation of such analysis information has been described in detail with reference to FIG. 6 and FIG.
  • whether or not item obfuscation is applied may include a section header, a string, a string table, a symbol table, and a section header included in the file identified from the obfuscation point of view. And whether to obfuscate each of the information corresponding to at least one item of the code.
  • the analysis information generation unit 1030 identifies the obfuscated items in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view in step 1230, and (1) The type of the item, and (2) the type of item to which the obfuscation is applied.
  • the pattern information of the point of view of the weak point among the pattern information by point of view may include vulnerability information for at least one of a protocol, a library, and an API (Application Programming Interface) known to have a vulnerability.
  • the analysis information generation unit 1030 identifies a file including a protocol, a library, or an API corresponding to the vulnerability information among the files included in the registered package file, according to the pattern information of the vulnerability point of view And generate analysis information of the vulnerability view including (1) an identifier of the identified file, and (2) a risk level determined based on the type of the vulnerability included in the identified file.
  • analysis information from the perspective of a security solution can be further generated.
  • the per-view pattern information storage unit 1010 may further store per-view pattern information for analyzing the package file according to the security solution view in step 1110.
  • the analysis information generation unit 1030 may further analyze the package file registered in step 1230 according to the per-view pattern information corresponding to the viewpoint of the security solution, and further generate the analysis information of the security solution view .
  • the analysis information providing unit 1040 may provide the generated analysis information.
  • the analysis information generated as described above may be provided to an interested party (e.g., an administrator of the server 150 or a security verification team of an application publisher).
  • analysis information on the reference relationship between the files included in the package file can be further generated.
  • the analysis information providing unit 1040 may further provide analysis information on the reference relationship. The analysis and the information provided have already been described in detail.
  • the additional pattern information processing unit 1050 can receive additional pattern information for each point of view in association with the provision of the analysis information.
  • the additional pattern information processing unit 1050 can receive additional pattern information for each point of view from the person to whom the analysis information is provided.
  • pattern information for detecting new vulnerabilities can be input from the relevant parties.
  • a new file format is developed and commercialized, pattern information for each point of view for analyzing the package file according to the new file format may be inputted.
  • the additional pattern information processing unit 1050 can update the stored pattern information for each point of view by using the inputted pattern information for each point of view.
  • the additional pattern information processing unit 1050 may simply add the inputted pattern information for each point of view to the stored pattern information for each point of view, or exchange the inputted pattern information for each point of view and the pattern information for each point of view.
  • step 1170 the analysis information generation unit 1030 reanalyzes each of the package files registered in accordance with the entered pattern information for each point of view or the updated point information for each point of view to analyze the obfuscation analysis information and the vulnerability point analysis information Each of the registered package files can be regenerated.
  • the analysis information providing unit 1040 may provide the regenerated analysis information.
  • the security evaluation system may provide a function for exception processing of a vulnerability.
  • the security vulnerability assessment system does not detect an accurate vulnerability of files in a program in detecting whether a vulnerability exists according to pattern information of the vulnerability point of view.
  • pattern information of the vulnerability point of view For example, there may be a case where a normal file is detected through pattern information of a specific vulnerability viewpoint, and such pattern information can not be modified programmatically.
  • the security assessment system can provide an exception handling function to exclude from the vulnerability detection even if the pattern information of the vulnerability point of view is already well known.
  • the security evaluation system can provide obfuscation and index management functions for analysis results of vulnerability.
  • the security assessment system may provide statistical information, such as information on the number of times a specific vulnerability is detected, over time, and whether the number of times the vulnerability is detected increases or decreases over a period of time .
  • the security assessment system may provide indicators such as an obfuscation technique whose application is increasing for package files, or information about obfuscation techniques for which application is diminishing.
  • the security level applied to the registered application is analyzed in an objective way according to the obfuscation, vulnerability, And can provide the analyzed information to improve the security of the application.
  • the system or apparatus described above may be implemented as a hardware component, a software component or a combination of hardware components and software components.
  • the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG.
  • the processing unit may comprise a plurality of processors or one processor and one controller.
  • Other processing configurations are also possible, such as a parallel processor.
  • the software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded.
  • the software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device As shown in FIG.
  • the software may be distributed over a networked computer system and stored or executed in a distributed manner.
  • the software and data may be stored on one or more computer readable recording media.
  • the method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination.
  • the program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software.
  • Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • Such a recording medium may be a variety of recording means or storage means in the form of a single or a plurality of hardware combined and is not limited to a medium directly connected to any computer system but may be dispersed on a network.
  • Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

Abstract

Provided are an application security assessment method and system. The security assessment method may comprise the steps of: storing pattern data per perspective, the pattern data being for analyzing a package file according to an obfuscation perspective and a vulnerability perspective; receiving a registration of a package file for distribution to users so as to enable the installation and execution of an application; generating obfuscation perspective analysis data and vulnerability perspective analysis data by analyzing the registered package file according to the pattern data per perspective; and providing the generated analysis data.

Description

어플리케이션의 보안성을 평가하는 방법 및 시스템Method and system for evaluating security of an application
아래의 설명은 어플리케이션의 보안성을 평가하는 방법 및 시스템 및 컴퓨터와 결합되어 보안성 평가 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램에 관한 것이다.The following description relates to a method of evaluating the security of an application and to a computer program stored on a computer-readable recording medium for causing a computer to execute the security evaluation method in combination with the system and the computer.
앱스토어(App store)는 스마트폰과 같은 단말에 탑재할 수 있는 다양한 어플리케이션을 판매하는 온라인상의 콘텐츠 장터이다. 예를 들어, 어플리케이션의 개발자들은 개발된 어플리케이션을 단말에 설치하기 위한 파일(일례로, 안드로이드 응용 프로그램 패키지(Android Application Package, APK))를 앱스토어에 등록하고, 어플리케이션의 이용자들은 앱스토어를 통해 필요한 어플리케이션을 위한 파일을 다운로드받아 자신의 단말에 어플리케이션을 설치 및 구동할 수 있게 된다. 또한, 게임 퍼블리셔와 같이 다양한 게임 어플리케이션을 이용자들에게 배포하는 경우도 존재한다. 이처럼, 자신들이 직접 개발하지 않은 다양한 어플리케이션들을 개발자들로부터 등록받고, 등록받은 어플리케이션들을 이용자들에게 배포하는 어플리케이션 퍼블리셔들이 존재한다.The App store is an online content market that sells a variety of applications that can be loaded on terminals such as smart phones. For example, an application developer registers a file (for example, an Android application package (APK)) for installing the developed application on a terminal in the App Store, and users of the application The user can download the file for the application and install and operate the application in his / her terminal. There are also cases where various game applications such as game publishers are distributed to users. As such, there are application publishers that register various applications that developers themselves have not developed and distribute registered applications to users.
이때, 어플리케이션의 위험성은 다양한 관점에서 설명될 수 있다.At this time, the risk of the application can be explained from various viewpoints.
일례로, 어플리케이션의 첫 번째 위험성은 어플리케이션이 악성 코드와 같이 악의적인 의도로 개발된 정보를 포함함으로써, 어플리케이션이 등록되는 어플리케이션 퍼블리셔나 또는 어플리케이션이 설치 및 구동되는 이용자들의 단말에서 악의적인 기능을 수행하는 경우의 위험성을 들 수 있다. 한국공개특허 제10-2014-0098025호는 앱 스토어로 업로드 된 어플리케이션의 보안 평가를 위한 시스템 및 그 방법에 관한 것으로, 앱스토어에 등록될 어플리케이션이 악의적인 기능을 수행하는 것으로 탐지되는 경우, 해당 어플리케이션의 진입(앱스토어로의 등록)을 거절하는 기술에 대해 개시하고 있다.For example, the first risk of an application is that the application contains information developed with malicious intent, such as malicious code, so that the application publisher in which the application is registered, or a malicious function in the terminal of the user This is the risk of the case. Korean Patent Laid-Open No. 10-2014-0098025 relates to a system and method for security evaluation of an application uploaded to an application store. When an application to be registered in the application store is detected as performing a malicious function, (Registration in the AppStore) of the application.
다른 예로, 어플리케이션의 두 번째 위험성은 어플리케이션 자체의 보안성에 대한 위험성을 들 수 있다. 배포된 어플리케이션에 대한 분석을 통해 어플리케이션의 소스 코드가 변경 또는 수정됨에 따라 어플리케이션이 개발자에 의해 원래 의도된 기능이 아닌 다른 기능을 수행하게 됨으로써, 해당 어플리케이션을 통해 제공하고자 하는 서비스의 신뢰도가 감소하는 문제점이 존재한다. 따라서, 어플리케이션 퍼블리셔들은, 자신들이 직접 개발하지 않은 다양한 어플리케이션들(어플리케이션들의 설치 파일들)을 배포함에 있어서, 어플리케이션들에 대해 일정 수준 이상의 보안성을 제공할 필요성이 존재한다.As another example, the second risk of an application is the risk to the security of the application itself. As the source code of the application is changed or modified through the analysis of the distributed application, the application performs functions other than those originally intended by the developer, thereby reducing the reliability of the service to be provided through the application Lt; / RTI > Accordingly, there is a need for application publishers to provide a certain level of security to applications in distributing various applications (installation files of applications) that they have not developed directly.
그러나, 이러한 어플리케이션의 두 번째 위험성과 관련하여, 등록되는 어플리케이션마다 제공하는 보안 수준은 차이가 있다. 예를 들어, 각 어플리케이션들에는 서로 다른 보안 수준의 보안 솔루션들이 탑재되어 있을 수 있고, 아무런 보안수단도 포함되어 있지 않을 수 있다. 또한, 각 어플리케이션들에 탑재된 보안 솔루션들마다 제공하는 보안 수준에도 차이가 존재한다.However, with respect to the second risk of such an application, there is a difference in the level of security provided by each registered application. For example, each application may have security solutions at different security levels and may not include any security measures. There is also a difference in the level of security provided for each security solution installed in each application.
종래기술에서는 단순히 프로그래밍 언어 수준(일례로, 안드로이드 응용 프로그램 패키지(Android Application Package, APK)에 대해 자바(java) 단의 취약점 점검만을 진행할 수 있을 뿐, 어플리케이션 퍼블리셔의 관점에서는, 등록되는 수많은 어플리케이션들 각각에 대해 일정한 수준 이상으로 유지되는 보안성을 제공하기 어렵다는 문제점이 있다.In the prior art, only the vulnerability of the Java platform can be checked only at the programming language level (for example, the Android application package (APK)). From the viewpoint of the application publisher, There is a problem in that it is difficult to provide a security that is maintained at a certain level or more.
어플리케이션 퍼블리셔의 관점에서, 등록되는 어플리케이션에 적용된 보안 수준을 난독화(obfuscation), 취약점(vulnerability) 및 보안솔루션 각각의 관점에 따라 객관적인 방법으로 분석 및 파악하고, 분석된 정보를 제공하여 어플리케이션의 보안성 향상을 위해 활용할 수 있는 보안성 평가 방법 및 시스템을 제공한다.From the perspective of an application publisher, it analyzes and grasps the security level applied to the registered application in an objective way according to each viewpoint of obfuscation, vulnerability and security solution, and provides analyzed information, And provides a security evaluation method and system that can be utilized for improvement.
어플리케이션의 보안성을 평가하는 방법에 있어서, 패키지 파일을 난독화(obfuscation) 관점 및 취약점(vulnerability) 관점에 따라 분석하기 위한 관점별 패턴 정보를 저장하는 단계; 어플리케이션의 설치 및 구동을 위해 이용자들에게 배포하기 위한 패키지 파일을 등록받는 단계; 상기 등록된 패키지 파일을 상기 관점별 패턴 정보에 따라 분석하여, 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 생성하는 단계; 및 상기 생성된 분석정보를 제공하는 단계를 포함하는 것을 특징으로 하는 보안성 평가 방법을 제공한다.A method of evaluating security of an application, the method comprising: storing pattern information for each point of view for analyzing a package file according to obfuscation and vulnerability; Registering a package file for distribution to users for installation and operation of an application; Analyzing the registered package file according to the per-view pattern information to generate analytical information on the obfuscation point and analyzed information on the point of view of the vulnerability; And providing the generated analysis information. ≪ RTI ID = 0.0 > [10] < / RTI >
어플리케이션의 보안성을 평가하는 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 패키지 파일을 난독화(obfuscation) 관점 및 취약점(vulnerability) 관점에 따라 분석하기 위한 관점별 패턴 정보를 저장하고, 어플리케이션의 설치 및 구동을 위해 이용자들에게 배포하기 위한 패키지 파일을 등록받고, 상기 등록된 패키지 파일을 상기 관점별 패턴 정보에 따라 분석하여, 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 생성하고, 상기 생성된 분석정보를 제공하는 것을 특징으로 하는 보안성 평가 시스템을 제공한다.A system for assessing the security of an application, the system comprising: at least one processor implemented to execute computer readable instructions, the at least one processor being operable to cause a package file to be viewed in an obfuscation perspective and vulnerability, The method includes storing pattern information for each point of view for analysis according to a point of view, registering a package file for distribution to users for installing and running an application, analyzing the registered package file according to the point-of-view pattern information, And generates analysis information of the analysis viewpoint and the vulnerability viewpoint, and provides the generated analysis information.
상기 보안성 평가 방법을 컴퓨터에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체를 제공한다.And a computer program for causing the computer to execute the security evaluation method.
컴퓨터와 결합하여 상기 보안성 평가 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.There is provided a computer program stored in a computer-readable recording medium for causing a computer to execute the security evaluation method in combination with a computer.
어플리케이션 퍼블리셔의 관점에서, 등록되는 어플리케이션에 적용된 보안 수준을 난독화(obfuscation), 취약점(vulnerability) 및/또는 보안솔루션 각각의 관점에 따라 객관적인 방법으로 분석 및 파악하고, 분석된 정보를 제공하여 어플리케이션의 보안성 향상을 위해 활용할 수 있다.From the viewpoint of the application publisher, it analyzes and grasps the security level applied to the registered application in an objective way according to each viewpoint of obfuscation, vulnerability and / or security solution, and provides analyzed information, It can be utilized for improving security.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 보안성 평가 시스템의 블록 다이어그램이다.3 is a block diagram of a security evaluation system according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 있어서, 분석정보의 제공을 위해 보고서가 포함하는 정보의 예를 도시한 도면이다.4 is a diagram illustrating an example of information included in a report for providing analysis information in an embodiment of the present invention.
도 5는 본 발명의 일실시예에 있어서, 취약점 관점의 분석정보의 예를 도시한 도면이다.FIG. 5 is a diagram showing an example of analysis information of a viewpoint of a vulnerability in an embodiment of the present invention. FIG.
도 6은 본 발명의 일실시예에 있어서, 파싱된 dll 파일이 포함하는 클래스와 메서드의 예를 도시한 도면이다.6 is a diagram illustrating an example of a class and a method included in a parsed dll file according to an exemplary embodiment of the present invention.
도 7은 본 발명의 일실시예에 있어서, 파싱된 dll 파일에서 식별되는 클래스와 메서드에 기반한 난독화 관점의 분석정보의 예를 도시한 도면이다.FIG. 7 is a diagram illustrating an example of analysis information in terms of obfuscation based on classes and methods identified in a parsed dll file according to an exemplary embodiment of the present invention.
도 8은 본 발명의 일실시예에 있어서, 파싱된 so 파일에 대한 난독화 관점의 분석정보의 예를 도시한 도면이다.FIG. 8 is a diagram showing an example of analysis information in terms of obfuscation with respect to a parsed so file, according to an embodiment of the present invention.
도 9는 본 발명의 일실시예에 있어서, 파싱된 so 파일에 대한 난독화 관점의 분석정보의 다른 예를 도시한 도면이다.9 is a diagram showing another example of analysis information in terms of obfuscation with respect to a parsed so file, in an embodiment of the present invention.
도 10은 본 발명의 일실시예에 따른 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.10 is a block diagram illustrating an example of components that a processor of a server according to an embodiment of the present invention may include.
도 11은 본 발명의 일실시예에 따른 서버가 수행할 수 있는 보안성 평가 방법의 예를 도시한 흐름도이다.11 is a flowchart illustrating an example of a security evaluation method that can be performed by a server according to an embodiment of the present invention.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
본 발명의 실시예들에 따른 보안성 평가 시스템은 이후 설명될 서버를 통해 구현될 수 있으며, 본 발명의 실시예들에 따른 보안성 평가 방법은 상술한 서버를 통해 수행될 수 있다. 예를 들어, 서버에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 서버는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 보안성 평가 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터로 구현되는 서버와 결합되어 보안성 평가 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The security evaluation system according to embodiments of the present invention can be implemented through a server to be described later, and a security evaluation method according to embodiments of the present invention can be performed through the server described above. For example, a computer program according to an embodiment of the present invention may be installed and operated on a server, and the server may perform a security evaluation method according to an embodiment of the present invention under the control of a computer program have. The above-described computer program may be stored in a computer-readable recording medium in combination with a computer-implemented server to execute a security evaluation method on the computer.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. 1 shows an example in which a plurality of electronic devices 110, 120, 130, 140, a plurality of servers 150, 160, and a network 170 are included. 1, the number of electronic devices and the number of servers are not limited to those shown in FIG.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기 1(110)은 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices 110, 120, 130, 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of electronic devices 110, 120, 130 and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook, a digital broadcast terminal, a PDA (Personal Digital Assistants) ), And tablet PCs. For example, FIG. 1 illustrates the shape of a smartphone as an example of the first electronic device 110, but in the embodiments of the present invention, the first electronic device 110 transmits the network 170 using a wireless or wired communication method. May refer to any one of a variety of physical devices capable of communicating with other electronic devices 120, 130, 140 and / or servers 150,
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include a communication method using a communication network (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, as well as a short-range wireless communication between the devices. For example, the network 170 may be a personal area network (LAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN) , A network such as the Internet, and the like. The network 170 may also include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, It is not limited.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제1 서비스를 제공하는 시스템일 수 있으며, 서버(160) 역시 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제2 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 서버(150)는 어플리케이션 퍼블리셔의 시스템을 구성하는 장치들 중 적어도 일부일 수 있으며, 복수의 전자 기기들(110, 120, 130, 140)에 설치되어 동작되는 어플리케이션의 패키지 파일을 등록받아 배포하는 서비스를 상기 제1 서비스로서 제공할 수 있다. 다른 예로, 서버(160)는 배포된 패키지 파일을 통해 어플리케이션을 설치 및 구동하는 복수의 전자 기기들(110, 120, 130, 140)로 상기 어플리케이션과 연관된 서비스를 상기 제2 서비스로서 제공할 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130 and 140 through a network 170 to provide commands, codes, files, Lt; / RTI > devices. For example, the server 150 may be a system that provides a first service to a plurality of electronic devices 110, 120, 130, 140 connected through a network 170, 170, and 140 to the first and second electronic devices 110, 120, 130, and 140, respectively. More specifically, the server 150 may be at least a part of the apparatuses constituting the system of the application publisher, and the package file of the application installed and operated in the plurality of electronic apparatuses 110, 120, 130 and 140 may be registered And distribute the service as the first service. As another example, the server 160 may provide a service associated with the application as a second service to a plurality of electronic devices 110, 120, 130, 140 that install and operate the application through the distributed package file .
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 또한, 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 상술한 전자 기기 1(110) 또는 서버(150)와 동일한 또는 유사한 내부 구성을 가질 수 있다.2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. 2 illustrates an internal configuration of the electronic device 1 (110) and the server 150 as an example of the electronic device. Other electronic devices 120, 130, 140 and server 160 may also have the same or similar internal configuration as electronic device 1 110 or server 150 described above.
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(211, 221)와는 구분되는 별도의 영구 저장 장치로서 전자 기기 1(110)나 서버(150)에 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로, 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.The electronic device 1 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223 and input / output interfaces 214 and 224. The memories 211 and 221 may be a computer-readable recording medium and may include a permanent mass storage device such as a random access memory (RAM), a read only memory (ROM), and a disk drive. The non-decaying mass storage device such as a ROM and a disk drive may be included in the electronic device 110 or the server 150 as a separate persistent storage device different from the memory 211 or 221. The memory 211 and the memory 221 are provided with an operating system and at least one program code (for example, a program installed in the electronic device 1 (110) and used for a browser or an application installed in the electronic device 1 Code) can be stored. These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221. [ Such a computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, and a memory card. In other embodiments, the software components may be loaded into memory 211, 221 via communication modules 213, 223 rather than a computer readable recording medium. For example, at least one program may be a computer program installed by files provided by a file distribution system (e.g., the server 160 described above) that distributes installation files of developers or applications, May be loaded into the memory 211, 221 based on the application (e.g., the application described above).
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. The instructions may be provided to the processors 212 and 222 by the memories 211 and 221 or the communication modules 213 and 223. For example, the processor 212, 222 may be configured to execute a command received in accordance with a program code stored in a recording device, such as the memory 211, 221.
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 전자 기기 1(110) 및/또는 서버(150)가 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령, 컨텐츠, 파일 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication modules 213 and 223 may provide functions for the electronic device 1 110 and the server 150 to communicate with each other through the network 170 and may be provided to the electronic device 1 110 and / May provide a function for communicating with another electronic device (e.g., electronic device 2 120) or another server (e.g., server 160). The request generated by the processor 212 of the electronic device 1 110 according to the program code stored in the recording device such as the memory 211 is transmitted to the server 170 via the network 170 under the control of the communication module 213 150 < / RTI > Conversely, control signals, commands, contents, files, and the like provided under the control of the processor 222 of the server 150 are transmitted to the communication module 223 of the electronic device 110 via the communication module 223 and the network 170 213 to the electronic device 1 (110). For example, control signals, commands, contents, files, and the like of the server 150 received through the communication module 213 can be transmitted to the processor 212 or the memory 211, (The above-mentioned persistent storage device), which may further include a storage medium 110.
입출력 인터페이스(214)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(215)는 전자 기기 1(110)과 하나의 장치로 구성될 수도 있다. 또한, 서버(150)의 입출력 인터페이스(224)는 서버(150)와 연결되거나 서버(150)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.The input / output interface 214 may be a means for interfacing with the input / output device 215. For example, the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display, a speaker, and the like. As another example, the input / output interface 214 may be a means for interfacing with a device having integrated functions for input and output, such as a touch screen. The input / output device 215 may be composed of the electronic device 1 (110) and one device. The input / output interface 224 of the server 150 may be a means for interfacing with the server 150 or an interface with a device (not shown) for input or output that the server 150 may include. More specifically, when the processor 212 of the electronic device 1 (110) processes the command of the computer program loaded in the memory 211, the configuration is performed using the data provided by the server 150 or the electronic device 2 (120) A service screen or contents can be displayed on the display through the input / output interface 214. [
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있다.Also, in other embodiments, electronic device 1 110 and server 150 may include more components than the components of FIG. However, there is no need to clearly illustrate most prior art components. For example, electronic device 1 110 may be implemented to include at least a portion of input / output devices 215 described above, or may be implemented with other components such as a transceiver, Global Positioning System (GPS) module, camera, Elements. More specifically, when the electronic device 1 (110) is a smart phone, the acceleration sensor, the gyro sensor, the camera module, various physical buttons, buttons using a touch panel, input / output ports, A vibrator, and the like may be further included in the electronic device 1 (110).
도 3은 본 발명의 일실시예에 따른 보안성 평가 시스템의 블록 다이어그램이다. 도 3의 보안성 평가 시스템(300)은 앞서 설명한 서버(150)를 통해 구현될 수 있으며, 보안성 평가 시스템(300)이 포함하는 패키지 분해 모듈(310), 파일 식별 모듈(320), 파싱 모듈(330), 분석 모듈(340) 및 리포트 모듈(350)은 서버(150)의 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다.3 is a block diagram of a security evaluation system according to an embodiment of the present invention. The security evaluation system 300 shown in FIG. 3 can be implemented through the server 150 described above. The security evaluation system 300 includes a package decomposition module 310, a file identification module 320, The analysis module 340 and the report module 350 may be representations of different functions of the processor 222 of the server 150. For example,
예를 들어, 서버(150)의 프로세서(222)가 컴퓨터 프로그램이 포함하는 제어 명령에 따라 패키지 파일을 분해하는 프로세서(222)의 기능으로서 패키지 분해 모듈(310)이 이용될 수 있다.For example, the package decomposition module 310 may be used as a function of the processor 222 in which the processor 222 of the server 150 decomposes the package file according to control commands included in the computer program.
앞서 설명한 바와 같이, 서버(150)는 개발자들이 등록하는 어플리케이션의 패키지 파일들을 이용자들에게 배포하는 서비스를 제공할 수 있다.As described above, the server 150 may provide a service for distributing package files of applications registered by developers to users.
이때, 패키지 분해 모듈(310)은 등록된 패키지 파일들을 분해할 수 있다. 예를 들어, 안드로이드 응용 프로그램 패키지(Android Application Package, APK)는 모바일 운영체제인 안드로이드의 소프트웨어와 미들웨어 배포에 사용되는 패키지 파일의 파일 포맷으로서 '.apk' 확장자를 갖는다. 이하의 실시예들에서는 이러한 APK와 같은 패키지 파일을 기반으로 본 발명의 실시예들은 설명하나, 이러한 설명을 통해 다른 종류의 패키지 파일에도 동일 또는 유사한 특징이 적용될 수 있음을 당업자라면 쉽게 이해할 수 있을 것이다.At this time, the package decomposition module 310 can decompose the registered package files. For example, the Android Application Package (APK) has a file extension of '.apk' as the file format of the package file used for Android's software and middleware distribution, the mobile operating system. Although embodiments of the present invention are described based on a package file such as APK in the following embodiments, those skilled in the art can easily understand that the same or similar features can be applied to other kinds of package files through this description .
또한, APK는 이미 잘 알려져 있기 때문에 APK 파일 또는 APK 파일이 포함하는 파일들 자체에 대한 설명 역시 당업자가 이미 잘려진 종래기술들을 통해 쉽게 이해할 수 있을 것이며, 따라서 APK 파일 또는 APK 파일이 포함하는 파일들 자체에 대한 자세한 설명은 생략한다.Also, since the APK is already well known, the description of the files themselves included in the APK file or the APK file will also be easily understood by those skilled in the art through the already-cut conventional techniques, and thus the APK file or the files Will not be described in detail.
파일 식별 모듈(320)은 분해된 패키지 파일에 포함된 파일들을 식별할 수 있다. 도 3에서 나타난 확장자들('dex', 'so', 'dll', 'json', 'ini', 'apk', 'xml', 'cert')은 이미 설명한 바와 같이 APK와 관련된 종래기술들을 통해 당업자가 쉽게 이해할 수 있을 것이다.The file identification module 320 can identify files included in the decomposed package file. The extensions ('dex', 'so', 'dll', 'json', 'ini', 'apk', 'xml', 'cert') shown in FIG. 3, It will be readily apparent to those skilled in the art.
파싱 모듈(330)은 식별된 파일들을 파싱할 수 있다. 이를 위해, 파서(331)는 식별된 파일들 중 특정 확장자(일례로, 'dex', 'so', 'dll')의 파일들을 파싱할 수 있으며, 콜렉터(332)는 특정 확장자(일례로, 'json', 'ini', 'apk', 'xml', 'cert')의 파일들로부터 필요한 정보를 수집할 수 있다.The parsing module 330 may parse the identified files. To do this, the parser 331 may parse files of a particular extension (e.g., 'dex', 'so', 'dll') of the identified files and the collector 332 may parse the files of a particular extension You can gather the necessary information from the files 'json', 'ini', 'apk', 'xml', 'cert'
파싱된 정보들과 수집된 정보들은 분석 모듈(340)로 전달될 수 있다.The parsed information and the collected information may be passed to the analysis module 340.
분석 모듈(340)은 파싱 모듈(330)로부터 전달되는 정보들에 기반하여 해당 패키지 파일(또는 해당 패키지 파일을 통해 전자 기기 1(110)과 같은 이용자 단말에서 설치 및 구동되는 어플리케이션)에 대한 난독화(obfuscation) 관점, 취약점(vulnerability) 관점 및 보안솔루션 관점의 분석정보를 생성 및 제공할 수 있다.The analyzing module 340 analyzes the package file (or the application installed and operated on the user terminal such as the electronic device 1 110 through the package file) based on the information transmitted from the parsing module 330, vulnerability viewpoints, and security solutions from the viewpoints of security, obfuscation, vulnerability, and security solution.
예를 들어, 난독화 탐지 모듈(341)은 특정 확장자(일례로, 'dex', 'so', 'dll')의 파일들에 어느 정도 수준의 난독화가 적용되어 있는가에 대한 분석정보를 생성할 수 있다. 이를 위해, 난독화 탐지 모듈(341)은 파일의 종류에 따라 미리 설정되는 항목별로 난독화가 적용되어 있는지 여부 등을 판단할 수 있다.For example, obfuscation detection module 341 may generate analysis information about how much obfuscation is applied to files of a particular extension (e.g., 'dex', 'so', 'dll') . For this purpose, the obfuscation detection module 341 can determine whether obfuscation is applied to each item set in advance according to the type of the file.
또한, 취약점 탐지 모듈(342)은 특정 확장자(일례로, 'dex', 'so', 또는 설정(configuration) 파일의 확장자인 'config')의 파일들에 어떠한 취약점이 있는가에 대한 분석정보를 생성할 수 있다. 이를 위해, 보안성 평가 시스템(300)은 이미 알려진 취약점들에 대한 정보를 관리할 수 있으며, 취약점 탐지 모듈(342)은 이러한 취약점들에 대한 정보를 이용하여 어떠한 파일들에 어떠한 취약점이 존재하는가에 대한 분석정보를 생성할 수 있다.In addition, the vulnerability detection module 342 generates analysis information as to what vulnerability exists in the files of a specific extension (for example, 'dex', 'so', or the extension of the configuration file 'config' can do. To this end, the security evaluation system 300 can manage information on already known vulnerabilities, and the vulnerability detection module 342 uses information on the vulnerabilities to determine what vulnerabilities exist in which files Can be generated.
또한, 플랫폼 탐지 모듈(343)은 해당 어플리케이션이 개발된 플랫폼 및/또는 해당 어플리케이션이 동작하는 플랫폼에 대한 정보를 추출할 수 있다. 예를 들어, 보안성 평가 시스템(300)은 해당 어플리케이션이 어떠한 플랫폼(일례로, 유니티(Unity)나 코코스(Cocos)와 같은 개발 툴)에서 개발되었는가에 따라 서로 다른 분석 방식을 활용할 수 있다.In addition, the platform detection module 343 can extract information about a platform on which the application is developed and / or a platform on which the application operates. For example, the security assessment system 300 can utilize different analysis methods depending on the platform in which the application is developed (for example, a development tool such as Unity or Cocos).
또는, 보안성 평가 시스템(300)은 어플리케이션이 동작하는 플랫폼마다 패키지 파일이 포함하는 파일 포맷이 달라질 수 있기 때문에, 이러한 플랫폼마다 서로 다른 분석 방식을 활용할 수도 있다.Alternatively, since the file format of the package file may be different for each platform on which the application operates, the security evaluation system 300 may utilize different analysis methods for each platform.
이를 위해, 보안성 평가 시스템(300)은 패키지 파일에 대한 플랫폼에 대한 정보를 추출할 수 있으며, 이러한 정보에 기반하여 패키지 파일을 분석하거나 또는 추출된 플랫폼에 대한 정보를 외부로 제공할 수 있다.For this purpose, the security evaluation system 300 can extract information about the platform for the package file, analyze the package file based on the information, or provide the extracted platform information to the outside.
보안 툴 탐지 모듈(344)은 패키지 파일의 개발자들이 자체적으로 패키지 파일에 삽입한 보안솔루션을 탐지할 수 있다. 예를 들어, 제3자에 의해 라이브러리 형태로 제공되는 제1 보안 툴이 개발자에 의해 해당 패키지 파일에 추가되어 있을 수 있다. 다른 예로, 개발자가 자체 개발한 제2 보안 툴이 개발자에 의해 해당 패키지 파일에 추가되어 있을 수도 있다. 다시 말해, 보안 툴 탐지 모듈(344)은 이러한 보안 툴의 패키지 파일에 대한 적용 여부에 대한 분석정보를 생성할 수 있다.The security tool detection module 344 may detect the security solution that the developers of the package file themselves have inserted into the package file. For example, a first security tool provided in the form of a library by a third party may be added to the corresponding package file by the developer. As another example, the second security tool developed by the developer may be added to the corresponding package file by the developer. In other words, the security tool detection module 344 can generate analysis information on whether the security tool is applied to the package file.
관계 분석 모듈(345)은 패키지 파일이 포함하는 파일들간의 참조 관계에 대한 분석정보를 생성할 수 있다. 예를 들어, 제1 파일이 제2 파일을 호출하기 위한 코드를 포함하고 있는 경우, 제1 파일과 제2 파일간의 참조 관계에 대한 정보가 분석정보에 포함되도록 분석정보가 생성될 수 있다.The relationship analysis module 345 can generate analysis information on a reference relationship between files included in the package file. For example, when the first file includes a code for calling a second file, analysis information may be generated such that information about a reference relationship between the first file and the second file is included in the analysis information.
리포트 모듈(350)은 분석 모듈(340)에서 생성되는 분석정보들을 수집하여 보안성 평가 시스템(300)의 관계자(일례로 서버(150)의 관리자 또는 어플리케이션 퍼블리셔의 보안 검수 팀)에게 제공하기 위한 보고서를 생성할 수 있다. 이러한 보고서는 도 3의 예에서와 같이 HTML(Hypertext Markup Language)나 XML(eXtensible Markup Language)를 이용하여 관계자들의 단말로 제공될 수 있다.The report module 350 collects analysis information generated by the analysis module 340 and provides a report for providing the analysis information to the persons concerned (for example, the administrator of the server 150 or the security inspection team of the application publisher) of the security evaluation system 300 Lt; / RTI > Such a report can be provided to a terminal of an interested party using Hypertext Markup Language (HTML) or XML (extensible Markup Language) as in the example of FIG.
도 4는 본 발명의 일실시예에 있어서, 분석정보의 제공을 위해 보고서가 포함하는 정보의 예를 도시한 도면이다. 도 4는 발명의 이해를 돕기 위한 하나의 실시예로서 보고서가 포함하는 분석정보의 예나 분석정보의 전달 방식은 실시예에 따라 달라질 수 있다.4 is a diagram illustrating an example of information included in a report for providing analysis information in an embodiment of the present invention. FIG. 4 is a diagram for explaining an embodiment of the invention. The analysis information included in the report and the method of transmitting analysis information may vary according to the embodiment.
예를 들어, 패키지 파일의 파일 포맷이 안드로이드가 아닌 다른 운영체제를 위한 파일 포맷인 경우, 패키지 파일이 포함하는 파일들에 대한 정보나 그 구성 방식이 파일 포맷에 따라 달라질 수 있음을 당업자가 쉽게 이해할 수 있을 것이다. 이후 설명되는 파일들(410 내지 480)은 해당 파일들이 포함하는 정보를 사용자에게 유의미하도록 정리하여 표현하기 위한 템플릿 정보 등을 포함할 수도 있다.For example, if the file format of the package file is a file format for an operating system other than Android, it is easily understood by those skilled in the art that the information about the files included in the package file and the configuration method thereof may vary depending on the file format. There will be. The files 410 to 480 to be described later may include template information for organizing the information included in the files so as to be meaningful to the user.
'Report.html' 파일(410)은 대상이 되는 패키지 파일의 전체 취약점 등급에 대한 정보와 해당 패키지 파일에 적용된 보안 툴에 대한 정보를 포함할 수 있다.The 'Report.html' file 410 may include information on the overall vulnerability class of the target package file and information on the security tool applied to the package file.
'WikiReport.html' 파일(420)은 패키지 파일이 포함하는 모듈별, 또는 파일별 난독화 등급에 대한 정보와 난독화에 대한 다른 정보를 포함할 수 있다.The 'WikiReport.html' file 420 may include information on the obfuscation level for each module or file included in the package file, and other information about obfuscation.
'Packages.html' 파일(430)은 패키지 파일에 포함된 파일들(일례로, plist 파일, so 파일, xml 파일, json 파일, 등)에 대한 정보를 포함할 수 있다.The 'Packages.html' file 430 may include information on files included in the package file (for example, plist file, so file, xml file, json file, etc.).
'Platfrom.html' 파일(440)은 유니티(Unity)나 코코스(Cocos)와 같은 개발 툴과 같이 해당 패키지 파일이 어떠한 플랫폼에서 개발되었는가에 대한 정보를 포함할 수 있다.The 'Platfrom.html' file 440 may include information about the platform on which the corresponding package file is developed, such as a development tool such as Unity or Cocos.
'Perm.html' 파일(450)은 안드로이드 퍼미션(Android permintion)의 사용에 대한 리스트에 대한 정보를 포함할 수 있다.The ' Perm.html ' file 450 may include information about a list of usage of Android permits.
'Correlation.html' 파일(460)은 패키지 파일의 모듈들간의 또는 파일들간의 호출 관계에 대한 정보를 포함할 수 있다.The 'Correlation.html' file 460 may include information about the relationship between the modules of the package file or between the files.
'AppliedSecurityTool.html' 파일(470)은 패키지 파일에 적용된 보안 툴에 대한 리스트 정보를 포함할 수 있다. 또한, 'AppliedSecurityTool.html' 파일(470)은 적용된 보안 툴 각각의 종류나 버전에 대한 정보를 더 포함할 수도 있다.The 'AppliedSecurityTool.html' file 470 may contain list information about security tools applied to the package file. In addition, the 'AppliedSecurityTool.html' file 470 may further include information on the type and version of each applied security tool.
'dll, so files information'(480)은 각 파일에 포함된 특정 항목에 대한 정보를 포함할 수 있다. 예를 들어, so 파일의 IAT(Import Address Table), EAT(Export Address Table), 섹션 헤더(section header), 프로그램 헤더(Program header), 심볼(symbol) 등에 대한 정보가 'dll, so files information'(480)에 포함되어 제공될 수 있다.'dll, so files information' (480) may contain information about a particular item contained in each file. For example, if information about an IAT (Import Address Table), an EAT (Export Address Table), a section header, a program header, a symbol, etc. of a so file is 'dll, so files information' (480). ≪ / RTI >
도 5는 본 발명의 일실시예에 있어서, 취약점 관점의 분석정보의 예를 도시한 도면이다.FIG. 5 is a diagram showing an example of analysis information of a viewpoint of a vulnerability in an embodiment of the present invention. FIG.
도 5의 표(500)에서 'type'은 해당 항목이 취약점 관점의 분석정보임을 나타내고 있다. 또한, 도 5의 표(500)에서 'name'은 어떠한 취약점인지를 나타내는 식별자를 나타낼 수 있다. 또한, 도 5의 표(500)에서 'dangerous grade'는 탐지된 취약점의 위험등급을 나타낼 수 있다. 또한, 도 5의 표(500)에서 'detected log'는 해당 취약점이 패키지 파일이 포함하는 파일들 중 어느 파일에서 탐지되었는지를 나타내기 위해 해당 파일의 식별자(경로를 포함하는 파일명)와 취약점과 관련된 정보(일례로, 어떠한 오픈 소스에서 발견된 취약점인지에 대한 식별자)를 나타낼 수 있다.In the table 500 of FIG. 5, 'type' indicates that the item is analysis information of the vulnerability viewpoint. In the table 500 of FIG. 5, 'name' may indicate an identifier indicating a certain vulnerability. Also, 'dangerous grade' in the table 500 of FIG. 5 may indicate the severity of the detected vulnerability. In the table 500 shown in FIG. 5, 'detected log' indicates a vulnerability associated with an identifier (a file name including a path) of the corresponding file and a vulnerability associated with the vulnerability so as to indicate which one of the files included in the package file, Information (e.g., an identifier for a vulnerability found in any open source).
도 6은 본 발명의 일실시예에 있어서, 파싱된 dll 파일이 포함하는 클래스와 메서드의 예를 도시한 도면이고, 도 7은 본 발명의 일실시예에 있어서, 파싱된 dll 파일에서 식별되는 클래스와 메서드에 기반한 난독화 관점의 분석정보의 예를 도시한 도면이다.FIG. 6 is a diagram illustrating an example of a class and a method included in a parsed dll file according to an exemplary embodiment of the present invention. FIG. 7 illustrates an example of a class And methods based on obfuscation analysis information.
도 6의 네모박스(600)는 패키지 파일이 포함하는 so 파일에서 추출된 클래스(class)들과 메서드(method)들 각각의 식별정보를 나타내고 있다. 일례로, 도 3을 통해 설명한 난독화 탐지 모듈(341)은 도 6에서와 같이 추출된 클래스들과 메서드들을 분석하여 난독화된 클래스와 난독화된 메서드를 파악할 수 있다.The square box 600 of FIG. 6 shows identification information of each of classes and methods extracted from a so file included in the package file. For example, the obfuscation detection module 341 described with reference to FIG. 3 can identify the obfuscated class and the obfuscated method by analyzing the extracted classes and methods as shown in FIG.
이때, 보안성 평가 시스템(300)은 도 7의 표(700)에서와 같이 난독화 관점의 분석정보를 생성할 수 있다.At this time, the security evaluation system 300 can generate analysis information on the obfuscation point as shown in the table 700 of FIG.
도 7의 표(700)에서 'name'은 해당 dll 파일의 식별자를, 'dangerous grade'는 해당 dll 파일의 난도화 관점의 위험등급을, 'detected log'는 난독화에 대한 정보를 각각 나타낼 수 있다.In the table 700 of FIG. 7, 'name' indicates the identifier of the corresponding dll file, 'dangerous grade' indicates the degree of danger of tampering of the corresponding dll file, and 'detected log' indicates information about obfuscation have.
이때, 도 7의 표(700)에서 'MethodCrypted'는 메서드에 난독화가 적용되어 있는지 여부를 나타낼 수 있으며, 이때, 'yes'는 메서드에 난독화가 적용되어 있음을 나타내는 값일 수 있다.In this case, 'MethodCrypted' in the table 700 of FIG. 7 may indicate whether obfuscation is applied to the method, and 'yes' may be a value indicating that obfuscation is applied to the method.
또한, 도 7의 표(700)에서 'TotalClassNum=23'은 해당 dll 파일에서 추출된 클래스의 수가 23개임을 의미할 수 있고, 'TotalMethodNum=23'은 해당 dll 파일에서 추출된 메서드의 수가 23개임을 의미할 수 있다.In the table 700 of FIG. 7, 'TotalClassNum = 23' means that the number of classes extracted from the corresponding dll file is 23, 'TotalMethodNum = 23' means that the number of methods extracted from the corresponding dll file is 23 . ≪ / RTI >
한편, 도 7의 표(700)에서 'TotalObfuscatedClassNum=2'은 해당 dll 파일이 포함하는 23개의 클래스들 중 2개의 클래스에만 난독화가 적용되어 있음을 의미할 수 있다. 또한, 도 7의 표(700)에서 'TotalObfuscatedMethodNum=7'은 해당 dll 파일이 포함하는 23개의 메서드들 중 7개의 클래스에만 난독화가 적용되어 있음을 의미할 수 있다.Meanwhile, 'TotalObfuscatedClassNum = 2' in the table 700 of FIG. 7 may mean that obfuscation is applied to only two classes out of the 23 classes included in the corresponding dll file. In the table 700 of FIG. 7, 'TotalObfuscatedMethodNum = 7' may mean that obfuscation is applied only to 7 classes among the 23 methods included in the corresponding dll file.
이때, 보안성 평가 시스템(300) 또는 난독화 탐지 모듈(341)은 이러한 난독화가 적용된 클래스의 수 및/또는 난독화가 적용된 메서드의 수에 기반하여 해당 dll 파일의 난독화 관점의 위험등급을 결정할 수 있다. 예를 들어, 전체 클래스/메서드의 수 중 난독화가 적용된 클래스/메서드의 수에 대한 비율에 기반하여 난독화 관점의 위험등급이 결정될 수 있다. 보다 구체적인 예로, 상기 비율이 높을수록 상대적으로 난독화 관점의 위험등급은 낮아질 수 있다.At this time, the security evaluation system 300 or the obfuscation detection module 341 can determine the degree of danger of obfuscation of the corresponding dll file based on the number of obfuscated classes and / or the number of obfuscated methods have. For example, the severity of obfuscation can be determined based on the ratio of the number of classes / methods to the number of obfuscated classes across all classes / methods. As a more specific example, the higher the ratio, the lower the degree of risk of relative obfuscation.
도 8은 본 발명의 일실시예에 있어서, 파싱된 so 파일에 대한 난독화 관점의 분석정보의 예를 도시한 도면이고, 도 9는 본 발명의 일실시예에 있어서, 파싱된 so 파일에 대한 난독화 관점의 분석정보의 다른 예를 도시한 도면이다.FIG. 8 is a diagram showing an example of analysis information in terms of obfuscation with respect to a parsed so file according to an embodiment of the present invention. And shows another example of analysis information in terms of obfuscation.
도 8의 표(800)는 'libopenal.so' 파일에 대한 난독화 관점의 위험등급이 안전한(SAFE) 등급임을 나타내고 있으며, 도 9의 표(900)는 'libnmscrash64-v1.so' 파일에 대한 난독화 관점의 위험등급이 치명적인(CRITICAL) 등급임을 각각 나타내고 있다.The table 800 in FIG. 8 indicates that the danger level of the obfuscation point for the file 'libopenal.so' is a safe (SAFE) rating, and the table 900 in FIG. 9 indicates that the file 'libnmscrash64-v1.so' And the risk level of obfuscation is CRITICAL.
이를 위해, 보안성 평가 시스템(300) 또는 난독화 탐지 모듈(341)은 so 파일들 각각이 포함하는 항목들에 난독화가 적용되어 있는지 여부를 판단하고, 이러한 난독화 적용 정도에 따라 난독화 관점의 위험등급을 결정할 수 있다. 예를 들어, 도 8 및 도 9에서는 so 파일들 각각이 포함하는 항목들로서 세션 헤더(sectionHeader), 스트링(string), 스트링 테이블(string table), 심볼 테이블(symbol table) 및 코드를 나타내고 있다. 여기서, 'yes'는 난독화가 적용되어 있음을 의미하는 값일 수 있고, 'no'는 난독화가 적용되어 있지 않음을 의미하는 값일 수 있다.To this end, the security evaluation system 300 or the obfuscation detection module 341 determines whether obfuscation is applied to the items included in each of the so files, and determines whether obfuscation is applied according to the degree of obfuscation. The risk level can be determined. For example, in FIGS. 8 and 9, items included in each of the so files are a section header, a string, a string table, a symbol table, and a code. Here, 'yes' may be a value indicating that obfuscation is applied, and 'no' may be a value indicating that obfuscation is not applied.
이때, 도 8의 실시예에서는 'libopenal.so' 파일의 세션 헤더(sectionHeader)와 심볼 테이블(symbol table)에 난독화가 적용되어 있으며, 'libopenal.so' 파일의 코드가 패킹('codepacking=yes')되어 있기 때문에 'libopenal.so' 파일의 난독화 관점의 위험등급이 낮게 결정된 예를 나타내고 있다. 코드가 패킹된 경우, 패킹된 코드의 원래 코드를 쉽게 얻기 어렵기 때문에 이러한 코드 패킹 여부 역시 난독화의 적용 여부로서 활용할 수 있다.In the embodiment of FIG. 8, obfuscation is applied to the session header and symbol table of the 'libopenal.so' file, and the code of the 'libopenal.so' file is packed ('codepacking = yes' ), So the risk level of obfuscation in the 'libopenal.so' file is determined to be low. If the code is packed, it is difficult to obtain the original code of the packed code easily.
반면, 도 9의 실시예에서는 'libnmscrash64-v1.so' 파일과 관련하여 기 선정된 항목들 모두에 대해 난독화가 적용되어 있지 않기 때문에, 'libnmscrash64-v1.so' 파일의 난독화 관점의 위험등급이 높게 결정된 예를 나타내고 있다.On the other hand, in the embodiment of FIG. 9, since obfuscation is not applied to all of the predetermined items with respect to the file 'libnmscrash64-v1.so', the danger level of obfuscation in the file 'libnmscrash64-v1.so' Is a highly determined example.
이처럼, 보안성 평가 시스템(300)은 파일의 종류에 따라 서로 다른 종류의 항목들(일례로, dll 파일에서는 클래스나 메서드의 항목들, so 파일에서는 세션 헤더, 스트링, 스트링 테이블, 심볼 테이블 및/또는 코드 등의 항목들)에 대한 난독화의 적용 여부를 확인하고, 이러한 난독화의 적용 여부에 따라 해당 파일들의 난독화 관점의 위험등급을 자동적으로 결정하여 분석정보를 생성할 수 있다.As described above, the security evaluation system 300 is a system in which different types of items (for example, items of a class or method in a dll file, a session header, a string, a string table, a symbol table and / Or code), and the analysis information can be generated by automatically determining the risk level of the obfuscation point of the files according to whether the obfuscation is applied or not.
보안성 평가 시스템(300)은 난독화 관점과 취약점 관점, 및/또는 보안솔루션 관점 각각에 대해 관점별 패턴 정보를 미리 생성 및 관리하고, 이러한 관점별 패턴 정보를 이용하여 파일별로 난독화 관점의 분석정보와 취약점 관점의 분석정보, 및/또는 보안솔루션 관점의 분석정보를 생성할 수 있다. 생성된 분석정보는 관계자에게 제공될 수 있다. 또한, 관계자를 통해 추가의 관점별 패턴 정보가 더 입력될 수도 있다. 예를 들어, 기존 오픈 소스의 새로운 취약점이 발견되거나 또는 이미 제공된 분석정보에 기반하여 난독화와 취약점 등을 분석하기 위한 새로운 패턴 정보가 개발될 수도 있다. 이를 위해, 보안성 평가 시스템(300)은 입력되는 관점별 패턴 정보를 기 저장된 관점별 패턴 정보에 추가함으로써, 기 저장된 관점별 패턴 정보를 갱신할 수 있다. 이때, 새로운 패턴 정보에 따른 추가 분석을 위해, 등록되어 있는 패키지 파일들에 대한 추가 분석이 진행될 수 있다.The security evaluation system 300 generates and manages pattern information for each point of view in terms of the obfuscation point, the vulnerability point of view, and / or the security solution point of view, and analyzes the obfuscation point of view Analysis information from information and vulnerability viewpoints, and / or analysis information from a security solution perspective. The generated analysis information can be provided to the persons concerned. Further, pattern information for each additional viewpoint may be further input through the participant. For example, new pattern information may be developed for analyzing obfuscation and vulnerability based on existing open source new vulnerabilities or already provided analysis information. To this end, the security evaluation system 300 can update the previously stored pattern information for each viewpoint by adding the inputted pattern information for each viewpoint to the previously stored pattern information for each viewpoint. At this time, additional analysis may be performed on the registered package files for further analysis according to the new pattern information.
도 10은 본 발명의 일실시예에 따른 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 11은 본 발명의 일실시예에 따른 서버가 수행할 수 있는 보안성 평가 방법의 예를 도시한 흐름도이다.FIG. 10 is a block diagram illustrating an example of a component that a processor of a server according to an exemplary embodiment of the present invention may include; FIG. 11 is a diagram illustrating a security evaluation performed by a server according to an exemplary embodiment of the present invention; Fig. 2 is a flowchart showing an example of a method. Fig.
본 발명의 실시예들에 따른 보안성 평가 시스템은 앞서 설명한 서버(150)와 같은 컴퓨터 장치의 형태로 구현될 수 있다. 또한, 도 10에 도시된 바와 같이 서버(150)의 프로세서(222)는 보안성 평가 시스템을 구현하기 위한 구성요소들로서 관점별 패턴 정보 저장부(1010), 패키지 파일 등록부(1020), 분석정보 생성부(1030), 분석정보 제공부(1040) 및 추가 패턴 정보 처리부(1050)를 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 11의 보안성 평가 방법이 포함하는 단계들(1110 내지 1180)을 수행할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(222)의 구성요소들은 서버(150)에 저장된 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(222)가 상술한 제어 명령에 따라 관점별 패턴 정보를 저장하는 프로세서(222)의 기능적 표현으로 관점별 패턴 정보 저장부(1010)가 사용될 수 있다.The security evaluation system according to embodiments of the present invention may be implemented in the form of a computer device such as the server 150 described above. 10, the processor 222 of the server 150 is a component for implementing the security evaluation system. The processor 222 of the server 150 includes a per-view pattern information storage unit 1010, a package file registration unit 1020, 1030, an analysis information providing unit 1040, and an additional pattern information processing unit 1050. The components of the processor 222 and the processor 222 may perform the steps 1110 to 1180 included in the security evaluation method of FIG. At this time, the components of the processor 222 and the processor 222 may be implemented to execute control instructions according to code of the operating system or code of at least one program that the memory 221 includes. Here, the components of processor 222 may be representations of different functions of processor 222 performed by processor 222 in accordance with the control instructions provided by the code stored in server 150 . For example, the per-perspective pattern information storage unit 1010 may be used as a functional representation of the processor 222 in which the processor 222 stores per-view pattern information according to the control command described above.
단계(1110)에서 관점별 패턴 정보 저장부(1010)는 패키지 파일을 난독화(obfuscation) 관점 및 취약점(vulnerability) 관점에 따라 분석하기 위한 관점별 패턴 정보를 저장할 수 있다. 패턴 정보는 관점별, 파일의 종류별 및/또는 플랫폼의 종류별 등에 따라 등록된 패키지 파일을 어떤 방식으로 분석할 것인가에 대한 정보를 포함할 수 있다.In step 1110, the per-view pattern information storage unit 1010 may store per-view pattern information for analyzing the package file in terms of obfuscation and vulnerability. The pattern information may include information on how to analyze the registered package file according to the viewpoint, the file type, and / or the platform type.
단계(1120)에서 패키지 파일 등록부(1020)는 어플리케이션의 설치 및 구동을 위해 이용자들에게 배포하기 위한 패키지 파일을 등록받을 수 있다. 예를 들어, 패키지 파일 등록부(1020)는 개발자의 단말로부터 네트워크를 통해 서버(150)로 전송되는 패키지 파일 또는 별도의 기록매체를 통해 서버(150)로 입력되는 패키지 파일을 등록할 수 있다. 등록된 패키지 파일들은 해당 어플리케이션을 이용하고자 하는 이용자들에게 배포될 수 있으나, 그 전에 일정 수준 이상의 보안성을 제공하기 위해, 보안성 평가가 진행될 수 있다.In step 1120, the package file registration unit 1020 may register a package file for distribution to users for installation and operation of the application. For example, the package file registration unit 1020 can register a package file input to the server 150 through a package file transmitted from the developer terminal to the server 150 via the network or a separate recording medium. The registered package files may be distributed to users who want to use the application, but the security evaluation may be performed before providing a certain level of security.
단계(1230)에서 분석정보 생성부(1030)는 등록된 패키지 파일을 관점별 패턴 정보에 따라 분석하여, 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 생성할 수 있다.In step 1230, the analysis information generation unit 1030 analyzes the registered package file according to the pattern information for each point of view, and generates analysis information on the obfuscation point and analysis information on the point of view of the vulnerability.
예를 들어, 분석정보 생성부(1030)는 등록된 패키지 파일을 분해하여 패키지 파일이 포함하는 파일들을 식별할 수 있다. 또한, 분석정보 생성부(1030)는 식별된 파일들의 확장자에 기반하여 분석이 요구되는 파일을 관점별로 식별하고, 관점별로 식별된 파일마다 대응하는 관점의 분석정보를 생성할 수 있다.For example, the analysis information generation unit 1030 may identify the files included in the package file by decomposing the registered package file. In addition, the analysis information generation unit 1030 can identify the files for which analysis is requested based on the extensions of the identified files, and generate analysis information of the viewpoints corresponding to the files identified by the viewpoints.
보다 구체적으로, 관점별 패턴 정보 중 난독화 관점의 패턴 정보는, 등록된 패키지 파일이 포함하는 파일들 중 난독화의 관점으로 식별된 파일로부터 항목별 난독화 적용 여부를 식별하기 위한 패턴 정보를 포함할 수 있다.More specifically, the obfuscation-based pattern information among the per-view pattern information includes pattern information for identifying whether obfuscation is applied for each item from a file identified as an obfuscation out of the files included in the registered package file can do.
일실시예에서 항목별 난독화 적용 여부는, 난독화의 관점으로 식별된 파일이 포함하는 메서드와 클래스 각각에 대한 난독화 적용 여부를 포함할 수 있다. 이 경우, 분석정보 생성부(1030)는 단계(1230)에서 난독화 관점의 패턴 정보에 따라 난독화의 관점으로 식별된 파일에서 난독화가 적용된 메서드 및 클래스를 식별하여, 대상 파일별로 (1) 난독화가 적용된 메서드의 수, (2) 난독화가 적용된 클래스의 수, (3) 난독화가 적용된 메서드의 수 및 난독화가 적용된 클래스의 수에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성할 수 있다. 이러한 분석정보의 생성에 대해서는 도 6 및 도 7을 통해 자세히 설명한 바 있다.In one embodiment, whether or not obfuscation is applied to each item may include obfuscation for each of the methods and classes included in the file identified in terms of obfuscation. In this case, the analysis information generation unit 1030 identifies the obfuscated method and class in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view in step 1230, (2) the number of obfuscated classes, (3) the number of obfuscated methods, and (4) the degree of danger determined based on the number of obfuscated classes. can do. The generation of such analysis information has been described in detail with reference to FIG. 6 and FIG.
다른 실시예에서, 항목별 난독화 적용 여부는, 난독화의 관점으로 식별된 파일이 포함하는 섹션 헤더(section header), 스트링(string), 스트링 테이블(string table), 심볼 테이블(symbol table) 및 코드 중 적어도 하나의 항목에 대응하는 정보 각각에 대한 난독화 적용 여부를 포함할 수 있다. 이 경우, 분석정보 생성부(1030)는 단계(1230)에서 난독화 관점의 패턴 정보에 따라 난독화의 관점으로 식별된 파일에서 난독화가 적용된 항목들을 식별하고, 대상 파일별로 (1) 난독화가 적용된 항목의 종류 및 (2) 난독화가 적용된 항목의 종류에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성할 수 있다.In another embodiment, whether or not item obfuscation is applied may include a section header, a string, a string table, a symbol table, and a section header included in the file identified from the obfuscation point of view. And whether to obfuscate each of the information corresponding to at least one item of the code. In this case, the analysis information generation unit 1030 identifies the obfuscated items in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view in step 1230, and (1) The type of the item, and (2) the type of item to which the obfuscation is applied.
또한, 관점별 패턴 정보 중 취약점 관점의 패턴 정보는, 취약점이 존재하는 것으로 알려진 프로토콜, 라이브러리 및 API(Application Programming Interface) 중 적어도 하나에 대한 취약점 정보를 포함할 수 있다. 이 경우, 분석정보 생성부(1030)는 단계(1230)에서 취약점 관점의 패턴 정보에 따라, 등록된 패키지 파일이 포함하는 파일들 중 취약점 정보에 대응하는 프로토콜, 라이브러리 또는 API를 포함하는 파일을 식별하고, (1) 식별된 파일의 식별자 및 (2) 식별된 파일에 포함된 취약점의 종류에 기반하여 결정되는 위험등급을 포함하는 취약점 관점의 분석정보를 생성할 수 있다.In addition, the pattern information of the point of view of the weak point among the pattern information by point of view may include vulnerability information for at least one of a protocol, a library, and an API (Application Programming Interface) known to have a vulnerability. In this case, in step 1230, the analysis information generation unit 1030 identifies a file including a protocol, a library, or an API corresponding to the vulnerability information among the files included in the registered package file, according to the pattern information of the vulnerability point of view And generate analysis information of the vulnerability view including (1) an identifier of the identified file, and (2) a risk level determined based on the type of the vulnerability included in the identified file.
또한, 앞서 설명한 바와 같이 보안솔루션 관점의 분석정보가 더 생성될 수 있다. 예를 들어, 관점별 패턴 정보 저장부(1010)는 단계(1110)에서 패키지 파일을 보안솔루션 관점에 따라 분석하기 위한 관점별 패턴 정보를 더 저장할 수 있다. 이 경우, 분석정보 생성부(1030)는 단계(1230)에서 등록된 패키지 파일을 상기 보안솔루션 관점에 대응하는 관점별 패턴 정보에 따라 더 분석하여, 보안솔루션 관점의 분석정보를 더 생성할 수 있다.In addition, as described above, analysis information from the perspective of a security solution can be further generated. For example, the per-view pattern information storage unit 1010 may further store per-view pattern information for analyzing the package file according to the security solution view in step 1110. In this case, the analysis information generation unit 1030 may further analyze the package file registered in step 1230 according to the per-view pattern information corresponding to the viewpoint of the security solution, and further generate the analysis information of the security solution view .
단계(1140)에서 분석정보 제공부(1040)는 생성된 분석정보를 제공할 수 있다. 이미 설명한 바와 같이 생성된 분석정보는 관계자(일례로 서버(150)의 관리자 또는 어플리케이션 퍼블리셔의 보안 검수 팀)에게 제공될 수 있다. 이미 설명한 바와 같이, 패키지 파일이 포함하는 파일들간의 참조관계에 대한 분석정보가 더 생성될 수 있다. 이 경우, 분석정보 제공부(1040)는 참조관계에 대한 분석정보를 더 제공할 수 있다. 분석 및 제공되는 정보들에 대해서는 이미 자세히 설명한 바 있다.In step 1140, the analysis information providing unit 1040 may provide the generated analysis information. The analysis information generated as described above may be provided to an interested party (e.g., an administrator of the server 150 or a security verification team of an application publisher). As already described, analysis information on the reference relationship between the files included in the package file can be further generated. In this case, the analysis information providing unit 1040 may further provide analysis information on the reference relationship. The analysis and the information provided have already been described in detail.
단계(1150)에서 추가 패턴 정보 처리부(1050)는 분석정보의 제공과 연관하여 추가의 관점별 패턴 정보를 입력받을 수 있다. 예를 들어, 추가 패턴 정보 처리부(1050)는 분석정보가 제공되는 관계자로부터 추가의 관점별 패턴 정보를 입력받을 수 있다. 보다 구체적인 예로, 오픈 소스에 대한 새로운 취약점이 발견됨에 따라 새로운 취약점을 탐지하기 위한 패턴 정보가 관계자로부터 입력될 수 있다. 또는 새로운 파일 포맷 등이 개발되어 상용화되는 경우, 이러한 새로운 파일 포맷에 따른 패키지 파일을 분석하기 위한 관점별 패턴 정보들이 입력될 수도 있다. In step 1150, the additional pattern information processing unit 1050 can receive additional pattern information for each point of view in association with the provision of the analysis information. For example, the additional pattern information processing unit 1050 can receive additional pattern information for each point of view from the person to whom the analysis information is provided. As a more specific example, as new vulnerabilities in open source are discovered, pattern information for detecting new vulnerabilities can be input from the relevant parties. Or a new file format is developed and commercialized, pattern information for each point of view for analyzing the package file according to the new file format may be inputted.
단계(1160)에서 추가 패턴 정보 처리부(1050)는 입력된 관점별 패턴 정보를 이용하여 저장된 관점별 패턴 정보를 갱신할 수 있다. 이때, 추가 패턴 정보 처리부(1050)는 단순히 입력된 관점별 패턴 정보를 저장된 관점별 패턴 정보에 추가할 수도 있고, 입력된 관점별 패턴 정보와 기 저장된 관점별 패턴 정보를 서로 교환할 수도 있다.In step 1160, the additional pattern information processing unit 1050 can update the stored pattern information for each point of view by using the inputted pattern information for each point of view. At this time, the additional pattern information processing unit 1050 may simply add the inputted pattern information for each point of view to the stored pattern information for each point of view, or exchange the inputted pattern information for each point of view and the pattern information for each point of view.
단계(1170)에서 분석정보 생성부(1030)는 입력된 관점별 패턴 정보 또는 갱신된 관점별 패턴 정보에 따라 등록된 패키지 파일들 각각을 재분석하여 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 등록된 패키지 파일마다 각각 재생성할 수 있다.In step 1170, the analysis information generation unit 1030 reanalyzes each of the package files registered in accordance with the entered pattern information for each point of view or the updated point information for each point of view to analyze the obfuscation analysis information and the vulnerability point analysis information Each of the registered package files can be regenerated.
단계(1180)에서 분석정보 제공부(1040)는 재생성된 분석정보를 제공할 수 있다.In step 1180, the analysis information providing unit 1040 may provide the regenerated analysis information.
또한, 보안성 평가 시스템은 취약점을 예외처리하기 위한 기능을 제공할 수도 있다. 예를 들어, 보안성 평가 시스템에 의해 취약점 관점의 패턴 정보에 따라 취약점이 존재하는지 여부를 탐지함에 있어서, 프로그램적으로 파일들에 대한 정확한 취약점 탐지가 이루어지지 않는 경우가 존재할 수 있다. 예를 들어, 특정한 취약점 관점의 패턴 정보를 통해 정상적인 파일이 탐지되고, 이러한 패턴 정보를 프로그램적으로 수정할 수 없는 경우가 존재할 수 있다. 이 경우, 보안성 평가 시스템은 이미 잘 알려진 취약점에 대한 취약점 관점의 패턴 정보라 하더라도 취약점 탐지에서 제외시키기 위한 예외처리 기능을 제공할 수 있다.In addition, the security evaluation system may provide a function for exception processing of a vulnerability. For example, there may be cases where the security vulnerability assessment system does not detect an accurate vulnerability of files in a program in detecting whether a vulnerability exists according to pattern information of the vulnerability point of view. For example, there may be a case where a normal file is detected through pattern information of a specific vulnerability viewpoint, and such pattern information can not be modified programmatically. In this case, the security assessment system can provide an exception handling function to exclude from the vulnerability detection even if the pattern information of the vulnerability point of view is already well known.
또한, 보안성 평가 시스템은 난독화와 취약점에 대한 분석결과에 대한 지표 관리 기능을 제공할 수 있다. 예를 들어, 보안성 평가 시스템은 특정한 취약점이 탐지되는 수를 시간에 따라 기록하여 일정 기간 단위로 해당 취약점이 탐지되는 횟수가 증가하는지 혹은 감소하는지에 대한 정보와 같은 통계적인 정보를 제공할 수 있다. 다른 예로, 보안성 평가 시스템은 패키지 파일들에 대해 적용이 증가하고 있는 난독화 기술 혹은 적용이 감소하고 있는 난독화 기술에 대한 정보와 같은 지표를 제공할 수도 있다.In addition, the security evaluation system can provide obfuscation and index management functions for analysis results of vulnerability. For example, the security assessment system may provide statistical information, such as information on the number of times a specific vulnerability is detected, over time, and whether the number of times the vulnerability is detected increases or decreases over a period of time . In another example, the security assessment system may provide indicators such as an obfuscation technique whose application is increasing for package files, or information about obfuscation techniques for which application is diminishing.
이상에서와 같이, 본 발명의 실시예들에 따르면, 어플리케이션 퍼블리셔의 관점에서, 등록되는 어플리케이션에 적용된 보안 수준을 난독화(obfuscation), 취약점(vulnerability) 및 보안솔루션 각각의 관점에 따라 객관적인 방법으로 분석 및 파악하고, 분석된 정보를 제공하여 어플리케이션의 보안성 향상을 위해 활용할 수 있다.As described above, according to the embodiments of the present invention, from the viewpoint of the application publisher, the security level applied to the registered application is analyzed in an objective way according to the obfuscation, vulnerability, And can provide the analyzed information to improve the security of the application.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or apparatus described above may be implemented as a hardware component, a software component or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device As shown in FIG. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 이러한 기록매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있으며, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Such a recording medium may be a variety of recording means or storage means in the form of a single or a plurality of hardware combined and is not limited to a medium directly connected to any computer system but may be dispersed on a network. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (17)

  1. 어플리케이션의 보안성을 평가하는 방법에 있어서,A method for evaluating security of an application,
    패키지 파일을 난독화(obfuscation) 관점 및 취약점(vulnerability) 관점에 따라 분석하기 위한 관점별 패턴 정보를 저장하는 단계;Storing pattern information for each point of view for analyzing a package file according to obfuscation and vulnerability points;
    어플리케이션의 설치 및 구동을 위해 이용자들에게 배포하기 위한 패키지 파일을 등록받는 단계;Registering a package file for distribution to users for installation and operation of an application;
    상기 등록된 패키지 파일을 상기 관점별 패턴 정보에 따라 분석하여, 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 생성하는 단계;Analyzing the registered package file according to the per-view pattern information to generate analytical information on the obfuscation point and analyzed information on the point of view of the vulnerability;
    상기 생성된 분석정보를 제공하는 단계;Providing the generated analysis information;
    를 포함하는 것을 특징으로 하는 보안성 평가 방법.And the security evaluation method.
  2. 제1항에 있어서,The method according to claim 1,
    상기 분석정보의 제공과 연관하여 추가의 관점별 패턴 정보가 입력되는 경우, 상기 입력된 관점별 패턴 정보를 이용하여 상기 저장된 관점별 패턴 정보를 갱신하는 단계;Updating pattern information for each stored point of view using the inputted per-view point pattern information when additional per-view point pattern information is input in association with provision of the analysis information;
    상기 입력된 관점별 패턴 정보 또는 상기 갱신된 관점별 패턴 정보에 따라 등록된 패키지 파일들 각각을 재분석하여 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 상기 등록된 패키지 파일마다 각각 재생성하는 단계; 및Re-analyzing each of the package files registered in accordance with the inputted per-view pattern information or the updated per-view per-view pattern information to reproduce the analysis information of the obfuscation viewpoint and the analysis information of the viewpoint of the vulnerability per each registered package file; And
    상기 재생성된 분석정보를 제공하는 단계Providing the regenerated analysis information
    를 더 포함하는 것을 특징으로 하는 보안성 평가 방법.Further comprising the step of:
  3. 제1항에 있어서,The method according to claim 1,
    상기 저장하는 단계는,Wherein the storing step comprises:
    패키지 파일을 보안솔루션 관점에 따라 분석하기 위한 관점별 패턴 정보를 더 저장하고,Store more pattern information per viewpoint for analyzing the package file according to the viewpoint of the security solution,
    상기 생성하는 단계는,Wherein the generating comprises:
    상기 등록된 패키지 파일을 상기 보안솔루션 관점에 대응하는 관점별 패턴 정보에 따라 더 분석하여, 보안솔루션 관점의 분석정보를 더 생성하는 것을 특징으로 하는 보안성 평가 방법.Further analyzing the registered package file according to point-of-view pattern information corresponding to the point of view of the security solution, and further generating analysis information from the perspective of the security solution.
  4. 제1항에 있어서,The method according to claim 1,
    상기 관점별 패턴 정보 중 난독화 관점의 패턴 정보는, 상기 등록된 패키지 파일이 포함하는 파일들 중 난독화의 관점으로 식별된 파일로부터 항목별 난독화 적용 여부를 식별하기 위한 패턴 정보를 포함하는 것을 특징으로 하는 보안성 평가 방법.The obfuscation-based pattern information in the per-view pattern information includes pattern information for identifying whether obfuscation is applied to each item from a file identified as an obfuscation point among the files included in the registered package file A security evaluation method characterized by:
  5. 제4항에 있어서,5. The method of claim 4,
    상기 항목별 난독화 적용 여부는, 상기 난독화의 관점으로 식별된 파일이 포함하는 메서드와 클래스 각각에 대한 난독화 적용 여부를 포함하고,Whether or not obfuscation is applied to each item includes whether obfuscation is applied to each of the methods and classes included in the file identified from the obfuscation point of view,
    상기 생성하는 단계는,Wherein the generating comprises:
    상기 난독화 관점의 패턴 정보에 따라 상기 난독화의 관점으로 식별된 파일에서 난독화가 적용된 메서드 및 클래스를 식별하여, 대상 파일별로 (1) 난독화가 적용된 메서드의 수, (2) 난독화가 적용된 클래스의 수, (3) 상기 난독화가 적용된 메서드의 수 및 상기 난독화가 적용된 클래스의 수에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 방법.(1) the number of obfuscated methods for each target file, (2) the number of obfuscated methods, and (2) the number of obfuscated methods. And (3) the analysis information of obfuscation, which includes a risk level determined based on the number of methods to which obfuscation is applied and the number of classes to which obfuscation is applied, is generated.
  6. 제4항에 있어서,5. The method of claim 4,
    상기 항목별 난독화 적용 여부는, 상기 난독화의 관점으로 식별된 파일이 포함하는 섹션 헤더(section header), 스트링(string), 스트링 테이블(string table), 심볼 테이블(symbol table) 및 코드 중 적어도 하나의 항목에 대응하는 정보 각각에 대한 난독화 적용 여부를 포함하고,Whether or not the obfuscation is applied to each item may include at least one of a section header, a string, a string table, a symbol table, and code included in a file identified from the obfuscation point of view Whether or not obfuscation is applied to each piece of information corresponding to one item,
    상기 생성하는 단계는,Wherein the generating comprises:
    상기 난독화 관점의 패턴 정보에 따라 상기 난독화의 관점으로 식별된 파일에서 난독화가 적용된 항목들을 식별하고, 대상 파일별로 (1) 난독화가 적용된 항목의 종류 및 (2) 상기 난독화가 적용된 항목의 종류에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 방법.The obfuscated items are identified in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view, and the obfuscated items are classified into (1) types of obfuscated items and (2) types of obfuscated items Wherein the analysis information is generated from an obfuscated viewpoint including a risk level determined based on the analysis result.
  7. 제1항에 있어서,The method according to claim 1,
    상기 관점별 패턴 정보 중 취약점 관점의 패턴 정보는, 취약점이 존재하는 것으로 알려진 프로토콜, 라이브러리 및 API(Application Programming Interface) 중 적어도 하나에 대한 취약점 정보를 포함하고,The pattern information of the viewpoint of the vulnerability among the viewpoint-by-view pattern information includes vulnerability information for at least one of a protocol, a library, and an API (Application Programming Interface)
    상기 생성하는 단계는,Wherein the generating comprises:
    상기 취약점 관점의 패턴 정보에 따라 상기 등록된 패키지 파일이 포함하는 파일들 중 상기 취약점 정보에 대응하는 프로토콜, 라이브러리 또는 API를 포함하는 파일을 식별하고, (1) 상기 식별된 파일의 식별자 및 (2) 상기 식별된 파일에 포함된 취약점의 종류에 기반하여 결정되는 위험등급을 포함하는 취약점 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 방법.Identifying a file including a protocol, a library, or an API corresponding to the vulnerability information among the files included in the registered package file according to the pattern information of the vulnerability point; (1) ) Generates analysis information of a vulnerability view point including a risk level determined based on the type of the vulnerability included in the identified file.
  8. 제1항에 있어서,The method according to claim 1,
    상기 생성하는 단계는,Wherein the generating comprises:
    상기 등록된 패키지 파일을 분해하여 상기 패키지 파일이 포함하는 파일들을 식별하는 단계; 및Disassembling the registered package file to identify files included in the package file; And
    상기 식별된 파일들의 확장자에 기반하여 분석이 요구되는 파일을 관점별로 식별하고, 관점별로 식별된 파일마다 대응하는 관점의 분석정보를 생성하는 단계Identifying files for which analysis is required based on the extensions of the identified files by point of view and generating analysis information of points of view corresponding to the identified files by point of view
    를 포함하는 것을 특징으로 하는 보안성 평가 방법.And the security evaluation method.
  9. 제8항에 있어서,9. The method of claim 8,
    상기 패키지 파일이 포함하는 파일들간의 참조관계에 대한 분석정보를 더 생성하는 단계Further comprising generating analysis information on a reference relationship between files included in the package file
    를 더 포함하고,Further comprising:
    상기 제공하는 단계는,Wherein the providing step comprises:
    상기 참조관계에 대한 분석정보를 더 제공하는 것을 특징으로 하는 보안성 평가 방법.And further provides analysis information on the reference relationship.
  10. 제1항 내지 제9항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium storing a computer program for causing a computer to execute the method according to any one of claims 1 to 9.
  11. 어플리케이션의 보안성을 평가하는 시스템에 있어서,A system for evaluating security of an application,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서At least one processor configured to execute computer readable instructions,
    를 포함하고,Lt; / RTI >
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    패키지 파일을 난독화(obfuscation) 관점 및 취약점(vulnerability) 관점에 따라 분석하기 위한 관점별 패턴 정보를 저장하고,Store pattern information for each point of view for analyzing the package file according to obfuscation viewpoint and vulnerability viewpoint,
    어플리케이션의 설치 및 구동을 위해 이용자들에게 배포하기 위한 패키지 파일을 등록받고,A package file for distribution to users is registered for installation and operation of the application,
    상기 등록된 패키지 파일을 상기 관점별 패턴 정보에 따라 분석하여, 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 생성하고,Analyzing the registered package file according to the per-view pattern information to generate analytical information on the obfuscated viewpoint and analyzed information on the viewpoint of the vulnerability,
    상기 생성된 분석정보를 제공하는 것Providing the generated analysis information
    을 특징으로 하는 보안성 평가 시스템.The security evaluation system comprising:
  12. 제11항에 있어서,12. The method of claim 11,
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    상기 분석정보의 제공과 연관하여 추가의 관점별 패턴 정보가 입력되는 경우, 상기 입력된 관점별 패턴 정보를 이용하여 상기 저장된 관점별 패턴 정보를 갱신하고,When the additional pattern information for each point of view is input in association with the provision of the analysis information, the pattern information for each point of view stored is updated using the inputted pattern information for each point of view,
    상기 입력된 관점별 패턴 정보 또는 상기 갱신된 관점별 패턴 정보에 따라 등록된 패키지 파일들 각각을 재분석하여 난독화 관점의 분석정보 및 취약점 관점의 분석정보를 상기 등록된 패키지 파일마다 각각 재생성하고,Analyzing each of the package files registered in accordance with the inputted per-view pattern information or the updated per-view per-view pattern information to reproduce the analysis information of the obfuscation point of view and the analysis information of the point of view of the vulnerability,
    상기 재생성된 분석정보를 제공하는 것Providing the regenerated analysis information
    을 특징으로 하는 보안성 평가 시스템.The security evaluation system comprising:
  13. 제11항에 있어서,12. The method of claim 11,
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    패키지 파일을 보안솔루션 관점에 따라 분석하기 위한 관점별 패턴 정보를 더 저장하고,Store more pattern information per viewpoint for analyzing the package file according to the viewpoint of the security solution,
    상기 등록된 패키지 파일을 상기 보안솔루션 관점에 대응하는 관점별 패턴 정보에 따라 더 분석하여, 보안솔루션 관점의 분석정보를 더 생성하는 것Further analyzing the registered package file according to the point-of-view pattern information corresponding to the point of view of the security solution, and further generating analysis information from the perspective of the security solution
    을 특징으로 하는 보안성 평가 시스템.The security evaluation system comprising:
  14. 제11항에 있어서,12. The method of claim 11,
    상기 관점별 패턴 정보 중 난독화 관점의 패턴 정보는, 상기 등록된 패키지 파일이 포함하는 파일들 중 난독화의 관점으로 식별된 파일로부터 항목별 난독화 적용 여부를 식별하기 위한 패턴 정보를 포함하는 것을 특징으로 하는 보안성 평가 시스템.The obfuscation-based pattern information in the per-view pattern information includes pattern information for identifying whether obfuscation is applied to each item from a file identified as an obfuscation point among the files included in the registered package file Security evaluation system that features.
  15. 제14항에 있어서,15. The method of claim 14,
    상기 항목별 난독화 적용 여부는, 상기 난독화의 관점으로 식별된 파일이 포함하는 메서드와 클래스 각각에 대한 난독화 적용 여부를 포함하고,Whether or not obfuscation is applied to each item includes whether obfuscation is applied to each of the methods and classes included in the file identified from the obfuscation point of view,
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    상기 난독화 관점의 패턴 정보에 따라 상기 난독화의 관점으로 식별된 파일에서 난독화가 적용된 메서드 및 클래스를 식별하여, 대상 파일별로 (1) 난독화가 적용된 메서드의 수, (2) 난독화가 적용된 클래스의 수, (3) 상기 난독화가 적용된 메서드의 수 및 상기 난독화가 적용된 클래스의 수에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 시스템.(1) the number of obfuscated methods for each target file, (2) the number of obfuscated methods, and (2) the number of obfuscated methods. And (3) the degree of obfuscation analysis information including the degree of danger determined based on the number of obfuscated methods and the number of classes to which obfuscation is applied.
  16. 제14항에 있어서,15. The method of claim 14,
    상기 항목별 난독화 적용 여부는, 상기 난독화의 관점으로 식별된 파일이 포함하는 섹션 헤더(section header), 스트링(string), 스트링 테이블(string table), 심볼 테이블(symbol table) 및 코드 중 적어도 하나의 항목에 대응하는 정보 각각에 대한 난독화 적용 여부를 포함하고,Whether or not the obfuscation is applied to each item may include at least one of a section header, a string, a string table, a symbol table, and code included in a file identified from the obfuscation point of view Whether or not obfuscation is applied to each piece of information corresponding to one item,
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    상기 난독화 관점의 패턴 정보에 따라 상기 난독화의 관점으로 식별된 파일에서 난독화가 적용된 항목들을 식별하고, 대상 파일별로 (1) 난독화가 적용된 항목의 종류 및 (2) 상기 난독화가 적용된 항목의 종류에 기반하여 결정되는 위험등급을 포함하는 난독화 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 시스템.The obfuscated items are identified in the file identified from the obfuscation point of view according to the pattern information from the obfuscation point of view, and the obfuscated items are classified into (1) types of obfuscated items and (2) types of obfuscated items And generates analysis information of an obfuscation view that includes a danger level determined based on the analysis result.
  17. 제11항에 있어서,12. The method of claim 11,
    상기 관점별 패턴 정보 중 취약점 관점의 패턴 정보는, 취약점이 존재하는 것으로 알려진 프로토콜, 라이브러리 및 API(Application Programming Interface) 중 적어도 하나에 대한 취약점 정보를 포함하고,The pattern information of the viewpoint of the vulnerability among the viewpoint-by-view pattern information includes vulnerability information for at least one of a protocol, a library, and an API (Application Programming Interface)
    상기 적어도 하나의 프로세서는,Wherein the at least one processor comprises:
    상기 취약점 관점의 패턴 정보에 따라 상기 등록된 패키지 파일이 포함하는 파일들 중 상기 취약점 정보에 대응하는 프로토콜, 라이브러리 또는 API를 포함하는 파일을 식별하고, (1) 상기 식별된 파일의 식별자 및 (2) 상기 식별된 파일에 포함된 취약점의 종류에 기반하여 결정되는 위험등급을 포함하는 취약점 관점의 분석정보를 생성하는 것을 특징으로 하는 보안성 평가 시스템.Identifying a file including a protocol, a library, or an API corresponding to the vulnerability information among the files included in the registered package file according to the pattern information of the vulnerability point; (1) ) Generates analysis information of a vulnerability view point including a danger level determined based on the type of the vulnerability included in the identified file.
PCT/KR2017/006903 2017-04-20 2017-06-29 Application security assessment method and system WO2019004502A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2017/006903 WO2019004502A1 (en) 2017-06-29 2017-06-29 Application security assessment method and system
JP2018080912A JP7131946B2 (en) 2017-04-20 2018-04-19 Method and system for assessing application security
US15/958,115 US10963563B2 (en) 2017-04-20 2018-04-20 Method and system for evaluating security of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/006903 WO2019004502A1 (en) 2017-06-29 2017-06-29 Application security assessment method and system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/004584 Continuation WO2018199366A1 (en) 2017-04-20 2017-04-28 Method and system for detecting whether obfuscation has been applied to dex file and evaluating security

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/958,115 Continuation US10963563B2 (en) 2017-04-20 2018-04-20 Method and system for evaluating security of application

Publications (1)

Publication Number Publication Date
WO2019004502A1 true WO2019004502A1 (en) 2019-01-03

Family

ID=64741663

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/006903 WO2019004502A1 (en) 2017-04-20 2017-06-29 Application security assessment method and system

Country Status (1)

Country Link
WO (1) WO2019004502A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150044490A (en) * 2013-10-16 2015-04-27 (주)이스트소프트 A detecting device for android malignant application and a detecting method therefor
KR101628837B1 (en) * 2014-12-10 2016-06-10 고려대학교 산학협력단 Malicious application or website detecting method and system
KR101715179B1 (en) * 2015-09-22 2017-03-10 서울과학기술대학교 산학협력단 Cloud computing based mobile security system and method through user behavior event
KR101720686B1 (en) * 2014-10-21 2017-03-28 한국전자통신연구원 Apparaus and method for detecting malcious application based on visualization similarity
KR20170036392A (en) * 2015-09-24 2017-04-03 삼성전자주식회사 Apparatus and method for protecting information in communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150044490A (en) * 2013-10-16 2015-04-27 (주)이스트소프트 A detecting device for android malignant application and a detecting method therefor
KR101720686B1 (en) * 2014-10-21 2017-03-28 한국전자통신연구원 Apparaus and method for detecting malcious application based on visualization similarity
KR101628837B1 (en) * 2014-12-10 2016-06-10 고려대학교 산학협력단 Malicious application or website detecting method and system
KR101715179B1 (en) * 2015-09-22 2017-03-10 서울과학기술대학교 산학협력단 Cloud computing based mobile security system and method through user behavior event
KR20170036392A (en) * 2015-09-24 2017-04-03 삼성전자주식회사 Apparatus and method for protecting information in communication system

Similar Documents

Publication Publication Date Title
JP7131946B2 (en) Method and system for assessing application security
WO2013089340A1 (en) Apparatus and method for detecting similarity between applications
WO2013077538A1 (en) Device and method for analyzing api-based application
WO2017026739A1 (en) System and method for obfuscating application code
CN104517054B (en) Method, device, client and server for detecting malicious APK
US20120110551A1 (en) Simulating black box test results using information from white box testing
CN105793862B (en) Dynamic routine is guided execution in isolation environment
US11956264B2 (en) Method and system for verifying validity of detection result
WO2019054613A1 (en) Method and system for identifying open source software package on basis of binary file
WO2013165180A1 (en) Log monitoring method, server therefor and recording medium
WO2013137616A1 (en) Method and apparatus for evaluating required permissions for application
WO2018194196A1 (en) Method and system for detecting application of obfuscation to and evaluating security of elf file
CN106663171B (en) Browser simulator device, browser simulator building device, browser simulation method, and browser simulation building method
WO2018199366A1 (en) Method and system for detecting whether obfuscation has been applied to dex file and evaluating security
WO2019066222A1 (en) Method and system for identifying open source software package on basis of binary file
CN114116078A (en) Application data processing method, device, equipment and medium based on micro front end
JP2020531936A (en) How and systems to detect application vulnerabilities
WO2020111482A1 (en) Reverse engineering method and system utilizing big data based on program execution context
WO2019004502A1 (en) Application security assessment method and system
WO2016200045A1 (en) Hardware-based kernel code insertion attack detecting device and method therefor
CN112379967B (en) Simulator detection method, device, equipment and medium
WO2018194198A1 (en) Method and system for detecting application of obfuscation to and evaluating security of pe file
WO2019066099A1 (en) System for detecting abnormal behavior on basis of integrated analysis model, and method therefor
WO2014048194A1 (en) Android malicious application program detection method, system and device
CN108874462B (en) Browser behavior acquisition method and device, storage medium and electronic equipment

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

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

Country of ref document: EP

Kind code of ref document: A1