KR101930056B1 - 보안 정책을 지원하는 단말 관리 방법 및 장치 - Google Patents

보안 정책을 지원하는 단말 관리 방법 및 장치 Download PDF

Info

Publication number
KR101930056B1
KR101930056B1 KR1020160149840A KR20160149840A KR101930056B1 KR 101930056 B1 KR101930056 B1 KR 101930056B1 KR 1020160149840 A KR1020160149840 A KR 1020160149840A KR 20160149840 A KR20160149840 A KR 20160149840A KR 101930056 B1 KR101930056 B1 KR 101930056B1
Authority
KR
South Korea
Prior art keywords
mdm
policy
application
function
class
Prior art date
Application number
KR1020160149840A
Other languages
English (en)
Other versions
KR20180052834A (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 KR1020160149840A priority Critical patent/KR101930056B1/ko
Priority to US15/642,450 priority patent/US20180131725A1/en
Publication of KR20180052834A publication Critical patent/KR20180052834A/ko
Application granted granted Critical
Publication of KR101930056B1 publication Critical patent/KR101930056B1/ko

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
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent

Abstract

보안 정책을 지원하는 단말 관리 방법 및 장치가 제공된다. 바이너리 모바일 어플리케이션에 대하여 서버가 보안 정책을 지원하는 MDM(Mobile Device Management) 기능을 탑재한다. 서버는 바이너리 모바일 어플리케이션의 원본 어플리케이션의 각 클래스-메소드 단위로, MDM 연동 코드를 추가하여 원본 어플리케이션을 변조 어플리케이션으로 수정한다. 그리고 서버가, 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책을 생성하여 모바일 단말로 송신한다.

Description

보안 정책을 지원하는 단말 관리 방법 및 장치{Method and apparatus for mobile terminal management supporting security policy}
본 발명은 단말 관리에 관한 것으로, 더욱 상세하게 말하자면, 보안 정책을 지원하는 단말 관리 방법 및 장치에 관한 것이다.
MDM(Mobile Device Management) 기술은 모바일 단말의 보안성을 강화하기 위한 기술로, 주로 기업의 BYOD(Bring Your Own Device)를 실현하는데 사용된다. 사용자의 모바일 단말이 평상시에는 개인적인 목적으로 활용되다가, 업무 목적으로 활용될 때에는 기업의 보안 수준을 만족하도록 모바일 단말의 설정을 변환할 수 있다. 최근에는 MDM 기술이 모바일 단말 차원에서 동작하는 기능을 모바일 어플리케이션 차원에 적용하는 MAM(Mobile Application Management) 기술로 진화되고 있다.
모바일 어플리케이션 차원에서 MDM 기능을 적용시키는 방안은 크게 소스 변조(modification)와 바이너리(binary) 변조로 구분될 수 있다.
소스 변조인 경우, 해당 모바일 어플리케이션의 소스 코드를 확보하여 MDM 기능 사용을 위한 코드나 라이브러리를 소스 코드에 추가한다. 그 다음에 소스 코드를 컴파일하여 바이너리 어플리케이션을 생성하면, 해당 바이너리 어플리케이션은 MDM 기능을 사용할 수 있게 된다. 한편, 바이너리 변조인 경우, 바이너리 어플리케이션을 직접 조작하여 MDM 기능을 추가시킨다. 좀 더 상세하게 설명하면, 바이너리 어플리케이션으로부터 바이너리 코드(예. 어셈블리 코드)를 추출하고, MDM 기능 사용을 위한 바이너리 코드나 라이브러리를 추출된 바이너리 코드에 추가한다. 그 다음에 바이너리 코드를 바이너리 어플리케이션에 삽입하면, 해당 바이너리 어플리케이션은 MDM 기능을 사용할 수 있게 된다.
MDM 기능 적용을 위한 소스 변조와 바이너리 변조는 기술적인 한계를 가진다. 소스 변조 방식은 해당 모바일 어플리케이션의 소스 코드가 확보되어야 하고, 개발자는 이 소스 코드를 기반으로 MDM 기능을 추가로 작성해야 한다. 하지만 일반적인 환경에서 MDM 기능 적용을 위한 소스 코드의 관리와 개발자 확보가 쉽지 않다. 소스 변조의 경우와 달리, 바이너리 변조는 소스 코드의 확보와 개발자의 직접 코드 추가를 요구하지 않기 때문에 최근에 많은 주목을 받고 있다. 하지만, 바이너리 코드를 추출하고 삽입하는 기술이 어렵기 때문에 실제로 완성도 있는 솔루션을 개발하기가 어려운 상황이다.
또한 바이너리 변조 방식은 다음과 같은 세 가지 기술적인 한계를 가진다.
첫째, 모바일 어플리케이션에 적용할 MDM 기능이 미리 정의되어 있어야 한다. MDM 기능을 어떤 방식으로 적용할지를 명시한 정책이 있어야만, 바이너리 변조시 모바일 어플리케이션의 수정이 이루어질 수 있다. 즉, 모바일 어플리케이션의 세부적인 구성과 동작을 미리 알고 있어야만, MDM 정책을 수립하고 바이너리 변조를 수행할 수 있다.
둘째, MDM 기능을 모바일 어플리케이션에 적용하기 위한 구성과 동작을 파악하기 어렵다. 모바일 어플리케이션의 특정 위치에 특정 MDM 기능을 추가해야 하는데, 일반적인 모바일 어플리케이션은 보안을 위해 바이너리 코드가 난독화 되어 있다. 이에 따라, 클래스명/함수명/변수 이름이 임의의 문자로 변경되고 모바일 어플리케이션의 구동 흐름도 다양하게 변경되기 때문에, 이를 파악하기가 어렵다.
셋째, 모바일 어플리케이션에 적용된 MDM 기능의 변경이 어렵다. MDM 기능 적용 정책이 변경될 경우, 새로운 정책에 따라서 모바일 어플리케이션의 수정이 이루어져야 한다. 기존에 적용된 MDM 기능의 구현의 변경, 새로운 MDM 기능의 추가, 모바일 어플리케이션에 적용할 위치 변경 등의 경우, 매번 모바일 어플리케이션의 수정이 필요하다.
MDM 정책에 관련된 종래 기술들은 주로 특정 상황에서 MDM 정책을 수신하고 적용하는 일반적인 내용을 개시하고 있을 뿐이며, 바이너리 어플리케이션을 변조하여 MDM 정책을 적용하는 종래 기술들 또한 위와 같은 MDM 기능의 기존 문제들을 여전히 보유하는 단점을 가진다.
본 발명이 해결하고자 하는 과제는 MDM 정책과 바이너리 변조 작업을 분리하여 유연하고 편리한 MDM 보안 정책을 지원하는 단말 관리 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 특징에 따른 방법은, 바이너리 모바일 어플리케이션에 대하여 서버가 보안 정책을 지원하는 MDM(Mobile Device Management) 기능을 탑재하는 단말 관리 방법으로서, 상기 서버가, 상기 바이너리 모바일 어플리케이션의 원본 어플리케이션의 각 클래스-메소드 단위로, MDM 연동 코드를 추가하여 상기 원본 어플리케이션을 변조 어플리케이션으로 수정하는 단계; 및 상기 서버가, 상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책을 생성하여 모바일 단말로 송신하는 단계를 포함하며, 상기 MDM 연동 코드는 MDM 정책을 체크하고 임의 MDM 기능을 호출하기 위한 코드이다.
상기 수정하는 단계는, 상기 원본 어플리케이션을 디컴파일(decompile)하여 클래스 파일들을 추출하는 단계; 각 클래스의 메소드 시작 부분에서, 클래스명-메소드의 명을 가지는 태그를 생성하는 단계; 및 상기 생성된 태그와 함께 상기 MDM 연동 코드를 해당 메소드 시작 부분에 추가하는 단계를 포함할 수 있다.
상기 수정하는 단계는, 상기 원본 어플리케이션의 모든 클래스 파일에 대하여 상기 태그와 상기 MDM 연동 코드를 추가하는 작업이 완료되면, 상기 원본 어플리케이션을 리컴파일(recompile)하여 변조 어플리케이션을 생성하는 단계를 더 포함할 수 있다.
상기 변조 어플리케이션이 모바일 단말에서 동작되면서 상기 MDM 연동 코드에 따라 관련 MDM 정책이 체크되면서 해당 MDM 정책의 임의 MDM 기능이 수행될 수 있다.
한편, 상기 방법은, 상기 서버가 관리 UI(user interface)를 통하여 입력되는 데이터에 따라, 바이너리 모바일 어플리케이션의 각 클래스-메소드 단위의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하는 단계를 더 포함할 수 있다.
상기 정책 관리를 수행하는 단계는, 상기 바이너리 모바일 어플리케이션이 실행되는 경우, 해당 클래스의 메소드가 실행되는 내역과, 현재 실행 중인 위치를 포함하는 클래스-메소드 단위의 호출 내역을 출력하는 단계; 및 상기 출력되는 클래스-메소드 단위의 호출 내역의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하는 단계를 포함할 수 있다.
본 발명의 다른 특징에 따른 방법은, 서버로부터 제공되는 바이너리 모바일 어플리케이션을 실행하는 모바일 단말에 대한, 단말 관리 방법으로서, 상기 모바일 단말이, 상기 바이너리 모바일 어플리케이션--상기 바이너리 모바일 어플리케이션은 각 클래스-메소드 단위로 MDM 연동 코드가 추가되어 있음―을 실행하는 단계; 상기 실행되는 바이너리 모바일 어플리케이션에서 상기 MDM 연동 코드가 확인되는 경우, 상기 MDM 연동 코드에 관련된 MDM 정책을 체크하는 단계; 및 상기 MDM 연동 코드에 관련된 MDM 정책의 임의 MDM 기능이 수행되는 단계를 포함한다.
상기 MDM 연동 코드는 MDM 정책을 체크하고 임의 MDM 기능을 호출하기 위한 코드일 수 있다.
상기 체크하는 단계는, 상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책들을 서버로부터 제공받아 저장 및 관리하는 경우, 상기 MDM 정책들 중에서, 상기 MDM 연동 코드에 관련된 MDM 정책을 체크하는 단계를 포함할 수 있다.
상기 MDM 정책은 mdm 클래스명, mdm 메소드명, 파라미터를 포함하는 형태로 표시될 수 있다. 이 경우, 상기 MDM 기능이 수행되는 단계는, JAVA reflection 기법으로 상기 MDM 연동 코드에 관련된 MDM 정책의 mdm 클래스와 mdm 메소드를 호출하여 mdm 기능을 수행할 수 있다.
상기 MDM 정책의 형태는 클래스명-메소드의 명을 가지는 태그를 더 포함할 수 있으며, 상기 MDM 연동 코드는, 클래스명-메소드의 명을 가지는 태그와 함께 각 클래스의 메소드 시작 부분에 추가될 수 있다.
본 발명의 또 다른 특징에 따른 서버는, 바이너리 모바일 어플리케이션에 대하여 보안 정책을 지원하는 MDM 기능을 탑재하는 서버로서, 입출력부; 그리고 상기 입출력부와 연결되고, MDM 기능 탑재 처리를 수행하는 프로세서를 포함하며, 상기 프로세서는, 상기 바이너리 모바일 어플리케이션의 원본 어플리케이션의 각 클래스-메소드 단위로, MDM 연동 코드를 추가하여 상기 원본 어플리케이션을 변조 어플리케이션으로 수정하도록 구성되는 앱 수정 처리부; 및 상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책을 생성하여 상기 입출력부를 통하여 모바일 단말로 송신하도록 구성되는 MDM 정책 처리부를 포함하며, 상기 MDM 연동 코드는 MDM 정책을 체크하고 임의 MDM 기능을 호출하기 위한 코드이다.
상기 프로세서의 앱 수정 처리부는, 상기 원본 어플리케이션을 디컴파일하여 클래스 파일들을 추출하도록 구성되는 디컴파일처리 모듈; 각 클래스의 메소드 시작 부분에서, 클래스명-메소드의 명을 가지는 태그를 생성하고, 상기 생성된 태그와 함께 상기 MDM 연동 코드를 해당 메소드 시작 부분에 추가하도록 구성되는 MDM 기능 추가 모듈; 및 상기 원본 어플리케이션의 모든 클래스 파일에 대하여 상기 태그와 상기 MDM 연동 코드를 추가하는 작업이 완료되면, 상기 원본 어플리케이션을 리컴파일하여 변조 어플리케이션을 생성하도록 구성되는 리컴파일 처리 모듈를 포함할 수 있다.
상기 입출력부는 관리 UI를 포함할 수 있으며, 상기 프로세서의 MDM 정책 처리부는, 상기 관리 UI를 통하여 입력되는 데이터에 따라, 바이너리 모바일 어플리케이션의 각 클래스-메소드 단위의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하도록 구성되는 정책 관리 모듈; 및 상기 MDM 기능을 포함하는 MDM 정책을 상기 입출력부를 통하여 모바일 단말로 제공하도록 구성되는 정책 송신 모듈을 포함할 수 있다.
본 발명의 또 다른 특징에 따른 모바일 단말은, 서버로부터 제공되는 바이너리 모바일 어플리케이션을 실행하는 모바일 단말로서, 입출력부; 그리고 상기 입출력부와 연결되고, 상기 바이너리 모바일 어플리케이션을 실행하는 프로세서를 포함하며, 상기 프로세서는, 상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책들을 상기 입출력부를 통하여 상기 서버로부터 제공받아 저장 및 관리하도록 구성되는 MDM 처리부; 및 상기 바이너리 모바일 어플리케이션--상기 바이너리 모바일 어플리케이션은 각 클래스-메소드 단위로 MDM 연동 코드가 추가되어 있음―을 실행하고 상기 MDM 연동 코드에 관련된 MDM 정책을 상기 MDM 처리부로부터 로드하여 MDM 기능을 수행하도록 구성되는 변조 앱 처리부를 포함하며, 상기 MDM 연동 코드는 MDM 정책을 체크하고 임의 MDM 기능을 호출하기 위한 코드이다.
상기 프로세서의 변조 앱 처리부는, 상기 바이너리 모바일 어플리케이션을 실행하도록 구성되는 코드 실행 모듈; 상기 실행되는 바이너리 모바일 어플리케이션에서 상기 MDM 연동 코드가 확인되는 경우, 상기 MDM 연동 코드에 관련된 MDM 정책이 상기 MDM 처리부에 있는지를 체크하도록 구성되는 정책 체크 모듈; 및 상기 MDM 연동 코드에 관련된 MDM 정책의 임의 MDM 기능을 수행하도록 구성되는 정책 적용 모듈을 포함할 수 있다.
상기 프로세서의 MDM 처리부는, 상기 서버로부터 제공받은 MDM 정책들을 저장하는 정책 데이터베이스; 및 상기 변조 앱 처리부가 요청하는 MDM 기능을 수행하도록 구성되는 MDM 기능 처리 모듈을 포함할 수 있다.
상기 MDM 정책은 mdm 클래스명, mdm 메소드명, 파라미터를 포함하는 형태로 표시될 수 있다. 이 경우, 상기 정책 적용 모듈는, JAVA reflection 기법으로 상기 MDM 연동 코드에 관련된 MDM 정책의 mdm 클래스와 mdm 메소드를 호출하여 mdm 기능을 수행하도록 구성될 수 있다.
상기 MDM 정책의 형태는 클래스명-메소드의 명을 가지는 태그를 더 포함할 수 있으며, 상기 MDM 연동 코드는, 클래스명-메소드의 명을 가지는 태그와 함께 각 클래스의 메소드 시작 부분에 추가될 수 있다.
본 발명의 실시 예에 따르면, 기존에 관리자가 바이너리 어플리케이션을 대상으로 '지정된 위치'에 '지정된 동작'의 MDM 기능을 설정한 것에 반해, 본 발명은 '임의의 위치'에 '임의의 동작'의 MDM 기능을 설정할 수 있다.
또한, 추가적인 바이너리 변조 작업 없이, 관리자가 모바일 어플리케이션에 적용할 MDM 정책을 자유롭게 변경하면 모바일 어플리케이션은 해당 정책을 실시간으로 반영하여 동작할 수 있다.
이에 따라 본 발명의 실시 예에 따르면 현존하는 바이너리 변조 방식의 기술적 한계를 다음과 같이 극복할 수 있다.
첫째, 모바일 어플리케이션에 적용할 MDM 기능을 미리 정의할 필요 없이 바이너리 어플리케이션의 변조 작업을 수행할 수 있다. MDM 기능의 지정은 바이너리 어플리케이션의 변조 시점이 아니라, 어플리케이션의 구동 시점에 관리자가 설정한 정책에 따라서 실시간으로 지정할 수 있다.
둘째, MDM 기능을 모바일 어플리케이션에 적용하기 위한 구성과 동작을 파악할 필요가 없어진다. 난독화로 보호된 모바일 어플리케이션의 세부적인 구성과 동작을 미리 분석하지 않더라도, 관리자는 관리 UI(User Interface)에서 모바일 어플리케이션의 동작을 실시간으로 파악하여, 임의의 위치에 MDM 기능을 적용하도록 올바른 정책을 수립할 수 있다.
셋째, 모바일 어플리케이션에 적용된 MDM 기능의 변경이 용이하다. MDM 기능 적용 정책이 변경될 경우, 기존에는 새로운 정책에 따라서 모바일 어플리케이션의 수정이 필요했지만, 본 발명의 실시 예에 따르면, 모바일 어플리케이션 수정 없이 정책 변경만으로도 MDM 기능의 변경이 이루어진다.
또한 추가되는 MDM 기능을 모바일 어플리케이션에서 사용하기 위해서는 각 어플리케이션별로 MDM 기능의 탑재를 위한 수정이 필요했지만, 본 발명의 실시 예에 따르면, 각 모바일 어플리케이션의 수정 없이, MDM 데몬(Demon)의 갱신만으로 추가되는 MDM 기능을 사용할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 단말 관리를 위한 서버 및 단말의 구조를 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 단말 관리 방법의 어플리케이션 변조 과정의 흐름도이다.
도 3은 본 발명의 실시 예에 따른 단말 관리 방법의 변조 모바일 앱 구동 과정의 흐름도이다.
도 4는 본 발명의 실시 예에 따른 메소드 구동 예를 나타낸 도이다.
도 5 내지 도 8은 본 발명의 실시 예에 따른 MDM 정책을 추가하는 동작을 나타낸 예시도이다.
도 9는 본 발명의 다른 실시 예에 따른 MDM 서버의 구조도이다.
도 10은 본 발명의 다른 실시 예에 따른 모바일 단말의 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.
이하, 본 발명의 실시 예에 따른 단말 관리 방법 및 장치에 관한 것이다.
도 1은 본 발명의 일 실시 예에 따른 단말 관리를 위한 서버 및 단말의 구조를 나타낸 도이다.
이하에서는 설명의 편의를 위해, 어플리케이션(application)을 앱(App.)으로 약칭하기로 한다.
첨부한 도 1에 도시되어 있듯이, 본 발명의 실시 예에 따른 단말 관리를 위하여, MDM(Mobile Device Management) 서버(100)가 모바일 단말(200)과 통신하여, 모바일 단말(200)에 설치되는 모바일 앱에 MDM 기능을 탑재한다.
이를 위하여, MDM 서버(100)는 앱 수정 처리부(110)와 MDM 정책 처리부(120)를 포함하며, 앱 수정 처리부(110)와 MDM 정책 처리부(120)는 관리 UI(Use Interface)(130)를 통하여 연결된다.
앱 수정 처리부(110)는 원본 모바일 앱을 변조 모바일 앱으로 수정하도록 구성된다. 이를 위하여, 앱 수정 처리부(110)는 원본 모바일 앱 데이터베이스(Database, DB)(111), 변조 모바일 앱 DB(112), MDM 기능 추가 모듈(113), 디컴파일(decompile) 처리 모듈(114), 리컴파일(Recompile) 처리 모듈(115)을 포함한다.
원본 모바일 앱 DB(111)는 원본 모바일 앱(또는 원본 앱이라고도 명명됨)을 저장하며, 변조 모바일 앱 DB(112)은 MDM 기능이 적용된 앱 즉, 변조 모바일 앱(또는 변조 앱이라고도 명명됨)을 저장한다.
디컴파일 처리 모듈(114)은 원본 모바일 앱 DB(111)에 저장되어 있는 원본 모바일 앱으로부터 바이너리 코드를 추출하도록 구성된다. MDM 기능 추가 모듈(113)은 디컴파일 처리 모듈(114)로부터 전달되는 원본 모바일 앱의 바이너리 코드에 MDM 기능을 호출하기 위한 코드를 추가하도록 구성된다.
리컴파일 처리 모듈(115)은 MDM 기능 추가 모듈(113)로부터 전달되는 변경된 바이너리 코드를 재조합하여 앱을 생성하도록 구성된다. 리컴파일 처리 모듈(115)에 의해 바이너리 코드 재조합 처리에 따라 생성된 앱은 변조 모바일 앱으로 명명될 수 있으며, 변조 모바일 앱은 변조 모바일 앱 DB(112)에 저장되어 관리된다.
한편, MDM 정책 처리부(120)는 MDM 정책을 관리하고 모바일 단말에 송신하도록 구성된다. 이를 위하여, MDM 정책 처리부(120)는 정책 관리 모듈(121), 정책 DB(122), 정책 송신 모듈(123)을 포함한다.
정책 관리 모듈(121)은 MDM 정책을 생성/수정/삭제하도록 구성된다. MDM 정책의 생성/수정/삭제는 관리자 UI(130)를 통한 관리자의 입력 데이터에 따라 수행될 수 있다.
정책 DB(122)는 정책 관리 모듈(121)로부터 전달되는 MDM 정책을 저장한다. 정책 송신 모듈(123)은 모바일 단말(200)에 MDM 정책을 송신하도록 구성된다.
이러한 구조로 이루어지는 MDM 서버(100)에 대하여, 관리자는 관리 UI(130)를 통해, 특정 원본 모바일 앱의 MDM 기능 추가를 위하여 MDM 기능 추가 모듈(113)을 호출하거나, MDM 정책을 관리하기 위하여 정책 관리 모듈(121)을 호출할 수 있다.
한편, 모바일 단말(200)은 MDM 처리부(210)와 변조 앱 처리부(220)를 포함한다.
MDM 처리부(210)는 MDM 서버(100)로부터 제공되는 MDM 정책을 수신하여 처리하고 MDM 기능을 수행하도록 구성된다. 이를 위하여, MDM 처리부(210)는 정책 수신 모듈(211), 정책 DB(212), MDM 기능 처리 모듈(213)을 포함한다.
정책 수신 모듈(211)은 MDM 서버(100)로부터 송신되는 MDM 정책을 수신하도록 구성된다. 정책 수신 모듈(211)은 수신된 MDM 정책을 정책 DB(222)에 저장하여 관리되도록 한다.
MDM 기능 처리 모듈(213)은 변조 앱 처리부(220)가 요청하는 MDM 기능을 수행하도록 구성된다.
이러한 MDM 처리부(210)은 데몬 형태로 구현될 수 있다.
한편, 변조 앱 처리부(220)는 MDM 서버(100)로부터 제공받은 변조 모바일 앱에 따라 동작하며, 원본 모바일 앱과 동일한 동작을 수행하면서 MDM 기능을 호출하기 위한 코드에 따라 해당하는 MDM 정책에 따른 MDM 기능을 수행하도록 구성된다. 이를 위하여, 변조 앱 처리부(220)는 코드 실행 모듈(221), 정책 체크 모듈(222), 정책 적용 모듈(223)을 포함한다.
코드 실행 모듈(221)은 변조 모바일 앱의 코드를 실행한다. 변조 모바일 앱은 원본 모바일 앱의 코드와 MDM 서버(100)에 의해 추가된 MDM 기능을 호출하기 위한 코드를 포함하며, 이러한 변조 모바일 앱의 코드 실행에 따라 원본 모바일 앱에 해당하는 동작이 수행된다.
정책 체크 모듈(222)은 코드 실행 모듈(221)에서 실행되는 변조 모바일 앱의 코드들 중 MDM 기능을 호출하기 위한 코드에서 해당 앱에 적용된 MDM 정책을 확인한다. 구체적으로, 정책 체크 모듈(222)은 MDM 기능을 호출하기 위한 코드에서 MDM 처리부(210)의 정책 DB(212)로부터 해당 앱에 적용된 MDM 정책을 확인한다.
정책 적용 모듈(223)은 정책 체크 모듈(222)에 의해 확인된 MDM 정책에 따라 특정 MDM 기능을 수행한다. 이를 위해, 정책 적용 모듈(223)은 MDM 처리부(210)의 MDM 기능 처리 모듈(213)로 해당하는 MDM 기능의 수행을 요청하여, MDM 기능 처리 모듈(213)이 해당 MDM 기능을 수행하도록 한다.
먼저, 본 발명의 실시 예에 따른 단말 관리를 위하여, MDM 서버에서의 어플리케이션 변조 과정에 대하여 설명한다.
도 2는 본 발명의 실시 예에 따른 단말 관리 방법의 어플리케이션 변조 과정의 흐름도이다.
MDM 서버(100)에서 원본 모바일 앱에 대하여 어플리케이션 변조를 수행하여 변조 모바일 앱을 생성한다. 이를 위하여, 첨부한 도 2에 도시되어 있듯이, MDM 서버(100)의 앱 수정 처리부(110)는 임의 원본 모바일 앱을 대상으로 디컴파일을 수행한다(S100). 앱 수정 처리부(110)는 관리 UI(130)를 통하여 입력되는 관리자의 요청에 따라 구동되면서 원본 모바일 앱의 디컴파일을 수행한다. 원본 모바일 앱의 디컴파일에 따라 원본 모바일 앱을 구성하는 클래스 파일들이 추출된다.
앱 수정 처리부(110)는 원본 모바일 앱으로부터 추출된 각 클래스 파일 별로 체크를 수행하여 각 클래스에 포함된 메소드를 찾는다(S110)). 메소드를 못 찾으면 메소드를 찾을 때까지 클래스 파일을 체크한다(S120, S130). 만약 클래스 파일에서 메소드의 시작 부분을 찾으면 태그(tag)를 생성하며, 생성된 태그는 "클래스명-메소드"의 명을 가지는 태그이다(S140). 예를 들어 클래스명이 "kr.re.etri.sample.MainActivity"이고 메소드가 "onCreate()"라면 태그는 "kr.re.etri.sample.MainActivity-onCreate()"와 같이 된다.
그리고, 생성된 태그와 함께 MDM 기능을 호출하는 코드인 MDM 연동 코드를 해당 메소드 시작 부분에 추가한다(S150). MDM 연동 코드는 다음 코드 1과 같이 나타낼 수 있다.
[코드 1]
Figure 112016110150098-pat00001
여기서,
Lkr/re/etri/reflectiontest/MainActivity;->runMDM(Ljava/lang/String;)V'"이 MDM 연동 코드를 나타낸다.
해당 클래스 파일을 모두 읽을 때까지 메소드를 찾고 각 메소드에 MDM 연동 코드를 추가하는 수정 작업을 반복적으로 수행한다(S160).
하나의 클래스 파일에 대해서 위에 기술된 바와 같이 MDM 연동 코드를 추가하는 작업을 완료하면 다음 클래스 파일을 대상으로 MDM 연동 코드 추가 작업을 수행한다(S170).
모든 클래스 파일에 대하여 MDM 연동 코드 추가 작업을 완료하면, 리컴파일을 수행하여 변조 모바일 앱을 생성한다(S180). 변조 모바일 앱 생성 절차가 정상적으로 완료되면 어플리케이션 변조 즉, 앱 수정 작업을 종료한다.
위에 기술된 바와 같은 과정을 통하여 생성된 변조 모바일 앱은 MDM 서버(100)의 변조 모바일 앱 DB(112)에 저장 및 관리될 수 있으며, 모바일 단말(200)의 요청에 따라 모바일 단말(200)로 제공된다.
다음에는 위에 기술된 바와 같이, MDM 연동 코드 추가에 따라 MDM 기능이 탑재된 변조 모바일 앱이 설치된 모바일 단말에서, 변조 모바일 앱이 구동되는 과정에 대하여 설명한다.
도 3은 본 발명의 실시 예에 따른 단말 관리 방법의 변조 모바일 앱 구동 과정의 흐름도이다.
본 발명의 실시 예에 따른 MDM 기능이 탑재된 변조 모바일 앱이 MDM 정책에 따라 구동한다.
첨부한 도 3에 도시되어 있듯이, 모바일 단말(200)에서 앱의 실행이 시작되면 해당 앱이 바이너리 코드를 실행하면서 서비스를 제공한다. 앱이 종료될 때까지 바이너리 코드를 실행하며, 앱이 종료되면 해당 흐름 또한 종료된다(S300, S310). 구체적으로, 모바일 단말(200)의 변조 앱 처리부(220)는 기존 코드를 실행하면서(S320) 원본 모바일 앱과 동일한 기능을 수행한다. MDM 연동 코드가 나타날 때까지 기존 코드를 계속 실행한다.
기존 코드를 실행하는 중에 MDM 연동 코드가 나타나면, 해당 위치의 "클래스-메소드"의 명을 가지는 태그를 추출한다(S330, S340). 각 클래스의 각 메소드가 시작하는 위치에서 MDM 연동 코드가 나타난다.
이후, 추출된 "클래스-메소드"에 해당하는 MDM 정책을 검색한다. 구체적으로 변조 앱 처리부(220)는 MDM 처리부(210)의 정책 DB(212)를 검색하여 추출된 태그의 "클래스-메소드"에 해당하는 MDM 정책이 있는지를 판단한다(S350).
태그의 "클래스-메소드"에 해당하는 MDM 정책이 없으면 태그의 "클래스-메소드"에 해당하는 MDM 정책이 다시 기존 코드를 실행하고, 태그의 "클래스-메소드"에 해당하는 MDM 정책이 있으면, 해당 MDM 정책에서 요구하는 MDM 기능 명세를 추출한다(S360).
MDM 정책은 "태그, mdm 클래스명, mdm 메소드명, 파라미터" 형식으로 표현될 수 있다. MDM 정책은 예를 들어, 다음 코드 2와 같이 나타낼 수 있다.
[코드 2]
Figure 112016110150098-pat00002
여기서, " kr.re.etri.sample.MainActivity, onCreate() "는 "클래스-메소드"의 명을 가지는 태그이며, "kr.re.etri.MDM"이 mdm 클래스명이고, " init(Ljava/lang/String;)"은 mdm 메소드명이며, " http://etri.re.kr"는 파라미터를 나타낸다.
이러한 MDM 정책에 따르면, 변조 모바일 앱이 "kr.re.etri.sample.MainActivity" 클래스의 "onCreate()" 메소드를 실행할 때, 해당 mdm 기능을 수행한다. 즉, ‘kr.re.etri.MDM’ mdm 클래스의 ‘init()’ 메소드를 ‘http://etri.re.kr’ 문자열을 파라미터로 하여 실행한다. "mdm 클래스명, mdm 메소드명, 파라미터"가 MDM 기능 명세에 해당한다.
변조 앱 처리부(220)는 MDM 정책으로부터 추출된 MDM 기능 명세에 따라 해당하는 MDM 기능을 수행한다.
MDM 기능을 수행하는 과정을 보다 구체적으로 살펴보면, 변조 앱 처리부(220)의 정책 체크 모듈(222)이 [코드 2]와 같은 MDM 정책에서 제시된 mdm 클래스의 mdm 메소드를 추출한다. 정책 적용 모듈(223)이 추출된 mdm 메소드를 실행하며, 구체적으로 JAVA reflection 기법으로 mdm 클래스와 메소드를 호출하여 MDM 기능을 수행한다.
mdm 메소드를 실행하는 동작은 [코드 1]의 runMDM() 메소드 형태로 호출된다. runMDM() 메소드의 구동 예는 도 4와 같다. 도 4는 본 발명의 실시 예에 따른 메소드 구동 예를 나타낸 도이다. 이와 같이, MDM 정책을 검색하고 로드한 다음에, 임의의 MDM 기능을 java reflection 기법으로 호출한다.
이러한 본 발명의 실시 예에 따르면, 모바일 앱에 각 클래스-메소드 단위로 MDM 정책을 체크하고 임의의 MDM 기능을 수행할 수 있는 범용 코드를 추가함으로써, 모바일 단말에서 범용 코드 실행에 의해 MDM 서버에서 제공되는 MDM 정책과 그에 따라 임의 MDM 기능을 수행할 수 있다.
다음에는 MDM 서버에서 MDM 정책을 추가하는 과정에 대해서 설명한다.
도 5 내지 도 8은 본 발명의 실시 예에 따른 MDM 정책을 추가하는 동작을 나타낸 예시도이다. 구체적으로, MDM 서버에서 관리자가 관리 UI를 통해 모바일 앱의 특정 위치에 MDM 기능을 수행하도록 정책을 추가하는 과정을 설명하기 위한 예를 나타낸다. 이러한 과정은 MDM 정책 처리부(120)의 정책 관리 모듈(121)을 통하여 수행될 수 있다.
관리자는 관리 UI를 통하여 MDM 기능이 탑재된 변조 모바일 앱의 목록을 조회하고 앱에 적용된 MDM 정책을 확인하고 MDM 기능을 추가할 수 있다. 변조 모바일 앱의 목록에서 임의의 모바일 앱을 선택하면, 해당 앱의 구성 내역 뿐만 아니라 해당 앱에 적용된 MDM 정책을 확인할 수 있다. 구체적으로, MDM 서버의 관리 UI는 변조 모바일 앱의 목록을 출력한다. 변조 모바일 앱 목록에서 하나의 모바일 앱 이름이 선택되면, 도 5에 예시된 바와 같이, 선택된 모바일 앱에 해당하는 클래스명들이 출력되고, 클래스가 선택되면 해당 클래스에 속한 메소드명이 출력된다. 메소드명이 선택되면 도 5의 점선으로 표시한 박스에서와 같이, "MDM 기능추가"와 ‘"취소" 버튼 중에 하나를 선택할 수 있다. "MDM 기능 추가" 버튼이 선택되면 해당 위치에 MDM 기능을 바로 추가할 수 있다. "취소" 버튼이 선택되면 다른 메소드, 클래스, 다른 앱을 선택할 수 있다.
도 6은 구체적으로 앱의 해당 클래스-메소드에 추가할 MDM 기능을 선택할 수 있는 화면을 나타낸다. 점선으로 표시된 창에서, 모바일 앱의 현재 위치에서 추가 가능한 MDM 기능 목록이 나열된다. MDM 기능 중 하나가 선택되고 "확인" 버튼이 선택되면, 해당 위치에 해당 MDM 기능이 정책으로 추가된다. "취소" 버튼을 선택되면, MDM 기능 추가를 위한 창이 닫히고, 도 5의 화면이 출력될 수 있다.
도 7은 도 6에서 "MDM 초기화" 기능이 추가된 경우의 관리 UI를 통해 표시되는 화면을 나타낸 예시도이다.
모바일 앱의 해당 클래스-메소드명 위치에서 수행되는 MDM 기능을 조회할 수 있다. 동일 위치에서 하나 이상의 MDM 기능이 추가될 수 있으며, MDM 기능 순서에 따라 순차적으로 해당 기능들이 수행된다. 도 7에서, 해당 MDM 기능이 표시된 타원이 선택되면, 관리자는 관리 UI를 통하여 해당 기능의 실행 순서를 바꾸거나 해당 기능을 삭제할 수 있다. 관리자가 관리 UI로 수정한 내역은, 그 즉시 해당 앱의 해당 시점에 대한 MDM 정책으로 표현되어 해당 앱의 실행 시점에 실시간으로 적용된다.
도 8은 본 발명의 실시 예에 따른 변조 모바일 앱의 실행 중에 실시간으로 MDM 기능을 수행하도록 정책을 추가하는 동작을 나타내는 예시도이다.
관리자는 모바일 앱이 구동하는 흐름을 관리 UI를 통하여 도 8과 같이 조회할 수 있다. 모바일 앱의 구동 가능한 흐름에서 현재 구동중인 흐름이 다른 박스와는 구별되는 색으로 표시될 수 있다. 모바일 단말에서 모바일 앱의 특정 기능을 실행하고 있을 때, 해당 클래스의 메소드가 실행되는 내역이 도 8과 같이 표시되고, 모바일 앱의 현재 구동 중인 흐름 즉, 실행 중인 위치가 표시된다. 이러한 상태에서, 관리자는 관리 UI를 통하여 특정 위치(특정 클래스-메소드)에 적용될 MDM 정책을 해당 화면에서 추가할 수 있다. 모바일 앱에서 사용자가 구동한 위치나, 현재 중단된 위치, 그리고 향후 사용자가 수행할 위치에 대한 MDM 정책 추가가 가능하다. 도 8의 점선으로 표시된 창에 나타난 바와 같이, 도 4 내지 도 7과 동일한 방식으로 MDM 정책을 설정할 수 있다. 이와 같이, 관리자는 모바일 단말에서 구동된 모바일 앱의 클래스-메소드 단위의 호출 내역을 그래피컬(graphical) 형태로 조회하고, 특정 위치에서 임의의 MDM 기능을 수행하도록 실시간으로 MDM 기능을 명세할 수 있다.
위에 기술된 바와 같이, 본 발명의 실시 예에서는, 바이너리 앱을 상으로 유연한 보안 정책을 지원하는 MDM 기능을 탑재할 수 있으며, 앱 변조 시점에 MDM 연동 코드를 삽입하고, 변조된 앱의 구동 시점에 MDM 정책에 따라 MDM 기능을 결정하여 실행한다. 이에 따라, 관리자는 모바일 앱에 MDM 기능을 미리 정의할 필요 없이 바이너리 앱의 변조 작업을 수행할 수 있다. 그리고 변조된 앱의 구동 시점에 관리자가 설정한 정책에 따라서 실시간으로 MDM 기능을 지정할 수 있기 때문에 앱 래핑(Wrapping) 작업 및 정책 설정 작업의 중복성 문제를 해결할 수 있다.
또한, 앱에 적용될 MDM 기능을 관리 UI를 통해 쉽게 조회하고, 구동 시점에 실시간으로 설정할 수 있기 때문에 정책 설정 작업의 어려움 또한 해소할 수 있다. 모바일 앱에 적용하기 위한 구성과 동작을 파악할 필요가 없으며, 난독화로 보호된 모바일 어플리케이션의 세부적인 구성과 동작을 미리 분석하지 않아도 관리자는 임의의 위치에 MDM 기능을 적용하도록 올바른 정책을 수립할 수 있다. 이를 통해, 기존에 번거롭고 어려웠던 앱 래핑 작업에서 벗어나 관리자는 모바일 앱의 변조 및 제어를 언제든지 편리하게 수행할 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 MDM 서버의 구조도이다.
첨부한 도 9에 도시되어 있듯이, 본 발명의 실시 예에 따른 MDM 서버(100')는, 프로세서(11), 메모리(12) 및 입출력부(13)를 포함한다. 프로세서(11)는 위의 도 1 내지 도 8을 토대로 설명한 동작 및 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(11)는 앱 수정 처리부와 MDM 정책 처리부와 그들의 모듈들의 동작을 수행하도록 구성될 수 있다.
메모리(12)는 프로세서(11)와 연결되고 프로세서(11)의 동작과 관련한 다양한 정보를 저장한다. 메모리(12)는 프로세서(11)에서 수행하기 위한 동작을 위한 인스트럭션(instructions)를 저장하고 있거나 저장 장치(도시하지 않음)로부터 명령어를 로드하여 일시 저장할 수 있다.
프로세서(11)는 메모리(12)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 프로세서(11)와 메모리(12)는 버스(도시하지 않음)를 통해 서로 연결되어 있으며, 버스에는 입출력 인터페이스(도시하지 않음)도 연결되어 있을 수 있다.
입출력부(13)는 프로세서(11)의 처리 결과를 출력하거나 입력되는 데이터를 프로세서(11)로 제공하도록 구성된다. 또한, 입출력부(13)는 모바일 단말과의 무선 신호 송수신을 수행하도록 구성된다.
도 10는 본 발명의 다른 실시 예에 따른 다른 모바일 단말의 구조도이다.
첨부한 도 10에 도시되어 있듯이, 본 발명의 실시 예에 따른 모바일 단말(200')은, 프로세서(21), 메모리(22) 및 입출력부(23)를 포함한다. 프로세서(21)는 위의 도 1 내지 도 8을 토대로 설명한 동작 및 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(21)는 MDM 처리부와 변조 모바일 앱 처리부와 그들의 모듈들의 동작을 수행하도록 구성될 수 있다.
메모리(22)는 프로세서(21)와 연결되고 프로세서(21)의 동작과 관련한 다양한 정보를 저장한다. 메모리(22)는 프로세서(21)에서 수행하기 위한 동작을 위한 명령어를 저장하고 있거나 저장 장치(도시하지 않음)로부터 명령어를 로드하여 일시 저장할 수 있다.
프로세서(21)는 메모리(22)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 프로세서(21)와 메모리(22)는 버스(도시하지 않음)를 통해 서로 연결되어 있으며, 버스에는 입출력 인터페이스(도시하지 않음)도 연결되어 있을 수 있다.
입출력부(23)는 프로세서(21)의 처리 결과를 출력하거나 입력되는 데이터를 프로세서(21)로 제공하도록 구성된다. 또한, 입출력부(13)는 MDM 서버와의 무선 신호 송수신을 수행하도록 구성된다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
첨부된 도면들의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 도면들의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터를 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 도면들의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 도면들의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 첨부된 도면들의 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (19)

  1. 바이너리 모바일 어플리케이션에 대하여 서버가 보안 정책을 지원하는 MDM(Mobile Device Management) 기능을 탑재하는 단말 관리 방법으로서,
    상기 서버가, 상기 바이너리 모바일 어플리케이션의 원본 어플리케이션의 각 클래스-메소드 단위로, MDM 연동 코드를 추가하여 상기 원본 어플리케이션을 변조 어플리케이션으로 수정하는 단계;
    상기 서버가, 상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책을 생성하는 단계; 및
    상기 서버가, 상기 변조 어플리케이션과 상기 MDM 정책을 모바일 단말로 송신하는 단계
    를 포함하며,
    상기 MDM 연동 코드는 MDM 정책을 체크하고 상기 체크되는 MDM 정책에 포함되는 MDM 기능을 호출하기 위한 코드인, 단말 관리 방법.
  2. 제1항에 있어서,
    상기 수정하는 단계는
    상기 원본 어플리케이션을 디컴파일(decompile)하여 클래스 파일들을 추출하는 단계;
    각 클래스의 메소드 시작 부분에서, 클래스명-메소드의 명을 가지는 태그를 생성하는 단계; 및
    상기 생성된 태그와 함께 상기 MDM 연동 코드를 해당 메소드 시작 부분에 추가하는 단계
    를 포함하는, 단말 관리 방법.
  3. 제2항에 있어서,
    상기 수정하는 단계는
    상기 원본 어플리케이션의 모든 클래스 파일에 대하여 상기 태그와 상기 MDM 연동 코드를 추가하는 작업이 완료되면, 상기 원본 어플리케이션을 리컴파일(recompile)하여 변조 어플리케이션을 생성하는 단계
    를 더 포함하는, 단말 관리 방법.
  4. 제1항에 있어서,
    상기 변조 어플리케이션이 모바일 단말에서 동작되면서 상기 MDM 연동 코드에 따라 관련 MDM 정책이 체크되면서 해당 MDM 정책의 임의 MDM 기능이 수행되는, 단말 관리 방법.
  5. 제1항에 있어서,
    상기 서버가 관리 UI(user interface)를 통하여 입력되는 데이터에 따라, 바이너리 모바일 어플리케이션의 각 클래스-메소드 단위의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하는 단계
    를 더 포함하는, 단말 관리 방법.
  6. 제5항에 있어서,
    상기 정책 관리를 수행하는 단계는,
    상기 바이너리 모바일 어플리케이션이 실행되는 경우, 해당 클래스의 메소드가 실행되는 내역과, 현재 실행 중인 위치를 포함하는 클래스-메소드 단위의 호출 내역을 출력하는 단계; 및
    상기 출력되는 클래스-메소드 단위의 호출 내역의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하는 단계
    를 포함하는, 단말 관리 방법.
  7. 서버로부터 제공되는 바이너리 모바일 어플리케이션을 실행하는 모바일 단말에 대한, 단말 관리 방법으로서,
    상기 모바일 단말이, 상기 바이너리 모바일 어플리케이션 - 상기 바이너리 모바일 어플리케이션은 각 클래스-메소드 단위로 MDM 연동 코드가 추가되어 있음 - 을 실행하는 단계;
    상기 실행되는 바이너리 모바일 어플리케이션에서 상기 MDM 연동 코드가 확인되는 경우, 상기 MDM 연동 코드에 관련된 MDM 정책을 체크하는 단계; 및
    상기 MDM 연동 코드에 관련된 상기 MDM 정책에 대응하여 미리 지정된 MDM 기능이 수행되는 단계
    를 포함하는, 단말 관리 방법.
  8. 제7항에 있어서,
    상기 MDM 연동 코드는 상기 모바일 단말이, 상기 MDM 정책을 체크하고 상기 MDM 정책에 대응하여 미리 지정된 MDM 기능을 호출하기 위한 코드이며, 상기 MDM 정책과 상기 MDM 정책에 대응하여 미리 지정된 MDM 기능은 상기 서버로부터 제공되어 상기 모바일 단말에 저장되어 있는. 단말 관리 방법.
  9. 제7항에 있어서,
    상기 체크하는 단계는
    상기 바이너리 모바일 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책들을 서버로부터 제공받아 저장 및 관리하는 경우, 상기 MDM 정책들 중에서, 상기 MDM 연동 코드에 관련된 MDM 정책을 체크하는 단계
    를 포함하는, 단말 관리 방법.
  10. 제7항에 있어서,
    상기 MDM 정책은 mdm 클래스명, mdm 메소드명, 파라미터를 포함하는 형태로 표시되며,
    상기 MDM 기능이 수행되는 단계는, JAVA reflection 기법으로 상기 MDM 연동 코드에 관련된 MDM 정책의 mdm 클래스와 mdm 메소드를 호출하여 mdm 기능을 수행하는, 단말 관리 방법.
  11. 제10항에 있어서,
    상기 MDM 정책의 형태는 클래스명-메소드의 명을 가지는 태그를 더 포함하며,
    상기 MDM 연동 코드는, 클래스명-메소드의 명을 가지는 태그와 함께 각 클래스의 메소드 시작 부분에 추가되어 있는, 단말 관리 방법.
  12. 바이너리 모바일 어플리케이션에 대하여 보안 정책을 지원하는 MDM 기능을 탑재하는 서버로서,
    입출력부; 그리고
    상기 입출력부와 연결되고, MDM 기능 탑재 처리를 수행하는 프로세서를 포함하며,
    상기 프로세서는,
    상기 바이너리 모바일 어플리케이션의 원본 어플리케이션의 각 클래스-메소드 단위로, MDM 연동 코드를 추가하여 상기 원본 어플리케이션을 변조 어플리케이션으로 수정하고, 상기 변조 어플리케이션을 상기 입출력부를 통하여 모바일 단말로 송신하도록 구성되는 앱 수정 처리부; 및
    상기 변조 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책을 생성하여 상기 입출력부를 통하여 상기 모바일 단말로 송신하도록 구성되는 MDM 정책 처리부
    를 포함하며,
    상기 MDM 연동 코드는 MDM 정책을 체크하고 상기 체크되는 MDM 정책에 포함되는 MDM 기능을 호출하기 위한 코드인, 서버.
  13. 제12항에 있어서,
    상기 프로세서의 앱 수정 처리부는,
    상기 원본 어플리케이션을 디컴파일하여 클래스 파일들을 추출하도록 구성되는 디컴파일처리 모듈;
    각 클래스의 메소드 시작 부분에서, 클래스명-메소드의 명을 가지는 태그를 생성하고, 상기 생성된 태그와 함께 상기 MDM 연동 코드를 해당 메소드 시작 부분에 추가하도록 구성되는 MDM 기능 추가 모듈; 및
    상기 원본 어플리케이션의 모든 클래스 파일에 대하여 상기 태그와 상기 MDM 연동 코드를 추가하는 작업이 완료되면, 상기 원본 어플리케이션을 리컴파일하여 변조 어플리케이션을 생성하도록 구성되는 리컴파일 처리 모듈
    을 포함하는, 서버.
  14. 제12항에 있어서,
    상기 입출력부는 관리 UI를 포함하며,
    상기 프로세서의 MDM 정책 처리부는,
    상기 관리 UI를 통하여 입력되는 데이터에 따라, 바이너리 모바일 어플리케이션의 각 클래스-메소드 단위의 소정 위치에, MDM 기능을 추가하거나 수정하거나 또는 삭제하는 정책 관리를 수행하도록 구성되는 정책 관리 모듈; 및
    상기 MDM 기능을 포함하는 MDM 정책을 상기 입출력부를 통하여 모바일 단말로 제공하도록 구성되는 정책 송신 모듈
    을 포함하는, 서버.
  15. 서버로부터 제공되는 바이너리 모바일 어플리케이션을 실행하는 모바일 단말로서,
    입출력부; 그리고
    상기 입출력부와 연결되고, 상기 바이너리 모바일 어플리케이션을 실행하는 프로세서를 포함하며,
    상기 프로세서는,
    상기 바이너리 모바일 어플리케이션에 적용할, 적어도 하나의 MDM 기능을 포함하는 MDM 정책들을 상기 입출력부를 통하여 상기 서버로부터 제공받아 저장 및 관리하도록 구성되는 MDM 처리부; 및
    상기 바이너리 모바일 어플리케이션 - 상기 바이너리 모바일 어플리케이션은 각 클래스-메소드 단위로 MDM 연동 코드가 추가되어 있음 - 을 실행하고 상기 MDM 연동 코드에 관련된 MDM 정책을 상기 MDM 처리부로부터 로드하여 상기 로드된 MDM 정책에 포함된 MDM 기능을 수행하도록 구성되는 변조 앱 처리부
    를 포함하며, 상기 MDM 연동 코드는 관련되는 MDM 정책을 체크하고 상기 체크되는 MDM 정책에 포함되는 MDM 기능을 호출하기 위한 코드인, 모바일 단말.
  16. 제15항에 있어서,
    상기 프로세서의 변조 앱 처리부는,
    상기 바이너리 모바일 어플리케이션을 실행하도록 구성되는 코드 실행 모듈;
    상기 실행되는 바이너리 모바일 어플리케이션에서 상기 MDM 연동 코드가 확인되는 경우, 상기 MDM 연동 코드에 관련된 MDM 정책이 상기 MDM 처리부에 있는지를 체크하도록 구성되는 정책 체크 모듈; 및
    상기 MDM 연동 코드에 관련된 MDM 정책의 임의 MDM 기능을 수행하도록 구성되는 정책 적용 모듈
    을 포함하는, 모바일 단말.
  17. 제15항에 있어서,
    상기 프로세서의 MDM 처리부는,
    상기 서버로부터 제공받은 MDM 정책들을 저장하는 정책 데이터베이스; 및
    상기 변조 앱 처리부가 요청하는 MDM 기능을 수행하도록 구성되는 MDM 기능 처리 모듈
    을 포함하는, 모바일 단말.
  18. 제17항에 있어서,
    상기 MDM 정책은 mdm 클래스명, mdm 메소드명, 파라미터를 포함하는 형태로 표시되며,
    상기 변조 앱 처리부는, JAVA reflection 기법으로 상기 MDM 연동 코드에 관련된 MDM 정책의 mdm 클래스와 mdm 메소드를 호출하여 mdm 기능을 수행하도록 구성되는, 모바일 단말.
  19. 제18항에 있어서,
    상기 MDM 정책의 형태는 클래스명-메소드의 명을 가지는 태그를 더 포함하며,
    상기 MDM 연동 코드는, 클래스명-메소드의 명을 가지는 태그와 함께 각 클래스의 메소드 시작 부분에 추가되어 있는, 모바일 단말.
KR1020160149840A 2016-11-10 2016-11-10 보안 정책을 지원하는 단말 관리 방법 및 장치 KR101930056B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160149840A KR101930056B1 (ko) 2016-11-10 2016-11-10 보안 정책을 지원하는 단말 관리 방법 및 장치
US15/642,450 US20180131725A1 (en) 2016-11-10 2017-07-06 Method and apparatus for mobile terminal management supporting security policy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160149840A KR101930056B1 (ko) 2016-11-10 2016-11-10 보안 정책을 지원하는 단말 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180052834A KR20180052834A (ko) 2018-05-21
KR101930056B1 true KR101930056B1 (ko) 2019-03-15

Family

ID=62064522

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160149840A KR101930056B1 (ko) 2016-11-10 2016-11-10 보안 정책을 지원하는 단말 관리 방법 및 장치

Country Status (2)

Country Link
US (1) US20180131725A1 (ko)
KR (1) KR101930056B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10944794B2 (en) * 2018-04-25 2021-03-09 Dell Products L.P. Real-time policy selection and deployment based on changes in context
CN112579388A (zh) * 2019-09-30 2021-03-30 奇安信科技集团股份有限公司 移动终端管控方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088001A (ja) 2013-10-31 2015-05-07 株式会社日立システムズ テスト範囲決定システムおよびテスト範囲決定方法ならびにテスト範囲決定プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955142B2 (en) * 2011-03-21 2015-02-10 Mocana Corporation Secure execution of unsecured apps on a device
US8812868B2 (en) * 2011-03-21 2014-08-19 Mocana Corporation Secure execution of unsecured apps on a device
KR101258834B1 (ko) * 2011-09-23 2013-05-06 삼성에스디에스 주식회사 보안 정책에 의한 모바일 기기 관리장치 및 방법, 그리고 모바일 기기 관리를 위한 관리 서버
US8695060B2 (en) * 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20140053234A1 (en) * 2011-10-11 2014-02-20 Citrix Systems, Inc. Policy-Based Application Management
US20140040979A1 (en) * 2011-10-11 2014-02-06 Citrix Systems, Inc. Policy-Based Application Management
US9430641B1 (en) * 2011-11-03 2016-08-30 Mobile Iron, Inc. Adapting a mobile application to a partitioned environment
US9609020B2 (en) * 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US8892876B1 (en) * 2012-04-20 2014-11-18 Trend Micro Incorporated Secured application package files for mobile computing devices
US9087191B2 (en) * 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9652314B2 (en) * 2012-10-15 2017-05-16 Alcatel Lucent Dynamic application programming interface publication for providing web services
US9606774B2 (en) * 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US9971585B2 (en) * 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
WO2014062804A1 (en) * 2012-10-16 2014-04-24 Citrix Systems, Inc. Application wrapping for application management framework
CA2954984A1 (en) * 2013-07-26 2015-01-29 Optio Labs, Inc. Systems and methods for enhancing mobile security via aspect oriented programming
US9280665B2 (en) * 2013-09-13 2016-03-08 Airwatch Llc Fast and accurate identification of message-based API calls in application binaries
US9661024B2 (en) * 2013-12-12 2017-05-23 Microsoft Technology Licensing, Llc Configuring applications and policies in non-cooperative environments
US9213830B2 (en) * 2013-12-12 2015-12-15 Microsoft Technology Licensing, Llc Managing applications in non-cooperative environments
US10460112B2 (en) * 2014-02-07 2019-10-29 Northwestern University System and method for privacy leakage detection and prevention system without operating system modification
US9619216B2 (en) * 2014-04-28 2017-04-11 Citrix Systems, Inc. Modifying an application for managed execution
US20150332043A1 (en) * 2014-05-15 2015-11-19 Auckland Uniservices Limited Application analysis system for electronic devices
US9268557B2 (en) * 2014-06-24 2016-02-23 International Business Machines Corporation Wrapping computer software applications
US9672338B1 (en) * 2014-07-07 2017-06-06 Mobile Iron, Inc. Managing applications across multiple management domains
US9785425B2 (en) * 2014-09-30 2017-10-10 Airwatch Llc Managed clone applications
KR20160080701A (ko) * 2014-12-30 2016-07-08 주식회사 더보안 위치에 기반한 복수개의 보안 정책 운용을 위한 사용자 단말기 제어 시스템 및 방법
US20160191645A1 (en) * 2014-12-30 2016-06-30 Citrix Systems, Inc. Containerizing Web Applications for Managed Execution
US10223526B2 (en) * 2015-05-21 2019-03-05 Airwatch Llc Generating packages for managed applications
US10042735B2 (en) * 2015-07-10 2018-08-07 Ca, Inc. Selecting application wrapper logic components for wrapping a mobile application based on wrapper performance feedback from user electronic devices
US10181030B2 (en) * 2015-07-24 2019-01-15 Citrix Systems, Inc. Blocking routine redirection
US10078580B2 (en) * 2015-08-04 2018-09-18 Ca, Inc. Operations to avoid wrapped mobile application operational errors due to interference from wrapper logic components
US10776520B2 (en) * 2015-09-14 2020-09-15 Northwestern University System and method for proxy-based data access mechanism in enterprise mobility management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015088001A (ja) 2013-10-31 2015-05-07 株式会社日立システムズ テスト範囲決定システムおよびテスト範囲決定方法ならびにテスト範囲決定プログラム

Also Published As

Publication number Publication date
US20180131725A1 (en) 2018-05-10
KR20180052834A (ko) 2018-05-21

Similar Documents

Publication Publication Date Title
US10142106B2 (en) System and method for securing sensitive data
US10664302B2 (en) Automated orchestration of a virtualized computing environment
CN102105874B (zh) 用于检测和处理对应用程序包作出的对资源的改变的方法和系统
US9531600B2 (en) Automatic extraction, modeling, and code mapping of application user interface display screens and components
US10325109B2 (en) Automatic and dynamic selection of cryptographic modules for different security contexts within a computer network
CN102981915B (zh) 一种应用程序间通信方法及装置
CN110096424B (zh) 测试的处理方法、装置、电子设备及存储介质
CN105302563B (zh) 移动应用服务的插件化方法及系统
CN106843978B (zh) 一种sdk接入方法及系统
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
CN103713904A (zh) 在移动终端工作区内安装应用的方法、相关装置和系统
US11641581B2 (en) Security management on a mobile device
JP2011107752A (ja) 情報処理装置、通信システムおよびプログラム
CN103034546B (zh) iOS系统中应用程序间通信的方法及装置
CN109669692B (zh) 源码共享方法、服务器、计算机可读存储介质及系统
US20220360504A1 (en) Adapting microservices to multi-platform deployments
KR101930056B1 (ko) 보안 정책을 지원하는 단말 관리 방법 및 장치
CN113360160A (zh) 部署应用的方法、装置、电子设备和存储介质
CN104375831A (zh) 实现终端设备上的网页和应用间通信的方法、装置和系统
CN103984541A (zh) 基于终端源代码生成应用程序的方法和系统
CN116917858A (zh) 容器化应用中的运行时通信协议参数调整
CN114416396A (zh) 一种接口版本控制方法、装置、电子设备及存储介质
CN110727416B (zh) 开发框架的生成方法及相关装置
KR20110123513A (ko) 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법
CN112580101A (zh) 一种数据解密方法及终端

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant