KR20130015236A - User terminal and service server for processing security of the user terminal - Google Patents

User terminal and service server for processing security of the user terminal Download PDF

Info

Publication number
KR20130015236A
KR20130015236A KR1020110077117A KR20110077117A KR20130015236A KR 20130015236 A KR20130015236 A KR 20130015236A KR 1020110077117 A KR1020110077117 A KR 1020110077117A KR 20110077117 A KR20110077117 A KR 20110077117A KR 20130015236 A KR20130015236 A KR 20130015236A
Authority
KR
South Korea
Prior art keywords
terminal
application
script
user terminal
routing
Prior art date
Application number
KR1020110077117A
Other languages
Korean (ko)
Other versions
KR101839607B1 (en
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 KR1020110077117A priority Critical patent/KR101839607B1/en
Publication of KR20130015236A publication Critical patent/KR20130015236A/en
Application granted granted Critical
Publication of KR101839607B1 publication Critical patent/KR101839607B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • G06F21/563Static detection by source code analysis

Abstract

PURPOSE: A user terminal and a service server device thereof are provided to protect a user terminal from problems by separating the operation of an application from controlled data. CONSTITUTION: An execution unit(105) executes an application by calling an API(Application Program Interface) which is necessary to execute the application. A routing verification unit(103) determines the routing of a terminal. When the routing of the terminal is determined, a management unit(107) restricts the call of the API. The routing verification unit installs a service demon for confirming the routing of the terminal. The service demon is automatically executed as a back ground type in the booting of the terminal. The service demon executes the script including information for confirming the routing of the terminal. [Reference numerals] (100) User terminal; (101) Communication unit; (103) Routing verification unit; (105) Execution unit; (107) API management unit

Description

단말 보안을 수행하는 사용자 단말 및 서비스 서버 장치{USER TERMINAL AND SERVICE SERVER FOR PROCESSING SECURITY OF THE USER TERMINAL}USER TERMINAL AND SERVICE SERVER FOR PROCESSING SECURITY OF THE USER TERMINAL}

본 발명은 단말 보안을 수행하는 사용자 단말 및 서비스 서버 장치에 관한 것이다.The present invention relates to a user terminal and a service server apparatus for performing terminal security.

최근 스마트폰이 활성화되면서, 다양한 애플리케이션을 스마트폰에 설치하여 실행할 수 있게 되었다. 이에 따라 애플리케이션으로 인한 단말의 오류나 시스템 성능에 영향을 미치는 중요한 문제들이 많이 발생되고 있다. With the recent smartphone activation, various applications can be installed and run on the smartphone. As a result, a number of important problems affecting a terminal error due to an application or system performance are occurring.

종래에는 애플리케이션이 사용자 단말에 문제를 발생 시킬 수 있는지에 대한 여부를 확인하기 위해서 사용자 단말에 애플리케이션을 일단 설치한 후 실행하여 확인하여야 한다. 또한, 숨겨진 코드에 의한 위해성을 확인하는 것은 애플리케이션을 실행시켜 테스트 하여도 찾기 어려웠다. 결국, 이러한 애플리케이션이 사용자 단말 설치되어 많은 문제점들이 발생하고 있어, 이를 차단할 수 있는 방안이 요청되고 있는 실정이다.Conventionally, in order to check whether an application may cause a problem in a user terminal, the application should be installed once and executed in the user terminal and checked. Also, identifying risks from hidden code was difficult to find even when running the application. As a result, these applications are installed in the user terminal, causing a lot of problems, and there is a demand for a way to block them.

또한, 스마트폰 사용자들은 단말 루팅을 통해 스마트폰에 잠겨있는 운영자 권한을 갖게 되어 사용자가 마음대로 단말 시스템을 조정할 수 있다. 따라서, 사업자들은 이를 막기 위해 다양한 시도를 하고 있다.In addition, the smartphone users have the operator authority locked to the smartphone through the terminal routing, the user can adjust the terminal system at will. Therefore, operators are making various attempts to prevent this.

예컨대 금융 애플리케이션의 경우, 루팅된 단말에서 실행되어 사용자 정보가 공개되는 것을 막기 위해 금융 애플리케이션 자체에 단말의 루팅 여부를 확인하도록 하고 있다. For example, in the case of a financial application, it is executed in a rooted terminal to check whether the terminal is rooted in the financial application itself in order to prevent the user information from being disclosed.

그러나 이처럼 애플리케이션이 개별적으로 단말의 루팅 여부를 확인하는 경우, 모든 애플리케이션 루팅 여부 확인을 위한 기능을 구현시켜야 하는 문제점이 있어 실제로는 온전히 단말이 루팅을 막지 못하고 있다.However, when the application checks whether the terminal is individually routed as described above, there is a problem of implementing a function for checking whether all applications are routed, and thus, the terminal does not completely prevent routing.

게다가 루팅 패턴이 변하는 경우, 루팅 여부를 확인하는 기능도 변경되어야 하는데, 그러려면 결국 애플리케이션 자체를 다시 설치하는 등의 문제가 있다. In addition, if the routing pattern changes, the ability to check whether the route should change must be changed, which in turn causes problems such as reinstalling the application itself.

따라서, 본 발명이 이루고자 하는 기술적 과제는 문제 발생이 가능한 애플리케이션을 사전에 제한할 수 있고, 단말의 루팅 여부 확인이 용이하도록 단말 보안을 수행하는 사용자 단말 및 서비스 서버 장치를 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide a user terminal and a service server apparatus that can limit the applications that can cause problems in advance, and performs terminal security to facilitate checking whether the terminal is rooted.

본 발명의 한 특징에 따르면 사용자 단말이 제공된다. 이 단말은, 애플리케이션을 실행하고, 상기 애플리케이션을 실행하는데 필요한 응용 프로그래밍 인터페이스를 호출하는 실행부; 단말의 루팅 여부를 판단하는 루팅 검증부; 및 상기 루팅 검증부가 단말이 루팅된 경우로 판단하면, 상기 실행부의 응용 프로그래밍 인터페이스의 호출을 제한하는 관리부를 포함한다.According to one aspect of the invention there is provided a user terminal. The terminal includes: an execution unit for executing an application and calling an application programming interface required to execute the application; Routing verification unit for determining whether the terminal routing; And a management unit that limits the call of the application programming interface of the execution unit when the routing verification unit determines that the terminal is rooted.

본 발명의 다른 특징에 따르면 서비스 서버 장치가 제공된다. 이 장치는, 개발자가 등록을 요청한 애플리케이션의 코드를 분석하여 상기 애플리케이션이 설치될 사용자 단말에 문제를 발생시킬 가능성이 있는지를 판단하는 검증부; 및 상기 검증부가 문제 발생 가능성을 판단한 애플리케이션의 등록은 오류 처리하고, 문제 발생 가능성이 없는 애플리케이션은 등록 처리하는 등록부를 포함하고, 등록 처리된 상기 애플리케이션은 서로 다른 복수의 배포 채널을 통해 사용자 단말로 배포된다.According to another feature of the invention there is provided a service server device. The apparatus may include a verification unit that analyzes code of an application for which a developer requests registration and determines whether there is a possibility of causing a problem in a user terminal in which the application is installed; And a registration unit for registering an application in which the verification unit determines that a problem may occur, and registering an application that does not have a problem. The registered application is distributed to a user terminal through a plurality of different distribution channels. do.

본 발명의 실시예에 따르면, 애플리케이션 등록시 사전에 문제 발생 가능한 애플리케이션을 제한하고, 단말의 루팅(Rooting) 여부를 사전에 파악하여 애플리케이션이 조작된 데이터(data)를 통해 실행되지 않도록 함으로써 사용자 단말을 보호할 수 있다.According to an embodiment of the present invention, it is possible to protect a user terminal by limiting an application which may cause a problem when registering an application in advance and determining whether the terminal is rooted in advance so that the application is not executed through the manipulated data. can do.

또한, 종래에는 문제 발생 가능한 애플리케이션을 확인하기 위해서는 일단 단말에 애플리케이션을 설치해야 하는 것과 달리 본 발명의 실시예에서는 애플리케이션 코드상에서 문제 발생 가능성 있는 코드를 사전에 확인하여 해당 애플리케이션의 등록을 제한함으로써 사용자 단말 설치되기 전에 문제 발생 애플리케이션을 제외시킬 수 있다.In addition, conventionally, in order to identify a problem-prone application, the application must be installed on the terminal once. However, in the embodiment of the present invention, the problem code may be confirmed in advance on the application code to restrict the registration of the corresponding application. You can exclude problematic applications before they are installed.

또한, 단말의 루팅 여부 확인을 위한 스크립트를 단말의 종류 별로 서버에서 관리하고, 주기적으로 업데이트되도록 함으로써, 종래에 루팅 패턴이 변경되는 경우 대처하지 못했던 문제점을 해결할 수 있다.In addition, by managing a script for checking whether the terminal is rooted by the server for each type of terminal, and periodically updated, it is possible to solve the problem that was not able to cope when the routing pattern is changed in the past.

도 1은 본 발명의 실시예에 따른 네트워크 구성도이다.
도 2는 본 발명의 실시예에 따른 단말 보안을 수행하는 사용자 단말의 세부 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 단말 보안을 수행하는 서비스 서버의 세부 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 애플리케이션 등록 과정을 나타낸 순서도이다.
도 5는 본 발명의 실시예에 따른 루팅 검증 과정을 나타낸 순서도이다.
도 6은 본 발명의 실시예에 따른 애플리케이션 실행 과정을 나타낸 순서도이다.
1 is a network configuration diagram according to an embodiment of the present invention.
2 is a block diagram showing a detailed configuration of a user terminal for performing terminal security according to an embodiment of the present invention.
3 is a block diagram showing a detailed configuration of a service server for performing terminal security according to an embodiment of the present invention.
4 is a flowchart illustrating an application registration process according to an embodiment of the present invention.
5 is a flowchart illustrating a routing verification process according to an embodiment of the present invention.
6 is a flowchart illustrating an application execution process according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.

또한, 명세서에 기재된 "…부"의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Also, the term "part" in the description means a unit for processing at least one function or operation, which may be implemented by hardware, software, or a combination of hardware and software.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 단말 보안을 수행하는 사용자 단말 및 서비스 서버 장치에 대하여 상세히 설명한다.Hereinafter, a user terminal and a service server apparatus for performing terminal security according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 네트워크 구성도이다.1 is a diagram illustrating a network configuration according to an embodiment of the present invention.

도 1을 참조하면, 네트워크 구성도는 사용자 단말(100) 및 서비스 서버(또는 서비스 서버 장치, 이하, '서비스 서버'로 통칭함)(200)가 네트워크(300)를 통해 연결된다. Referring to FIG. 1, in the network configuration diagram, a user terminal 100 and a service server (or a service server device, hereinafter referred to as a “service server”) 200 are connected through a network 300.

여기서, 사용자 단말(100)은 애플리케이션을 다운로드하여 설치 및 실행하는 단말로서, 예컨대 스마트폰일 수 있다.Here, the user terminal 100 is a terminal for downloading, installing and executing an application, for example, may be a smartphone.

또한, 서비스 서버(200)는 사용자 단말(100)에 설치되는 애플리케이션의 등록을 처리할 뿐만 아니라 고유의 배포 채널을 통해 애플리케이션을 사용자 단말(100)로 배포하는 서버일 수 있다.In addition, the service server 200 may be a server that not only processes registration of an application installed in the user terminal 100 but also distributes the application to the user terminal 100 through a unique distribution channel.

이때, 사용자 단말(100) 및 서비스 서버(200)는 단말 보안을 수행한다. In this case, the user terminal 100 and the service server 200 perform terminal security.

이러한 단말 보안은 애플리케이션 등록시 사전에 문제 발생 가능한 어플리케이션을 제한하고, 단말의 루팅(Rooting) 여부를 사전에 파악하여 애플리케이션이 조작된 데이터(data)를 통해 실행되지 않도록 하는 것이다.The terminal security is to limit the applications that can cause problems in the application registration in advance, and to determine whether the terminal is rooted (Rooting) in advance so that the application is not executed through the manipulated data (data).

이를 위해 두가지 실시예로 구현되는데, 한가지 실시예는 사용자 단말 측이 단말 루팅(rooting) 상태에서는 애플리케이션 실행을 차단하도록 하는 것이고, 다른 실시예는 서버 측이 사용자 단말로 애플리케이션이 배포되기 이전에 단말 시스템 접근을 시도하는 애플리케이션의 등록을 허용하지 않는 것이다.To this end, the present invention is implemented in two embodiments, one of which allows the user terminal side to block application execution in a terminal rooting state, and another embodiment of the terminal system before the application is distributed to the user terminal. It does not allow registration of applications that attempt to access it.

먼저, 도 2는 본 발명의 실시예에 따른 단말 보안을 수행하는 사용자 단말의 세부 구성을 나타낸 블록도이다.First, Figure 2 is a block diagram showing a detailed configuration of a user terminal for performing terminal security according to an embodiment of the present invention.

도 2를 참조하면, 사용자 단말(100)은 통신부(101), 루팅 검증부(103), 실행부(105) 및 응용 프로그래밍 인터페이스(Application Programming Interface, 이하, 'API'라 통칭함) 관리부(107)를 포함한다.Referring to FIG. 2, the user terminal 100 includes a communication unit 101, a routing verifying unit 103, an execution unit 105, and an application programming interface (hereinafter, referred to as an “API”) managing unit 107. ).

통신부(101)는 네트워크(300)에 연결되어 데이터를 송수신하며, 서비스 서버(200)와 접속한다.The communication unit 101 is connected to the network 300 to transmit and receive data, and is connected to the service server 200.

루팅 검증부(103)는 부팅(booting)시 미리 설치된 루팅 서비스 데몬(daemon)을 실행한다. 여기서, 데몬은 주기적인 서비스 요청을 처리하기 위해 계속 실행되는 프로그램으로서, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다.The routing verification unit 103 executes a pre-installed routing service daemon at the time of booting. Here, the daemon is a program that is continuously executed to process periodic service requests, and refers to a program that runs in the background and performs various tasks.

이때, 실행된 루팅 서비스 데몬은 단말 루팅 여부를 확인하기 위한 스크립트(scrypt)를 실행한다. 여기서, 루팅은 운영체제와 시스템의 모든 설정에 대한 접근, 수정, 통제 권한을 가지는 권리자 권한을 가지는 것을 의미하고, 시스템의 여러 설정 등을 변경하는 작업이다.At this time, the executed routing service daemon executes a script (scrypt) for checking whether the terminal is rooted. Here, the rooting means having the rights of the owner who has access to, modify, and control all the settings of the operating system and the system, and changes the various settings of the system.

또한, 스크립트는 컴퓨터 프로세서나 컴파일러가 아닌 다른 프로그램에 의해 번역되고 수행되는 명령문의 집합을 의미하며, 프로그래밍 언어가 아닌 언어로 작성한 짧은 프로그램이나 명령어들로 구성된다. 이러한 스크립트는 서비스 데몬의 메모리에 저장되어 사용자에 의해 수정될 수 없다.In addition, a script is a set of instructions that are translated and executed by a program other than a computer processor or compiler, and are composed of short programs or instructions written in a language other than a programming language. These scripts are stored in the service daemon's memory and cannot be modified by the user.

이러한 스크립트는 주기적으로 업데이트되는데, 루팅 검증부(103)가 주기적으로 통신부(101)를 통해 서비스 서버(200)에 접속하여 스크립트를 다운로드한다. The script is periodically updated, and the routing verification unit 103 periodically accesses the service server 200 through the communication unit 101 to download the script.

스크립트는 루트 유저(root user)만 접근 가능한 폴더 및 파일 경로를 포함하여 해당 폴더 및 파일 경로가 접근 가능하면 단말이 루팅된 경우로 판단된다. 또한, 스크립트는 루트 유저 권한을 갖는 쉘 커맨드(shell command)를 포함하여 이러한 쉘 커맨드가 정상 실행되면, 단말이 루팅된 경우로 판단된다.The script is determined to be a case where the terminal is rooted if the corresponding folder and file path is accessible, including a folder and file path accessible only to the root user. In addition, the script includes a shell command having a root user authority, and when such a shell command is normally executed, it is determined that the terminal is rooted.

여기서, 쉘 커맨드는 쉘에 의하여 해석되는 명령어를 의미하는데, 쉘이란 리눅스의 명령어 해석기를 의미한다. 즉, 리눅스에서 사용하는 모든 명령어는 쉘에 의하여 해석되고, 해당 명령을 찾아 실행된다.Here, a shell command means a command interpreted by the shell, and a shell means a command interpreter of Linux. In other words, all commands used in Linux are interpreted by the shell and executed by searching for them.

실행부(105)는 애플리케이션을 실행하고, 애플리케이션 실행에 필요한 API를 호출한다.The execution unit 105 executes an application and calls an API necessary for executing the application.

API 관리부(107)는 사용자 단말(100)에서 실행되는 복수의 API를 관리하고, 실행부(105)가 요청한 API를 리턴하거나 오류 처리한다. The API manager 107 manages a plurality of APIs executed in the user terminal 100, and returns an API requested by the execution unit 105 or processes an error.

일반적으로, 스마트폰에 설치되는 애플리케이션은 프로그래밍 및 실행의 편의를 위하여 표준화된 라이브러리(Library)인 API를 이용한다. 이러한 API는 운영체제나 C, C++, Pascal 등과 같은 언어로 애플리케이션을 만들 때, 윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 하는 1000여 개 이상의 함수로 구성된 툴이다. API는 애플리케이션이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, API는 애플리케이션 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현된다. 그러므로 하나의 API는 함수의 호출에 의해 요청되는 작업을 수행하기 위해 이미 존재하거나 또는 연결되어야 하는 몇 개의 프로그램 모듈이나 루틴을 가진다.In general, an application installed on a smartphone uses an API, which is a standardized library, for ease of programming and execution. These APIs are a set of more than 1000 functions that allow you to do things like create windows and open files when creating applications in the operating system or in languages like C, C ++, Pascal, and so on. An API has a language or message format that is used when an application communicates with a system program such as an operating system or database management system. The API is implemented by calling a function that provides a link to a specific subroutine for execution within an application. Thus, an API has several program modules or routines that must already exist or be linked in order to perform the work requested by the function call.

이때, API 관리부(107)는 실행부(105)로부터 API가 호출되는 경우, 루팅 검증부(103)를 통해 사용자 단말(100)의 루팅 여부를 확인하여 루팅된 경우로 판단되면, API 호출에 오류를 리턴한다. 반면, 루팅되지 않은 경우에는 호출된 API를 실행부(105)에게 반환한다. In this case, when the API is called from the execution unit 105, the API manager 107 checks whether the user terminal 100 is routed through the routing verification unit 103, and determines that the API is routed. Returns. On the other hand, if it is not rooted, the called API is returned to the execution unit 105.

여기서, 단말 루팅 여부에 따라 호출이 제한되는 API는 사업자가 제공하는 API일 수 있으며, 예컨대 KAF(KT Application Framwork) API일 수 있다.Here, the API whose call is restricted depending on whether the terminal is routed may be an API provided by an operator, and may be, for example, a KAF (KT Application Framwork) API.

도 3은 본 발명의 실시예에 따른 단말 보안을 수행하는 서비스 서버의 세부 구성을 나타낸 블록도이다.3 is a block diagram showing a detailed configuration of a service server for performing terminal security according to an embodiment of the present invention.

도 3을 참조하면, 서비스 서버(200)는 등록부(201), 검증부(205), 애플리케이션 등록 DB(203), 스크립트 전송부(207) 및 스크립트 DB(209)를 포함한다.Referring to FIG. 3, the service server 200 includes a register 201, a verifier 205, an application register DB 203, a script transmitter 207, and a script DB 209.

등록부(201)는 개발자가 요청한 애플리케이션을 등록하기 위한 절차를 수행하고, 등록이 완료되면 애플리케이션 등록 DB(203)에 애플리케이션을 저장한다. 이후, 애플리케이션 등록 DB(203)에 저장된 애플리케이션은 다양한 배포 채널을 통해 사용자 단말(100)로 제공된다.The registration unit 201 performs a procedure for registering an application requested by a developer, and stores the application in the application registration DB 203 when registration is completed. Thereafter, the application stored in the application registration DB 203 is provided to the user terminal 100 through various distribution channels.

이때, 등록부(201)는 제한된 폴더에 접근 가능하거나 제한된 API를 호출하거나 제한된 커맨드를 실행하는 애플리케이션 등록은 차단한다.At this time, the registration unit 201 blocks the registration of an application that can access a restricted folder, call a restricted API, or execute a restricted command.

검증부(205)는 애플리케이션에서 접근해서는 안되는 단말의 폴더 정보, 애플리케이션에서 사용해서는 안되는 API 및 커맨드를 관리한다. 그리고 검증부(205)는 등록부(201)가 등록을 요청받은 애플리케이션 코드를 분석하여 애플리케이션이 제한된 폴더에 접근 가능한지, 제한된 API를 호출하는지, 제한된 커맨드를 실행하는지 판단하고, 판단 결과를 등록부(201)에게 제공한다.The verification unit 205 manages folder information of the terminal that should not be accessed by the application, APIs and commands that should not be used in the application. The verification unit 205 analyzes the application code in which the registration unit 201 is requested to register and determines whether the application is accessible to a restricted folder, calls a limited API, or executes a limited command, and determines the result of the registration unit 201. To provide.

스크립트 DB(207)는 단말 종류(또는 모델) 별로 단말의 루팅 여부를 확인하기 위한 스크립트를 저장한다.The script DB 207 stores a script for checking whether a terminal is rooted for each terminal type (or model).

스크립트 전송부(209)는 사용자 단말(100)의 루팅 여부를 확인할 수 있는 스크립트를 주기적인 사용자 단말(100)의 요청에 따라 전송한다. 이때, 스크립트를 요청한 사용자 단말(100)의 종류를 확인하여 그에 맞는 스크립트를 스크립트 DB(207)로부터 추출하여 제공한다.The script transmitter 209 transmits a script for checking whether the user terminal 100 is rooted at the request of the user terminal 100 periodically. At this time, the type of the user terminal 100 requesting the script is checked and the corresponding script is extracted from the script DB 207 and provided.

이상 설명한 내용을 토대로 애플리케이션 등록, 루팅 검증 및 애플리케이션 실행 과정을 각각 설명하기로 한다.Based on the above description, the process of registering an application, verifying rooting, and executing an application will be described.

도 4는 본 발명의 실시예에 따른 애플리케이션 등록 과정을 나타낸 순서도로서, 도 3의 서비스 서버의 동작을 나타낸다.4 is a flowchart illustrating an application registration process according to an embodiment of the present invention, and illustrates an operation of the service server of FIG. 3.

도 4를 참조하면, 서비스 서버(200)의 등록부(201)가 개발자로부터 애플리케이션 등록을 요청(S101)받으면, 서비스 서버(200)의 검증부(205)는 애플리케이션 코드를 분석한다(S103).Referring to FIG. 4, when the registration unit 201 of the service server 200 receives an application registration request from the developer (S101), the verification unit 205 of the service server 200 analyzes the application code (S103).

서비스 서버(200)의 검증부(205)는 애플리케이션 코드 분석에 따라 등록 요청된 애플리케이션이 제한된 폴더에 접근 가능한지를 판단한다(S105).The verification unit 205 of the service server 200 determines whether the application requested for registration is accessible to the restricted folder according to the application code analysis (S105).

접근 가능하지 않다면, 서비스 서버(200)의 검증부(205)는 등록 요청된 애플리케이션이 제한된 API를 호출하는지를 판단한다(S107).If not accessible, the verification unit 205 of the service server 200 determines whether the application requested to be registered calls a restricted API (S107).

제한된 API를 호출하지 않는다면, 서비스 서버(200)의 검증부(205)는 제한된 커맨드(Command)를 실행하는지를 판단한다(S109).If the limited API is not called, the verification unit 205 of the service server 200 determines whether to execute a limited command (S109).

제한된 커맨드를 실행하지 않는다면, 서비스 서버(200)의 등록부(201)는 등록 요청된 애플리케이션의 등록을 완료(S111)하고, 애플리케이션 등록 DB(203)에 저장한다.If the limited command is not executed, the registration unit 201 of the service server 200 completes the registration of the application for which registration is requested (S111), and stores it in the application registration DB 203.

반면, S105 단계에서 제한된 폴더에 접근 가능하거나 S107 단계에서 제한된 API를 호출하거나 S109 단계에서 제한된 커맨드를 실행하는 경우로 판단되면, 서비스 서버(200)의 등록부(201)는 애플리케이션 등록을 오류 처리한다(S107).On the other hand, if it is determined that the restricted folder is accessible in step S105, the restricted API is called in step S107, or the restricted command is executed in step S109, the registration unit 201 of the service server 200 processes an application registration error ( S107).

여기서, S105 단계, S107 단계, S109 단계는 그 순서가 바뀌거나 동시에 수행될 수 있다.Here, steps S105, S107, and S109 may be changed in order or performed simultaneously.

도 5는 본 발명의 실시예에 따른 루팅 검증 과정을 나타낸 순서도로서, 도 2의 사용자 단말의 동작을 나타낸다.FIG. 5 is a flowchart illustrating a routing verification process according to an exemplary embodiment of the present invention, and illustrates an operation of the user terminal of FIG. 2.

도 5를 참조하면, 사용자 단말(100)의 루팅 검증부(103)는 루팅 여부를 확인하기 위한 서비스 데몬(service daemon)을 설치한다(S201).Referring to FIG. 5, the root verifying unit 103 of the user terminal 100 installs a service daemon for checking whether a route is present (S201).

이때, 서비스 데몬은 스크립트(scrypt)를 실행하여 루팅 여부를 확인하는데, 사용자 단말(100)의 루팅 검증부(103)는 이러한 스크립트를 주기적으로 서비스 서버(200)로부터 다운로드(S203, S205)하여 업데이트한다(S207).At this time, the service daemon executes a script (scrypt) to check the routing, the routing verification unit 103 of the user terminal 100 is periodically updated by downloading (S203, S205) such a script from the service server 200 (S207).

이후, 사용자 단말(100)의 루팅 검증부(103)는 단말 부팅(S209)이 이루어지면, 서비스 데몬을 실행(S211)하고 서비스 데몬에 의해 스크립트(scrypt) 실행이 수행된다(S213).Subsequently, when the terminal booting step S209 is performed, the routing verification unit 103 of the user terminal 100 executes the service daemon (S211) and executes a script (scrypt) by the service daemon (S213).

스크립트가 실행되면, 사용자 단말(100)의 루팅 검증부(103)는 시스템 폴더에 접근이 가능한지 판단한다(S215).When the script is executed, the routing verification unit 103 of the user terminal 100 determines whether the system folder is accessible (S215).

가능하지 않은 경우, 스크립트에 포함된 시스템 커맨드(command)를 실행 가능한지를 판단한다(S217).If it is not possible, it is determined whether a system command included in the script is executable (S217).

실행 가능하지 않은 경우, 사용자 단말(100)에 탑재된 API 실행 허용을 설정한다(S219).If not executable, the API execution permission set in the user terminal 100 is set (S219).

한편, S215 단계에서 시스템 폴더에 접근이 가능한 경우로 판단되거나 S217 단계에서 시스템 커맨드가 실행 가능한 경우로 판단되면, 사용자 단말(100)이 루팅된 것으로 판단(S221)하고 API의 실행 제한을 설정한다(S223).On the other hand, if it is determined that the system folder is accessible in step S215 or if the system command is executable in step S217, the user terminal 100 determines that it is rooted (S221) and sets the execution restriction of the API ( S223).

도 6은 본 발명의 실시예에 따른 애플리케이션 실행 과정을 나타낸 순서도로서, 도 2의 사용자 단말의 동작을 나타낸다.6 is a flowchart illustrating an application execution process according to an exemplary embodiment of the present invention, and illustrates an operation of the user terminal of FIG. 2.

도 6을 참조하면, 사용자 단말(100)의 실행부(105)가 애플리케이션을 실행(S301)하고 애플리케이션 실행에 필요한 API를 호출한다(S203).Referring to FIG. 6, the execution unit 105 of the user terminal 100 executes an application (S301) and calls an API required for executing the application (S203).

그러면, 사용자 단말(100)의 API 관리부(107)는 루팅 검증부(103)를 통해 사용자 단말(100)의 루팅 여부를 확인한다(S305). 루팅 여부 확인은 도 5의 과정을 통해 루팅 검증부(103)가 관리한다. Then, the API manager 107 of the user terminal 100 checks whether the user terminal 100 is routed through the routing verification unit 103 (S305). Checking whether the routing is managed by the routing verification unit 103 through the process of FIG.

이때, 루팅 단말로 판단되지 않으면, 사용자 단말(100)의 API 관리부(107)는 실행부(105)에게 API 정상 결과를 리턴한다(S307).At this time, if it is not determined as a routing terminal, the API management unit 107 of the user terminal 100 returns the normal API results to the execution unit 105 (S307).

반면, 루팅 단말로 판단되면, 사용자 단말(100)의 API 관리부(107)는 실행부(105)에게 루팅으로 인한 오류를 리턴한다(S309).On the other hand, if it is determined that the routing terminal, the API management unit 107 of the user terminal 100 returns an error due to routing to the execution unit 105 (S309).

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

Claims (10)

애플리케이션을 실행하고, 상기 애플리케이션을 실행하는데 필요한 응용 프로그래밍 인터페이스를 호출하는 실행부;
단말의 루팅 여부를 판단하는 루팅 검증부; 및
상기 루팅 검증부가 단말이 루팅된 경우로 판단하면, 상기 실행부의 응용 프로그래밍 인터페이스의 호출을 제한하는 관리부
를 포함하는 사용자 단말.
An execution unit which executes an application and calls an application programming interface required to execute the application;
Routing verification unit for determining whether the terminal routing; And
If the routing verification unit determines that the terminal is rooted, the management unit for limiting the call of the application programming interface of the execution unit
Lt; / RTI >
제1항에 있어서,
상기 루팅 검증부는,
상기 단말의 루팅 여부를 확인하기 위한 서비스 데몬을 설치하고,
상기 서비스 데몬은 단말 부팅시 자동으로 백그라운드 형태로 실행되는 사용자 단말.
The method of claim 1,
The routing verification unit,
Install a service daemon for checking whether the terminal is rooted,
The service daemon automatically runs in the background when the terminal is booted.
제2항에 있어서,
상기 서비스 데몬은,
상기 단말의 루팅 여부를 확인하기 위한 정보를 포함하는 스크립트를 포함하여 상기 서비스 데몬이 실행되면 상기 스크립트를 실행하는 사용자 단말.
The method of claim 2,
The service daemon,
And a user terminal executing the script when the service daemon is executed, including a script including information for checking whether the terminal is rooted.
제3항에 있어서,
상기 스크립트는,
애플리케이션에서 접근해서는 안되는 제한된 폴더 정보, 애플리케이션에서 사용해서는 안되는 제한된 응용 프로그래밍 인터페이스 및 제한된 커맨드를 포함하고,
상기 루팅 검증부는,
상기 스크립트의 실행에 따라 상기 제한된 폴더 정보로 접근이 가능한지, 상기 제한된 응용 프로그래밍 인터페이스의 호출이 수행되는지 및 상기 제한된 커맨드가 실행되는지를 판단하여 단말 루팅을 판단하는 사용자 단말.
The method of claim 3,
The script is
Contains restricted folder information that should not be accessed by the application, limited application programming interface and limited commands that should not be used by the application,
The routing verification unit,
And determining the terminal routing by determining whether access to the restricted folder information, access to the restricted application programming interface is performed, and whether the restricted command is executed according to the execution of the script.
제4항에 있어서,
상기 제한된 응용 프로그래밍 인터페이스는,
특정 사업자가 제공하는 응용 프로그래밍 인터페이스인 사용자 단말.
5. The method of claim 4,
The limited application programming interface,
User terminal that is an application programming interface provided by a specific operator.
제3항 내지 제5항 중 어느 한 항에 있어서,
네트워크를 통해 상기 스크립트를 전송하는 서비스 서버에 접속하는 통신부를 더 포함하고,
상기 루팅 검증부는,
상기 통신부를 통해 주기적으로 상기 서비스 서버로부터 스크립트를 수신하여 상기 스크립트를 업데이트 하는 사용자 단말.
6. The method according to any one of claims 3 to 5,
Further comprising a communication unit for connecting to the service server for transmitting the script over a network,
The routing verification unit,
User terminal for periodically updating the script by receiving a script from the service server through the communication unit.
개발자가 등록을 요청한 애플리케이션의 코드를 분석하여 상기 애플리케이션이 설치될 사용자 단말에 문제를 발생시킬 가능성이 있는지를 판단하는 검증부; 및
상기 검증부가 문제 발생 가능성을 판단한 애플리케이션의 등록은 오류 처리하고, 문제 발생 가능성이 없는 애플리케이션은 등록 처리하는 등록부를 포함하고,
등록 처리된 상기 애플리케이션은 서로 다른 복수의 배포 채널을 통해 사용자 단말로 배포되는 서비스 서버 장치.
A verification unit for analyzing a code of an application that a developer requests registration to determine whether there is a possibility of causing a problem in a user terminal in which the application is to be installed; And
The registration of the application that the verification unit has determined that the problem is likely to be error processing, the application that is not likely to have a problem includes a registration unit for registration processing,
The application server of the registration process is distributed to the user terminal through a plurality of different distribution channels.
제7항에 있어서,
상기 검증부는,
애플리케이션에게 접근이 제한되는 단말의 폴더 정보, 애플리케이션에게 사용이 제한되는 응용 프로그래밍 인터페이스 및 커맨드를 관리하고, 상기 애플리케이션의 코드를 분석하여 상기 제한되는 단말의 폴더 정보에 대한 접근 여부, 상기 제한되는 응용 프로그래밍 인터페이스 및 상기 커맨드의 사용 여부를 판단하는 서비스 서버 장치.
The method of claim 7, wherein
Wherein the verifying unit comprises:
Manages folder information of a terminal whose access is restricted to an application, an application programming interface and a command whose use is restricted to an application, and analyzes the code of the application to determine access to the folder information of the restricted terminal, and the restricted application programming. Service server device for determining whether to use the interface and the command.
제7항에 있어서,
루팅 여부를 확인하기 위한 스크립트를 주기적으로 상기 사용자 단말로 전송하는 전송부를 더 포함하고,
상기 스크립트는,
애플리케이션에게 접근이 제한되는 단말의 폴더 정보, 애플리케이션에게 사용이 제한되는 응용 프로그래밍 인터페이스 및 커맨드에 관한 정보를 포함하는 서비스 서버 장치.
The method of claim 7, wherein
Further comprising a transmitting unit for periodically transmitting a script for checking whether the routing to the user terminal,
The script is
A service server device including folder information of a terminal for which access is restricted to an application, information about an application programming interface and a command for which usage is restricted to an application.
제9항에 있어서,
단말의 종류 또는 단말의 모델 별로 해당 단말의 루팅 여부를 확인하기 위한 정보로 구성된 스크립트를 저장하는 스크립트 DB를 더 포함하고,
상기 전송부는,
상기 사용자 단말의 단말 종류 또는 단말 모델을 확인하여 상기 스크립트 DB로부터 상기 단말 종류 또는 상기 단말 모델에 부합하는 스크립트를 선택하여 상기 사용자 단말로 전송하는 서비스 서버 장치.
10. The method of claim 9,
Further comprising a script DB for storing a script consisting of information for checking whether the corresponding terminal is routing for each type of terminal or model of the terminal,
Wherein the transmission unit comprises:
Checking the terminal type or the terminal model of the user terminal, selecting a script corresponding to the terminal type or the terminal model from the script DB, and transmitting the selected script to the user terminal.
KR1020110077117A 2011-08-02 2011-08-02 User terminal and service server for processing security of the user terminal KR101839607B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110077117A KR101839607B1 (en) 2011-08-02 2011-08-02 User terminal and service server for processing security of the user terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110077117A KR101839607B1 (en) 2011-08-02 2011-08-02 User terminal and service server for processing security of the user terminal

Publications (2)

Publication Number Publication Date
KR20130015236A true KR20130015236A (en) 2013-02-13
KR101839607B1 KR101839607B1 (en) 2018-03-22

Family

ID=47895085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110077117A KR101839607B1 (en) 2011-08-02 2011-08-02 User terminal and service server for processing security of the user terminal

Country Status (1)

Country Link
KR (1) KR101839607B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101530532B1 (en) * 2013-11-04 2015-06-23 주식회사 잉카인터넷 Apparatus and Method for Detecting Rooting a Mobile Terminal
WO2020060101A1 (en) * 2018-09-20 2020-03-26 삼성전자 주식회사 Electronic device for providing service by using secure element, and operating method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3873624B2 (en) * 1999-01-13 2007-01-24 株式会社日立製作所 Mobile code execution method and system
JP4653230B2 (en) * 2008-09-22 2011-03-16 株式会社エヌ・ティ・ティ・ドコモ API inspection device and condition monitoring device
US8289130B2 (en) * 2009-02-19 2012-10-16 Apple Inc. Systems and methods for identifying unauthorized users of an electronic device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101530532B1 (en) * 2013-11-04 2015-06-23 주식회사 잉카인터넷 Apparatus and Method for Detecting Rooting a Mobile Terminal
WO2020060101A1 (en) * 2018-09-20 2020-03-26 삼성전자 주식회사 Electronic device for providing service by using secure element, and operating method thereof
CN112740209A (en) * 2018-09-20 2021-04-30 三星电子株式会社 Electronic device providing service by using secure element and method of operating the same
US11921857B2 (en) 2018-09-20 2024-03-05 Samsung Electronics Co., Ltd Electronic device for providing service by using secure element, and operating method thereof

Also Published As

Publication number Publication date
KR101839607B1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
US20190327294A1 (en) Provisioning framework for binding related cloud services
RU2586016C2 (en) System for providing program analysis/verification service, method of controlling said system, computer-readable storage medium, device for program analysis/verification, device for controlling program analysis/verification means
US8438559B2 (en) Method and system for platform-agnostic software installation
US20150332043A1 (en) Application analysis system for electronic devices
US10225140B2 (en) Portable instance provisioning framework for cloud services
RU2589852C2 (en) System and method for automatic regulation of rules for controlling applications
US8225292B2 (en) Method and system for validating a knowledge package
US20160378989A1 (en) Apparatus and method for monitoring android platform-based application
US20080244557A1 (en) Knowledge management system and method for implementing management software using the same
US10402216B1 (en) Live support integration in a virtual machine based development environment
JP4931343B2 (en) System, method, program, and apparatus for providing self-installing software components for performing network services
US20090265586A1 (en) Method and system for installing software deliverables
Khokhlov et al. Android system security evaluation
US20200104120A1 (en) Application release using integration into unified code system
US20200167157A1 (en) Distributing services to client systems to develop in a shared development environment
BR112014017283B1 (en) METHOD IMPLEMENTED BY MACHINE, MEDIUM READABLE BY TANGIBLE MACHINE AND DEVICE COMPRISING AN APPLICATION UPDATE
EP4182786A1 (en) Configuration files for multiple devices
CN108121650B (en) Method and device for testing page user interface
CN111930398A (en) Application program updating method, device, system, medium and equipment
Islam et al. Runtime software patching: Taxonomy, survey and future directions
KR101839607B1 (en) User terminal and service server for processing security of the user terminal
EP3991078A1 (en) Access management system with a pre-commit verification engine
US11301228B2 (en) Managing removal and modification of installed programs on a computer device
KR101231746B1 (en) Software Development system in SaaS environment
US9069643B1 (en) Creating a prerequisite checklist corresponding to a software application

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant