KR101434094B1 - 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 - Google Patents
안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 Download PDFInfo
- Publication number
- KR101434094B1 KR101434094B1 KR1020130028624A KR20130028624A KR101434094B1 KR 101434094 B1 KR101434094 B1 KR 101434094B1 KR 1020130028624 A KR1020130028624 A KR 1020130028624A KR 20130028624 A KR20130028624 A KR 20130028624A KR 101434094 B1 KR101434094 B1 KR 101434094B1
- Authority
- KR
- South Korea
- Prior art keywords
- intent
- application
- target application
- monitoring
- command
- Prior art date
Links
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/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)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
인텐트 모니터링을 통하여 유해 어플리케이션을 차단하는 방법이 개시된다. 그 방법은 휴대용 단말이 어플리케이션의 설치 또는 실행 명령을 수신하는 단계, 액티비티 매니저를 이용하여 설치 또는 실행 명령에 대응하는 인텐트를 감지하는 단계, 본 인텐트로부터 설치 또는 실행되는 어플리케이션의 정보를 추출하여 유해 어플리케이션인지 판단하는 단계, 및 이에 따라 설치 또는 실행을 차단하는 단계를 포함한다.
Description
아래 실시예들은 안드로이드 플랫폼에 있어서 유해 어플리케이션의 설치 및/또는 실행을 차단하기 위한 기술에 관한 것이다.
유해 어플리케이션들이 배포될 경우. 개인 정보 유출, 스마트 기기의 고장 등과 같은 다양한 문제들을 일으키게 된다. 종래의 기술에 따르면, 유해 어플리케이션을 차단하기 위한 독립적인 어플리케이션이 항상 백그라운드에서 실행되는 것이 요구된다. 유해 어플리케이션의 설치 및 실행을 차단하기 위하여 항상 백그라운드에서 그 독립적인 어플리케이션을 실행하는 것은 모바일 기기의 하드웨어 자원의 많은 부분을 점유하므로, 모바일 기기의 전체적인 성능 저하를 야기한다. 뿐만 아니라, 이러한 독립적인 어플리케이션이 백그라운드에서 실행되고 있지 않은 경우에는, 유해 어플리케이션의 설치 및 실행이 적절히 차단되지 않을 수 있다.
본 발명의 실시예들은 액티비티들을 관리하는 액티비티 매니저를 이용하여 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링하고, 그 모니터링 결과에 따라 대상 어플리케이션의 설치를 차단함으로써, 유해 어플리케이션이 설치되는 것을 누락 없이 차단할 수 있다.
본 발명의 실시예에 따른 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법은 대상 어플리케이션의 설치 명령을 수신하는 단계; 액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 설치 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계; 상기 설치 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나 상기 대상 어플리케이션의 설치를 차단하는 단계를 포함한다.
상기 설치 명령에 대응하는 인텐트를 모니터링하는 단계는 상기 설치 명령에 대응하는 인텐트의 명령을 실행하기 위해 호출된 메소드 내부에서 인텐트의 속성이 설치 명령인지를 감지하는 단계를 포함할 수 있다.
상기 설치 명령에 대응하는 인텐트를 모니터링하는 단계는 복수의 서로 다른 인텐트들 각각의 유형에 기초하여 상기 설치 명령에 대응하는 인텐트를 감지하는 단계를 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법은 상기 액티비티 매니저를 이용하여 적어도 하나의 유해 어플리케이션에 대한 정보에 억세스하는 단계를 더 포함할 수 있다.
상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계는 상기 설치 명령에 대응하는 인텐트를 파싱함으로써 상기 인텐트에 포함된 패키지 정보를 추출하는 단계; 및 상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하기 위하여 상기 적어도 하나의 유해 어플리케이션에 대한 정보 및 상기 추출된 패키지 정보를 서로 비교하는 단계를 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법은 서버로부터 상기 적어도 하나의 유해 어플리케이션에 대한 업데이트된 정보를 수신하는 단계; 및 상기 적어도 하나의 유해 어플리케이션에 대한 정보를 업데이트하는 단계를 더 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법은 상기 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링 할 것인지 여부를 사용자 인터페이스를 통하여 제어하는 단계를 더 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법은 상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단한 결과를 사용자 인터페이스를 통해 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 인텐트 모니터링을 이용한 유해 어플리케이션 실행 차단 방법은 대상 어플리케이션의 실행 명령을 수신하는 단계; 액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 실행 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계; 상기 실행 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계; 및 상기 판단 결과를 기초로 상기 대상 어플리케이션을 실행하거나 상기 대상 어플리케이션의 실행을 차단하는 단계를 포함한다.,
상기 실행 명령에 대응하는 인텐트를 모니터링하는 단계는 상기 실행 명령에 대응하는 인텐트의 명령을 실행하기 위해 호출된 메소드 내부에서 인텐트의 속성이 실행 명령인지를 감지하는 단계를 포함할 수 있다.
상기 실행 명령에 대응하는 인텐트를 모니터링하는 단계는 복수의 서로 다른 인텐트들 각각의 유형에 기초하여 상기 실행 명령에 대응하는 인텐트를 감지하는 단계를 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 실행 차단 방법은 상기 액티비티 매니저를 이용하여 적어도 하나의 유해 어플리케이션에 대한 정보에 억세스하는 단계를 더 포함할 수 있다.
상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계는 상기 실행 명령에 대응하는 인텐트를 파싱함으로써 상기 인텐트에 포함된 패키지 정보를 추출하는 단계; 및 상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하기 위하여 상기 적어도 하나의 유해 어플리케이션에 대한 정보 및 상기 추출된 패키지 정보를 서로 비교하는 단계를 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 실행 차단 방법은 서버로부터 상기 적어도 하나의 유해 어플리케이션에 대한 업데이트된 정보를 수신하는 단계; 및 상기 적어도 하나의 유해 어플리케이션에 대한 정보를 업데이트하는 단계를 더 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 실행 차단 방법은 상기 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 실행 명령에 대응하는 인텐트를 모니터링 할 것인지 여부를 사용자 인터페이스를 통하여 제어하는 단계를 더 포함할 수 있다.
상기 인텐트 모니터링을 이용한 유해 어플리케이션 실행 차단 방법은 상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단한 결과를 사용자 인터페이스를 통해 출력하는 단계를 더 포함할 수 있다.
본 발명의 실시예들은 액티비티들을 관리하는 액티비티 매니저를 이용하여 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링하고, 그 모니터링 결과에 따라 대상 어플리케이션의 설치를 차단함으로써, 유해 어플리케이션이 설치되는 것을 누락 없이 차단할 수 있다.
도 1은 어플리케이션 실행 과정을 설명하기 위한 안드로이드 플랫폼의 프레임워크를 나타낸 도면이다.
도 2는 웹을 통하여 파일이 모바일 기기로 다운로드 되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다.
도 3은 웹을 통하여 파일이 다운로드 되는 과정의 Logcat의 스크린샷이다.
도 4는 웹을 통하여 파일이 다운로드 되는 과정에서 인텐트가 액티비티 매니저와 다운로드 매니저로 전달되는 과정을 나타낸 도면이다.
도 5는 어플리케이션이 설치되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다.
도 6은 어플리케이션이 실행되는 과정의 Logcat의 스크린샷이다.
도 7은 어플리케이션의 실행을 위하여 인텐트가 액티비티 매니저로 전달되는 과정을 나타낸 도면이다.
도 8은 인텐트가 액티비티 매니저와 패키지 매니저를 통해 컴포넌트로 전달되는 과정을 나타낸 도면이다.
도 9는 어플리케이션의 설치를 위하여 인텐트가 액티비티 매니저와 패키지 매니저로 전달되는 과정을 나타낸 도면이다.
도 10은 인텐트가 액티비티 매니저로 보내지는 과정의 안드로이드 소스를 나타낸 도면이다.
도 11은 execStartActivity()메소드의 소스 코드를 나타낸 도면이다.
도 12는 execStartActivity()메소드에 추가된 소스 코드를 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 14는 본 발명의 일실시예에 따른 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 15는 본 발명의 일실시예에 따른 인텐트 모니터링을 통한 유해 어플리케이션 차단 시스템을 나타낸 블록도이다.
도 2는 웹을 통하여 파일이 모바일 기기로 다운로드 되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다.
도 3은 웹을 통하여 파일이 다운로드 되는 과정의 Logcat의 스크린샷이다.
도 4는 웹을 통하여 파일이 다운로드 되는 과정에서 인텐트가 액티비티 매니저와 다운로드 매니저로 전달되는 과정을 나타낸 도면이다.
도 5는 어플리케이션이 설치되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다.
도 6은 어플리케이션이 실행되는 과정의 Logcat의 스크린샷이다.
도 7은 어플리케이션의 실행을 위하여 인텐트가 액티비티 매니저로 전달되는 과정을 나타낸 도면이다.
도 8은 인텐트가 액티비티 매니저와 패키지 매니저를 통해 컴포넌트로 전달되는 과정을 나타낸 도면이다.
도 9는 어플리케이션의 설치를 위하여 인텐트가 액티비티 매니저와 패키지 매니저로 전달되는 과정을 나타낸 도면이다.
도 10은 인텐트가 액티비티 매니저로 보내지는 과정의 안드로이드 소스를 나타낸 도면이다.
도 11은 execStartActivity()메소드의 소스 코드를 나타낸 도면이다.
도 12는 execStartActivity()메소드에 추가된 소스 코드를 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 14는 본 발명의 일실시예에 따른 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 15는 본 발명의 일실시예에 따른 인텐트 모니터링을 통한 유해 어플리케이션 차단 시스템을 나타낸 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
안드로이드 플랫폼에서 유해 어플리케이션을 차단하기 위하여 안드로이드 어플리케이션 구조 및 동작 그리고 어플리케이션의 다운로드 과정과 설치 과정, 실행 과정을 분석하여 그 과정에서 유해어플리케이션을 효율적으로 차단할 수 있는 부분을 제시한다. 또한 각 과정에서 유해 어플리케이션을 차단하였을 때의 장단점을 분석하고 가장 효율적으로 차단이 가능한 부분을 제시한다.
어플리케이션을 안드로이드 플랫폼에 설치하기 위해서는 우선 apk(Android Package)파일이 필요하다. apk파일은 안드로이드 어플리케이션 확장자로 어플리케이션의 설치를 위한 파일들을 압축하고 있다. apk파일을 안드로이드 플랫폼에 설치하면 어플리케이션을 실행 시킬 수 있다. 도 1은 어플리케이션 실행 과정을 설명하기 위한 안드로이드 플랫폼의 프레임워크를 나타낸 도면이다. apk파일 안에 포함되어 있던 classes.dex 파일(110)은 기존의 JAVA 기반의 Class파일이 아닌 DEX(Dalvik Executable)형태로 모바일 기기의 특성상 적은 메모리를 요구하는 Dalvik Virtual Machine(120)에서 동작한다. 안드로이드 플랫폼에 어플리케이션이 설치되고 Dalvik Virtual Machine(120)에서 Classes.dex(110)이 실행되면서 어플리케이션이 동작을 하는 것이다.
따라서 전체적인 어플리케이션의 프로세스를 정리하면 apk파일을 다운로드 받아 이를 안드로이드 플랫폼에 설치하고 Dalvik Virtual Machine(120)이 실행하는 구조이다. 따라서 각각의 어플리케이션이 실행되기 전까지의 프로세스를 상세히 조사하여 효과적으로 유해 어플리케이션의 차단이 가능한 부분을 제시한다.
어플리케이션을 안드로이드 플랫폼에서 실행하기 위해서는 우선 apk파일을 다운받아야 한다. 이는 같이 3가지 방법으로 나누어진다. 마켓 어플리케이션을 이용한 방법과 웹사이트를 이용한 방법, 마지막으로 USB 같은 여러 장치를 통한 직접 파일을 이동하는 방식으로 나뉜다.
우선 마켓 어플리케이션을 통한 apk파일 다운로드 하는 방법을 살펴본다. 기본적으로 사용자들은 마켓을 통하여 어플리케이션을 구매하는데 play 스토어에서는 ‘콘텐츠 필터링’이라고 하는 기술로써 어플리케이션의 콘텐츠의 수위를 사용자가 정하여 다운로드 받을 수 있게 한 기능을 제공하여 음란물, 노골적인 폭력, 및 도박 주류 등의 정보를 포함한 어플리케이션을 차단해 주는 역할을 한다.
이는 제작자가 자신의 어플리케이션을 등록할 때 스스로 자신의 어플리케이션의 수위를 지정하도록 한 방법으로 유해 어플리케이션을 막을 수 있는 하나의 방법이다. 하지만 마켓 어플리케이션이 단 하나인 애플의 iOS플랫폼과는 다르게 안드로이드 어플리케이션의 경우에는 여러 개의 마켓이 존재하는데 모든 마켓에서 이러한 방식을 사용하고 있지 않다. 따라서 마켓 어플리케이션을 통한 apk파일다운로드를 막는 방법은 한계가 있다.
도 2는 웹을 통하여 파일이 모바일 기기로 다운로드 되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다. 파일 다운로드 어플리케이션(220)의 소스(210)를 살펴보면 파일을 받기 위하여 URL정보를 입력한 인텐트를 startActivity()를 통하여 전달하고 이에 URL정보를 받아 다운로드가 실행이 되는 것을 볼 수 있다(211).
이때 Logcat을 통하여 이 인텐트의 진행을 살펴보면 도 3과 같은 결과를 볼 수 있다. 이 결과를 통하여 도 4와 같은 과정을 통하여 웹을 통해 파일이 전송 되는 것을 알아낼 수 있다. 즉 파일 다운로드 명령을 포함한 인텐트(410)가 ActivityManager(420)에 전달이 되고 이를 다시 DownloadManager(430)에서 전달받아 파일을 다운로드 받게 된다. Web을 통한 어플리케이션의 경우에는 안드로이드의 기본 웹 브라우저를 수정하여 유해 어플리케이션을 다운로드 받는 경우에 이를 차단하는 방법을 사용할 수는 있지만 이 경우에도 기본 웹 브라우저가 아닌 다른 웹 브라우저를 사용하는 경우에 모든 웹 브라우저를 수정해야 하는 문제가 발생하게 된다.
마지막으로 기타 장치들을 통한 어플리케이션을 옮기는 방법은 USB와 블루투스, adb툴 등의 여러 방식이 존재하고 안드로이드 폰의 경우 외장 메모리카드도 사용 할 수 있어 고려해야 하는 사항이 많아지게 된다. 따라서 apk파일을 다운로드 하는 방법들을 조사한 결과 어플리케이션을 스마트 폰에서 실행할 때 가장 먼저 해야만 하는 과정이기 때문에 가장 먼저 유해 어플리케이션을 차단 할 수 있는 장점이 있을 수 있으나 그 다운로드 방식이 여러 종류가 있어 구현에 어려움이 있다.
도 5는 어플리케이션이 설치되는 경우, 모바일 기기의 스크린샷 및 그 스크린샷을 위한 소스 코드를 나타낸 도면이다. 우선 어플리케이션을 설치하는 과정에서 apk파일의 경로(511)와 어플리케이션의 설치 명령을 포함한 인텐트(512)가 필요하다. 인텐트는 안드로이드 플랫폼에서 새로운 activity를 실행시키거나 여러 명령을 실행시키기 위하여 사용하는 클래스로 대부분의 명령을 실행시키는 데 사용이 된다. 인텐트에 setDataAndType()메소드를 이용하여 apk파일의 경로와 MIME-TYPE ‘application/vnd.android.package-archive’을 입력하고(513) startActivity()메소드를 사용하여 인텐트를 실행 시킨다(514). 이에 인텐트는 apk 설치 여부를 묻는 activity를 실행한다(521). 이 activity에서 install 버튼을 선택하면 설치가 진행이 되고(522) Application 설치 완료를 알려주는 activity가 실행되면서 설치가 완료된다(523). 이 과정에서 어플리케이션을 설치하기 위해서는 우선 인텐트가 apk파일의 경로와 TYPE을 지정하는 것을 볼 수 있다(513). 따라서 이 인텐트의 진행 프로세스 과정을 모니터링 하여 어플리케이션 설치 과정에서 모든 인텐트가 전달되는 부분에서 유해 어플리케이션을 차단한다면 완벽하게 어플리케이션을 차단 할 수 있는 방법을 구현할 수 있다.
안드로이드 어플리케이션을 실행하면 어플리케이션 실행 명령을 가지고 있는 인텐트가 ActivityManager에 전달된다. 그리고 ActivityManager에서 어플리케이션을 실행시키게 되는데 도 6의 Logcat을 통하여 이를 확인 할 수 있다.
도 7은 어플리케이션의 실행을 위하여 인텐트가 액티비티 매니저로 전달되는 과정을 나타낸 도면이다.
어플리케이션을 시작할 때 발생하는 인텐트(710)가 ActivityManager(720)에 전달되어 ActivityManager에서는 인텐트에 포함되어 있는 어플리케이션의 시작activity를 Display하는 과정이 이루어진다. 그렇다면 어플리케이션 설치 과정과 마찬가지로 인텐트의 진행 프로세스 과정을 모니터링 하여 어플리케이션 실행 인텐트를 조사하여 유해 어플리케이션을 차단하는 방법이 가능하다. 하지만 안드로이드 어플리케이션 프레임워크는 하나의 어플리케이션이 여러 개의 컴포넌트로 구성 되어있다. 그 이유는 컴포넌트(component)의 재사용을 가능케 하기 때문이다. 이는 안드로이드의 특징으로 하나의 어플리케이션에서 다른 어플리케이션의 컴포넌트를 사용하여 프로세서의 처리 속도나 메모리 용량이 충분하지 않은 모바일 장치에 적합한 프레임워크이다. 예를 들면 최근 많이 사용하는 메신저 어플리케이션에서 다른 사람에게 사진을 찍어서 보내려고 할 때 사진 찍는 어플리케이션을 실행 시키는 것이 아니라 메신저 어플리케이션에서 직접 사진 찍는 어플리케이션의 컴포넌트를 실행시켜 따로 어플리케이션을 실행시키지 않아도 사진을 찍을 수 있게 하는 기능을 말한다.
즉, 컴포넌트를 재사용하는 프레임워크 때문에 인텐트가 어플리케이션을 실행하지 않더라도 우선 어플리케이션이 설치가 되어있다면 컴포넌트는 실행 될 수 있다는 것을 의미한다. 따라서 이는 유해 어플리케이션이 실행되지 않더라도 설치가 되었다면 유해어플리케이션의 컴포넌트가 실행될 수 있다는 것을 의미한다. 그렇기 때문에 실행 시 유해어플리케이션을 차단하는 부분은 완전하게 유해 어플리케이션을 차단하지 못할 가능성이 존재하게 된다.
유해 어플리케이션 차단 방법 중 가장 완벽하게 차단 할 수 있고 단점이 적은 방법은 설치과정에서 유해 어플리케이션을 차단하는 방법이다. 또한 어플리케이션의 설치 명령이 인텐트를 통해 이루어지는 점에서 인텐트의 흐름을 모니터링 하여 유해 어플리케이션을 차단할 수 있는 방법을 제안한다.
도 8은 인텐트가 액티비티 매니저와 패키지 매니저를 통해 컴포넌트로 전달되는 과정을 나타낸 도면이다.
인텐트는 ‘어떠한 의도를 포함하고 있는 메시지’로 안드로이드 플랫폼에서 의사소통의 수단으로 사용된다. 이러한 인텐트는 그 자체로 실행되는 것이 아니라 그 메시지를 어디선가 읽어 메시지를 파악하고 그것을 수행 함으로써 실행된다. 이때 메시지 자체에 해당 메시지를 전달해야 하는 수신처(컴포넌트 이름)가 명확하게 명시되어 있다면 이를 Explicit Intent(명시적 인텐트)라고 하고 그렇지 않을 경우 Implicit Intent(암시적 인텐트)라고 한다. Implicit Intent는 가장 적합한 하나의 수신처 찾아낸다. Implicit Intent 는 intent-filter에 의하여 분류 된다. intent-filter는 ‘특정 의도를 포함하고 있는 메시지를 받겠다.’라는 것을 정의한 것이다.
이렇게 특정 메시지를 받으려는 intent-filter와 인텐트를 서로 연결해 주는 과정이 필요하게 되는데 이를 intent routing(830)이라고 한다. 즉, intent routing(830)이란 인텐트의 의도에 가장 잘 맞는 intent-filter를 갖는 컴포넌트를 찾아주는 일이다.
이러한 인텐트의 처리과정에서 핵심적인 역할을 하는 것은 ActivityManager(820)와 PackageManager(840)이다. 우선 각각의 컴포넌트들이 어떠한 인텐트를 수신 할 수 있는지에 대한 내용(intent-filter)을 모두 모아 주소록과 같이 관리하는 일을 PackageManager(840)에서 한다. 그리고 각 컴포넌트들이 전송하는 인텐트를 우선적으로 수신하여 이를 저장된 주소록을 바탕으로 대상 컴포넌트를 찾는 역할을 수행하고 인텐트를 수신해야 할 해당 컴포넌트의 상황에 따라 적절한 일을 수행하는 일을 ActivityManager(820)에서 한다. 여기서 PackageManager(840)는 안드로이드 플랫폼에서 어플리케이션이 설치되는 특정 경로들(system/app, data/app 등등)을 검색하여 설치된 apk파일들에서 해당 패키지 파일에 포함되어 있는 Manifest파일의 내용을 파싱한다. 특정 패키지에 들어있는 Activity, Service, BroadcastReceiver들의 각종 권한 정보 및 intent-filter정보 등을 모두 수집하여 메모리상에서 관리한다. 또한 새롭게 패키지가 추가되거나 삭제될 때 발생하는 Broadcast intent를 수신하며, 관리하고 있는 주소록을 업데이트하는 일도 동시에 수행한다.
한편 ActivityManager에서는 여러 가지 일을 수행한다. 안드로이드 어플리케이션 컴포넌트가 인텐트를 전달하기 위해 사용하는 API는 크게 startActivity(), startService(), sendBroadcast() 이렇게 세 가지로 나누어지고 이러한 API가 호출될 때 최종적으로 호출되는 API는 ActivityManagerService단의 API이다. 이 세 가지 API 모두 IBinder를 통해 Remote Server의 API를 호출한다. 즉, 안드로이드 플랫폼 상에서 발생하는 모든 인텐트는 우선적으로 ActivityManagerService에 전달된다. 모든 인텐트는 우선 그 처리과정에서 ActivityManager에 전달된다. 따라서 유해 어플리케이션을 차단하기 위하여 어플리케이션 설치 과정 시에 ActivityManager에서의 인텐트를 모니터링 한다.
도 9는 어플리케이션의 설치를 위하여 인텐트가 액티비티 매니저와 패키지 매니저로 전달되는 과정을 나타낸 도면이다.
도 9를 참조하면, 어플리케이션 설치 과정에서 그 어플리케이션이 유해 어플리케이션인지 여부를 판단하기 위하여 인텐트는 모니터링 된다. 처음 어플리케이션을 설치가 시작되면, 인텐트(910)에 설치할 apk파일에 대한 정보(911)와 설치 명령의 MIME-TYPE(912)이 포함되어 ActivityManager(920)에 전달된다. 이 인텐트(910)를 받은 ActivityManager(920)는 메시지의 의도를 파악하기 위하여 PackageManager(930)를 경유하여 PackageParser(931)로 이를 전달한다. PackageParser(931)는 이 인텐트(910)를 파싱하여 이 인텐트(910)가 설치 명령이라는 것을 파악하고 PackageManager(930)는 이를 받아 설치를 시작한다. 설치되는 어플리케이션의 apk파일의 압축이 data/app/ 위치에 ‘packagename-version number.apk'(940)이름으로 풀리며 설치가 된다. 이후 PackageManager(930)가 ActivityManager(920)로 설치가 완료되었다고 메시지를 보내면 이를 확인한 ActivityManager(930)는 dalvik-cache폴더로 설치한 apk파일의 classes.dex파일을 복사하는데(950) 이는 Dalvik 가상 머신에서 실행되는 바이너리코드로 어플리케이션 실행에 사용되는 파일이다. 이 파일을 복사 후 설치가 종료되고 이제 어플리케이션을 실행 할 수 있게 된다.
이 어플리케이션이 설치되는 과정 인텐트의 모니터링결과 인텐트의 메시지를 파악하는 PackageManager의 PackageParser에서 인텐트의 메시지를 파악하는 부분을 확인 하였다. 또한 모니터링의 결과 ActivityManager로 어플리케이션 설치 명령이 전달되는 것을 확인 할 수 있었다. ActivityManager는 설치과정에서 가장 먼저 인텐트가 도착하는 부분이며 모든 인텐트가 전달되는 부분이기도 하다. 따라서 이 ActivityManager에 전달되는 인텐트를 검사하여 설치 명령을 포함 한 인텐트의 어플리케이션 정보를 검사한다면 효과적으로 유해 어플리케이션이 설치되는 것을 차단 할 수 있다.
도 10은 인텐트가 액티비티 매니저로 보내지는 과정의 안드로이드 소스를 나타낸 도면이다.
도 10를 참조하면, 인텐트를 전달하는 startActivity()메소드를 포함하고 있는 Activity클래스로부터 ActivityManager로 인텐트가 보내지는 과정의 안드로이드 소스의 부분이 UML을 통하여 나타나 있다.
우선 Activity클래스(1010)에서 인텐트를 ActivityManager로 전달하기 위한 메소드는 startActivity()메소드(1011)와 startActivityForResult()메소드(1012)이다. 둘 다 인텐트를 ActivityManager로 전송하는 메소드이나 startActivityForResult()메소드(1012)는 추후 결과 값을 받을 수 있는 기능이 추가적으로 있다. 하지만 실제로 소스 코드를 살펴보면 startActivityForResult()메소드(1012)에서 startActivity()메소드(1011)를 호출하기 때문에 같은 경로로 인텐트가 전달된다는 것을 알 수 있다. 따라서 startActivity()메소드의 소스를 살펴보면 Instrumentation클래스(1100)의 execStartActivity()메소드(1101)를 실행시키는 것을 확인 할 수 있다. 그리고 execStartActivity()메소드(1021)를 보면 IActivityManager인터페이스(1040)를 구현한 ActivityManagerNative클래스(1030)의 메소드를 호출하여 모든 인텐트를 ActivityManager에 전달시키는 것을 볼 수 있다. 따라서 모든 인텐트가 전달되는 이 Instrumentation클래스(1021)의 execStartActivity()메소드(1021)에서 인텐트의 타입을 조사하여 설치 명령의 인텐트인 경우에 어플리케이션의 정보를 확인하고 이를 유해 어플리케이션정보와 비교 판단하여 차단 시킨다.
유해 어플리케이션 차단을 위하여 안드로이드 소스를 직접 수정하는 방식을 사용한다. Instrumentation클래스의 execStartActivity()메소드에서 기본 주요 소스 코드는 도 11과 같다. ActivitymanagerNative.getDefault().startActivity()메소드 (1110)가 인텐트를 ActivityManager로 전달하는 부분이기 때문에 이 부분 앞에서 입력 받은 인텐트의 정보를 확인한다.
도 12는 execStartActivity()메소드에 추가된 소스 코드를 나타낸 도면이다.
도 12를 참조하면, 우선 execStartActivity()메소드로 전달된 인텐트의 타입을 확인하도록 한다(1210). 만일 인텐트의 Type이 설치 명령인 경우 인텐트내의 apk파일에 대한 정보를 분석한다(1220). 이를 위하여 제작한 APKAnalyzer클래스의 findPackageNameFromAPK()메소드에서는 apk파일내의 AndroidManifest.xml파일에서 package 이름을 가져올 수 있다. 이 정보를 가지고 BadAppSearch클래스를 사용하여 유해어플리케이션의 정보가 담긴 Database와 인텐트 파일 내의 어플리케이션 패키지 정보를 비교(1230)하여 유해성이 판단되면 null값을 반환(1240)하여 더 이상의 어플리케이션 설치과정을 진행하지 못하도록 하고 유해성이 판단되지 않았을 경우에는 계속하여 설치를 진행(1250)시키도록 한다. 여기서 유해 어플리케이션의 정보가 들어있는 Database는 사전에 악성코드를 담고 있거나 성인물 등의 유해하다고 분류 된 어플리케이션의 정보를 모아 Database를 구축하도록 한 것이다.
도 13은 본 발명의 일실시예에 따른 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 13을 참조하면, 본 발명의 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)은 안드로이드 플랫폼의 사용자나 서비스 제공자에 의하여 특정 어플리케이션의 설치를 위해 실행된 명령을 단말기에서 수신한다(1310).
어플리케이션의 설치 명령을 수신하는 단계(1310)는 안드로이드 플랫폼의 사용자나 서비스 제공자가 특정 어플리케이션의 설치를 위해 실행된 명령을 단말기가 수신하는 단계일 수 있다. 어플리케이션의 설치 명령은 안드로이드 플랫폼의 사용자나 서비스 제공자의 설치 명령 이외에도 어플리케이션의 자동 업데이트를 위하여 작성된 소스 코드로 인해 실행된 설치 명령 또는 악성 어플리케이션에 의한 자동 설치 명령 등 안드로이드 기반의 단말기에 수신되는 어플리케이션의 설치를 위한 명령을 모두 포함한다.
본 발명의 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)은 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링한다(1320).
대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링하는 단계(1320)는 액티비티 매니저를 이용하여 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 검출하는 단계일 수 있다. 모든 인텐트가 전달되는 Instrumentation클래스의 execStartActivity()메소드에서 인텐트의 타입과 어플리케이션의 정보를 확인하여 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 검출한다. 인텐트는 안드로이드 플랫폼에서 새로운 activity를 실행시키거나 여러 명령을 실행시키기 위하여 사용하는 클래스로 명령의 종류에 따라 그 유형이 결정되는데, 본 단계에서 검출하고자 하는 인텐트의 유형은 설치 유형이다.
본 발명의 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)은 설치 명령에 대응하는 인텐트에 기초하여 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단한다(1330).
설치 명령에 대응하는 인텐트에 기초하여 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계(1330)는 검출된 설치 명령에 대응하는 인텐트에서 어플리케이션의 정보를 확인하고 이를 유해 어플리케이션의 정보와 비교하는 단계일 수 있다. 검출된 설치 명령에 대응하는 인텐트에서 apk파일에 대한 정보를 알 수 있고, apk파일 내의 AndroidManifest.xml에서 package 이름을 가져올 수 있다. 이 Package의 이름과 유해어플리케이션의 정보가 담긴 Database를 비교하여 본 단계를 실시할 수 있다. 여기서 유해 어플리케이션의 정보가 들어있는 Database는 악성코드를 담고 있거나 성인물 등의 유해하다고 분류 된 어플리케이션의 정보를 사전에 모아 Database를 구축하도록 한 것이다.
본 발명의 어플리케이션 설치 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)은 판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나(1340), 대상 어플리케이션의 설치를 차단한다(1350).
판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나(1340), 대상 어플리케이션의 설치를 차단하는 단계(1350)는 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계(1330)의 결과에 따라 유해성이 판단되면 null값을 반환하여 더 이상의 어플리케이션 설치과정을 진행하지 못하도록 하고 유해성이 판단되지 않았을 경우에는 계속하여 설치를 진행하는 단계일 수 있다.
안드로이드 시스템의 사용자가 사용자 인터페이스를 통하여 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)을 어플리케이션 설치 과정에 적용하지 않도록 설정하면, 인텐트 모니터링을 중단하여 어플리케이션의 실행 과정에 본 방법(1300)의 적용을 중단할 수 있다. 또한 어플리케이션 설치 과정에 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1300)이 적용되고 있다면, 대상 어플리케이션의 설치가 허용되었는지 여부를 사용자 인터페이스에 출력하여 안드로이드 시스템의 사용자가 본 방법(1300)의 적용 결과를 알 수 있도록 할 수 있다.
도 14는 본 발명의 일실시예에 따른 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법을 나타낸 플로우 차트이다.
도 14를 참조하면, 본 발명의 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)은 안드로이드 플랫폼의 사용자나 서비스 제공자에 의하여 특정 어플리케이션의 실행을 위한 명령을 단말기에서 수신한다(1410).
어플리케이션의 실행 명령을 수신하는 단계(1410)는 안드로이드 플랫폼의 사용자나 서비스 제공자가 특정 어플리케이션의 실행을 위해 실행한 명령을 단말기가 수신하는 단계일 수 있다. 어플리케이션의 실행 명령은 안드로이드 플랫폼의 사용자나 서비스 제공자의 실행 명령 이외에도 어플리케이션의 자동 업데이트를 위하여 작성된 소스 코드로 인해 실행된 명령 또는 악성 어플리케이션에 의한 자동 실행 명령 등 안드로이드 기반의 단말기에 수신되는 어플리케이션의 실행을 위한 명령을 모두 포함한다.
본 발명의 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)은 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링한다(1420).
대상 어플리케이션의 실행 명령에 대응하는 인텐트를 모니터링하는 단계(1420)는 액티비티 매니저를 이용하여 대상 어플리케이션의 실행 명령에 대응하는 인텐트를 검출하는 단계일 수 있다. 모든 인텐트가 전달되는 Instrumentation클래스의 execStartActivity()메소드에서 인텐트의 타입과 어플리케이션의 정보를 확인하여 대상 어플리케이션의 실행 명령에 대응하는 인텐트를 검출한다. 인텐트는 안드로이드 플랫폼에서 새로운 activity를 실행시키거나 여러 명령을 실행시키기 위하여 사용하는 클래스로 명령의 종류에 따라 그 유형이 결정되는데, 본 단계에서 검출하고자 하는 인텐트의 유형은 실행 유형이다.
본 발명의 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)은 실행 명령에 대응하는 인텐트에 기초하여 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단한다(1430).
설치 명령에 대응하는 인텐트에 기초하여 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계(1430)는 검출된 실행 명령에 대응하는 인텐트에서 어플리케이션의 정보를 확인하고 이를 유해 어플리케이션의 정보와 비교하는 단계일 수 있다. 검출된 설치 명령에 대응하는 인텐트에서 apk파일에 대한 정보를 알 수 있고, apk파일 내의 AndroidManifest.xml에서 package 이름을 가져올 수 있다. 이 Package의 이름과 유해어플리케이션의 정보가 담긴 Database를 비교하여 본 단계를 실시할 수 있다. 여기서 유해 어플리케이션의 정보가 들어있는 Database는 악성코드를 담고 있거나 성인물 등의 유해하다고 분류 된 어플리케이션의 정보를 사전에 모아 Database를 구축하도록 한 것이다.
본 발명의 어플리케이션 실행 과정에서 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)은 판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나(1440), 대상 어플리케이션의 설치를 차단한다(1450).
판단 결과를 기초로 상기 대상 어플리케이션을 실행하거나(1440), 대상 어플리케이션의 실행을 차단하는 단계(1450)는 실행 명령에 대응하는 인텐트에 기초하여 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계(1430)의 결과에 따라 유해성이 판단되면 null값을 반환하여 더 이상의 어플리케이션 실행과정을 진행하지 못하도록 하고 유해성이 판단되지 않았을 경우에는 계속하여 실행을 진행하는 단계일 수 있다.
안드로이드 시스템의 사용자가 사용자 인터페이스를 통하여 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)을 어플리케이션 실행 과정에 적용하지 않도록 설정하면, 인텐트 모니터링을 중단하여 어플리케이션의 실행 과정에 본 방법(1400)의 적용을 중단할 수 있다. 또한 어플리케이션 실행 과정에 인텐트 모니터링을 통한 유해 프로그램 차단 방법(1400)이 적용되고 있다면, 대상 어플리케이션의 실행이 허용되었는지 여부를 사용자 인터페이스에 출력하여 안드로이드 시스템의 사용자가 본 방법(1400)의 적용 결과를 알 수 있도록 할 수 있다.
도 15는 본 발명의 일실시예에 따른 인텐트 모니터링을 통한 유해 어플리케이션 차단 시스템을 나타낸 블록도이다.
도 15를 참조하면, 시스템은 안드로이드 단말기(1510)와 업데이트 서버(1520)를 포함한다. 여기서, 안드로이드 단말기(1510)는 표시부(1511), 처리부(1512), 제어부(1513), 저장부(1514), 통신부(1515)를 포함한다.
어플리케이션 설치 및/또는 실행 과정에서 인텐트 모니터링을 통한 유해 어플리케이션의 차단 시스템은 처리부(1512), 저장부(1514), 제어부(1513)를 통해 실시된다. 안드로이드 플랫폼의 각종 클래스, 메소드와 유해 어플리케이션의 정보가 있는 database는 저장부(1514)에 저장되고 유해 어플리케이션의 차단을 위하여 필요한 연산은 처리부(1514)를 통해 처리된다. 유해 어플리케이션의 정보가 있는 database는 업데이트 서버(1520)와 통신부(1515)를 통해 연결되어 업데이트가 이루어진다.
도 1 내지 도 14를 통해 설명된 내용은 도 15에 도시된 각 유닛에 그대로 적용될 수 있으므로, 도 15에 대한 보다 상세한 설명은 생략한다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (16)
- 삭제
- 대상 어플리케이션의 설치 명령을 수신하는 단계;
액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 설치 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계;
상기 설치 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나 상기 대상 어플리케이션의 설치를 차단하는 단계를 포함하되,
상기 설치 명령에 대응하는 인텐트를 모니터링하는 단계는
상기 설치 명령에 대응하는 인텐트의 명령을 실행하기 위해 호출된 메소드 내부에서 인텐트의 속성이 설치 명령인지를 감지하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 대상 어플리케이션의 설치 명령을 수신하는 단계;
액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 설치 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계;
상기 설치 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 대상 어플리케이션을 설치하거나 상기 대상 어플리케이션의 설치를 차단하는 단계를 포함하되,
상기 설치 명령에 대응하는 인텐트를 모니터링하는 단계는
복수의 서로 다른 인텐트들 각각의 유형에 기초하여 상기 설치 명령에 대응하는 인텐트를 감지하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제2항 또는 제3항에 있어서,
상기 액티비티 매니저를 이용하여 적어도 하나의 유해 어플리케이션에 대한 정보에 억세스하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제4항에 있어서,
상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하는 단계는
상기 설치 명령에 대응하는 인텐트를 파싱함으로써 상기 인텐트에 포함된 패키지 정보를 추출하는 단계; 및
상기 대상 어플리케이션의 설치를 허용할 것인지 여부를 판단하기 위하여 상기 적어도 하나의 유해 어플리케이션에 대한 정보 및 상기 추출된 패키지 정보를 서로 비교하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제4항에 있어서,
서버로부터 상기 적어도 하나의 유해 어플리케이션에 대한 업데이트된 정보를 수신하는 단계; 및
상기 적어도 하나의 유해 어플리케이션에 대한 정보를 업데이트하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제2항 또는 제3항에 있어서,
상기 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 설치 명령에 대응하는 인텐트를 모니터링 할 것인지 여부를 사용자 인터페이스를 통하여 제어하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법.
- 삭제
- 삭제
- 대상 어플리케이션의 실행 명령을 수신하는 단계;
액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 실행 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계;
상기 실행 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 대상 어플리케이션을 실행하거나 상기 대상 어플리케이션의 실행을 차단하는 단계를 포함하되,
상기 실행 명령에 대응하는 인텐트를 모니터링하는 단계는
상기 실행 명령에 대응하는 인텐트의 명령을 실행하기 위해 호출된 메소드 내부에서 인텐트의 속성이 실행 명령인지를 감지하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 대상 어플리케이션의 실행 명령을 수신하는 단계;
액티비티들을 관리하는 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 실행 명령에 대응하는 인텐트-상기 인텐트는 상기 액티비티들 사이의 통신을 위해 사용되는 메시지임-를 모니터링하는 단계;
상기 실행 명령에 대응하는 인텐트에 기초하여 상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계; 및
상기 판단 결과를 기초로 상기 대상 어플리케이션을 실행하거나 상기 대상 어플리케이션의 실행을 차단하는 단계를 포함하되,
상기 실행 명령에 대응하는 인텐트를 모니터링하는 단계는
복수의 서로 다른 인텐트들 각각의 유형에 기초하여 상기 실행 명령에 대응하는 인텐트를 감지하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제10항 또는 제11항에 있어서,
상기 액티비티 매니저를 이용하여 적어도 하나의 유해 어플리케이션에 대한 정보에 억세스하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제12항에 있어서,
상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하는 단계는
상기 실행 명령에 대응하는 인텐트를 파싱함으로써 상기 인텐트에 포함된 패키지 정보를 추출하는 단계; 및
상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단하기 위하여 상기 적어도 하나의 유해 어플리케이션에 대한 정보 및 상기 추출된 패키지 정보를 서로 비교하는 단계
를 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제12항에 있어서,
서버로부터 상기 적어도 하나의 유해 어플리케이션에 대한 업데이트된 정보를 수신하는 단계; 및
상기 적어도 하나의 유해 어플리케이션에 대한 정보를 업데이트하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제10항 또는 제11항에 있어서,
상기 액티비티 매니저를 이용하여 상기 대상 어플리케이션의 실행 명령에 대응하는 인텐트를 모니터링 할 것인지 여부를 사용자 인터페이스를 통하여 제어하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법. - 제10항 또는 제11항에 있어서,
상기 대상 어플리케이션의 실행을 허용할 것인지 여부를 판단한 결과를 사용자 인터페이스를 통해 출력하는 단계
를 더 포함하는 인텐트 모니터링을 이용한 유해 어플리케이션 설치 차단 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130028624A KR101434094B1 (ko) | 2013-03-18 | 2013-03-18 | 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130028624A KR101434094B1 (ko) | 2013-03-18 | 2013-03-18 | 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101434094B1 true KR101434094B1 (ko) | 2014-08-26 |
Family
ID=51751284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130028624A KR101434094B1 (ko) | 2013-03-18 | 2013-03-18 | 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101434094B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160099173A (ko) * | 2015-02-11 | 2016-08-22 | (주) 에스에스알 | 실행 프로그램 동작 감시방법, 감시장치 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
KR20180058579A (ko) | 2016-11-24 | 2018-06-01 | 경북대학교 산학협력단 | 액티비티 스택에 기반한 테스트 시나리오 생성 방법 |
WO2023022359A1 (ko) * | 2021-08-19 | 2023-02-23 | 삼성전자 주식회사 | 어플리케이션의 실행 오류를 검출하는 전자 장치 및 그 작동 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090130990A (ko) * | 2008-06-17 | 2009-12-28 | 한국전자통신연구원 | 응용 프로그램 비정상행위 차단 장치 및 방법 |
KR20100114969A (ko) * | 2009-04-17 | 2010-10-27 | 엔에이치엔비즈니스플랫폼 주식회사 | 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치 |
KR101143999B1 (ko) | 2011-11-22 | 2012-05-09 | 주식회사 안철수연구소 | Api 기반 어플리케이션 분석 장치 및 방법 |
KR101325954B1 (ko) | 2012-09-13 | 2013-11-20 | 주식회사 인프라웨어테크놀러지 | 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
-
2013
- 2013-03-18 KR KR1020130028624A patent/KR101434094B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090130990A (ko) * | 2008-06-17 | 2009-12-28 | 한국전자통신연구원 | 응용 프로그램 비정상행위 차단 장치 및 방법 |
KR20100114969A (ko) * | 2009-04-17 | 2010-10-27 | 엔에이치엔비즈니스플랫폼 주식회사 | 훅을 이용한 컴퓨터 보안 서비스 제공 방법 및 장치 |
KR101143999B1 (ko) | 2011-11-22 | 2012-05-09 | 주식회사 안철수연구소 | Api 기반 어플리케이션 분석 장치 및 방법 |
KR101325954B1 (ko) | 2012-09-13 | 2013-11-20 | 주식회사 인프라웨어테크놀러지 | 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160099173A (ko) * | 2015-02-11 | 2016-08-22 | (주) 에스에스알 | 실행 프로그램 동작 감시방법, 감시장치 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
KR101653741B1 (ko) | 2015-02-11 | 2016-09-05 | (주) 에스에스알 | 실행 프로그램 동작 감시방법, 감시장치 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
KR20180058579A (ko) | 2016-11-24 | 2018-06-01 | 경북대학교 산학협력단 | 액티비티 스택에 기반한 테스트 시나리오 생성 방법 |
WO2023022359A1 (ko) * | 2021-08-19 | 2023-02-23 | 삼성전자 주식회사 | 어플리케이션의 실행 오류를 검출하는 전자 장치 및 그 작동 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831420B (zh) | 内核进程权限的确定方法及装置 | |
JP5658283B2 (ja) | アプリケーションの稼働方法、装置及びシステム | |
EP2626803B1 (en) | Information processing device and method for preventing unauthorized application cooperation | |
US20160378989A1 (en) | Apparatus and method for monitoring android platform-based application | |
CN111782416B (zh) | 数据上报方法、装置、系统、终端及计算机可读存储介质 | |
US20150332043A1 (en) | Application analysis system for electronic devices | |
US20160205125A1 (en) | System and method for analyzing mobile cyber incident | |
CN106845223B (zh) | 用于检测恶意代码的方法和装置 | |
KR101281825B1 (ko) | 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법 | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
KR20150044490A (ko) | 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법 | |
KR101453742B1 (ko) | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 | |
CN110855642B (zh) | 应用漏洞检测方法、装置、电子设备及存储介质 | |
CN105550598B (zh) | 一种移动存储设备的安全管理方法和装置 | |
US8904492B2 (en) | Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus | |
CN110457049B (zh) | 实现插件自动化的方法、装置、电子设备及存储介质 | |
KR101434094B1 (ko) | 안드로이드 플랫폼에서 인텐트 모니터링을 통한 유해 어플리케이션 차단 방법 | |
CN106302531B (zh) | 安全防护方法、装置及终端设备 | |
CN109818972A (zh) | 一种工业控制系统信息安全管理方法、装置及电子设备 | |
KR20140068940A (ko) | 애플리케이션용 콘텐츠 핸들링 기법 | |
CN115544509A (zh) | 进程安全检测方法、装置、电子设备及存储介质 | |
JP5851311B2 (ja) | アプリケーション検査装置 | |
CN109933990B (zh) | 基于多模式匹配的安全漏洞发现方法、装置及电子设备 | |
CN109714371B (zh) | 一种工控网络安全检测系统 | |
KR20210000398A (ko) | 난독화 해제 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |