KR101539968B1 - 어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 - Google Patents
어플리케이션 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000000903 blocking effect Effects 0.000 claims abstract description 46
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 59
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법으로서, 상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계; 상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;를 포함한다.
본 발명의 실시 예에 따른 방법은, 보안 어플리케이션(Application)과 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법으로서, 상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계; 상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계; 상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및 상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;를 포함한다.
Description
본 발명의 실시 예는 실행 제어 방법 및 어플리케이션 실행 여부 판별 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것으로서, 더욱 상세하게는 개방형 플랫폼이 탑재된 단말기에서 특정 어플리케이션의 실행을 제어하고, 실행 여부를 판별하는 방법과 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체에 관한 것이다.
개방형 플랫폼(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은 본 발명의 실시 예에 따른 어플리케이션 실행 제어 방법과 어플리케이션 실행 여부 판별 방법을 설명하기 위한 순서도.
도 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: 보안 라이브러리
110: 보안 어플리케이션
130: 특정 어플리케이션
250: 보안 라이브러리
Claims (15)
- 보안 어플리케이션(Application)과 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에서, 상기 단말기에 설치된 특정 어플리케이션의 실행을 제어하는 방법에 있어서,
상기 보안 라이브러리가 상기 특정 어플리케이션이 요청하는 특정 기능의 호출을 받으면, 상기 보안 라이브러리가 상기 보안 어플리케이션에게 상기 특정 어플리케이션의 실행 여부를 조회하는 단계;
상기 보안 어플리케이션이 허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계;
상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 어플리케이션은 상기 특정 어플리케이션이 상기 허용 목록에 등록된 어플리케이션임을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;
상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 상기 보안 어플리케이션이 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및
상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션은 상기 특정 기능이 차단 대상에 해당함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 차단하는 단계;
를 포함하는 어플리케이션 실행 제어 방법. - 제 1 항에 있어서,
상기 보안 라이브러리가, 상기 특정 기능의 호출이 감시 대상 호출에 해당하는지를 판별하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법. - 제 2 항에 있어서,
상기 특정 기능의 호출이 상기 감시 대상 호출에 해당되지 않으면, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법. - 삭제
- 제 1 항에 있어서,
상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 어플리케이션이 상기 특정 기능의 실행을 허락함을 상기 보안 라이브러리로 알려주고, 상기 보안 라이브러리가 상기 특정 기능의 실행을 허락하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법. - 제 1 항에 있어서,
상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 어플리케이션이 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법. - 제 1 항에 있어서,
상기 보안 라이브러리가 상기 특정 기능의 호출을 후킹(Hooking)하는 단계;를 더 포함하는 어플리케이션 실행 제어 방법. - 제 1 항 내지 제 3 항 및 제 5 항 내지 제 7 항 중 어느 하나의 항에 따른 어플리케이션 실행 제어 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
- 보안 라이브러리(Library)를 포함하는 개방형 플랫폼(Platform)을 탑재한 단말기에 설치된 특정 어플리케이션의 실행 여부를 판별하는 방법에 있어서,
상기 보안 라이브러리로부터 상기 특정 어플리케이션의 실행 여부를 요청받는 단계;
허용 목록에 상기 특정 어플리케이션이 등록되어 있는지 여부를 판별하는 단계;
상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있으면, 상기 보안 라이브러리로 상기 특정 어플리케이션이 요청하는 특정 기능의 실행을 허락함을 알려주는 단계;
상기 특정 어플리케이션이 상기 허용 목록에 등록되어 있지 않으면, 차단 규칙을 이용하여 상기 특정 기능의 실행 여부를 판별하는 단계; 및
상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 보안 라이브러리로 상기 특정 기능이 차단 대상에 해당함을 알려주는 단계;
를 포함하는 어플리케이션 실행 여부 판별 방법. - 삭제
- 제 9 항에 있어서,
상기 특정 기능이 상기 차단 규칙에 포함되지 않으면, 상기 보안 라이브러리로 상기 특정 기능의 실행을 허락함을 알려주는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법. - 제 9 항에 있어서,
상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 기록하는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법. - 제 9 항에 있어서,
상기 특정 기능이 상기 차단 규칙에 포함되면, 상기 특정 기능의 실행이 차단되었음을 디스플레이하는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법. - 제 9 항에 있어서,
상기 단말기의 사용자 인터페이스를 통해 상기 허용 목록과 상기 차단 규칙을 업데이트받는 단계;를 더 포함하는 어플리케이션 실행 여부 판별 방법. - 제 9 항 및 제 11 항 내지 제 14 항 중 어느 하나의 항에 따른 어플리케이션 실행 여부 판별 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
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)
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)
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)
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 |
-
2012
- 2012-12-20 KR KR1020120149274A patent/KR101539968B1/ko active IP Right Grant
- 2012-12-24 WO PCT/KR2012/011351 patent/WO2014098293A1/ko active Application Filing
Patent Citations (3)
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 |