KR101451323B1 - Application security system, security server, security client apparatus, and recording medium - Google Patents

Application security system, security server, security client apparatus, and recording medium Download PDF

Info

Publication number
KR101451323B1
KR101451323B1 KR1020140014734A KR20140014734A KR101451323B1 KR 101451323 B1 KR101451323 B1 KR 101451323B1 KR 1020140014734 A KR1020140014734 A KR 1020140014734A KR 20140014734 A KR20140014734 A KR 20140014734A KR 101451323 B1 KR101451323 B1 KR 101451323B1
Authority
KR
South Korea
Prior art keywords
security
application
client module
code
inspection
Prior art date
Application number
KR1020140014734A
Other languages
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 KR1020140014734A priority Critical patent/KR101451323B1/en
Application granted granted Critical
Publication of KR101451323B1 publication Critical patent/KR101451323B1/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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

Abstract

The present invention relates to an application security system which includes: a security client module which transmits execution result information by executing a security process according to the reception of an inspection command, and controls to execute an application installed in a terminal according to an application execution control command according to the execution result information; and a security server which transmits the inspection command to the security client module to execute the security process in the security client module by communicating with the security client module, and transmits the application execution control command to the security client module by determining an execution state of the application according to the execution result information received from the security client module.

Description

애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체{APPLICATION SECURITY SYSTEM, SECURITY SERVER, SECURITY CLIENT APPARATUS, AND RECORDING MEDIUM} TECHNICAL FIELD [0001] The present invention relates to an application security system, a security server, a security client device, and a recording medium.

본 발명은 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체에 관한 것이다. The present invention relates to an application security system, a security server, a secure client device, and a recording medium.

요즈음, PC, 노트북 등은 물론, 스마트 폰, 태블릿 PC 등의 모바일 단말을 포함하는 각종 통신 단말에는, 악성코드, 바이러스 등이 유포되거나 무단 접속을 방지하기 위한 별도의 보안 관련 클라이언트 프로그램이 많이 설치되고 있다. Nowadays, various security-related client programs for spreading malicious codes, viruses, and preventing unauthorized access are installed in various communication terminals including mobile terminals such as a PC and a notebook computer as well as smart phones and tablet PCs have.

이러한 보안 관련 클라이언트 프로그램을 이용한 보안 기능은, 보안 저해 행위를 검사하기 위한 검사코드가 보안 관련 클라이언트 프로그램에 모두 저장되어 있어야 하기 때문에, 새로운 보안 기능을 수행하기 위해서는, 보안 관련 클라이언트 프로그램 자체를 모두 업데이트하거나 보안 관련 클라이언트 프로그램에 저장된 검사코드를 업데이트 해야 한다. 이러한 점은, 신속한 대응이 필수적인 보안 기술 분야에서는, 신속한 대응을 불가능하게 하는 치명적인 문제점이라 할 수 있다. In order to perform a new security function, the security function using the security-related client program needs to update all of the security-related client programs themselves because the security code related to the security- You should update the inspection code stored in the security-relevant client program. This is a fatal problem that makes it impossible to respond quickly in the security technology field where rapid response is indispensable.

또한, 종래에는, 안티 바이러스 기능, 안티 해킹 기능 및 코드 역 분석 방지 기능 등에 대한 클라이언트 프로그램이 별도로 개발되어 있기 때문에, 단말에서 안티 바이러스 기능, 안티 해킹 기능 및 코드 역 분석 방지 기능 등을 모두 제공하기 위해서는, 안티 바이러스 기능, 안티 해킹 기능 및 코드 역 분석 방지 기능 등을 위한 별도의 클라이언트 프로그램을 단말에 각각 설치해야 하는 불편함도 있어왔다. In addition, conventionally, a client program has been separately developed for an antivirus function, an anti-hacking function, and an inverse code analysis prevention function. Therefore, in order to provide an antivirus function, an anti-hacking function, , Anti-virus function, anti-hacking function, and anti-reverse function of the code.

이와 같이, 각기 다른 보안 기능이 별도의 클라이언트 프로그램으로 만들어져 각각 설치되어야 하는 점은, 설치 및 사용상의 불편함뿐만 아니라, 안티 바이러스 기능, 안티 해킹 기능 및 코드 역 분석 방지 기능 등이 단말의 전체 보안 측면에서 긴밀하게 연동하지 못하는 문제점을 발생시켜 보안성을 높일 수 없는 요인이 되기도 한다. In this way, the different security functions must be installed in separate client programs and installed separately. In addition to the inconvenience of installation and use, the antivirus function, the anti-hacking function, It is not possible to increase the security because it can not interoperate closely.

또한, 기존의 보안 관련 클라이언트 프로그램은, PC 환경에 적합하도록 만들어져 있기 때문에, 많은 데이터를 저장하거나 높은 단말 성능을 요구하고 있다. 이는, 요즈음 많이 사용되고 있는 스마트 폰, 태블릿 PC 등의 모바일 환경에는 적합하지 않은 단점도 있다.In addition, since existing security-related client programs are designed to be suitable for a PC environment, they require a lot of data or high terminal performance. This is a disadvantage in that it is not suitable for mobile environments such as smart phones and tablet PCs, which are widely used these days.

이러한 배경에서, 본 발명의 목적은, 신속한 보안 대응이 가능하도록 서버 위주의 애플리케이션 보안을 제공하는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 데 있다. In view of the foregoing, it is an object of the present invention to provide an application security system, a security server, a security client device, and a recording medium that provide server-based application security to enable rapid security response.

본 발명의 다른 목적은, 각기 다른 보안 기능이 긴밀하게 연동하여 동작하여 보안성을 높여줄 수 있는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 데 있다. Another object of the present invention is to provide an application security system, a security server, a security client device, and a recording medium, in which different security functions operate in a closely interlocked manner to enhance security.

본 발명의 또 다른 목적은, 보안 기능을 수행하기 위해 단말에 저장되어야 하는 보안 관련 데이터를 줄여주고 보안 기능을 위해 단말의 부하를 줄여주어, 스마트 폰, 태블릿 PC 등의 모바일 환경에 적합한 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 데 있다.It is another object of the present invention to provide an application security system suitable for a mobile environment such as a smart phone and a tablet PC by reducing security related data to be stored in a terminal for performing a security function, , A security server, a security client device, and a recording medium.

전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 검사명령의 수신에 따라 보안 프로세스를 실행하여 실행결과정보를 전송하고, 상기 실행결과정보에 따른 애플리케이션 실행제어명령에 따라 단말에 설치된 애플리케이션이 실행되도록 제어하는 보안 클라이언트 모듈; 및 상기 보안 클라이언트 모듈과 통신하여, 상기 보안 클라이언트 모듈에서 상기 보안 프로세스가 실행되도록 상기 검사명령을 상기 보안 클라이언트 모듈로 전송하고, 상기 보안 클라이언트 모듈로부터 수신된 상기 실행결과정보에 따라 상기 애플리케이션의 실행 여부를 판단하여 상기 애플리케이션 실행제어명령을 상기 보안 클라이언트 모듈로 전송하는 보안 서버를 포함하는 애플리케이션 보안 시스템을 제공한다. In order to achieve the above object, in one aspect, the present invention provides an information processing apparatus that executes a security process according to receipt of an inspection command and transmits execution result information, To be executed; And transmitting the inspection command to the secure client module so that the security process is executed in the secure client module, wherein the secure client module is configured to communicate with the secure client module to determine whether to execute the application according to the execution result information received from the secure client module And transmits the application execution control command to the secure client module.

상기 보안 클라이언트 모듈이 상기 보안 서버로부터 수신하는 상기 검사명령은, 코드 역 분석 방지를 위한 검사명령, 안티 바이러스 검사를 위한 검사명령 및 안티 해킹 검사를 위한 검사명령 중 하나일 수 있다. The inspection command received by the security client module from the security server may be one of an inspection command for prevention of code reverse analysis, an inspection command for anti-virus inspection, and an inspection command for anti-hacking inspection.

다른 측면에서, 본 발명은, 단말에 설치된 애플리케이션에 내장되어 있는 보안 클라이언트 모듈과 통신하는 통신부; 및 상기 보안 클라이언트 모듈이 보안 프로세스를 실행하도록 검사명령을 상기 보안 클라이언트 모듈로 전송하여 상기 보안 클라이언트 모듈에서의 상기 보안 프로세스에 대한 실행결과정보를 수신하고, 상기 실행결과정보에 따라 상기 단말에서의 상기 애플리케이션의 실행 여부를 판단하여 애플리케이션 실행제어명령을 상기 통신부를 통해 상기 보안 클라이언트 모듈로 제공하는 제어부를 포함하는 보안 서버를 제공한다. According to another aspect of the present invention, there is provided a communication system including: a communication unit for communicating with a security client module built in an application installed in a terminal; And transmitting a check command to the secure client module so that the secure client module executes a security process to receive execution result information for the security process in the secure client module, And a control unit for determining whether to execute the application and providing an application execution control command to the security client module through the communication unit.

또 다른 측면에서, 본 발명은, 검사명령에 따라 보안 프로세스를 실행하여 실행결과정보를 출력하고, 애플리케이션 실행제어명령에 따라, 지정된 애플리케이션의 실행을 제어하는 제어부; 및 상기 검사명령을 보안 서버로부터 수신하고, 상기 실행결과정보를 상기 보안 서버로 전송하며, 상기 애플리케이션 실행제어명령을 상기 보안 서버로부터 수신하는 통신부를 포함하는 보안 클라이언트 장치를 제공한다. According to another aspect of the present invention, there is provided an information processing apparatus comprising: a control unit for executing a security process according to an inspection command to output execution result information, and controlling the execution of a specified application according to an application execution control command; And a communication unit receiving the inspection command from the security server, transmitting the execution result information to the security server, and receiving the application execution control command from the security server.

또 다른 측면에서, 본 발명은, 애플리케이션 보안 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 보안 서버로부터 수신된 검사명령에 따라 보안 프로세스를 실행하는 기능과, 상기 보안 프로세스의 실행결과정보를 상기 보안 서버로 전송하는 기능과, 상기 보안 서버로부터 수신한 애플리케이션 실행제어명령에 따라, 애플리케이션의 실행을 제어하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.According to another aspect of the present invention, there is provided a recording medium on which a program for executing an application security method is recorded. The recording medium includes a function of executing a security process according to an inspection command received from a security server, And a function of controlling the execution of the application in accordance with an application execution control command received from the security server. According to an aspect of the present invention, there is provided a computer-

이상에서 설명한 바와 같이 본 발명에 의하면, 신속한 보안 대응이 가능하도록 서버 위주의 애플리케이션 보안을 제공하는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다. As described above, according to the present invention, it is possible to provide an application security system, a security server, a security client device, and a recording medium that provide server-oriented application security to enable rapid security response.

또한, 본 발명에 의하면, 각기 다른 보안 기능이 긴밀하게 연동하여 동작하여 보안성을 높여줄 수 있는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다. According to another aspect of the present invention, there is provided an application security system, a security server, a security client device, and a recording medium, which can enhance security by operating in cooperation with each other.

또한, 본 발명에 의하면, 보안 기능을 수행하기 위해 단말에 저장되어야 하는 보안 관련 데이터를 줄여주고 보안 기능을 위해 단말의 부하를 줄여주어, 스마트 폰, 태블릿 PC 등의 모바일 환경에 적합한 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다.In addition, according to the present invention, an application security system suitable for a mobile environment such as a smart phone, a tablet PC, and the like by reducing the security related data to be stored in the terminal to perform the security function and reducing the load of the terminal for the security function, A security server, a security client device, and a recording medium.

도 1은 본 발명의 일 실시예에 따른 애플리케이션 보안 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈에 대한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈 내 보안 프로세스 모듈들과 애플리케이션 실행 제어 모듈을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈과 보안 서버 간의 연동을 개략적으로 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 애플리케이션 보안을 통해 애플리케이션이 실행되는 과정을 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈의 동작 절차를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버의 동작 절차를 나타낸 도면이다.
1 is a diagram schematically illustrating an application security system according to an embodiment of the present invention.
2 is a block diagram of a security server for application security according to an embodiment of the present invention.
3 is a block diagram of a secure client module for application security according to an embodiment of the present invention.
4 is a diagram illustrating security process modules and an application execution control module in a secure client module for application security according to an exemplary embodiment of the present invention.
FIG. 5 is a diagram schematically illustrating the interworking between a secure client module and a security server for application security according to an exemplary embodiment of the present invention. Referring to FIG.
6 is a diagram illustrating a process of executing an application through application security according to an embodiment of the present invention.
7 is a flowchart illustrating an operation procedure of a secure client module for application security according to an embodiment of the present invention.
8 is a flowchart illustrating an operation procedure of a security server for application security according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. In the drawings, like reference numerals are used to denote like elements throughout the drawings, even if they are shown on different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are intended to distinguish the components from other components, and the terms do not limit the nature, order, order, or number of the components. When a component is described as being "connected", "coupled", or "connected" to another component, the component may be directly connected or connected to the other component, Quot; intervening "or that each component may be" connected, "" coupled, "or " connected" through other components.

도 1은 본 발명의 일 실시예에 따른 애플리케이션 보안 시스템을 개략적으로 나타낸 도면이다. 1 is a diagram schematically illustrating an application security system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안 시스템은, 단말(110)에 설치된 애플리케이션(111)과 그 사용자를 보안 측면에서 보호해주기 위한 시스템이다. 즉, 본 발명의 일 실시예에 따른 애플리케이션 보안 시스템은 애플리케이션(111)을 해킹하거나 무단으로 수정하는 행위, 또는 개발권자의 저작권(소스코드)을 탈취하는 행위 등으로부터 애플리케이션(111)과, 그 사용자 및 저작권자를 보호하기 위한 시스템이다. Referring to FIG. 1, an application security system according to an embodiment of the present invention is a system for protecting an application 111 installed in a terminal 110 and a user thereof from a security point of view. That is, the application security system according to the embodiment of the present invention can prevent the application 111 from being hacked or tampered with by tampering with the application 111, or by taking the copyright of the developer (source code) It is a system to protect copyright owners.

도 1을 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안 시스템은. 애플리케이션 보안을 제공하기 위하여, 단말(110)에 설치되는 애플리케이션(111)을 보호하기 위한 보안 프로세스를 실행하는 "보안 클라이언트 장치"와, 이러한 보안 클라이언트 장치가 보안 프로세스를 실행하도록 명령을 내리고 보안 프로세스의 실행결과정보를 보안 클라이언트 장치로부터 전달받아 애플리케이션 실행제어명령을 보안 클라이언트 장치로 제공하는 보안 서버(120) 등을 포함한다. Referring to FIG. 1, an application security system according to an embodiment of the present invention includes: A security client device that executes a security process for protecting an application 111 installed in the terminal 110 in order to provide application security and a security client device that instructs the secure client device to execute a security process, And a security server 120 that receives execution result information from the secure client device and provides an application execution control command to the secure client device.

전술한 보안 클라이언트 장치는, 일 예로, 보호 대상인 애플리케이션(111)이 설치된 단말(110)과 물리적으로 떨어져 있는 단말일 수도 있고, 도 1에 도시된 바와 같이, 보호 대상인 애플리케이션(111)이 설치된 단말(110)의 내부에 설치된 장치 또는 모듈 또는 애플리케이션 등일 수도 있다. The security client device may be a terminal physically separated from the terminal 110 in which the application 111 to be protected is installed and may be a terminal having the application 111 as a protected object 110, or the like.

또한, 보안 클라이언트 장치는, 도 1에 도시된 바와 같이, 보호 대상인 애플리케이션(111)이 설치된 단말(110)의 내부에 포함되되, 단말(110)에 설치된 애플리케이션(111)에 내장되어 있는 소프트웨어 모듈(Software Module)일 수도 있다. 1, the security client device includes a software module (not shown) included in the application 110 installed in the terminal 110, which is included in the terminal 110 in which the application 111 to be protected is installed, Software Module).

아래에서는, 보안 클라이언트 장치가, 도 1에 도시된 바와 같이, 보호 대상인 애플리케이션(111)이 설치된 단말(110)의 내부에 포함되되, 단말(110)에 설치된 애플리케이션(111)에 내장되어 있는 소프트웨어 모듈(Software Module)인 보안 클라이언트 모듈(112)인 것으로 예로 들어 설명한다. 그렇다고 이에 제한되는 것은 아니다. 1, the security client apparatus includes a software module 111 included in the application 111 installed in the terminal 110, and a security module 111 that is included in the terminal 110 in which the protected application 111 is installed, Which is a security client module 112 that is a security module (Software Module). However, it is not limited thereto.

이와 같이, 보안 클라이언트 모듈(112)이 내장된 애플리케이션(110)은, 애플리케이션 스토어 서버를 통해 단말(110)로 다운로드 되어 설치될 수 있다. In this manner, the application 110 in which the security client module 112 is embedded can be downloaded and installed in the terminal 110 through the application store server.

애플리케이션 스토어 서버로부터 다운로드 되어 설치된 애플리케이션(110)에는 보안 클라이언트 모듈(112)에 해당하는 코드가 기본적으로 포함된다. A code corresponding to the security client module 112 is basically included in the application 110 downloaded and installed from the application store server.

한편, 애플리케이션 스토어 서버로부터 다운로드 되어 설치된 애플리케이션(111)에는 실제 실행을 위한 애플리케이션 실행 코드가 포함될 수도 있고, 경우에 따라서는, 애플리케이션(111)의 매 실행 시마다 관련 서버(애플리케이션에 해당하는 서비스 서버)로부터 다운로드 받을 수 있는 제어 정보(예: 링크 정보 등)가 포함될 수도 있다. On the other hand, the application 111 downloaded from the application store server and installed may include the application execution code for actual execution. In some cases, the application 111 may be downloaded from the related server (service server corresponding to the application) And control information (e.g., link information, etc.) that can be downloaded may be included.

보안 클라이언트 모듈(112)에 해당하는 코드는 단말(110)의 메모리 내 제1위치에 저장되고, 애플리케이션(111)의 배포시 이미 포함되어 있거나 실행 시마다 다운로드 되는 애플리케이션 실행 코드는 단말(110)의 메모리 내 제1위치와는 다른 제2위치에 저장될 수 있다. The code corresponding to the secure client module 112 is stored in the first location in the memory of the terminal 110 and the application execution code that is already included in the distribution of the application 111 or downloaded each time it is executed is stored in the memory 110 of the terminal 110 And may be stored in a second position different from the first position.

여기서, 메모리 내 제1위치는, 애플리케이션 실행 요청 입력 시, 단말(110)의 프로세서가 최초로 액세스 하는 저장 위치로서, 애플리케이션 실행 코드가 저장된 위치로 알려지거나 인식되는 위치이다. 메모리 내 제2위치는 애플리케이션 실행 코드가 실제로 저장된 위치이기는 하나 단말(110)은 물론 외부에서도 애플리케이션 실행 코드가 저장되어 있을 것으로 인식할 수 없는 저장 위치이다. Here, the first position in the memory is a storage position at which the processor of the terminal 110 first accesses when an application execution request is input, and is a position at which the application execution code is known or recognized. The second location in memory is a storage location where the application execution code is actually stored but can not be recognized as being stored in the terminal 110 as well as outside.

또한, 애플리케이션(111)의 배포시 이미 포함되어 있거나 실행 시마다 다운로드 되는 애플리케이션 실행 코드는 메모리 내 제2위치에 저장될 때 암호화 되어 저장될 수 있다. In addition, the application execution code which is already included in the distribution of the application 111 or is downloaded each time it is executed can be encrypted and stored when it is stored in the second location in the memory.

예를 들어, 애플리케이션(111)의 배포시 이미 포함되어 있거나 실행 시마다 다운로드 되는 애플리케이션 실행 코드가 암호화되어 저장될 때, 애플리케이션 실행 코드의 파일 헤더(Header) 또는 애플리케이션 실행 코드의 일부분이 암호화되어 저장될 수도 있고, 애플리케이션 실행 코드의 파일 내 정보들의 위치를 서로 바꾸는 방식으로 암호화되어 저장될 수도 있으며, 애플리케이션 실행 코드의 파일 내 특정 또는 임의의 정보가 다른 정보로 치환되는 방식으로 암호화되어 저장될 수도 있다. 이러한 암호화 방식으로만 제한되지는 않고, 다양한 암호화 방식으로도 가능하다. For example, when an application execution code that is already included in the distribution of the application 111 or is downloaded each time it is executed is encrypted and stored, a file header of the application execution code or a part of the application execution code may be encrypted and stored And may be encrypted and stored in such a manner that the positions of the information in the file of the application executable code are interchanged or may be encrypted and stored in such a manner that specific or arbitrary information in the file of the application executable code is replaced with other information. The present invention is not limited to such a cipher system, but various cipher systems are also possible.

사용자가 단말(110)에 설치된 애플리케이션(111)을 실행시키기 위한 입력을 하게 되면, 단말(110)의 프로세서는 메모리 내 제1위치에 저장된 보안 클라이언트 모듈(112)에 해당하는 코드를 읽어 해당 보안 프로세스를 실행시키고, 그 실행 결과, 보안상에 문제가 없으면, 메모리 내 제2위치에 저장된 애플리케이션 실행 코드를 실행시키거나 애플리케이션 실행 코드를 관련 서버로부터 메모리 내 제2위치로 다운로드 받아 실행시킴으로써, 애플리케이션(111)이 실제로 실행되게 된다. The processor of the terminal 110 reads the code corresponding to the security client module 112 stored in the first location in the memory and transmits the corresponding security process And executes the application execution code stored in the second location in the memory or downloads the application execution code from the related server to the second location in the memory and executes the application 111 ) Is actually executed.

전술한 바와 같은, 코드 저장 위치 관련 특징, 애플리케이션 실행 코드의 암호화 등을 통해, 애플리케이션(111)에 대한 향상된 보안성을 제공할 수 있다. As described above, it is possible to provide enhanced security for the application 111 through code storage location related features, encryption of application executable code, and the like.

또한, 애플리케이션 실행 코드가 애플리케이션(111)의 최초 배포시, 애플리케이션(111)에 포함되어 있지 않고, 애플리케이션(111)의 실행 시마다 다운로드 받는 것은, 애플리케이션(111)에 대한 보안성을 더욱 강화시킬 수 있다. 보안 클라이언트 모듈(112)은, 보안 서버(120)로부터의 검사명령의 수신에 따라 해당되는 보안 프로세스를 실행하여 그 실행결과정보를 보안 서버(120)로 전송하고, 상기 실행결과정보에 따른 애플리케이션 실행제어명령에 따라 단말(110)에 설치된 애플리케이션이 실행되도록 제어한다. In addition, when the application execution code is not included in the application 111 at the time of initial distribution of the application 111 but is downloaded each time the application 111 is executed, it is possible to further enhance the security of the application 111 . The security client module 112 executes the security process corresponding to the receipt of the inspection command from the security server 120 and transmits the execution result information to the security server 120. In accordance with the execution result information, And controls the application installed in the terminal 110 to be executed according to the control command.

보안 클라이언트 모듈(112)과 연동하는 보안 서버(120)는, 애플리케이션 보안을 위한 중요한 명령을 내리고 중요한 판단 및 결정을 한다. Security server 120 in conjunction with secure client module 112 makes important decisions and makes important decisions and decisions for application security.

더욱 상세하게 설명하면, 보안 서버(120)는, 보안 클라이언트 모듈(112)과 통신하여, 보안 클라이언트 모듈(112)에서 보안 프로세스가 실행되도록 검사명령을 보안 클라이언트 모듈(112)로 전송하고, 이에 따라, 보안 클라이언트 모듈(112)에서 검사명령에 대응되는 보안 프로세스가 실행되어 그 실행결과정보를 수신한다. More specifically, the security server 120 communicates with the secure client module 112 to send a verify command to the secure client module 112 to cause the secure process to be performed in the secure client module 112, , A security process corresponding to the inspection command is executed in the security client module 112, and the execution result information is received.

이후, 보안 서버(120)는 보안 클라이언트 모듈(112)로부터 수신된 실행결과정보에 따라 애플리케이션(111)이 단말(110)에서 실행되어도 안전한지를 판단하여, 애플리케이션(111)의 실행 여부를 결정하고, 이에 따른 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 전송한다. Thereafter, the security server 120 determines whether the application 111 is safe to be executed in the terminal 110 according to the execution result information received from the secure client module 112, determines whether to execute the application 111, And sends an application execution control command to the security client module 112 accordingly.

한편, 보안 클라이언트 모듈(112)의 동작을 트리거(Trigger) 시키기 위하여, 보안 클라이언트 모듈(112)이 단말(110)에 설치된 애플리케이션(111)에 내장되어 있는 경우, 애플리케이션(111)이 최초 실행되는 부분에, 보안 클라이언트 모듈(112)이 동작하도록 하는 제어 코드가 삽입되어 있을 수 있다. When the secure client module 112 is embedded in the application 111 installed in the terminal 110 in order to trigger the operation of the secure client module 112, A control code for allowing the secure client module 112 to operate may be inserted.

이러한 제어 코드는, 애플리케이션(111)의 최초 실행 시점에 읽혀져 보안 클라이언트 모듈(112)을 동작시키고, 동작 된 보안 클라이언트 모듈(112)이 보안 서버(120)와 통신하게 해주고, 애플리케이션(111)의 보안을 위한 보안 프로세스와 관련된 검사루틴을 실행하도록 하는 검사명령이 보안 서버(120)로부터 수신되도록 해주는 코드이다. This control code is read at the first execution time of the application 111 to operate the security client module 112 and allow the operated security client module 112 to communicate with the security server 120, Is a code that allows the security server 120 to receive an inspection command to execute an inspection routine associated with the security process for the security server 120. [

한편, 보안 클라이언트 모듈(112)이 내장되어 있는 애플리케이션(111)은, 코드 역 분석 방지를 위하여, 코드 파일의 일부분 또는 전체에 대한 파일 내용이 치환되어 암호화되어 있을 수 있다. The application 111 in which the security client module 112 is embedded may be encrypted by replacing the file contents of part or all of the code file in order to prevent code reverse analysis.

여기서, 애플리케이션(111)의 파일 내용의 치환과 관련하여, 보안 클라이언트 모듈(112)이 내장되어 있는 애플리케이션(111)은, 코드 파일의 일부분 또는 전체에 대한 파일 내용에 대한 저장 위치가 변경됨으로써 파일 내용이 치환될 수 있다. Here, regarding the substitution of the file contents of the application 111, the application 111 in which the security client module 112 is embedded changes the storage position of the file contents with respect to a part or all of the code file, May be substituted.

전술한 보안 서버(120)는 하드웨어적으로는 통상적인 웹 서버(Web Server) 또는 웹 어플리케이션 서버(Web Application Server) 또는 왑 서버(WAP Server)와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는, 도 2와 관련하여 아래에서 상세하게 설명할 바와 같이, C, C++, Java, PHP, .Net, Python, Ruby 등 여하한 언어를 통하여 구현되어 여러 가지 기능을 하는 프로그램 모듈(Module)을 포함할 수 있다.The security server 120 has a hardware configuration similar to that of a typical Web server, a web application server, or a WAP server. However, as described in detail below with reference to FIG. 2, a software module that is implemented in any language such as C, C ++, Java, PHP, .Net, Python, Ruby, (Module).

또한, 보안 서버(120)는, 네트워크(130)를 통하여 불특정 다수 클라이언트(단말(110) 포함) 및/또는 다른 서버와 연결될 수 있는데, 이에 따라, 보안 서버(120)는 클라이언트 또는 다른 서버의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 또는 이러한 컴퓨터 시스템을 위하여 설치되어 있는 컴퓨터 소프트웨어(서버 프로그램)를 뜻하는 것일 수도 있다. The security server 120 may also be connected to an unspecified number of clients (including the terminal 110) and / or other servers via the network 130, thereby allowing the security server 120 to perform operations Or a computer software (server program) installed for such a computer system, which receives a request for execution and derives a result of the operation on the computer.

또한, 보안 서버(120)는, 전술한 서버 프로그램 이외에도, 보안 서버(120) 상에서 동작하는 일련의 응용 프로그램(Application Program)과, 경우에 따라서는 내부 또는 외부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다. In addition to the above-described server program, the security server 120 may also include a wide range of application programs (Application Programs) operating on the security server 120 and various databases built in or outside the system .

여기서, 데이터베이스는, 서버 또는 다른 장치 등에 의해 사용될 목적으로 정보나 자료 등의 데이터가 구조화되어 관리되는 데이터의 집합체를 의미할 수 있으며, 이러한 데이터의 집합체를 저장하는 저장매체를 의미할 수도 있다. Here, the database may mean a collection of data structured by managing data such as information or data for use by a server or another device, and may mean a storage medium storing an aggregate of such data.

또한, 이러한 데이터베이스는 데이터의 구조화 방식, 관리 방식, 종류 등에 따라 분류된 복수의 데이터베이스를 포함하는 것일 수도 있다.Such a database may include a plurality of databases classified according to a data structure, a management method, and the like.

경우에 따라서, 데이터베이스는 정보나 자료 등을 추가, 수정, 삭제 등을 할 수 있도록 해주는 소프트웨어인 데이터베이스 관리시스템(Database Management System, DBMS)을 포함할 수도 있다. In some cases, the database may include a database management system (DBMS), which is software that allows the user to add, modify, delete, etc. information or data.

또한, 보안 서버(120)는 콘텐츠, 각종 정보 및 데이터를 데이터베이스에 저장시키고 관리할 수 있다. 여기서, 데이터베이스는 보안 서버(120)의 내부 또는 외부에 구현될 수 있다.In addition, the security server 120 may store and manage content, various information, and data in a database. Here, the database may be implemented inside or outside the security server 120.

또한, 보안 서버(120)는 일반적인 서버용 하드웨어에 도스(DOS), 윈도우(windows), 리눅스(Linux), 유닉스(UNIX), 매킨토시(Macintosh) 등의 운영체제에 따라 다양하게 제공되고 있는 서버 프로그램을 이용하여 구현될 수 있으며, 대표적인 것으로는 윈도우 환경에서 사용되는 웹 사이트(Website), IIS(Internet Information Server)와 유닉스환경에서 사용되는 Apache, Nginx, Light HTTP 등이 이용될 수 있다. In addition, the security server 120 uses a server program that is variously provided according to an operating system such as DOS, Windows, Linux, UNIX, or Macintosh to general server hardware Typical examples include a Web site used in a Windows environment, an Internet Information Server (IIS), Apache, Nginx, and Light HTTP used in a UNIX environment.

한편, 단말(110)은, 일반적인 데스크 탑이나 노트북 등의 일반 PC를 포함하고, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기 등을 포함할 수 있으며, 이에 제한되지 않고, 보안 서버(120)와 통신 가능한 어떠한 전자 기기로 폭넓게 해석되어야 할 것이다. Meanwhile, the terminal 110 may include a general PC such as a general desktop or a notebook computer, and may include a mobile terminal such as a smart phone, a tablet PC, a PDA (Personal Digital Assistants), and a mobile communication terminal. But should be broadly interpreted as any electronic device capable of communicating with security server 120. [

이러한 단말(110)과 보안 서버(120)를 연결해주는 망으로서의 네트워크(130)는 LAN(Local Area Network), WAN(Wide Area Network)등의 폐쇄형 네트워크일 수도 있으나, 인터넷(Internet)과 같은 개방형 네트워크일 수도 있다. 여기서, 인터넷은 TCP/IP 프로토콜 및 그 상위계층에 존재하는 여러 서비스, 즉 HTTP(HyperText Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미한다. The network 130 as a network connecting the terminal 110 and the security server 120 may be a closed network such as a LAN (Local Area Network) or a WAN (Wide Area Network) Network. Herein, the Internet includes various services existing in the upper layer of the TCP / IP protocol such as HyperText Transfer Protocol (HTTP), Telnet, File Transfer Protocol (FTP), Domain Name System (DNS), Simple Mail Transfer Protocol (NFS), and Network Information Service (NIS), which are used in the Internet.

또한, 단말(110)이 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함하는 경우, 네트워크(130)는 이동 통신망이나 와이파이(WiFi) 망 등의 무선 액세스 망을 더 포함할 수도 있다. In addition, when the terminal 110 includes a mobile terminal such as a smart phone, a tablet PC, a PDA (personal digital assistant), and a mobile communication terminal, the network 130 may be a wireless access network such as a mobile communication network or a WiFi As shown in FIG.

아래에서는, 이상에서 간략하게 설명한 애플리케이션 보안 시스템을 이루는 보안 클라이언트 모듈(112) 및 보안 서버(120)에 대하여 도 2 및 도 3을 참조하여 더욱 상세하게 설명한다. Hereinafter, the security client module 112 and the security server 120 constituting the application security system briefly described above will be described in more detail with reference to FIGS. 2 and 3. FIG.

도 2는 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버(120)에 대한 블록도이다. 2 is a block diagram of a security server 120 for application security in accordance with an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버(120)는, 단말(110)에 설치된 애플리케이션(111)에 내장되어 있는 보안 클라이언트 모듈(112)과 통신하는 통신부(210)와, 보안 클라이언트 모듈(112)와 연동하여 애플리케이션 보안을 위한 각종 제어 기능을 수행하는 제어부(220) 등을 포함한다. 2, a security server 120 for application security according to an exemplary embodiment of the present invention includes a communication unit 112 for communicating with a security client module 112 built in an application 111 installed in a terminal 110 210, and a control unit 220 that performs various control functions for application security in cooperation with the security client module 112.

전술한 제어부(220)는, 보안 클라이언트 모듈(112)이 해당 보안 프로세스를 실행하도록 검사명령을 통신부(210)를 통해 보안 클라이언트 모듈(112)로 전송한다. The control unit 220 transmits the inspection command to the security client module 112 through the communication unit 210 so that the security client module 112 executes the security process.

이러한 제어부(220)는, 검사명령을 전송한 이후, 보안 클라이언트 모듈(112)에서의 해당 보안 프로세스에 대한 실행결과정보를 통신부(210)를 통해 수신한다. After transmitting the inspection command, the control unit 220 receives execution result information for the security process in the security client module 112 through the communication unit 210. [

이후, 제어부(220)는, 수신된 실행결과정보에 따라 단말(110)에서의 애플리케이션(111)의 실행 여부를 판단(결정)하여, 단말(110)에서의 애플리케이션(111)의 실행을 제어하는 애플리케이션 실행제어명령을 통신부(210)를 통해 보안 클라이언트 모듈(112)로 제공한다. The control unit 220 determines whether to execute the application 111 in the terminal 110 according to the received execution result information and controls the execution of the application 111 in the terminal 110 And provides an application execution control command to the secure client module 112 via the communication unit 210. [

한편, 도 2를 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버(120)는, 보안 클라이언트 모듈(112)이 실행할 여러 보안 프로세스를 위한 모든 검사코드를 저장하여 관리하는 저장부(230)를 더 포함할 수 있다. 2, a security server 120 for application security according to an exemplary embodiment of the present invention includes a storage unit 120 for storing and managing all inspection codes for various security processes to be executed by the security client module 112, (230).

이와 같이, 본 발명의 일 실시예에서는, 보안 서버(120)가 모든 검사코드를 저장하고 있지만, 종래에는, 클라이언트 측에서 모든 검사코드를 저장하고 있다. 이에 따라, 검사코드가 변경된 경우, 클라이언트 전체를 업데이트 해야 하는 한계점이 있고, 이로 인해, 변경된 검사코드를 이용한 신속한 보안 대응이 되지 못하였다. As described above, in the embodiment of the present invention, the security server 120 stores all the inspection codes, but conventionally, all the inspection codes are stored on the client side. Accordingly, when the inspection code is changed, there is a limit to update the entire client, and as a result, rapid security response using the changed inspection code can not be achieved.

하지만, 본 발명의 일 실시예에서와 같이, 보안 서버(120)가 모든 검사코드를 저장하게 되면, 보안 클라이언트 모듈(112)은 보안 서버(120)에서 주는 데이터를 실행 및 저장하고, 이를 이용한 검사결과만을 보안 서버(120)에 전달하기만 하면 되기 때문에, 검사코드의 변경에 따른 보안 대응이 신속해질 수 있다. 또한, 보안 클라이언트 모듈(112)을 우회하는 행위 및 사고 발생시에도 신속한 대응이 가능해질 수 있다. However, as in the embodiment of the present invention, when the security server 120 stores all the inspection codes, the security client module 112 executes and stores the data provided by the security server 120, Since only the result is transmitted to the security server 120, the security response due to the change of the inspection code can be expedited. In addition, it is possible to promptly respond to an operation of bypassing the security client module 112 and an occurrence of an accident.

한편, 보안 서버(120)에 저장된 검사코드 중에는 여러 기업 간에 공유되어서는 안 되는 민감한 검사코드가 있을 수 있다. 따라서, 보안 서버(120)의 저장부(230)는, 보안 프로세스를 위한 검사코드를 모두 저장해두되, 애플리케이션(111)을 개발하는 업체의 단말로부터 수신된 추가 검사코드를 보안 프로세스를 위한 검사코드로서 추가 등록할 수 있다. Meanwhile, among the inspection codes stored in the security server 120, there may be sensitive inspection codes that should not be shared among various companies. Accordingly, the storage unit 230 of the security server 120 stores all of the inspection codes for the security process, and adds the additional inspection codes received from the terminal of the vendor developing the application 111 as inspection codes for the security process Additional registration is possible.

이에 따라, 애플리케이션 개발 업체는, 기업 대외 기밀 정보에 해당하는 보안 기능을 보안 클라이언트 모듈(112) 및 보안 서버(120)의 개발 및 운영 업체의 도움없이 적용할 수 있고, 자신만의 보안 정책을 효율적이고 능동적으로 운영할 수 있다. Accordingly, the application developer can apply the security function corresponding to the enterprise external confidential information without the assistance of the development and operation company of the security client module 112 and the security server 120, And can actively operate.

전술한 바와 같이, 보안 클라이언트 모듈(112)은, 보안 서버(120)의 검사명령에 의해서만 해당 보안 프로세스를 실행하고 그 실행결과정보를 보안 서버(120)로 알려주고, 보안 서버(120)에서 지시해준 애플리케이션 실행제어명령에 따라 정의된 바에 따라 애플리케이션(111)의 실행을 제어할 뿐, 그 어떠한 단독 동작 및 판단을 하지 않는다. As described above, the security client module 112 executes the corresponding security process only by an inspection command of the security server 120, informs the security server 120 of the execution result information, instructs the security server 120 It controls the execution of the application 111 as defined according to the application execution control command, but does not perform any single operation or judgment thereof.

즉, 본 발명의 일 실시예에 따른 애플리케이션 보호는 클라이언트 기반이 아니라 서버 기반으로 제공되는 것으로서, 클라이언트 코드 취약점 발견 및 기능 업데이트 시, 필요한 검사코드를 보안 서버(120)에 등록만 해두면, 보안 클라이언트 모듈(112)은 로직에 상관없이 보안 서버(120)의 명령에 따라서 동작만 하기만 하면 된다. 따라서, 단말(110)이 스마트 폰, 태블릿 PC 등의 모바일 단말인 모바일 환경에서 맞는 신속한 보안 대응이 가능해지고, 보안 제품을 무력화시키는 무력화 툴에도 효과적인 방어가 가능해지는 장점이 있다. That is, application protection according to an embodiment of the present invention is provided not on the basis of a client but on a server basis. When a necessary code is registered in the security server 120 at the time of detecting a vulnerability of a client code and updating a function, The module 112 need only operate according to the instructions of the security server 120 regardless of the logic. Accordingly, the terminal 110 can quickly respond to security in a mobile environment such as a smart phone, a tablet PC, and the like, and effectively defend against a disabling tool that disables a security product.

한편, 보안 클라이언트 모듈(112)은, 코드 역 분석 방지(Decompile Protection), 안티 바이러스(Anti-Virus) 검사 및 안티 해킹(Anti-Hacking) 검사 등을 통합하여 모두 제공할 수 있다. Meanwhile, the security client module 112 may provide both a Decompile Protection, an Anti-Virus, and an Anti-Hacking test.

따라서, 보안 서버(120)가 보안 클라이언트 모듈(112)로 전송하는 검사명령은, 일 예로, 코드 역 분석 방지(Decompile Protection), 안티 바이러스(Anti-Virus) 검사 및 안티 해킹(Anti-Hacking) 검사 등 중 하나 이상을 위한 검사명령일 수 있다. Accordingly, the inspection command transmitted from the security server 120 to the secure client module 112 may include, for example, a Decompile Protection, an Anti-Virus, and an Anti-Hacking Etc. < / RTI >

또한, 보안 서버(120)가 보안 클라이언트 모듈(112)로 전송하는 검사명령은, 일 예로, 방어코드 무결성 체크 명령, 방어코드 다운로드 명령 및 방어코드 실행 명령 등을 더 포함할 수 있다. In addition, the inspection command transmitted from the security server 120 to the secure client module 112 may further include, for example, a defensive code integrity check command, a defensive code download command, and a defensive code execution command.

아래에서는, 애플리케이션 보안을 위해 보안 서버(120)와 연동하는 보안 클라이언트 모듈(112)에 대하여 설명한다. In the following, a secure client module 112 that interacts with the security server 120 for application security will be described.

도 3은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈(112)에 대한 블록도이다. 3 is a block diagram of a secure client module 112 for application security in accordance with an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈(112)은, 보안 서버(120)와 연동하여 핵심적인 동작을 하는 제어부(310)와, 보안 서버(120)와 통신하는 통신부(320) 등을 포함한다. 3, the security client module 112 for application security according to an exemplary embodiment of the present invention includes a controller 310 that performs core operations in cooperation with the security server 120, a security server 120, And a communication unit 320 for communicating with the base station.

제어부(310)는, 통신부(320)를 통해 보안 서버(120)로부터 수신된 검사명령에 따라 해당 보안 프로세스를 실행하고, 그 실행결과정보를 출력한다. The control unit 310 executes the security process according to the inspection command received from the security server 120 through the communication unit 320 and outputs the execution result information.

통신부(320)는, 제어부(310)에 출력된 보안 프로세스의 실행결과정보를 보안 서버(120)로 전송한다. The communication unit 320 transmits the execution result information of the security process output to the control unit 310 to the security server 120.

제어부(320)는, 보안 프로세스의 실행결과정보를 출력한 이후, 통신부(320)를 통해 보안 서버(120)에서 애플리케이션 실행제어명령을 수신되면, 수신된 애플리케이션 실행제어명령에 따라, 해당 애플리케이션(111)의 실행을 제어한다. The control unit 320 receives the application execution control command from the security server 120 through the communication unit 320 after outputting the execution result information of the security process, ).

도 3의 보안 클라이언트 모듈(112)은 단말(110) 그 자체일 수도 있으며, 단말(110)에 설치된 애플리케이션(111)에 내장된 소프트웨어 모듈일 수도 있다. The security client module 112 of FIG. 3 may be the terminal 110 itself or a software module embedded in the application 111 installed in the terminal 110.

한편, 보안 클라이언트 모듈(112)은, 코드 역 분석 방지(Decompile Protection) 기능, 안티 바이러스(Anti-Virus) 기능 및 안티 해킹(Anti-Hacking) 기능 등을 단일 제품으로 통합하여 제공할 수 있다. Meanwhile, the security client module 112 may integrate a decryption protection function, an anti-virus function, and an anti-hacking function into a single product.

이를 위해, 도 4를 참조하면, 보안 클라이언트 모듈(112)의 제어부(310)는, 여러 가지의 보안 프로세스를 실행하는 통합 보안 모듈(410)과, 통합 보안 모듈(410)의 보안 프로세스의 실행결과정보에 따라 보안 서버(120)의 명령에 의해 애플리케이션(111)의 실행을 제어하는 애플리케이션 실행 제어 모듈(420) 등을 포함한다. 4, the control unit 310 of the secure client module 112 includes an integrated security module 410 for executing various security processes, and an execution result of the security process of the integrated security module 410 And an application execution control module 420 that controls the execution of the application 111 by an instruction of the security server 120 according to the information.

도 4를 참조하면, 통합 보안 모듈(410)은, 코드 역 분석 방지 모듈(411)과, 안티 바이러스 모듈(412)과, 안티 해킹 모듈(413) 등을 포함한다. Referring to FIG. 4, the integrated security module 410 includes a code reverse analysis prevention module 411, an anti-virus module 412, an anti-hacking module 413, and the like.

코드 역 분석 방지 모듈(411)은, 애플리케이션(111)의 최초 실행 부분에 삽입된 제어 코드의 실행에 따라 코드 역 분석 방지를 위한 검사명령을 보안 서버(120)로부터 수신하면, 보안 프로세스로서 제1 검사루틴을 실행하여 애플리케이션(111)에 대한 코드 역 분석 이벤트가 발생하였는지를 검사하고, 보안 프로세스의 실행결과정보로서 제1 검사결과정보를 보안 서버(120)로 전송한다. The code reverse analysis prevention module 411 receives an inspection command for prevention of reverse code analysis from the security server 120 according to the execution of the control code inserted in the first execution part of the application 111, Executes an inspection routine to check whether a code reverse analysis event for the application 111 has occurred, and transmits the first inspection result information to the security server 120 as execution result information of the security process.

종래의 코드 역 분석 방지는, 애플리케이션의 핵심 파일인 코드파일에 대하여 헤더(Header)의 특정 테이블 부분을 암호화 없이 변조만 하는 방식으로 지원된다. 이 경우, 특정 테이블 부분을 변조하는 로직만 공개되면 모든 위협에 쉽게 노출될 수 있다. Conventional code reverse analysis prevention is supported in such a manner that only a specific table portion of a header is modulated without encryption to a code file which is a core file of an application. In this case, only the logic that modulates a particular part of the table can be exposed to all threats if exposed.

하지만, 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 애플리케이션의 핵심 파일인 코드 파일에 대하여, 헤더의 특정 테이블 부분을 변조하는 것은 물론, 코드 파일 내 특정 부분과 치환하고 암호화하는 복합적인 보안 대책을 사용하여 코드 역 분석을 효과적으로 방지한다. However, as described above, according to the embodiment of the present invention, not only the specific table portion of the header is modified with respect to the code file which is the core file of the application, Use countermeasures to effectively prevent code reverse analysis.

또한, 종래의 코드 역 분석 방지를 위해, 애플리케이션의 핵심 파일인 코드 파일을 암호화하기도 하는데, 이 경우, 코드 파일을 단순하게 전체 암호화하기 때문에, 암호화 키 값이 유출될 경우, 보안 위협에 무방비 상태가 된다. 하지만, 본 발명의 일 실시예에서는, 애플리케이션의 핵심 파일인 코드 파일에 대하여, 헤더의 특정 테이블 부분을 변조하는 것은 물론, 코드 파일 내 특정 부분과 치환하고 암호화하는 복합적인 방식으로 코드 역 분석 방지 기술이 적용되기 때문에, 암호화 키가 유출이 되더라도 정상 파일로 복구가 불가능하여 보안 위협으로부터 안전하게 된다. In addition, in order to prevent the inverse analysis of the conventional code, the code file which is the core file of the application is encrypted. In this case, since the code file is simply completely encrypted, when the encryption key value is leaked, do. However, in an embodiment of the present invention, a code table, which is a key file of an application, may be modified by modifying a specific table portion of a header, , Even if the encryption key is leaked, it can not be restored to a normal file, so that it is safe from a security threat.

안티 바이러스 모듈(412)은, 보안 서버(120)로부터 안티 바이러스 검사를 위한 검사명령을 수신하면, 보안 프로세스로서 제2 검사루틴을 실행하여 애플리케이션(111)에 위해를 가하는 악성코드가 단말(110)에 존재하는지를 데이터베이스에 기반하여 검사하고, 보안 프로세스의 실행결과정보로서 제2 검사결과정보를 보안 서버(120)로 전송한다. When the antivirus module 412 receives the inspection command for the anti-virus inspection from the security server 120, the anti-virus module 412 executes the second inspection routine as the security process, And transmits the second check result information to the security server 120 as execution result information of the security process.

안티 해킹 모듈(413)은, 보안 서버(120)로부터 안티 해킹 검사를 위한 검사명령을 수신하면, 보안 프로세스로서 제3 검사루틴을 실행하여 애플리케이션(111)에 위해를 가하는 해킹 툴이 단말(110)에 존재하는지를 데이터베이스에 기반하여 검사하고, 보안 프로세스의 실행결과정보로서 제3 검사결과정보를 상기 보안 서버(120)로 전송한다. When the anti-hacking module 413 receives the inspection command for the anti-hacking inspection from the security server 120, the anti-hacking module 413 executes the third inspection routine as the security process to detect a hacking tool, And transmits the third check result information to the security server 120 as execution result information of the security process.

전술한 안티 해킹 및 안티 바이러스 기능은, 피 보호 대상이 되는 애플리케이션(111)이 실행되기 직전 또는 실행 중에, 단말(110)에서 현재 실행 중인 프로세스와 단말(110)에 설치되어 있는 악성 프로그램을 검사하는 것을 목적으로 하여, 현재 실행 중인 프로세스 중 피 보호 대상이 되는 애플리케이션(110)에 위해를 가할 수 있는 악성 코드 및 해킹 툴을 데이터베이스에 기반하여 탐지하거나, 현재 설치되어 있는 프로그램 중에서 피 보호 대상이 되는 애플리케이션(110)을 대상으로 하는 악성 코드 및 해킹 툴을 탐지하는 기능이다. The above-described anti-hacking and anti-virus function checks a malicious program installed in the terminal 110 and a process currently executed in the terminal 110 immediately before or during execution of the application 111 to be protected It is possible to detect malicious code and a hacking tool which can harm the application 110 to be protected from the currently executing processes based on the database or to detect a malicious code and a hacking tool Malicious code and a hacking tool targeting the malicious code 110 are detected.

악성 코드 및 해킹 툴의 탐지 방식은, 패키지 내 코드 파일의 무결성 값 또는 코드 파일 내 메소드 테이블 및 스트링 테이블 내용의 무결성 값을 비교하는 방식으로 이루어진다. Detection methods of malicious codes and hacking tools consist of a method of comparing integrity values of code files in a package or integrity values of contents of a method table and a string table in a code file.

위에서 언급한 코드 역 분석 방지 모듈(411), 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413) 각각의 동작 시점은, 애플리케이션(111)의 실행과 관련되어 있다. The operation timing of each of the code reverse analysis prevention module 411, the anti-virus module 412 and the anti-hacking module 413 mentioned above is related to the execution of the application 111. [

예를 들어, 애플리케이션(111)의 실행 요청이 발생하여 실제로 실행되기 이전에는, 코드 역 분석 방지 모듈(411)이 먼저 동작하고, 그 동작 결과, 코드 역 분석이 발생하지 않은 것으로 판단된 경우에만, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413) 중 어느 하나가 먼저 동작하고 이어서 나머지 동작할 수 있다. 이때, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)이 동시에 동작할 수도 있다. 코드 역 분석 방지 모듈(411)의 동작 결과, 코드 역 분석이 발생한 것으로 판단된 경우에는, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)은 동작하지 않는다. For example, only when the code reverse analysis prevention module 411 is operated before the execution request of the application 111 is actually executed and it is determined that the code reverse analysis has not occurred as a result of the operation, Any one of the anti-virus module 412 and the anti-hacking module 413 may be operated first and then the remaining operations may be performed. At this time, the anti-virus module 412 and the anti-hacking module 413 may operate simultaneously. As a result of the operation of the code reverse analysis prevention module 411, when it is determined that the code reverse analysis has occurred, the anti-virus module 412 and the anti-hacking module 413 do not operate.

더욱 상세하게 설명하면, 애플리케이션(111)의 실행 요청이 발생하여 실제로 실행되기 이전에는, 코드 역 분석 방지 모듈(411)이 보안 서버(120)의 검사명령에 따라 제1 검사 루틴을 실행하고, 그 실행결과정보가 보안 서버(120)로 전달되어 보안 서버(120)에서 코드 역 분석이 발생하지 않은 것으로 판단되면, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)이 보안 서버(120)로부터 검사명령을 받아 제2 검사루틴 및 제3 검사루틴을 실행하여, 그 실행결과정보가 보안 서버(120)로 보내져 악성코드 및 해킹 툴이 전혀 존재하지 않는 것으로 판단되면, 애플리케이션(111)이 실행되어도 된다는 정보를 포함하는 애플리케이션 실행제어명령이 보안 클라이언트 모듈(112)의 애플리케이션 실행 제어 모듈(420)로 보내진다. 이에 따라, 애플리케이션 실행 제어 모듈(420)은, 애플리케이션(111)이 실행되도록 제어한다. More specifically, before the execution request of the application 111 occurs and is actually executed, the code reverse analysis prevention module 411 executes the first inspection routine according to the inspection command of the security server 120, If the execution result information is transmitted to the security server 120 and it is determined that the code reverse analysis does not occur in the security server 120, the anti-virus module 412 and the anti-hacking module 413 check The second inspection routine and the third inspection routine are executed and the execution result information is sent to the security server 120 so that it is determined that the malicious code and the hacking tool are not present at all. An application execution control command including information is sent to the application execution control module 420 of the security client module 112. [ Accordingly, the application execution control module 420 controls the application 111 to be executed.

이렇게 애플리케이션(111)이 실행된 이후, 실행 도중에는, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)이 지속적으로 동작하여, 안티 바이러스 및 안티 해킹을 위한 검사가 실시간으로 이루어질 수 있다. After the application 111 is executed, the anti-virus module 412 and the anti-hacking module 413 are continuously operated during the execution, so that the inspection for the anti-virus and the anti-hacking can be performed in real time.

이때 보안 서버(120)는, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)로부터 해당 검사루틴의 실행결과정보를 전달받아, 애플리케이션(111)이 계속 실행되어도 되는지를 판단하고, 그 판단결과에 따라 실행제어명령을 보안 클라이언트 모듈(112)의 애플리케이션 실행 제어 모듈(420)로 전송한다. 이에 따라, 애플리케이션 실행 제어 모듈(420)은, 애플리케이션(111)의 실행 여부를 제어한다. At this time, the security server 120 receives the execution result information of the inspection routine from the anti-virus module 412 and the anti-hacking module 413, determines whether or not the application 111 can be continuously executed, And then sends an execution control command to the application execution control module 420 of the secure client module 112. Accordingly, the application execution control module 420 controls whether or not the application 111 is executed.

전술한 바와 같이, 종래에는, 코드 역 분석 방지, 안티 바이러스, 안티 해킹 등의 주요한 보안 기능을 별도의 제품(애플리케이션 등)으로 제공하였으나, 이는 모바일 환경에서는 단말 성능의 한계와, 다각적으로 침입하는 해킹의 위험성 등 때문에 적합하지 않다. 따라서, 본 발명의 일 실시예에 따른 애플리케이션 보호를 위해, 코드 역 분석 방지, 안티 바이러스, 안티 해킹 등의 주요한 보안 기능이 하나의 보안 클라이언트 모듈(112)에서 밀접하게 연동하여 협조적으로 제공됨으로써, 단말 성능의 한계에도 다각적인 보안 위협에 효과적으로 대응할 수 있는 장점이 있다. As described above, in the related art, major security functions such as code reverse analysis prevention, anti-virus and anti-hacking are provided as separate products (applications). However, in a mobile environment, The risk of such a situation is not suitable. Therefore, in order to protect the application according to an embodiment of the present invention, major security functions such as code reverse analysis prevention, anti-virus and anti-hacking are cooperatively provided cooperatively in one security client module 112, There is also an advantage in that it is able to respond effectively to various security threats even when performance is limited.

아래에서는, 이상에서 설명한 보안 서버(120)와 보안 클라이언트 모듈(112)이 서로 연동하여 애플리케이션 보안 기능을 제공하는 것에 대하여, 도 5 내지 도 8을 참조하여 더욱 상세하게 설명한다. Hereinafter, the security server 120 and the security client module 112 described above in conjunction with each other provide an application security function will be described in more detail with reference to FIGS. 5 to 8. FIG.

도 5는 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈(112)과 보안 서버(120) 간의 연동을 개략적으로 나타낸 도면이다. 5 is a diagram schematically illustrating the interworking between the security client module 112 and the security server 120 for application security according to an embodiment of the present invention.

도 5를 참조하면, 보안 서버(120)는, 보안 클라이언트 모듈(112)에서 실행되는 보안 프로세스를 위한 검사코드를 모두 저장해두고, 애플리케이션(111)의 최초 실행 부분에 삽입된 제어 코드가 단말(110)에 의해 읽혀지면, 보안 클라이언트 모듈(112)에서 실행되어야 하는 보안 프로세스를 위한 검사명령을 보안 클라이언트 모듈(112)로 전송한다(S510). 5, the security server 120 stores all of the check codes for the security process executed in the secure client module 112, and the control code embedded in the initial execution part of the application 111 is transmitted to the terminal 110 , The secure client module 112 transmits a check command for the security process to be executed in the secure client module 112 to the secure client module 112 (S510).

이때, 보안 서버(120)는, 보안 프로세스와 관련된 검사루틴을 실행하기 위해 암호화된 검사코드에 해당하는 암호화 데이터와 암호화 데이터를 복호화하기 위한 키를 보안 클라이언트 모듈(112)로 전달할 수 있다. At this time, the security server 120 may transmit the encryption data corresponding to the encrypted inspection code and the key for decrypting the encrypted data to the security client module 112 in order to execute the inspection routine related to the security process.

보안 클라이언트 모듈(112)은, 보안 프로세스를 위한 검사명령과, 암호화 데이터와 키를 상기 보안 서버(120)로부터 수신하여, 키를 토대로 암호화 데이터를 복호화하여 검사명령에 의해 지시된 보안 프로세스와 관련된 검사루틴을 실행하여 보안 프로세스의 실행결과정보를 보안 서버(120)로 전송한다(S520).The security client module 112 receives the inspection command for the security process, the encrypted data and the key from the security server 120, decrypts the encrypted data based on the key, and checks the security process related to the security process indicated by the inspection command And transmits execution result information of the security process to the security server 120 (S520).

이와 관련하여, 종래에는, 보안에 필요한 보안 모듈(검사코드)이 평문 파일 형태로 저장되어 있기 때문에, 역 분석을 통해 취약점이 쉽게 도출될 수 있다. 하지만, 본 발명의 일 실시예에서는, 보안 모듈 방어를 위해 보안 서버(120)에서 암호화된 데이터를 전달해주고, 사용시, 보안 서버(120)에서 전달해주는 키를 이용하여 암호화된 데이터를 복호화하여 사용하기 때문에, 종래와 같은 역분석을 통한 취약점이 보완될 수 있다. In this regard, since a security module (an inspection code) required for security is conventionally stored in a plain text file format, a weak point can be easily obtained through inverse analysis. However, in an embodiment of the present invention, the security server 120 transmits the encrypted data in order to protect the security module, and in use, decrypts and uses the encrypted data using the key transmitted from the security server 120 Therefore, vulnerability through reverse analysis like the conventional one can be supplemented.

S520 단계에서, 보안 서버(120)는, 보안 클라이언트 모듈(112)로부터 수신한 실행결과정보를 확인한 결과, 애플리케이션(111)에 대한 역 코드 분석 또는 악성코드 또는 해킹 툴이 감지된 경우, 애플리케이션(111)이 실행되면 안 된다는 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 바로 전송할 수 있다(S530). In step S520, when the security server 120 confirms execution result information received from the secure client module 112, if a reverse code analysis or malicious code or a hacking tool for the application 111 is detected, the application 111 ) To the secure client module 112 (S530).

S520 단계에서, 보안 서버(120)는, 보안 클라이언트 모듈(112)로부터 수신한 실행결과정보를 확인한 결과, 애플리케이션(111)에 대한 역 코드 분석 또는 악성코드 또는 해킹 툴이 감지되지 않은 경우, 애플리케이션(111)이 실행되어도 된다는 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 바로 전송할 수 있다(S530). In step S520, the security server 120 checks the execution result information received from the secure client module 112, and if the reverse code analysis for the application 111 or the malicious code or the hacking tool is not detected, 111) may be executed to the secure client module 112 (S530).

이때, 보안 서버(120)는, 보안 클라이언트 모듈(112)에서 실행되어야 하는 보안 프로세스가 더 있는 경우, 보안 서버(120)와 보안 클라이언트 모듈(112)은 S510 및 S520 단계를 반복적으로 수행할 수 있다. At this time, if there are more security processes to be executed in the secure client module 112, the secure server 120 and the secure client module 112 may repeatedly perform the steps S510 and S520 .

S530 단계에서, 보안 서버(120)는, 애플리케이션(111)이 실행되도록 하는 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 전송할 때, 보안 클라이언트 모듈(112)이 애플리케이션(111)의 코드 파일을 복호화하고 실행할 수 있도록 해주는 코드를 보안 클라이언트 모듈(112)로 전송해줄 수 있다. In step S530, when the security server 120 transmits an application execution control command to the security client module 112 to cause the application 111 to be executed, the security client module 112 decrypts the code file of the application 111 And send the code to the secure client module 112 for execution.

이에 따라, 보안 클라이언트 모듈(112)은, 보안 서버(120)로부터 받은 코드를 이용하여 애플리케이션(111)의 코드 파일을 복호화하여 애플리케이션(111)이 실행되도록 제어할 수 있다. Accordingly, the security client module 112 can decode the code file of the application 111 using the code received from the security server 120, and control the application 111 to be executed.

도 6은 본 발명의 일 실시예에 따른 애플리케이션 보안을 통해 애플리케이션(111)이 실행되는 과정을 나타낸 도면이다. FIG. 6 is a diagram illustrating a process of executing an application 111 through application security according to an exemplary embodiment of the present invention.

도 6을 참조하면, 애플리케이션(111)의 실행 요청이 발생하면(S610), 즉, 애플리케이션(111)의 최초 실행 부분에 삽입된 제어 코드가 읽혀지면, 보안 클라이언트 모듈(112)이 동작하여 코드 역 분석 방지 기능이 실행된다(S620). 6, when an execution request of the application 111 is generated (S610), that is, when the control code inserted in the first execution part of the application 111 is read, the security client module 112 operates to read the code The analysis prevention function is executed (S620).

코드 역 분석 방지 기능이 실행되는 단계(S620)에서, 보안 클라이언트 모듈(112) 내부의 코드 역 분석 방지 모듈(411)은, 제어 코드의 실행에 따라 코드 역 분석 방지를 위한 검사명령을 보안 서버(120)로부터 수신하게 되고, 코드 역 분석 방지를 위한 검사명령에 따른 보안 프로세스로서 제1 검사루틴을 실행하여, 애플리케이션(111)에 대한 코드 역 분석 이벤트가 발생하였는지를 검사하고, 이에 따라, 보안 프로세스의 실행결과정보로서 제1 검사결과정보를 보안 서버(120)로 전송한다. In the step S620 in which the code reverse analysis prevention function is executed, the code reverse analysis prevention module 411 in the secure client module 112 transmits a check command for prevention of code reverse analysis to the security server 120 and executes a first checking routine as a security process in accordance with a check command for prevention of code reverse analysis to check whether a code reverse analysis event for the application 111 has occurred, And transmits the first inspection result information to the security server 120 as execution result information.

보안 서버(120)는, 보안 클라이언트 모듈(112)로부터 수신한 제1 검사결과정보에 따라 애플리케이션(111)에 대한 코드 역 분석 이벤트가 발생한 지를 판단한다. The security server 120 determines whether a code de-parsing event for the application 111 has occurred based on the first inspection result information received from the security client module 112. [

보안 서버(120)는, 판단 결과, 제1 검사결과정보에 따라 애플리케이션(111)에 대한 코드 역 분석 이벤트가 발생한 것으로 판단되면, 애플리케이션(111)의 실행차단을 위한 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 전송할 수 있다. 이 경우, 안티 바이러스 및 안티 해킹 검사 기능 실행 단계(S630)는 수행되지 않는다. If it is determined that the code reverse analysis event for the application 111 has occurred according to the first inspection result information, the security server 120 transmits an application execution control command for blocking the execution of the application 111 to the secure client module (112). In this case, the execution step (S630) of the anti-virus and anti-hacking function is not performed.

보안 서버(120)는, 판단 결과, 미발생한 것으로 판단되면, 안티 바이러스 검사 및 안티 해킹 검사 중 적어도 하나를 위한 검사명령을 보안 클라이언트 모듈(112)로 전송하여, 보안 클라이언트 모듈(112) 내부의 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413) 중 적어도 하나가 동작하도록 제어한다. 이에 따라, 안티 바이러스 및 안티 해킹 검사 기능이 실행된다(S630). The security server 120 transmits an inspection command for at least one of the anti-virus inspection and the anti-hacking inspection to the security client module 112. If it is determined that the anti- And controls at least one of the virus module 412 and the anti-hacking module 413 to operate. Accordingly, the anti-virus and anti-hacking checking functions are executed (S630).

안티 바이러스 및 안티 해킹 검사 기능 실행 단계(S630)에서, 보안 클라이언트 모듈(112) 내부의 안티 바이러스 모듈(412)은, 보안 서버(120)로부터 안티 바이러스 검사를 위한 검사명령을 수신하면, 보안 프로세스로서 제2 검사루틴을 실행하여 애플리케이션(111)에 위해를 가하는 악성코드가 단말(110)에 존재하는지를 데이터베이스에 기반하여 검사하고, 보안 프로세스의 실행결과정보로서 제2 검사결과정보를 보안 서버(120)로 전송한다. In step S630, the anti-virus module 412 in the secure client module 112, when receiving the inspection command for the anti-virus inspection from the security server 120, The second inspection routine is executed to check whether or not malicious code damaging the application 111 exists in the terminal 110 based on the database and the second inspection result information is transmitted to the security server 120 as execution result information of the security process, Lt; / RTI >

또한, 안티 바이러스 및 안티 해킹 검사 기능 실행 단계(S630)에서, 보안 클라이언트 모듈(112) 내부의 안티 해킹 모듈(413)은, 보안 서버(120)로부터 안티 해킹 검사를 위한 검사명령을 수신하면, 보안 프로세스로서 제3 검사루틴을 실행하여 애플리케이션(111)에 위해를 가하는 해킹 툴이 단말(110)에 존재하는지를 데이터베이스에 기반하여 검사하고, 보안 프로세스의 실행결과정보로서 제3 검사결과정보를 보안 서버(120)로 전송한다. In step S630, the anti-hacking module 413 in the security client module 112 receives an inspection command for the anti-hacking inspection from the security server 120, A third checking routine is executed as a process to check whether or not a hacking tool that damages the application 111 exists in the terminal 110 based on the database and the third check result information is transmitted to the security server 120).

보안 서버(120)는, 보안 클라이언트 모듈(112)의 코드 역 분석 방지 모듈(411)로부터 수신된 제1 검사결과정보에 따라 애플리케이션(111)에 대한 코드 역 분석 이벤트가 미발생한 것으로 판단되어(S620), 안티 바이러스 검사 및 안티 해킹 검사를 위한 검사명령을 보안 클라이언트 모듈(112)로 전송한 이후, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)로부터 제2 검사결과정보 및 제3 검사결과정보가 수신되면(S630), 수신된 제2 검사결과정보 및 제3 검사결과정보에 따라 애플리케이션(111)이 안전하다고 판단되면, 애플리케이션(111)이 실행되도록 하는 애플리케이션 실행제어명령을 보안 클라이언트 모듈(112)로 전송한다. 이에 따라, 보안 클라이언트 모듈(112)에 의해 애플리케이션(111)이 단말(110)에서 실행된다(S640).The security server 120 determines that the code reverse analysis event for the application 111 has not yet occurred according to the first inspection result information received from the reverse code analysis prevention module 411 of the secure client module 112 And transmits the second inspection result information and the third inspection result information from the anti-virus module 412 and the anti-hacking module 413 after transmitting the inspection command for the anti-virus inspection and the anti-hacking inspection to the security client module 112, An application execution control command for causing the application 111 to be executed when it is determined that the application 111 is safe according to the received second test result information and the third test result information is transmitted to the secure client module 112 ). Accordingly, the application 111 is executed in the terminal 110 by the secure client module 112 (S640).

이와 같이, 애플리케이션(111)이 실행된 이후, 실행 도중에는, 안티 바이러스 모듈(412) 및 안티 해킹 모듈(413)이 지속적으로 동작하여, 안티 바이러스 및 안티 해킹을 위한 검사가 실시간으로 이루어질 수 있다(S650). After execution of the application 111, the anti-virus module 412 and the anti-hacking module 413 continue to operate during the execution of the application 111, so that an inspection for antivirus and anti-hacking can be performed in real time (S650 ).

도 7은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈(112)의 동작 절차를 나타낸 도면이다. 7 is a flowchart illustrating an operation procedure of a secure client module 112 for application security according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 클라이언트 모듈(112)은, 단말 정보를 수집하고(S700), 이후, 보안 서버(120)에 접속하여(S702), 보안 서버(120)에서 내리는 명령에 대응되는 프로세스만을 실행하고 그 실행결과정보를 보안 서버(120)로 전달해준다. 7, the secure client module 112 for application security according to an embodiment of the present invention collects terminal information (S700), and then accesses the security server 120 (S702) Only the process corresponding to the command issued by the server 120 is executed and the execution result information is transmitted to the security server 120.

도 7을 참조하면, 보안 클라이언트 모듈(112)은, 보안 서버(120)의 명령 데이터를 수신한다(S704). 이때, 수신한 명령 데이터는 방어코드 무결성 체크 명령, 방어코드 다운로드 명령, 방어코드 실행 명령 등에 대한 데이터일 수 있다. Referring to FIG. 7, the secure client module 112 receives command data of the security server 120 (S704). At this time, the received command data may be data for a defense code integrity check command, a defense code download command, a defense code execution command, and the like.

만약, 보안 클라이언트 모듈(112)이 수신한 명령 데이터가 방어코드 무결성 체크 명령인 경우(S706), 방어코드 무결성 체크(검사)를 하여 방어코드 무결성 정보를 수집한다(S708). If the command data received by the secure client module 112 is a check code integrity check command (S706), a defense code integrity check (check) is performed to collect defense code integrity information (S708).

또한, 보안 클라이언트 모듈(112)이 수신한 명령 데이터가 방어코드 다운로드 명령인 경우(S710), 방어코드를 보안 서버(120)로부터 다운로드 받아 저장한다(S712). 이때, 보안 클라이언트 모듈(112)은 보안 서버(120)로부터 전달받은 방어코드는 암호화하여 저장한다. If the command data received by the secure client module 112 is a defense code download command (S710), the defense code is downloaded from the security server 120 and stored (S712). At this time, the security client module 112 encrypts and stores the defense code received from the security server 120.

또한, 보안 클라이언트 모듈(112)이 수신한 명령 데이터가 방어코드 실행 명령인 경우(S714), 보안 클라이언트 모듈(112)은 보안 서버(120)로부터 전달받은 정보(암호화 키 등)를 이용하여 S712 단계에서 저장해둔 방어코드를 복호화하여 메모리에 로드한다(S716). If the command data received by the secure client module 112 is a defense code execution command in step S714, the secure client module 112 performs step S712 using the information received from the security server 120 And stores the decrypted code in a memory (S716).

보안 클라이언트 모듈(112)은, 복호화된 방어코드가 메모리에 로드된 이후, 복호화된 방어코드를 삭제한다(S718). After the decrypted defense code is loaded into the memory, the secure client module 112 deletes the decrypted defense code (S718).

이후, 보안 클라이언트 모듈(112)은 보안 서버(120)에서 전달받은 리소스(Resource)와 함께, 메모리에 로드된 방어코드를 실행한다(S720).Then, the security client module 112 executes the defense code loaded in the memory together with the resource received from the security server 120 (S720).

전술한 바와 같은, 방어코드 운영 방식은, 보안 서버(120)로부터 전달된 방어코드가 무단으로 분석될 수 없도록 하는 방식으로서, 방어코드에 대한 보안성을 향상시켜 줄 수 있다. As described above, the defense code operating method can improve the security of the defense code by preventing the defense code transmitted from the security server 120 from being analyzed unauthorized.

한편, 보안 클라이언트 모듈(112)은, 보안 서버(120)에 접속한 이후, 애플리케이션(111)의 명령 데이터를 수신할 수도 있다(S730). 이 경우, 애플리케이션(111)의 명령 데이터는 메모리 보호(S732), 메모리 변조 체크(S734), 리소스 복호화(S736) 등에 대한 요청일 수 있다. Meanwhile, the secure client module 112 may receive command data of the application 111 after connecting to the security server 120 (S730). In this case, the command data of the application 111 may be a request for memory protection (S732), memory modulation check (S734), resource decryption (S736) and the like.

이와 관련하여, 보안 클라이언트 모듈(112)은, 현재 단말 시스템이 허용하지 않은 관리자 권한을 갖는 파일 또는 프로세스가 있는지 검사하는 루팅 탐지 기능, 피 보호 프로그램인 애플리케이션(111)의 실행 상태가 디버깅 모드 인지를 검사하는 디버깅 모드 탐지 기능, 피 보호 프로그램인 애플리케이션(111)이 사용되는 중요한 정보를 갖는 메모리 부분을 암호화하는 메모리 암호화 기능, 피 보호 프로그램인 애플리케이션(111)에서 일정 시간, 특정 행위 동안에 메모리가 변조되었는지를 검사하는 메모리 변조 탐지 기능, 피 보호 프로그램인 애플리케이션(111)에서 사용하는 파일에 대한 변조 여부를 검사하는 파일 변조 검사 기능 등을 수행할 수 있다. In this regard, the security client module 112 may include a routing detection function for checking whether there is a file or a process having an administrator authority not permitted by the current terminal system, a function for detecting whether the execution state of the application 111 as the protected program is a debugging mode A memory encryption function for encrypting a memory portion having important information in which an application 111, which is a program to be protected, is used, a memory control function for checking whether a memory has been tampered during a certain period of time in the application 111, A file modulation checking function for checking whether or not the file used by the application 111, which is the program to be protected, is tampered with can be performed.

도 8은 본 발명의 일 실시예에 따른 애플리케이션 보안을 위한 보안 서버(120)의 동작 절차를 나타낸 도면이다. 8 is a flowchart illustrating an operation procedure of the security server 120 for application security according to an embodiment of the present invention.

도 8을 참조하면, 보안 서버(120)는, 보안 클라이언트 모듈(112)에서 실행해야하는 보안 프로세스를 위한 검사코드(방어코드)와 이 검사코드(방어코드)에서 사용할 리소스 정보, 그리고, 보안 클라이언트 모듈(112)에서 보내오는 보안 프로세사의 실행결과정보(방어코드 수행 결과값)를 비교한 이후, 그 결과에 따라, 보안 클라이언트 모듈(112)로 해당 명령을 전달한다. 8, the security server 120 includes an inspection code (defense code) for a security process to be executed in the security client module 112, resource information to be used in the inspection code (defense code) (Defense code execution result value) of the security processor sent from the security client module 112, and then transmits the command to the security client module 112 according to the result.

도 8을 참조하면, 일단, 보안 서버(120)는, 단말(110)에서의 보안 클라이언트 모듈(112)에서 확인된 단말 정보에 대한 데이터를 보안 클라이언트 모듈(112)로부터 전달받는다(S800). Referring to FIG. 8, the security server 120 receives data on the terminal information confirmed by the security client module 112 in the terminal 110 from the security client module 112 (S800).

보안 서버(120)는, 보안 클라이언트 모듈(112)로부터 전달받은 단말 정보로 해당 사용자에 대한 키(사용자 키)를 생성한다(S802). The security server 120 generates a key (user key) for the user using the terminal information received from the security client module 112 (S802).

이후, 보안 서버(120)는, 보안 클라이언트 모듈(112)에게 검사코드 무결성 검증을 요청한다(S804). Thereafter, the security server 120 requests the security client module 112 to perform an inspection code integrity verification (S804).

이에 따라, 보안 서버(120)는, 보안 클라이언트 모듈(112)로부터 무결성 값에 대한 데이터를 수신한다(S806).Accordingly, the security server 120 receives data on the integrity value from the secure client module 112 (S806).

이후, 보안 서버(120)는, 소스코드가 정상 파일인지 또는 최신 파일인지를 판단한다(S810). 여기서, 소스코드는 검사코드 또는 방어코드일 수 있으며, 경우에 따라서, 애플리케이션(111)의 코드파일일 수도 있다. Thereafter, the security server 120 determines whether the source code is a normal file or a latest file (S810). Here, the source code may be an inspection code or a defensive code, and may be a code file of the application 111, as the case may be.

보안 서버(120)는, S810 단계의 판단 결과, 소스코드가 정상 파일 또는 최신 파일이 아닌 것으로 판단되면, 해당 소스코드를 사용하려는 시도횟수가 일정 횟수(예: 5회) 이상인지를 추가로 더 판단한다(S812).If it is determined in step S810 that the source code is not a normal file or a latest file, the security server 120 further determines whether the number of attempts to use the source code is equal to or greater than a predetermined number (e.g., five) (S812).

보안 서버(120)는, S812 단계에서의 판단 결과, 일정 횟수 이상 시도가 이루어진 경우, 보안 클라이언트 모듈(112)로 현재 이루어지고 있는 프로세스(애플리케이션 실행과 관련된 보안 프로세스)를 종료하라는 명령을 전송한다(S828). As a result of the determination in step S812, the security server 120 transmits an instruction to terminate the current process (security process related to application execution) to the security client module 112 when a predetermined number of attempts or more are attempted S828).

보안 서버(120)는, S810 단계의 판단 결과, 소스코드가 정상 파일 또는 최신 파일인 것으로 판단되거나, S812 단계에서의 판단 결과, 시도 횟수가 일정 횟수 미만으로 판단된 경우, 보안 서버(120)에 저장된 소스코드를 보안 클라이언트 모듈(112)로 전달하면서 소스코드에 대한 저장 명령을 내린다(S814). If it is determined in step S810 that the source code is a normal file or a latest file, or if it is determined in step S812 that the number of attempts is less than a predetermined number, the security server 120 The stored source code is transmitted to the secure client module 112, and a save command for the source code is issued (S814).

이후, 보안 서버(120)는, 저장된 파일의 무결성 데이터를 수신하고(S816), 해당 스텝에서의 소스코드를 실행하라는 명령을 보안 클라이언트 모듈(112)로 전송한다(S820). Thereafter, the security server 120 receives the integrity data of the stored file (S816), and transmits an instruction to the security client module 112 to execute the source code in the corresponding step (S820).

이후, 보안 서버(120)는, 소스코드의 결과값을 검사하고(S822), 결과값이 정상인지를 판단하여(S824), 결과값이 정상이 아닌 것으로 판단된 경우에는, 보안 클라이언트 모듈(112)로 현재 이루어지고 있는 프로세스(애플리케이션 실행과 관련된 보안 프로세스)를 종료하라는 명령을 전송한다(S828). Thereafter, the security server 120 checks the result value of the source code (S822) and determines whether the result value is normal (S824). If the result is not normal, the security client module 112 (Step S828) to terminate the current process (security process related to application execution).

보안 서버(120)는, S8204 단계에서의 판단 결과, 결과값이 정상으로 판단된 경우, 다음 소스코드가 존재하는지를 판단하여(S826), 다음 소스코드가 존재하지 않을 때까지 S804 단계부터 다시 반복하여 수행한다. If it is determined in step S8204 that the resultant value is normal, the security server 120 determines whether there is a next source code (S826), and repeats the process from step S804 until the next source code does not exist .

이상에서는, 본 발명의 일 실시예에 따른 애플리케이션 보안을 제공하는 방법과, 이를 위한 보안 서버(120) 및 보안 클라이언트 모듈(112)에 대하여 설명하였다. In the foregoing, a method of providing application security according to an embodiment of the present invention, and a security server 120 and a security client module 112 for the method have been described.

한편, 본 발명의 일 실시예에 따른 애플리케이션 보안을 제공하는 방법은, 단말(110)에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼에 포함되거나 운영체제 등에 포함되거나 호환되는 프로그램일 수 있음)에 의해 실행될 수 있고, 또한, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 단말기(110)의 운영체제와 호환 가능하고 단말(110)에 직접 설치한 애플리케이션(111)에 의해 실행될 수 있다. Meanwhile, a method of providing application security according to an embodiment of the present invention may include an application installed in the terminal 110 (which may be included in a platform that is basically installed in the terminal, or included in an operating system, And an application 111 compatible with the operating system of the terminal 110 and installed directly on the terminal 110 through an application providing server such as an application store server, an application or a web server associated with the service, ). ≪ / RTI >

여기서, 단말(110)의 운영체제는, 데스크 탑 등의 일반 PC에 설치되는 윈도우(Window), 매킨토시(Macintosh) 등의 운영체제이거나, 스마트폰, 태블릿 PC 등의 모바일 단말기에 설치되는 iOS, 안드로이드(Android) 등의 모바일 전용 운영체제 등일 수도 있다. Here, the operating system of the terminal 110 may be an operating system such as a window installed on a general PC such as a desktop or a Macintosh, an iOS installed on a mobile terminal such as a smart phone or a tablet PC, ), And the like.

이러한 의미에서, 본 발명의 일 실시예에 따른 애플리케이션 보안을 제공하는 방법은, 단말(110)에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고, 단말(110) 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. In this regard, a method of providing application security according to an embodiment of the present invention is implemented as an application installed in the terminal 110 or directly installed by a user (i.e., a program) And can be recorded on a computer-readable recording medium.

즉, 본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 실행시키기 위한 보안 클라이언트 모듈(112)은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. That is, the secure client module 112 for executing the application security method according to an embodiment of the present invention may be implemented as a program and recorded in a computer-readable recording medium.

