KR101539968B1 - 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 - Google Patents

어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 Download PDF

Info

Publication number
KR101539968B1
KR101539968B1 KR1020120149274A KR20120149274A KR101539968B1 KR 101539968 B1 KR101539968 B1 KR 101539968B1 KR 1020120149274 A KR1020120149274 A KR 1020120149274A KR 20120149274 A KR20120149274 A KR 20120149274A KR 101539968 B1 KR101539968 B1 KR 101539968B1
Authority
KR
South Korea
Prior art keywords
application
specific
security
specific function
execution
Prior art date
Application number
KR1020120149274A
Other languages
English (en)
Other versions
KR20140079990A (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 KR1020120149274A priority Critical patent/KR101539968B1/ko
Priority to PCT/KR2012/011351 priority patent/WO2014098293A1/ko
Publication of KR20140079990A publication Critical patent/KR20140079990A/ko
Application granted granted Critical
Publication of KR101539968B1 publication Critical patent/KR101539968B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

본 발명의 실시 예는 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것이다.
본 발명의 실시 예에 따른 방법은, 보안 어플리케이션(Application)과 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법으로서, 상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계; 상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;를 포함한다.

Description

어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체{METHOD FOR CONTROLLING APPLICATION EXECUTION, METHOD FOR DETERMINING WHETHER OR NOT APPLICATION IS EXECUTED, AND COMPUTER READABLE RECORDING MEDIUM INCLUDING PROGRAM FOR PERFORMING THE SAME}
본 발명의 실시 예는 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것으로서, 더욱 상세하게는 개방형 플랫폼이 탑재된 단말기에서 특정 어플리케이션의 실행을 제어하고, 실행 여부를 판별하는 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것이다.
개방형 플랫폼(Open Platform)이란, 특정 플랫폼 회사가 Open API(Application Programming Interface)를 공개하여 누구나 규격에 맞는 형식으로 프로그램을 만들어갈 수 있도록 이용할 수 있게 한 플랫폼을 의미한다. 여기서, Open API란 어떤 서비스가 자신의 서비스 기능 일부를 API로 공개함으로써 외부에서 그 기능을 이용할 수 있도록 하는 것을 의미한다.
모바일 기기에 적용된 개방형 플랫폼의 일 예가 안드로이드(Android) 플랫폼이다. 안드로이드 플랫폼은 구글의 휴대폰용 오픈 소스 소프트웨어 플랫폼 및 주변 도구를 의미한다.
안드로이드 플랫폼은 전 세계의 주요 휴대폰 제조사, 반도체 제조사는 물론 통신사, 시스템 소프트웨어 개발사, 어플리케이션 개발사를 포함하는 오픈 핸드셋 얼라이언스(Open Handset Alliance, OHA)를 통해 진화하고 있다.
안드로이드 플랫폼은 오픈 소스 운영체제인 리눅스를 기반으로 하고 있어서 다양한 하드웨어에 이식하거나 새로운 기능을 부여하기 쉽고, 자바 언어를 사용하며, 구글의 다양한 인터넷 서비스를 직접 이용할 수 있는 API를 갖추고 있다.
그러나, 이러한 안드로이드 플랫폼과 같은 개방형 플랫폼은 보안상의 취약점을 갖고 있다.
예를 들면, 안드로이드 마켓은, 애플 앱스토어와 달리, 어플리케이션의 보안성 검증 절차가 없기 때문에 악의적인 어플리케이션의 등록이 쉽다.
따라서, 상기 악의적인 어플리케이션이 사용자의 단말에 설치되면, 상기 악의적인 어플리케이션은 사용자의 개인 정보를 사용자의 의도와 무관하게 외부로 유출시킬 수 있다.
또한, 상기 악의적인 어플리케이션은 정상적인 어플리케이션의 동작에 영향을 미칠 수 있다. 예를 들어, 사용자는 상기 정상적인 어플리케이션의 동작을 원하는 상황에서, 상기 악의적인 어플리케이션이 사용자의 의도와 무관하게 동작함으로써 상기 정상적인 어플리케이션의 실행이 느려지거나 실행이 되지 않는 문제가 생길 수 있다
본 발명의 실시 예는 어플리케이션의 실행을 제어하고, 어플리케이션의 실행 여부를 판별할 수 있는 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 제공한다.
또한, 개인 정보의 유출을 막을 수 있는 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 제공한다.
또한, 정상적인 어플리케이션의 실행을 방해하지 않는 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 제공한다.
본 발명의 실시 예에 따른 방법은, 보안 어플리케이션(Application)과 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법으로서, 상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계; 상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;를 포함한다.
여기서, 상기 보안 라이브러리가, 상기 특정 기능의 호출이 감시 대상 호출에 해당하는지를 판별하는 단계;를 더 포함할 수 있다.
여기서, 상기 특정 기능의 호출이 상기 감시 대상에 해당되지 않으면, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함할 수 있다.
삭제
여기서, 상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 어플리케이션이 상기 특정 기능의 실행을 허락함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함할 수 있다.
여기서, 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션이 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함할 수 있다.
여기서, 상기 보안 라이브러리가 상기 특정 기능의 호출을 후킹(Hooking)하는 단계;를 더 포함할 수 있다.
본 발명의 실시 예에 따른 어플리케이션의 실행 제어 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 포함한다.
본 발명의 실시 예에 따른 방법은, 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에 설치된 특정 어플리케이션의 실행 여부를 판별하는 방법으로서, 상기 보안 라이브러리로부터 상기 특정 어플리케이션의 실행 여부를 요청받는 단계; 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 라이브러리로 상기 특정 어플리케이션이 요청하는 특정 기능의 실행을 허락함을 알려주는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 라이브러리로 상기 특정 어플리케이션의 상기 특정 기능이 차단 대상에 해당함을 알려주는 단계;를 포함한다.
삭제
여기서, 상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 라이브러리로 상기 특정 기능의 실행을 허락함을 알려주는 단계;를 더 포함할 수 있다.
여기서, 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함할 수 있다.
여기서, 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 디스플레이하는 단계;를 더 포함할 수 있다.
여기서, 상기 단말기의 사용자 인터페이스를 통해 상기 허용 목록과 상기 차단 규칙을 업데이트받는 단계;를 더 포함할 수 있다.
본 발명의 실시 예에 따른 어플리케이션의 실행 여부를 판별하는 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 포함한다.
실시 예에 따른 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체를 사용하면, 어플리케이션 별로 또는 어플리케이션의 기능별로 그 실행을 제어할 수 있다. 따라서, 어플리케이션의 악의적인 행동, 예를 들면 개인 정보 유출 또는 정상적인 어플리케이션의 동작을 방해하는 행동을 사전에 차단할 수 있다.
도 1은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법이 적용될 수 있는 단말기에 관한 도면.
도 2는 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 설명하기 위한 참조도.
도 3은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 설명하기 위한 순서도.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법이 적용될 수 있는 단말기에 관한 도면이다.
도 1을 참조하면, 단말기(10)는 휴대성이 향상된 이동통신이 가능한 단말기로, 스마트폰이나 휴대폰일 수 있으나 이에 한정하는 것은 아니며, 단말기(10)는 노트북, PC, 태블릿 PC 등이 포함될 수 있다.
단말기(10)에는 모바일 운영체제 기반, 예를 들어, 구글(Google)의 안드로이드(Android), 삼성의 바다(Bada), 애플의 iOS 기반의 각종 어플리케이션들이 탑재될 수 있다.
단말기(10)에 미리 설치 또는 사용자에 의해 다운로드되는 특정 어플리케이션은 모바일 운영체제가 별도로 운영하는 마켓에서 유료 또는 무료로 제공될 수 있다.
도 2는 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 설명하기 위한 참조도로서, 안드로이드의 계층 구조에 관한 것이다.
도 2에 도시된 바와 같이, 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법은 안드로이드와 같은 개방형 플랫폼에 적용될 수 있다. 이하에서는 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 안드로이드에 적용하여 설명하도록 한다. 여기서, 유의해야 할 점은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법이 안드로이드에 한정되어 적용되는 것은 아니며, 애플의 iOS, 삼성의 바다(Bada)와 같은 개방형 플랫폼에도 적용될 수 있다.
도 2를 참조하면, 안드로이드 계층 구조는 어플리케이션(Application, 100), 어플리케이션 프레임워크(Application Framework, 200), 라이브러리(Libraries, 300) 및 리눅스 커널(Linux Kernel, 400)로 구성된다.
본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법을 구현하기 위해, 어플리케이션(100) 계층에 보안 어플리케이션(Security App, 110)과 특정 어플리케이션(App, 130)이 구현될 수 있고, 어플리케이션 프레임워크(200) 계층에 보안 라이브러리(Security library, 250)가 구현될 수 있다.
보안 어플리케이션(110)은 보안 라이브러리(250)로부터 소정의 요청을 받아, 특정 어플리케이션(130)을 비롯한 다른 여러 어플리케이션들(미도시)의 실행 여부를 판별할 수 있다. 구체적인 특정 어플리케이션(130)의 실행 여부 판별 동작은 도 3을 참조하여 구체적으로 설명하도록 한다.
특정 어플리케이션(130)은 단말기에 내장된 어플리케이션일 수도 있고, 사용자에 의해서 또는 통신 사업자에 의해서 다운로드된 어플리케이션일 수도 있다. 본 명세서에서, 특정 어플리케이션(130)은 보안 어플리케이션(110)에 의해 실행 여부를 판별받고, 보안 라이브러리(250)에 의해 실행이 제어되는 어플리케이션을 지칭한다.
한편, 보안 어플리케이션(110)과 특정 어플리케이션(130)은 서로 독립적으로 구동되며, 서로에게 직접적으로 어떠한 명령을 주거나 받을 수 없다.
보안 라이브러리(250)는 특정 어플리케이션(130)의 실행, 구체적으로, 특정 어플리케이션(130)이 요청하는 특정 기능을 제어하기 위한 각종 클래스(class)와 메소드(method)를 제공할 수 있다. 보안 라이브러리(250) 내의 각종 클래스와 메소드는 안드로이드 플랫폼을 제공하는 사업자에 의해 정의될 수 있고, 안드로이드 개발자들에게 오픈 소스로서 공개될 수 있다.
보안 라이브러리(250)는 특정 어플리케이션(130)에서 출력되는 특정 기능의 호출, 예를 들면, API 호출을 직접 받을 수도 있고, 특정 어플리케이션(130)에서 출력되는 API 호출을 후킹(Hooking)할 수도 있다.
보안 라이브러리(250)는 특정 어플리케이션(130)의 특정 기능의 호출이 미리 설정된 감시 대상에 해당하는지 여부를 판별할 수도 있고, 보안 어플리케이션(110)으로부터의 알림에 따라 특정 어플리케이션(130)의 특정 기능의 실행을 허락할 수 있으며, 특정 어플리케이션(130)의 실행을 차단할 수도 있다. 구체적인 동작은 도 3을 참조하여 후술하도록 한다.
도 3은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 설명하기 위한 순서도이다.
여기서, ‘어플리케이션 실행 방법’은 특정 어플리케이션(130)이 실행되었을 경우에 보안 어플리케이션(110)과 보안 라이브러리(250)의 시계열적 순서에 관한 것이고, ‘어플리케이션 실행 여부 판별 방법’은 보안 어플리케이션(11)의 시계열적 순서에 관한 것이다.
도 3을 참조하면, 특정 어플리케이션(130)이 도 1에 도시된 단말기(10)에서 실행된다(301). 여기서, 특정 어플리케이션(130)의 실행은 사용자의 의도대로 특정 어플리케이션(130)을 실행시킨 경우뿐만 아니라, 사용자의 의도와 무관하게 특정 어플리케이션(130)이 실행된 경우를 포함한다.
특정 어플리케이션(130)이 실행되면, 특정 어플리케이션(130)은 특정 기능 실행하기 위한 API를 호출한다. 상기 API 호출은 도 2에 도시된 어플리케이션 프레임워크(200) 계층 내의 특정 API를 호출한다. 여기서, 특정 어플리케이션(130)으로부터의 API 호출은 예외없이 보안 라이브러리(250)로 입력될 수도 있고, 보안 라이브러리(250)가 상기 API 호출을 후킹(Hooking)할 수도 있다.
보안 라이브러리(250)는 입력되는 API 호출이 감시 대상 API 호출인지 여부를 판별한다(302). 입력되는 API 호출이 감시 대상 API 호출인지 여부는 보안 라이브러리(250)에서 제공하는 감시 목록에 상기 API 호출이 포함되어 있는지 여부에 따라 결정될 수 있다. 만약, 입력되는 API 호출이 감시 대상 API 호출이면, 보안 라이브러리(250)는 특정 어플리케이션(130)의 실행 여부를 보안 어플리케이션(110)에게 조회한다(303). 반면에, 입력되는 API 호출이 감시 대상 API 호출이 아니면, 보안 라이브러리(250)는 특정 어플리케이션(130)의 특정 기능의 실행을 허락하고(307), 특정 어플리케이션(130)의 특정 기능이 실행될 수 있도록 한다.
보안 어플리케이션(110)이 보안 라이브러리(250)로부터 특정 어플리케이션(130)의 실행 여부에 대한 조회를 요청받으면, 보안 어플리케이션(110)은 특정 어플리케이션(130)이 허용 목록에 등록된 어플리케이션인지 여부를 판별한다(304).
허용 목록은 보안 어플리케이션(110)이 활성화된 상태에서 사용자에 의해 선택된 어플리케이션들의 목록일 수도 있고, 보안 어플리케이션(110) 내에 디폴트(default)로 설정된 어플리케이션들의 목록일 수도 있다. 허용 목록은 사용자에 의해서 또는 통신 사업자에 의해서 업데이트될 수 있다. 따라서, 허용 목록에는 사용자에 의해 또는 통신 사업자에 의해 다운로드되는 새로운 어플리케이션도 추가 및 변경될 수 있다.
허용 목록은 보안 어플리케이션(110)을 이용하여 사용자가 변경할 수 있다. 예를 들어, 사용자는 보안 어플리케이션(110)을 실행시켜, 허용 목록을 수정할 수 있다. 보안 어플리케이션(110)은 허용 목록을 사용자 인터페이스를 통해 사용자에게 보여줄 수 있다. 여기서, 보안 어플리케이션(110)은 최근 다운로드된 어플리케이션별 또는 어플리케이션 이름별로 사용자에게 허용 목록에 추가될 수 있는 어플리케이션을 보여줄 수 있다.
특정 어플리케이션(130)이 허용 목록에 등록된 어플리케이션으로 판별되면, 보안 어플리케이션(110)은 특정 어플리케이션(130)이 허용 목록에 등록된 어플리케이션임을 보안 라이브러리(250)로 알려준다. 그러면, 보안 라이브러리(250)는 특정 어플리케이션(130)의 특정 기능의 실행을 허락하고(307), 특정 어플리케이션(130)의 특정 기능이 실행될 수 있도록 한다.
반면에, 특정 어플리케이션(130)이 허용 목록에 등록되지 않은 어플리케이션으로 판별되면, 보안 어플리케이션(110)은 특정 어플리케이션(130)이 요청한 특정 기능이 차단 규칙에 포함되는지 여부를 판별한다(305).
차단 규칙은 특정 어플리케이션(130)이 수행할 수 있는 여러 기능들 중에서 특정 기능에 관한 사항을 포함한다. 예를 들어, 특정 어플리케이션(130)이 통화 기능, 카메라 기능, 녹음 기능 및 위치정보 수집 기능을 사용할 수 있는 경우, 차단 규칙은 특정 어플리케이션(130)의 위치정보 수집 기능을 포함될 수도 있고, 통화 중 녹음 기능도 포함될 수 있다. 차단 규칙은 보안 어플리케이션(110)이 활성화된 상태에서 사용자에 의해 결정된 규칙일 수도 있고, 보안 어플리케이션(110) 내에 디폴트(default)로 설정된 규칙일 수도 있다. 차단 규칙은 사용자에 의해 또는 통신 사업자에 의해 업데이트될 수 있다. 정리하면, 차단 규칙은 특정 어플리케이션(130)의 기능별로 차단 여부를 결정할 수 있는 목록일 수 있다.
차단 규칙은 보안 어플리케이션(110)을 이용하여 사용자가 변경할 수 있다. 예를 들어, 사용자는 보안 어플리케이션(110)을 실행시켜, 차단 규칙을 수정할 수 있다. 보안 어플리케이션(110)은 차단 규칙을 사용자 인터페이스를 통해 사용자에게 보여줄 수 있다. 여기서, 보안 어플리케이션(110)은 각 어플리케이션의 기능별로 사용자에게 차단 규칙에 추가될 수 있는 기능들을 보여줄 수 있다.
특정 어플리케이션(130)의 특정 기능이 차단 규칙에 포함되지 않으면, 보안 어플리케이션(110)은 특정 어플리케이션(130)의 특정 기능이 차단 규칙에 포함되지 않은 기능임을 보안 라이브러리(250)로 알려준다. 그러면, 보안 라이브러리(250)는 특정 어플리케이션(130)의 특정 기능의 실행을 허락하고(307), 특정 어플리케이션(130)의 특정 기능이 실행될 수 있도록 한다.
반면에, 특정 어플리케이션(130)의 특정 기능이 차단 규칙에 포함되면, 보안 라이브러리(250)에게 특정 어플리케이션(130)의 특정 기능이 차단 대상에 해당함을 알려준다. 그러면, 보안 라이브러리(250)는 특정 어플리케이션(130)의 특정 기능의 실행을 차단하고(308), 보안 라이브러리(250)는 특정 어플리케이션(130)에게 예외(exception)을 발행하여 현재 요청한 특정 기능이 수행될 수 없음을 알려줄 수 있다.
또한, 특정 어플리케이션(130)의 특정 기능이 차단 규칙에 포함되면, 보안 어플리케이션(110)은 특정 어플리케이션(130)의 특정 기능의 요청이 차단 대상에 해당됨을 차단 내역에 기록하고, 상기 차단 내역을 사용자 인터페이스를 통해 디스플레이할 수 있다(306).
도 3에 도시된 바와 같이, 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법은 어플리케이션별로 또는 어플리케이션의 기능별로 그 실행을 제어할 수 있다. 따라서, 어플리케이션의 악의적인 행동, 예를 들면 개인 정보 유출 또는 정상적인 어플리케이션의 동작을 방해하는 행동을 막을 수 있다.
한편, 도 3에 도시된 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법은 보안 어플리케이션(110)이 활성화된 상태에서 이루어질 수 있다. 만약, 보안 어플리케이션(110)의 도 1에 도시된 단말(10)에서 활성화가 되어있지 않은 경우에는, 특정 어플리케이션(130)은 어떠한 제재도 받지 않고 그대로 수행될 수 있다.
보안 어플리케이션(110)의 특정 어플리케이션 실행 여부 판별 방법은, 보안 어플리케이션(110)의 서비스(Service)에서 구현될 수 있다. 상기 서비스는 안드로이드의 어플리케이션을 구성하는 하나의 구성으로서, 사용자 인터페이스와 연결되지 않고, 백그라운드(back ground)에서 수행하는 구성이다.
이상 설명된 실시 예들은 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터로 판독가능한 기록매체에 기록될 수 있다. 상기 컴퓨터로 판독가능한 기록매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터로 판독가능한 기록매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터로 판독가능한 기록매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 실행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
10: 단말기
110: 보안 어플리케이션
130: 특정 어플리케이션
250: 보안 라이브러리

Claims (15)

  1. 보안 어플리케이션(Application)과 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법에 있어서,
    상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계;
    상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계;
    상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;
    상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및
    상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;
    를 포함하는 어플리케이션 실행 제어 방법.
  2. 제 1 항에 있어서,
    상기 보안 라이브러리가, 상기 특정 기능의 호출이 감시 대상 호출에 해당하는지를 판별하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법.
  3. 제 2 항에 있어서,
    상기 특정 기능의 호출이 상기 감시 대상 호출에 해당되지 않으면, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 어플리케이션이 상기 특정 기능의 실행을 허락함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법.
  6. 제 1 항에 있어서,
    상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션이 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법.
  7. 제 1 항에 있어서,
    상기 보안 라이브러리가 상기 특정 기능의 호출을 후킹(Hooking)하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법.
  8. 제 1 항 내지 제 3 항 및 제 5 항 내지 제 7 항 중 어느 하나의 항에 따른 어플리케이션 실행 제어 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  9. 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에 설치된 특정 어플리케이션의 실행 여부를 판별하는 방법에 있어서,
    상기 보안 라이브러리로부터 상기 특정 어플리케이션의 실행 여부를 요청받는 단계;
    허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계;
    상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 라이브러리로 상기 특정 어플리케이션이 요청하는 특정 기능의 실행을 허락함을 알려주는 단계;
    상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및
    상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 라이브러리로 상기 특정 기능이 차단 대상에 해당함을 알려주는 단계;
    를 포함하는 어플리케이션 실행 여부 판별 방법.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 라이브러리로 상기 특정 기능의 실행을 허락함을 알려주는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법.
  12. 제 9 항에 있어서,
    상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법.
  13. 제 9 항에 있어서,
    상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 디스플레이하는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법.
  14. 제 9 항에 있어서,
    상기 단말기의 사용자 인터페이스를 통해 상기 허용 목록과 상기 차단 규칙을 업데이트받는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법.
  15. 제 9 항 및 제 11 항 내지 제 14 항 중 어느 하나의 항에 따른 어플리케이션 실행 여부 판별 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
KR1020120149274A 2012-12-20 2012-12-20 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 KR101539968B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120149274A KR101539968B1 (ko) 2012-12-20 2012-12-20 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
PCT/KR2012/011351 WO2014098293A1 (ko) 2012-12-20 2012-12-24 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120149274A KR101539968B1 (ko) 2012-12-20 2012-12-20 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Publications (2)

Publication Number Publication Date
KR20140079990A KR20140079990A (ko) 2014-06-30
KR101539968B1 true KR101539968B1 (ko) 2015-07-29

Family

ID=50978587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120149274A KR101539968B1 (ko) 2012-12-20 2012-12-20 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체

Country Status (2)

Country Link
KR (1) KR101539968B1 (ko)
WO (1) WO2014098293A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102609753B1 (ko) 2017-01-03 2023-12-06 삼성전자주식회사 영상 신호를 처리하는 전자 장치 및 컴퓨터 판독 가능한 기록 매체
KR101942332B1 (ko) 2017-03-08 2019-01-25 주식회사 펀앤뉴 임직원용 애플리케이션과 방문자용 애플리케이션의 단일 통합 관리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161985A1 (en) * 2005-01-14 2006-07-20 Trend Micro Incorporated Method and apparatus for performing antivirus tasks in a mobile wireless device
US20060173991A1 (en) * 2003-03-03 2006-08-03 Lauri Piikivi Security element commanding method and mobile terminal
KR20090073177A (ko) * 2006-10-27 2009-07-02 마이크로소프트 코포레이션 씬 클라이언트 소프트웨어 개발 환경을 제공하기 위한 방법, 서버 기반 소프트웨어 개발 프로젝트 공유를 위한 방법, 및 컴퓨터-판독가능 매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100378565B1 (ko) * 2000-10-27 2003-03-31 주식회사 수에즈 동적환경을 제공하는 자바플랫폼 프로그램모듈이 탑재된 이동통신 단말기
US8250540B2 (en) * 2007-07-16 2012-08-21 Kaspersky Lab Zao System and method for administration of mobile application
US8099472B2 (en) * 2008-10-21 2012-01-17 Lookout, Inc. System and method for a mobile cross-platform software system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173991A1 (en) * 2003-03-03 2006-08-03 Lauri Piikivi Security element commanding method and mobile terminal
US20060161985A1 (en) * 2005-01-14 2006-07-20 Trend Micro Incorporated Method and apparatus for performing antivirus tasks in a mobile wireless device
KR20090073177A (ko) * 2006-10-27 2009-07-02 마이크로소프트 코포레이션 씬 클라이언트 소프트웨어 개발 환경을 제공하기 위한 방법, 서버 기반 소프트웨어 개발 프로젝트 공유를 위한 방법, 및 컴퓨터-판독가능 매체

Also Published As

Publication number Publication date
WO2014098293A1 (ko) 2014-06-26
KR20140079990A (ko) 2014-06-30

Similar Documents

Publication Publication Date Title
US11120130B2 (en) Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation
EP2562673B1 (en) Apparatus and method for securing mobile terminal
EP2843979B1 (en) Method and apparatus for preventing sound recording during the call
US9715421B2 (en) Wrapped applications providing operational insight to users based on rules for acceptable operational state performance
US8955056B2 (en) Terminal and method for assigning permission to application
JP6858256B2 (ja) 決済アプリケーション分離方法および装置、ならびに端末
US9645868B2 (en) Methods of running applications on mobile devices including notifications/blocking responsive to resource consumption
CN106874232B (zh) 通用串行总线usb的充电方法、装置及终端
CN103617380A (zh) 应用程序权限动态控制方法和系统
CN103310135B (zh) 一种屏蔽应用权限的方法和移动终端
US20230239694A1 (en) Security management on a mobile device
KR20140147141A (ko) 보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체
EP3239841B1 (en) Method and device for managing application program
KR101539968B1 (ko) 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR101283884B1 (ko) 세이프가드 장치, 방법 및 컴퓨터로 판독가능한 기록매체
US20170255792A1 (en) Method and apparatus for protecting privacy in consideration of application usage pattern
KR20140139752A (ko) 루팅 검출방법 및 검출장치
CN116450373A (zh) 代码运行方法、装置、设备及计算机可读存储介质
US20150128208A1 (en) Apparatus and method for dynamically controlling security in computing device with plurality of security modules
CN110888822B (zh) 内存处理方法、装置及存储介质
EP3148234B1 (en) Near field communication technology based terminal application control method, device and system
Sutter Simple spyware: Androids invisible foreground services and how to (ab) use them
KR101306658B1 (ko) 휴대용 단말기의 방화벽 장치 및 이를 이용한 정보 유출 방지 방법
KR102310219B1 (ko) 개인 정보 보안 강화 장치 및 그 방법
KR101321478B1 (ko) 애플리케이션의 실행 제어 장치 및 방법

Legal Events

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

Payment date: 20180717

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 5