본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 구현한 프로그램은, 보안 서버(120)로부터 수신된 검사명령에 따라 보안 프로세스를 실행하는 기능과, 보안 프로세스의 실행결과정보를 상기 보안 서버(120)로 전송하는 기능과, 보안 서버(120)로부터 수신한 애플리케이션 실행제어명령에 따라, 애플리케이션의 실행을 제어하는 기능 등을 실행한다. 이뿐만 아니라, 이상에서 설명한 본 발명의 일 실시예에 따른 애플리케이션 보안 방법에 대응되는 모든 기능을 실행할 수 있다. The program for implementing an application security method according to an embodiment of the present invention includes a function of executing a security process according to an inspection command received from the security server 120, And a function of controlling the execution of the application in accordance with the application execution control command received from the security server 120. [ In addition to this, all the functions corresponding to the application security method according to the embodiment of the present invention described above can be executed.

이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다. Such a program may be recorded on a recording medium that can be read by a computer and executed by a computer so that the above-described functions can be executed.

이와 같이, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. As described above, in order to execute an application security method according to an embodiment of the present invention in which a computer reads a program recorded on a recording medium and is embodied as a program, the above-mentioned program is stored in a computer- C ++, JAVA, machine language, and the like.

이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다. The code may include a function code related to a function or the like that defines the functions described above and may include an execution procedure related control code necessary for the processor of the computer to execute the functions described above according to a predetermined procedure.

또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. In addition, such code may further include memory reference related code as to what additional information or media needed to cause the processor of the computer to execute the aforementioned functions should be referenced at any location (address) of the internal or external memory of the computer .

또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다. In addition, when a processor of a computer needs to communicate with any other computer or server, etc., to perform the above-described functions, the code may be stored in a computer's communication module (e.g., a wired and / ) May be used to further include communication related codes such as how to communicate with any other computer or server in the remote, and what information or media should be transmitted or received during communication.

그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.The functional program for implementing the present invention and the related code and code segment may be implemented by programmers in the technical field of the present invention in consideration of the system environment of the computer that reads the recording medium and executes the program, Or may be easily modified or modified by the user.

또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다. Also, the computer-readable recording medium on which the above-described program is recorded may be distributed to a computer system connected via a network so that computer-readable codes can be stored and executed in a distributed manner. In this case, one or more of the plurality of distributed computers may execute some of the functions presented above and send the results of the execution to one or more of the other distributed computers, The computer may also perform some of the functions described above and provide the results to other distributed computers as well.

이상에서 전술한 바와 같은, 본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다. As described above, the computer-readable recording medium on which the program for executing the application security method according to an embodiment of the present invention is recorded may be a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk , And optical media storage devices.

또한, 본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 애플리케이션 스토어 서버(Application Store Server), 애플리케이션 또는 해당 서비스와 관련된 웹 서버(Web Server) 등을 포함하는 애플리케이션 제공 서버(Application Provider Server)에 포함된 저장매체(예: 하드디스크 등)이거나, 애플리케이션 제공 서버 그 자체일 수도 있으며, 프로그램을 기록한 다른 컴퓨터 또는 그 저장매체일 수도 있다. In addition, a computer-readable recording medium storing an application, which is a program for executing an application security method according to an embodiment of the present invention, includes an application store server, an application or a web server (For example, a hard disk) included in an application provider server including an application server, a server, or the like, an application providing server itself, or another computer storing the program or a storage medium thereof.

본 발명의 일 실시예에 따른 애플리케이션 보안 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다. A computer capable of reading a recording medium on which an application, which is a program for executing an application security method according to an embodiment of the present invention, can be read is not limited to a general PC such as a general desktop or a notebook computer but also a smart phone, Digital assistants, and mobile communication terminals. In addition, the present invention should be interpreted as all devices capable of computing.

만약, 본 발명의 일 실시예에 따른 애플리케이션 보안을 제공하는 방법을 실행시키기 위한 프로그램(보안 클라이언트 모듈(112)에 대한 프로그램) 또는 이를 내장하는 애플리케이션(111)을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기인 경우, 모바일 단말기는 애플리케이션 스토어 서버, 웹 서버 등을 포함하는 애플리케이션 제공 서버로부터 해당 애플리케이션을 다운로드 받아 설치할 수 있고, 경우에 따라서는, 애플리케이션 제공 서버에서 일반 PC로 다운로드 된 이후, 동기화 프로그램을 통해 모바일 단말기에 설치될 수도 있다. If a computer capable of reading a recording medium on which a program (a program for the security client module 112) for executing a method of providing application security according to an embodiment of the present invention or an application 111 containing the application is stored In case of a mobile terminal such as a smart phone, a tablet PC, a PDA (Personal Digital Assistants) and a mobile communication terminal, the mobile terminal can download and install the application from an application providing server including an application store server, a web server, May be downloaded to the general PC from the application providing server and then installed in the mobile terminal through the synchronization program.

이상에서 설명한 바와 같이 본 발명에 의하면, 신속한 보안 대응이 가능하도록 서버 위주의 애플리케이션 보안을 제공하는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다. As described above, according to the present invention, it is possible to provide an application security system, a security server, a security client device, and a recording medium that provide server-oriented application security to enable rapid security response.

또한, 본 발명에 의하면, 각기 다른 보안 기능이 긴밀하게 연동하여 동작하여 보안성을 높여줄 수 있는 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다. According to another aspect of the present invention, there is provided an application security system, a security server, a security client device, and a recording medium, which can enhance security by operating in cooperation with each other.

또한, 본 발명에 의하면, 보안 기능을 수행하기 위해 단말에 저장되어야 하는 보안 관련 데이터를 줄여주고 보안 기능을 위해 단말의 부하를 줄여주어, 스마트 폰, 태블릿 PC 등의 모바일 환경에 적합한 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체를 제공하는 효과가 있다. In addition, according to the present invention, an application security system suitable for a mobile environment such as a smart phone, a tablet PC, and the like by reducing the security related data to be stored in the terminal to perform the security function and reducing the load of the terminal for the security function, A security server, a security client device, and a recording medium.

이상에서의 설명 및 첨부된 도면은 본 발명의 기술 사상을 예시적으로 나타낸 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 구성의 결합, 분리, 치환 및 변경 등의 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions. , Separation, substitution, and alteration of the invention will be apparent to those skilled in the art. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas falling within the scope of the same shall be construed as falling within the scope of the present invention.

Claims (14)

검사명령의 수신에 따라 보안 프로세스를 실행하여 실행결과정보를 전송하고, 상기 실행결과정보에 따른 애플리케이션 실행제어명령에 따라 단말에 설치된 애플리케이션이 실행되도록 제어하는 보안 클라이언트 모듈; 및
상기 보안 클라이언트 모듈과 통신하여, 상기 보안 클라이언트 모듈에서 상기 보안 프로세스가 실행되도록 상기 검사명령을 상기 보안 클라이언트 모듈로 전송하고, 상기 보안 클라이언트 모듈로부터 수신된 상기 실행결과정보에 따라 상기 애플리케이션의 실행 여부를 판단하여 상기 애플리케이션 실행제어명령을 상기 보안 클라이언트 모듈로 전송하는 보안 서버를 포함하되,
상기 애플리케이션은, 코드 파일의 일부분 또는 전체에 대한 파일 내용이 치환되어 암호화된 것을 특징으로 하는 애플리케이션 보안 시스템.
A security client module that executes a security process according to receipt of an inspection command to transmit execution result information and controls an application installed in the terminal to be executed according to an application execution control command according to the execution result information; And
Communicating with the security client module, transmitting the inspection command to the security client module so that the security process is executed in the security client module, and determining whether to execute the application according to the execution result information received from the security client module And a security server for transmitting the application execution control command to the security client module,
Wherein the application is encrypted by replacing a file content of a part or all of the code file.
제1항에 있어서,
상기 애플리케이션이 최초 실행되는 부분에, 상기 보안 클라이언트 모듈이 동작하도록 하고, 상기 보안 서버와 통신하여 상기 보안 프로세스와 관련된 검사루틴을 실행하도록 하는 상기 검사명령이 상기 보안 서버로부터 수신되도록 하는 제어 코드가 삽입된 것을 특징으로 하는 애플리케이션 보안 시스템.
The method according to claim 1,
A control code for causing the security client module to operate in a portion where the application is initially executed and to cause the inspection command to be received from the security server to communicate with the security server to execute an inspection routine related to the security process, The application security system comprising:
제2항에 있어서,
상기 보안 서버는,
상기 보안 프로세스를 위한 검사코드를 모두 저장해두고, 상기 애플리케이션의 최초 실행 부분에 삽입된 상기 제어 코드가 상기 단말에 의해 읽혀지면, 상기 검사명령을 상기 보안 클라이언트 모듈로 전송하고,
상기 보안 프로세스와 관련된 검사루틴을 실행하기 위해 암호화된 검사코드에 해당하는 암호화 데이터와 상기 암호화 데이터를 복호화하기 위한 키를 상기 보안 클라이언트 모듈로 전달하며, 상기 보안 프로세스의 상기 실행결과정보를 상기 보안 클라이언트 모듈로부터 수신하여 상기 애플리케이션 실행제어명령을 상기 보안 클라이언트 모듈로 전송하고,
상기 보안 클라이언트 모듈은,
상기 검사명령과, 상기 암호화 데이터 및 상기 키를 상기 보안 서버로부터 수신하여, 상기 키를 토대로 상기 암호화 데이터를 복호화하여, 상기 보안 프로세스와 관련된 검사루틴을 실행하고,
상기 보안 프로세스의 상기 실행결과정보를 상기 보안 서버로 전송하고, 상기 보안 서버로부터 상기 애플리케이션 실행제어명령이 수신되면, 상기 애플리케이션 실행제어명령에 따라 상기 단말에서 상기 애플리케이션이 실행되는 것을 제어하는 것을 특징으로 하는 애플리케이션 보안 시스템.
3. The method of claim 2,
The security server includes:
Storing the inspection code for the security process and transmitting the inspection command to the security client module when the control code inserted in the initial execution part of the application is read by the terminal,
And transmits the encrypted resultant information of the security process to the security client module, wherein the security client module transmits the encrypted resultant data to the security client module in order to execute the check routine related to the security process, Module to send the application execution control command to the secure client module,
The secure client module comprising:
Receiving the inspection command, the encrypted data and the key from the security server, decrypting the encrypted data based on the key, executing an inspection routine related to the security process,
And transmits the execution result information of the security process to the security server and controls the execution of the application in the terminal according to the application execution control command when the application execution control command is received from the security server. Application security system.
삭제delete 제1항에 있어서,
상기 애플리케이션은,
상기 코드 파일의 일부분 또는 전체에 대한 파일 내용에 대한 저장 위치가 변경됨으로써 파일 내용이 치환된 것을 특징으로 하는 애플리케이션 보안 시스템.
The method according to claim 1,
The application comprises:
And the contents of the file are replaced by changing the storage location of the file contents with respect to a part or the whole of the code file.
제1항에 있어서,
상기 보안 클라이언트 모듈이 상기 보안 서버로부터 수신하는 상기 검사명령은, 코드 역 분석 방지를 위한 검사명령, 안티 바이러스 검사를 위한 검사명령 및 안티 해킹 검사를 위한 검사명령 중 하나인 것을 특징으로 하는 애플리케이션 보안 시스템.
The method according to claim 1,
Wherein the inspection command received by the security client module from the security server is one of an inspection command for preventing code reverse analysis, an inspection command for anti-virus inspection, and an inspection command for anti-hacking inspection. .
제6항에 있어서,
상기 보안 서버는,
상기 코드 역 분석 방지를 위한 검사명령을 먼저 전송한 이후, 상기 보안 클라이언트 모듈로부터 수신된 상기 실행결과정보로부터 상기 애플리케이션에 대한 코드 역 분석 이벤트가 미발생한 것으로 판단되면, 상기 안티 바이러스 검사 및 상기 안티 해킹 검사 중 적어도 하나를 위한 검사명령을 상기 보안 클라이언트 모듈로 전송하고,
상기 보안 클라이언트 모듈로부터 수신된 상기 실행결과정보로부터 상기 애플리케이션에 대한 코드 역 분석 이벤트가 발생한 것으로 판단되면, 상기 애플리케이션의 실행을 차단하도록 하는 상기 애플리케이션 실행제어명령을 상기 보안 클라이언트 모듈로 전송하는 것을 특징으로 하는 애플리케이션 보안 시스템.
The method according to claim 6,
The security server includes:
If it is determined from the execution result information received from the security client module that a code reverse analysis event for the application has not occurred yet after transmitting the check command for preventing code reverse analysis first, Sending a check command for at least one of the checks to the secure client module,
And transmits the application execution control command to the secure client module to block execution of the application when it is determined that a code de-parsing event for the application is generated from the execution result information received from the secure client module Application security system.
제7항에 있어서,
상기 보안 서버는,
상기 안티 바이러스 검사를 위한 검사명령과 상기 안티 해킹 검사를 위한 검사명령 모두를 전송한 이후, 상기 보안 클라이언트 모듈로부터 수신된 상기 실행결과정보를 통해 바이러스 및 해킹으로부터 상기 애플리케이션이 모두 안전하다고 판단되면, 상기 애플리케이션이 실행되어도 된다는 상기 애플리케이션 실행제어명령을 상기 보안 클라이언트 모듈로 전송하는 것을 특징으로 하는 애플리케이션 보안 시스템.
8. The method of claim 7,
The security server includes:
If it is determined that all the applications are safe from the virus and hacking through the execution result information received from the secure client module after transmitting both the inspection command for the anti-virus inspection and the inspection command for the anti-hacking inspection, And transmits the application execution control command to the secure client module that the application can be executed.
단말에 설치된 보안 클라이언트 모듈과 통신하는 통신부; 및
상기 보안 클라이언트 모듈이 보안 프로세스를 실행하도록 검사명령을 상기 보안 클라이언트 모듈로 전송하여 상기 보안 클라이언트 모듈에서의 상기 보안 프로세스에 대한 실행결과정보를 수신하고, 상기 실행결과정보에 따라 상기 단말에서의 애플리케이션의 실행 여부를 판단하여 애플리케이션 실행제어명령을 상기 통신부를 통해 상기 보안 클라이언트 모듈로 제공하는 제어부를 포함하되,
상기 애플리케이션은, 코드 파일의 일부분 또는 전체에 대한 파일 내용이 치환되어 암호화된 것을 특징으로 하는 보안 서버.
A communication unit for communicating with a security client module installed in the terminal; And
Wherein the secure client module transmits an inspection command to the secure client module so as to execute the security process, receives execution result information for the security process in the secure client module, And an application execution control command to the security client module through the communication unit,
Wherein the application is encrypted by replacing a file content of a part or all of the code file.
제9항에 있어서,
상기 보안 클라이언트 모듈이 실행할 상기 보안 프로세스를 위한 모든 검사코드를 저장하여 관리하는 저장부를 더 포함하는 보안 서버.
10. The method of claim 9,
And a storage unit for storing and managing all the inspection codes for the security process to be executed by the security client module.
제9항에 있어서,
상기 검사명령은,
코드 역 분석 방지, 안티 바이러스 검사 및 안티 해킹 검사 중 하나 이상을 위한 검사명령인 것을 특징으로 하는 보안 서버.
10. The method of claim 9,
The inspection command includes:
A code reverse analysis prevention, an anti-virus check, and an anti-hacking check.
제9항에 있어서,
상기 검사명령은,
방어코드 무결성 체크 명령, 방어코드 다운로드 명령 및 방어코드 실행 명령을 더 포함하는 것을 특징으로 하는 보안 서버.
10. The method of claim 9,
The inspection command includes:
A defense code integrity check command, a defense code download command, and a defense code execution command.
검사명령에 따라 보안 프로세스를 실행하여 실행결과정보를 출력하고, 애플리케이션 실행제어명령에 따라, 지정된 애플리케이션의 실행을 제어하는 제어부; 및
상기 검사명령을 보안 서버로부터 수신하고, 상기 실행결과정보를 상기 보안 서버로 전송하며, 상기 애플리케이션 실행제어명령을 상기 보안 서버로부터 수신하는 통신부를 포함하되,
상기 애플리케이션은, 코드 파일의 일부분 또는 전체에 대한 파일 내용이 치환되어 암호화된 것을 특징으로 하는 보안 클라이언트 장치.
A control unit for executing the security process according to the inspection command to output the execution result information and controlling the execution of the designated application according to the application execution control command; And
And a communication unit for receiving the inspection command from the security server, transmitting the execution result information to the security server, and receiving the application execution control command from the security server,
Wherein the application is encrypted by replacing a file content of a part or all of the code file.
애플리케이션 보안 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
보안 서버로부터 수신된 검사명령에 따라 보안 프로세스를 실행하는 기능과,
상기 보안 프로세스의 실행결과정보를 상기 보안 서버로 전송하는 기능과,
상기 보안 서버로부터 수신한 애플리케이션 실행제어명령에 따라, 코드 파일의 일부분 또는 전체에 대한 파일 내용이 치환되어 암호화되어 있는 애플리케이션의 실행을 제어하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
A recording medium on which a program for executing an application security method is recorded,
A function of executing a security process according to a check command received from a security server,
A function of transmitting execution result information of the security process to the security server;
And a control unit for controlling execution of an application in which a file content of a part or all of the code file is replaced and encrypted according to an application execution control command received from the security server.
KR1020140014734A 2014-02-10 2014-02-10 Application security system, security server, security client apparatus, and recording medium KR101451323B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140014734A KR101451323B1 (en) 2014-02-10 2014-02-10 Application security system, security server, security client apparatus, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140014734A KR101451323B1 (en) 2014-02-10 2014-02-10 Application security system, security server, security client apparatus, and recording medium

Publications (1)

Publication Number Publication Date
KR101451323B1 true KR101451323B1 (en) 2014-10-16

Family

ID=51997834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140014734A KR101451323B1 (en) 2014-02-10 2014-02-10 Application security system, security server, security client apparatus, and recording medium

Country Status (1)

Country Link
KR (1) KR101451323B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626967B1 (en) * 2015-01-21 2016-06-02 넷마블게임즈 주식회사 Method and apparatus for operating application to prevent hacking
EP3270318A4 (en) * 2015-03-13 2018-11-07 Everspin Corp. Dynamic security module terminal device and method for operating same
KR20190061211A (en) * 2017-11-27 2019-06-05 주식회사 엔에스에이치씨 Automatic analyizing system and method of security weekness of application
KR20200080776A (en) * 2018-12-27 2020-07-07 한국전력공사 Data security apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070102294A (en) * 2006-04-14 2007-10-18 (주)비디디지털연구소 Software tamperproof method for client-server
KR20110076976A (en) * 2008-10-29 2011-07-06 인터내셔널 비지네스 머신즈 코포레이션 System, method and program product for detecting presence of malicious software running on a computer system
KR101311365B1 (en) 2012-09-21 2013-09-25 주식회사 안랩 Method and apparatus for providing file management in mobile device
KR101351243B1 (en) 2012-07-30 2014-01-13 오유록 Method and system for application authentication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070102294A (en) * 2006-04-14 2007-10-18 (주)비디디지털연구소 Software tamperproof method for client-server
KR20110076976A (en) * 2008-10-29 2011-07-06 인터내셔널 비지네스 머신즈 코포레이션 System, method and program product for detecting presence of malicious software running on a computer system
KR101351243B1 (en) 2012-07-30 2014-01-13 오유록 Method and system for application authentication
KR101311365B1 (en) 2012-09-21 2013-09-25 주식회사 안랩 Method and apparatus for providing file management in mobile device

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626967B1 (en) * 2015-01-21 2016-06-02 넷마블게임즈 주식회사 Method and apparatus for operating application to prevent hacking
EP3270318A4 (en) * 2015-03-13 2018-11-07 Everspin Corp. Dynamic security module terminal device and method for operating same
EP3270317A4 (en) * 2015-03-13 2018-11-07 Everspin Corp. Dynamic security module server device and operating method thereof
EP3270319A4 (en) * 2015-03-13 2018-11-07 Everspin Corp. Method and apparatus for generating dynamic security module
KR20190061211A (en) * 2017-11-27 2019-06-05 주식회사 엔에스에이치씨 Automatic analyizing system and method of security weekness of application
KR102054768B1 (en) * 2017-11-27 2019-12-12 주식회사 엔에스에이치씨 Automatic analyizing system and method of security weekness of application
KR20200080776A (en) * 2018-12-27 2020-07-07 한국전력공사 Data security apparatus
KR102570688B1 (en) 2018-12-27 2023-08-28 한국전력공사 Data security apparatus
KR20230127951A (en) * 2018-12-27 2023-09-01 한국전력공사 Data security apparatus
KR102585404B1 (en) 2018-12-27 2023-10-10 한국전력공사 Data security apparatus

Similar Documents

Publication Publication Date Title
US10341321B2 (en) System and method for policy based adaptive application capability management and device attestation
US10445502B1 (en) Susceptible environment detection system
US10482260B1 (en) In-line filtering of insecure or unwanted mobile device software components or communications
JP6147309B2 (en) Computer program, system, method and apparatus
US7743413B2 (en) Client apparatus, server apparatus and authority control method
RU2680736C1 (en) Malware files in network traffic detection server and method
US9058504B1 (en) Anti-malware digital-signature verification
JP2018501591A (en) System and method for accuracy assurance of detection of malicious code
EP2946327A1 (en) Systems and methods for identifying and reporting application and file vulnerabilities
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
KR20180113295A (en) Security system and method for protecting personal information of file stored in external storage device
KR101451323B1 (en) Application security system, security server, security client apparatus, and recording medium
EP2873023B1 (en) Technique for determining a malign or non-malign behavior of an executable file
KR102531376B1 (en) System for monitoring information security and network security based on network connection and method thereof
KR101893100B1 (en) Scada control system for building facilities management and method for managing security policies of the system
Wang et al. TVIDS: Trusted virtual IDS with SGX
Sasi et al. A Comprehensive Survey on IoT Attacks: Taxonomy, Detection Mechanisms and Challenges
KR101881279B1 (en) Apparatus and method for inspecting the packet communications using the Secure Sockets Layer
Jarvis et al. Inside a targeted point-of-sale data breach
JP6635029B2 (en) Information processing apparatus, information processing system, and communication history analysis method
Aron et al. Overview of security on mobile devices
Powers et al. Whitelist malware defense for embedded control system devices
Mancini Modern mobile platforms from a security perspective
Khan et al. A Review of Android and iOS Operating System Security
Vij et al. Smartphone nabbing: analysis of intrusion detection and prevention systems

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 6