KR101388053B1 - 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 - Google Patents
권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 Download PDFInfo
- Publication number
- KR101388053B1 KR101388053B1 KR1020120102765A KR20120102765A KR101388053B1 KR 101388053 B1 KR101388053 B1 KR 101388053B1 KR 1020120102765 A KR1020120102765 A KR 1020120102765A KR 20120102765 A KR20120102765 A KR 20120102765A KR 101388053 B1 KR101388053 B1 KR 101388053B1
- Authority
- KR
- South Korea
- Prior art keywords
- security
- file
- application
- android
- authority
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 안드로이드 운영체제에서 권한탐지 기반의 어플리케이션 보안강화 기술에 관한 것이다. 더욱 상세하게는, 본 발명은 안드로이드 운영체제에서 금융 프로그램(예: 뱅킹 어플, 증권 어플) 등과 같이 고도의 보안이 요구되는 어플리케이션이 안전한 환경에서 동작할 수 있도록 하기 위하여 안드로이드 운영체제의 관리자 권한상승을 탐지하여 악성코드(예: 악성 프로그램, 디버깅이나 후킹 등의 보안 공격) 유무를 검출하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 기술에 관한 것이다. 본 발명에 따르면 안드로이드 단말기에서 금융 프로그램(예: 뱅킹 어플, 증권 어플) 등에 대한 높은 보안성을 보장할 수 있고, 또한 권한탐지를 통해 악성코드를 검출하기에 미지의 악성코드에 의한 디버킹 또는 후킹 공격에 대해서도 유연하게 대응할 수 있는 장점이 있다.
Description
본 발명은 안드로이드 운영체제에서 권한탐지 기반의 어플리케이션 보안강화 기술에 관한 것이다. 더욱 상세하게는, 본 발명은 안드로이드 운영체제에서 금융 프로그램(예: 뱅킹 어플, 증권 어플) 등과 같이 고도의 보안이 요구되는 어플리케이션이 안전한 환경에서 동작할 수 있도록 하기 위하여 안드로이드 운영체제의 관리자 권한상승을 탐지하여 악성코드(예: 악성 프로그램, 디버깅이나 후킹 등의 보안 공격) 유무를 검출하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 기술에 관한 것이다.
[도 1]은 안드로이드 운영체제 기반의 파일시스템을 검사하여 루팅(rooting) 가능한 프로그램이 있는지 탐지하는 종래기술의 방법을 나타내는 도면이다. [도 1]을 참조하면, 종래기술의 방법은 안드로이드 운영체제 기반의 파일시스템의 특정 위치 또는 전체 파일시스템을 검색하여 루팅을 가능하게 하는 악의적 프로그램(예: 'su')이 존재하는지를 검색하여 발견되면 경고하고 보안 어플리케이션을 중지시키는 방법을 취하였다.
[도 1]과 같은 종래기술의 방식은 이미 알려진 루팅 프로그램을 분석하여 숨겨 놓은 위치에 해당 파일이 있는지를 검사하는 방법이다. 그러나 최근 등장하고 있는 지능화된 악성 어플리케이션은 해당 파일을 암호화하여 접근을 막거나 보안 어플리케이션이 찾기 어려운 곳에 숨겨두기 때문에 종래기술의 방식으로는 완벽한 검사를 하는 것이 불가능한 문제점이 있다.
이에 따라 해당 기술분야에 있어서는 보안 어플리케이션이 실행된 후에 악의적 프로그램에 의해 알려지지 않은 루팅이 시도될 경우에도 이를 방지하기 위한 기술개발이 절실히 요구되고 있다.
[관련기술문헌]
1. 모바일 단말기에 설치된 어플리케이션 데이터 보안방법(특허출원 제10-2012-0017716호)
2. 자체보안기능을 구비한 모바일터미널 및 이의 보안강화방법(특허출원 제10-2011-0032328호)
본 발명의 목적은 최근에 각종의 금융거래가 안드로이드 단말기에서 이루어지고 있다는 점을 고려하여 고도의 보안이 요구되는 어플리케이션(예: 뱅킹 어플, 증권 어플과 같은 각종 금융거래 어플리케이션)을 안드로이드 운영체제에서 안전하게 실행하도록 해주는 기술을 제공하는 것이다.
또한, 본 발명의 목적은 안드로이드 단말기서 금융거래 어플리케이션(예: 뱅킹 어플, 증권 어플) 등의 안전한 실행을 보장하기 위해 안드로이드 운영체제의 관리자 권한상승을 탐지함으로써 악성코드(예: 악성 프로그램, 디버깅이나 후킹 등의 보안 공격) 유무를 검출하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 기술을 제공하는 것이다.
또한, 본 발명의 목적은 안드로이드 어플리케이션이 실행되기 전 안드로이드 운영체제가 전체적으로 안전한 환경에서 동작하고 있는지를 미리 판단하고, 안드로이드 어플리케이션이 실행되는 중에도 실시간으로 안전성을 감지하여 악성코드에 의한 피해를 방지하도록 해주는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 기술을 제공하는 것이다.
이러한 과제를 달성하기 위한 본 발명은 안드로이드 운영체제 기반의 사용자 단말에서 권한탐지 기반으로 안드로이드 어플리케이션 보안을 강화하는 방법으로서, 사용자 단말에서 현재 실행되고 있는 어플리케이션 중에서 권한상승을 통해 관리자권한을 기 획득한 보안위험 어플리케이션을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 1 단계; 사용자 단말에서 관리자권한을 획득 가능한 속성을 갖는 잠재적 보안위험 파일을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 2 단계; 사용자 단말에서 은닉된 잠재적 보안위험 파일 및 안드로이드 운영체제의 파일시스템 변경을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 3 단계;를 포함하여 구성된다.
본 발명에 따른 안드로이드 어플리케이션 보안강화 방법에서 제 1 단계는, 사용자 단말의 프로세스 디렉토리로부터 전체 프로세스 목록을 획득하는 단계; 전체 프로세스 목록으로부터 어플리케이션 속성정보를 획득하는 단계; 어플리케이션 속성정보를 참조하여 관리자권한을 기 획득한 어플리케이션을 인식하는 단계; 그 인식된 어플리케이션 중에서 안드로이드 시스템 디폴트로 관리자권한을 갖는 어플리케이션에 해당되지 않는 어플리케이션을 취합하여 보안위험 어플리케이션으로 식별하는 단계; 보안위험 어플리케이션에 대해 미리 설정된 보안 처리를 실행하는 단계;를 포함하여 구성될 수 있다.
또한, 본 발명에 따른 안드로이드 어플리케이션 보안강화 방법에서 제 2 단계는, 파일에 대한 파일 속성정보를 판독하는 단계; 파일 속성정보로부터 파일이 실행시에 관리자권한을 획득할 수 있는 속성을 갖는지 여부를 판단하는 단계; 그 판단 결과, 관리자권한을 획득할 수 있는 속성을 갖는 경우에는 잠재적 보안위험 파일로 식별하는 단계; 그 식별된 잠재적 보안위험 파일에 대해 미리 설정된 보안 처리를 실행하는 단계; 파일 속성정보 판독에 실패한 경우, 속성정보 판독에 실패한 파일이 안드로이드 시스템 디폴트로 판독이 금지되어 있는지 여부를 판단하는 단계; 파일의 폴더에 실행권한이 설정되어 있는지 여부를 판단하는 단계; 그 판단 결과, 속성정보 판독에 실패한 파일이 안드로이드 시스템 디폴트로 판독이 금지된 것이 아니고 파일의 폴더에 실행권한이 설정되어 있는 경우에 잠재적 보안위험이 존재한다고 판단하는 단계; 파일의 폴더에 대해 미리 설정된 보안 처리를 실행하는 단계;를 포함하여 구성될 수 있다.
이때, 파일이 실행시에 관리자권한을 획득할 수 있는 속성을 갖는지 여부 판단은 안드로이드 운영체제에서 제공하는 stat 구조체의 st_mode 멤버가 수퍼퍼미션을 갖는지 여부를 확인하여 수행할 수 있다.
한편, 본 발명에 따른 컴퓨터로 판독가능한 기록매체는 이상과 같은 어플리케이션 보안강화 방법을 실행하기 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 것이다.
본 발명에 따르면 안드로이드 단말기에서 금융 프로그램(예: 뱅킹 어플, 증권 어플) 등에 대한 높은 보안성을 보장할 수 있는 장점이 있다. 또한, 본 발명에 따르면 안드로이드 운영체제의 관리자 권한 탐지를 통해 악성코드를 검출하기에 미지의 악성코드에 의한 디버킹 또는 후킹 공격에 대해서도 보안 프로그램이 유연하게 대응할 수 있는 장점이 있다.
[도 1]은 안드로이드 운영체제에서 루팅 가능한 프로그램이 있는지 탐지하는 종래기술의 방법을 나타내는 도면.
[도 2]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법이 구현되는 사용자 단말의 구성을 나타내는 도면.
[도 3]과 [도 4]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법을 개념적으로 나타내는 순서도.
[도 5]는 본 발명에서 관리자권한을 획득한 보안위험 어플리케이션을 탐지하는 과정을 구체적으로 나타내는 순서도.
[도 6]은 본 발명에서 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 과정을 구체적으로 나타내는 순서도.
[도 7]은 본 발명에서 보안위험 어플리케이션을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면.
[도 8]은 본 발명에서 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면.
[도 9]는 안드로이드 운영체제에서 판독권한은 없고 실행권한만 있는 디렉토리 항목의 일 예를 나타낸 도면.
[도 2]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법이 구현되는 사용자 단말의 구성을 나타내는 도면.
[도 3]과 [도 4]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법을 개념적으로 나타내는 순서도.
[도 5]는 본 발명에서 관리자권한을 획득한 보안위험 어플리케이션을 탐지하는 과정을 구체적으로 나타내는 순서도.
[도 6]은 본 발명에서 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 과정을 구체적으로 나타내는 순서도.
[도 7]은 본 발명에서 보안위험 어플리케이션을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면.
[도 8]은 본 발명에서 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면.
[도 9]는 안드로이드 운영체제에서 판독권한은 없고 실행권한만 있는 디렉토리 항목의 일 예를 나타낸 도면.
이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.
[도 2]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법이 구현되는 사용자 단말(10)의 내부 구성을 나타내는 도면이다. [도 2]를 참조하면 사용자 단말(10)은 송수신부(11), I/O 인터페이스(12), 중앙제어부(13), 보안처리 모듈(14), 입출력부(15), 저장부(16), 시스템 메모리(17)를 포함하여 이루어지며, 이때 보안처리 모듈(14)은 권한위험 탐지수단(14a)과 잠재적 권한위험 탐지수단(14b)을 구비한다. 일반적으로 사용자 단말(10)은 스마트폰이나 스마트패드로 형성된다
이하에서는 이와 같은 사용자 단말(10)의 보안처리 모듈(14)을 중심으로 본 발명의 기술적 사상에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법에 대해 구체적으로 살펴본다.
[도 3]과 [도 4]는 본 발명에 따른 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법을 나타내는 전체적인 순서도이다.
[도 2] 내지 [도 4]를 참조하면, 보안처리 모듈(14)의 권한위험 탐지수단(14a)은 전체 프로세스 목록을 통해 현재 실행되고 있는 어플리케이션들을 살피고 이중에서 관리자권한을 이미 획득하여 실행중인 보안위험 어플리케이션을 탐지하여 보안 처리한다(S20).
단계(S20) 이후, 보안처리 모듈(14)의 잠재적 권한위험 탐지수단(14b)은 저장부(16)에 저장된 안드로이드 전체 파일시스템을 검사하여 관리자권한을 획득 가능한 속성을 갖는 잠재적 보안위험 파일을 탐지하여 보안 처리한다(S30). 이때 단계(S20)에서 이미 보안 처리한 어플리케이션에 관련된 파일들은 처음부터 아예 제외하고 검사를 시행하는 것이 효율적이다. 즉, 잠재적 권한위험 탐지수단(14b)은 안드로이드 운영체제의 전체 파일시스템으로부터 아직 실행되지는 않았지만 향후 실행되었을 경우 관리자권한을 획득할 가능성(잠재성)이 있는 어플리케이션 파일을 검사한다.
단계(S30)에 이어 순차적([도 3]의 구현 방식) 또는 동시에([도 4]의 구현 방식) 보안처리 모듈(14)의 잠재적 권한위험 탐지수단(14b)은 앞서 단계(S30)에서 탐지되지 않은 은닉된 잠재적 보안위험 파일을 탐지하는 한편, 펌웨어 교체 등을 통해 안드로이드 운영체제의 파일시스템에 대한 변경이 이루어졌는지 체크하고 그러한 경우 보안 처리를 수행한다(S40).
이렇게 단계(S20, S30, S40)에서 탐지된 보안위험(잠재적 보안위험)에 대해서는 보안 처리를 수행한다. 본 발명에서 보안 처리는 그 탐지된 보안위험에 관련된 어플리케이션에 대하여 디버깅 또는 후킹을 방지하는 프로세스를 적용함을 의미한다. 특정 안드로이드 어플리케이션에 대해 디버깅 내지 후킹을 방지하는 보안처리 프로세스는 종래기술에 이미 알려진 사항이므로 본 명세서에서는 이에 관한 상세한 기술을 생략한다.
[도 5]는 [도 3]과 [도 4]에 도시하였던 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법 중에서 관리자권한을 기 획득한 보안위험 어플리케이션을 탐지하는 과정(S20)을 구체적으로 나타내는 순서도이고, [도 7]은 본 발명에서 관리자권한을 기 획득하여 실행중인 보안위험 어플리케이션을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면이다.
보안처리 모듈(14)의 권한위험 탐지수단(14a)은 안드로이드 어플리케이션 중에서 관리자권한을 기 획득하여 실행 중인 어플리케이션을 탐지하기 위해서 먼저 현재 실행중인 전체 프로세스 목록을 획득한 뒤, 이중에서 권한이 기 상승된 프로세스이면서 안드로이드 기본 프로세스(/init, /sbin/ueventd, /system/bin/void, /system/bin/netd, /system/bin/installd, zvgote 등)에는 해당되지 않는 미지의 프로세스가 실행 중인지 검사한다.
이를 위해, 권한위험 탐지수단(14a)은 현재 실행되고 있는 어플리케이션에 대한 프로세스 디렉토리를 열람한다(S21).
단계(S21) 이후, 권한위험 탐지수단(14a)은 프로세스 디렉토리에 저장된 어플리케이션 파일에 대한 속성정보[예: PID(Process ID), 타입(TYPE), 네임(NAME), 모드(MODE), UID(User ID)]를 판독한다(S22). 안드로이드 운영체제에서는 각종 속성정보(PID, 타입, 네임, 모드, UID)를 정의하여 사용하는데, 본 발명의 각 단계에서는 이들 중에서 필요한 정보를 활용한다. 속성정보를 모두 판독할 것인지, 아니면 개별 단계마다 꼭 필요한 정보만 판독할 것인지는 설계자의 의도에 따라 임의로 선택할 수 있는 사항이다.
단계(S22) 이후, 권한위험 탐지수단(14a)은 당해 어플리케이션 파일의 속성정보 중에서 특히 UID 값이 0인지 여부를 체크하는데(S23), 이는 안드로이드 운영체제에서는 리눅스에서와 마찬가지로 UID 값이 0이면 관리자권한을 갖는 어플리케이션(루트 어플리케이션)이기 때문이다. 단계(S23)에서 UID 값이 0이 아닌 경우에는 당해 어플리케이션 파일에 대해서는 추가적인 검토를 할 필요가 없다. 다만, 루트 어플리케이션에 대해 UID 값을 0이 아닌 다른 값이 설정된 경우 또는 0 이외의 다른 값이 추가로 설정되도록 운영체제가 설계된 경우에는 그에 적응하도록 단계(S23)의 판단이 변경될 수 있다.
단계(S23) 이후, 권한위험 탐지수단(14a)은 UID 값이 0인 당해 관리자권한 어플리케이션이 시스템 디폴트인지, 즉 안드로이드 운영체제에서 원래부터 UID = 0으로 설정된 어플리케이션인지 판단한다(S24). 역시 단계(S24)에서 UID 값이 안드로이드 운영체제에 의해 디폴트로 0으로 설정된 경우에는 당해 어플리케이션 파일에 대해서는 추가적인 검토를 할 필요가 없다.
단계(S24)의 판단 결과 시스템 디폴트가 아니라고 판단되는 경우, 권한위험 탐지수단(14a)은 당해 어플리케이션을 권한상승된 어플리케이션(보안위험 어플리케이션)으로 판단하여 추출한다(S25).
단계(S25) 이후, 권한위험 탐지수단(14a)은 EOF(End OF File)에 도달하였는지, 즉 프로세스 디텍토리에 저장된 모든 어플리케이션에 대한 검토를 완료하였는지 여부를 판단한다(S26).
그 결과, EOF에 도달한 경우라면 권한위험 탐지수단(14a)은 단계(S20)의 과정을 종료하고 단계(S30)으로 진행한다. 반대로 아직 EOF에 도달하지 않은 경우라면 권한위험 탐지수단(14a)은 단계(S22)로 회귀하여 다음 어플리케이션에 대하여 단계(S22) 내지 단계(S25)의 과정을 적용함으로써 보안위험 어플리케이션인지 여부에 대한 판단을 수행한다.
[도 6]은 [도 3]과 [도 4]에 도시하였던 본 발명에서 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 과정(S30, S40)을 나타내는 순서도이고, [도 8]은 이러한 잠재적 보안위험 파일과 파일시스템 변경을 탐지하는 프로그램 소스코드의 일 예를 나타낸 도면이다.
[도 2] 내지 [도 6]을 참조하여 본 발명에서 향후 실행되었을 경우 관리자권한을 획득할 가능성(잠재성)을 갖는 어플리케이션 파일을 탐지하여 보안처리를 수행하는 과정(S31 내지 S36)과 파일시스템 변경시 수행하는 보안처리 과정(S41 내지 S42)에 대해서 통합적으로 설명한다.
보안처리 모듈(14)의 잠재적 권한위험 탐지수단(14b)은 안드로이드 운영체제의 전체 파일시스템을 검색하여 각 어플리케이션 파일이 향후 실행되었을 때 관리자권한을 획득할 수 있는 속성을 가지고 있는지를 검사한다. 이러한 파일들은 보안위험의 잠재성이 있기 때문에 탐지한다.
그 과정에서, 그 검사하는 디렉토리에 대해 읽기권한 설정이 되어있지 않아 디렉토리 내부를 검사하지 못하는 경우가 발생하면 잠재적 권한위험 탐지수단(14b)은 안드로이드 운영체제에서 기본으로 접근을 금지시킨 디렉토리가 아니면서 실행권한이 설정된 폴더는 관리자권한을 획득할 수 있는 어플리케이션 파일을 숨겨 놓았다고 간주하거나 운영체제의 파일시스템이 변경된 것으로 간주하며, 이는 보안처리를 시행함을 의미한다.
이를 위해, 잠재적 권한위험 탐지수단(14b)은 안드로이드 시스템의 전체 파일시스템(파일 디렉토리)을 열람한다(S31).
단계(S31) 이후, 잠재적 권한위험 탐지수단(14b)은 파일 디렉토리로부터 파일 항목을 하나씩 검사하는데, 검사대상 파일(즉, 권한미확정 파일)에 대한 속성정보의 판독을 시도한다(S32). 이때, 선택적으로는 단계(S32)는 [도 5]의 단계(S25)에서 탐지된 보안위험 어플리케이션에 관련된 파일을 제외하고 수행되도록 구성하는 것이 효율적일 수 있다.
단계(S32)에 따라, 잠재적 권한위험 탐지수단(14b)은 단계(S32)에 따른 속성정보 판독의 성공 여부를 판단한다(S33).
단계(S33)의 판단결과 속성정보 판독이 성공한 경우에는 잠재적 권한위험 탐지수단(14b)은 당해 파일에 대해 향후 실행되었을 때에 권한 상승의 가능성이 존재하는지, 즉 실행되었을 경우 관리자권한을 획득할 수 있는 속성을 갖는지 여부를 판단한다(S34). 이때, 특정 파일이 향후 관리자권한을 획득할 가능성이 있는지의 여부는 안드로이드 운영체제가 기본 제공하는 stat 구조체에서 디렉토리/파일의 각종 모드 정보를 가지고 있는 st_mode 멤버를 확인하여 체크할 수 있다. 즉, 특정 파일의 st_mode 멤버가 수퍼퍼미션(super permission) 권한을 가지고 있는지를 체크함으로써 가능한데, 안드로이드 운영체제에서는 수퍼퍼미션 권한을 갖는 파일이 존재하지 않아야 정상이다.
단계(S34)의 판단결과 당해 검사 파일이 향후 권한 상승을 통해 관리자권한을 획득할 수 있는 속성을 가지고 있다고 판단되는 경우에는 잠재적 권한위험 탐지수단(14b)은 당해 파일을 잠재적 보안위험 파일로 판단하고 그에 따른 보안 처리를 수행한다(S35).
한편, 단계(S33)의 판단 결과 속성정보 판독이 실패한 경우, 즉 당해 어플리케이션에 대해 속성정보에 대한 읽기권한을 얻지못한 경우에는 당해 판독시도 폴더가 안드로이드 운영체제에서 시스템 디폴트로 판독이 금지된 디렉토리에 해당하는지 여부를 체크한다(S41).
단계(S41)의 판단결과 시스템 디폴트로 판독이 금지된 디렉토리에 해당되는 경우에는 당해 어플리케이션에 대해서는 추가적인 검토가 필요없다. 안드로이드 운영체제에서는 정상적인 상황에서도 시스템 보호 목적에서 판독이 금지된 디렉토리(숨김 디렉토리)가 몇개가 설정되어 있으므로, 이러한 파일(폴더)에 해당되는 경우에는 정상으로 판단한다.
반대로 시스템 디폴트로 판독이 금지된 디렉토리가 아니라면 당해 폴더가 실행권한을 갖는지 여부를 추가로 체크한다(S42). 특정 폴더가 실행권한을 가지고 있는지 여부도 안드로이드 운영체제가 기본 제공하는 stat 구조체의 st_mode 멤버로부터 검사할 수 있다. 즉, 단계(S42)에서는 전체 디렉토리 목록에서 other permission이 판독권한(read)은 없지만 실행권한(execution)은 있는 디렉토리를 검출하는 것이다. [도 9]는 이처럼 판독권한은 없고 실행권한만 있는 디렉토리 항목의 일 예를 나타낸 것이다.
단계(S42)의 판단결과 실행권한이 없는 폴더라면 당해 어플리케이션에 대해 추가적인 검토는 필요없다. 반대로 실행권한이 있는 폴더인 경우에는 당해 폴더에 잠재적 보안위험 파일이 은닉되어 있거나 파일시스템이 변경된 것으로 판단하여 당해 폴더에 대해 보안 처리를 수행한다(S43). 즉, 이러한 경우에는 잠재적으로 보안위험이 있는 것으로 판단한다.
단계(S35, S43) 이후, 잠재적 권한위험 탐지수단(14b)은 EOF에 도달하였는지, 즉 파일 디렉토리에 저장된 모든 어플리케이션에 대한 검토를 완료하였는지 여부를 판단한다(S36).
그 결과, EOF에 도달한 경우라면 잠재적 권한위험 탐지수단(14b)은 보안처리 과정을 종료한다. 반대로 아직 EOF에 도달하지 않은 경우라면 잠재적 권한위험 탐지수단(14b)은 단계(S32)로 회귀하여 다음 어플리케이션에 대하여 단계(S32) 내지 단계(S43)에 따른 보안처리 과정을 적용한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드의 형태로 구현하는 것이 가능하다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 캐리어웨이브(예: 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산된 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 프로그램, 코드, 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상과 같이, 본 명세서와 도면에는 본 발명의 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예가 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명하다.
10 : 사용자 단말
11 : 송수신부
12 : I/O 인터페이스
13 : 중앙제어부
14 : 보안처리 모듈
14a : 권한위험 탐지수단
14b : 잠재적 권한위험 탐지수단
15 : 입출력부
16 : 저장부
11 : 송수신부
12 : I/O 인터페이스
13 : 중앙제어부
14 : 보안처리 모듈
14a : 권한위험 탐지수단
14b : 잠재적 권한위험 탐지수단
15 : 입출력부
16 : 저장부
Claims (6)
- 안드로이드 운영체제 기반의 사용자 단말에서 권한탐지 기반으로 안드로이드 어플리케이션 보안을 강화하는 방법으로서,
사용자 단말에서 현재 실행되고 있는 어플리케이션 중에서 권한상승을 통해 관리자권한을 기 획득한 보안위험 어플리케이션을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 1 단계;
상기 사용자 단말에서 관리자권한을 획득 가능한 속성을 갖는 잠재적 보안위험 파일을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 2 단계;
상기 사용자 단말에서 은닉된 잠재적 보안위험 파일 및 안드로이드 운영체제의 파일시스템 변경을 탐지하고 그에 따라 미리 설정된 보안 처리를 실행하는 제 3 단계;
를 포함하여 구성되는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법.
- 청구항 1에 있어서,
상기 제 1 단계는,
상기 사용자 단말의 프로세스 디렉토리로부터 전체 프로세스 목록을 획득하는 단계;
상기 전체 프로세스 목록으로부터 PID, 타입, 네임, 모드, UID 중 하나 이상을 포함하는 어플리케이션 속성정보를 획득하는 단계;
상기 어플리케이션 속성정보를 참조하여 관리자권한을 기 획득한 어플리케이션을 인식하는 단계;
상기 인식된 어플리케이션 중에서 안드로이드 시스템 디폴트로 관리자권한을 갖는 어플리케이션에 해당되지 않는 어플리케이션을 취합하여 보안위험 어플리케이션으로 식별하는 단계;
상기 보안위험 어플리케이션에 대해 미리 설정된 보안 처리를 실행하는 단계;
를 포함하여 구성되는 것을 특징으로 하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법.
- 청구항 2에 있어서,
상기 제 2 단계는,
상기 사용자 단말의 파일 디렉토리로부터 안드로이드 전체 파일시스템의 파일을 식별하는 단계;
상기 파일에 대해 안드로이드 운영체제가 제공하는 stat 구조체를 포함하는 파일 속성정보를 판독하는 단계;
상기 파일 속성정보로부터 상기 파일이 실행시에 관리자권한을 획득할 수 있는 속성을 갖는지 여부를 판단하는 단계;
상기 판단 결과, 관리자권한을 획득할 수 있는 속성을 갖는 경우에는 잠재적 보안위험 파일로 식별하는 단계;
상기 식별된 잠재적 보안위험 파일에 대해 미리 설정된 보안 처리를 실행하는 단계;
를 포함하여 구성된 것을 특징으로 하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법.
- 청구항 3에 있어서,
상기 제 2 단계는,
상기 파일 속성정보 판독에 실패한 경우, 상기 속성정보 판독에 실패한 파일이 안드로이드 시스템 디폴트로 판독이 금지되어 있는지 여부를 판단하는 단계;
상기 파일의 폴더에 실행권한이 설정되어 있는지 여부를 판단하는 단계;
상기 판단 결과, 상기 속성정보 판독에 실패한 파일이 안드로이드 시스템 디폴트로 판독이 금지된 것이 아니고 상기 파일의 폴더에 실행권한이 설정되어 있는 경우에 잠재적 보안위험이 존재한다고 판단하는 단계;
상기 파일의 폴더에 대해 미리 설정된 보안 처리를 실행하는 단계;
를 더 포함하여 구성된 것을 특징으로 하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법.
- 청구항 3에 있어서,
상기 파일이 실행시에 관리자권한을 획득할 수 있는 속성을 갖는지 여부 판단은 상기 stat 구조체의 st_mode 멤버가 수퍼퍼미션을 갖는지 여부를 확인하여 수행하는 것을 특징으로 하는 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법.
- 청구항 1 내지 청구항 5 중 어느 하나의 항에 따른 어플리케이션 보안강화 방법을 실행하기 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120102765A KR101388053B1 (ko) | 2012-09-17 | 2012-09-17 | 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120102765A KR101388053B1 (ko) | 2012-09-17 | 2012-09-17 | 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140044974A KR20140044974A (ko) | 2014-04-16 |
KR101388053B1 true KR101388053B1 (ko) | 2014-04-22 |
Family
ID=50652653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120102765A KR101388053B1 (ko) | 2012-09-17 | 2012-09-17 | 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101388053B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101645868B1 (ko) * | 2015-04-07 | 2016-08-04 | 주식회사 퓨쳐시스템 | 어플리케이션 인식을 위한 룰 생성 방법 및 어플리케이션 인식을 위한 룰 생성 장치 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160017551A (ko) | 2014-08-06 | 2016-02-16 | 주식회사 안랩 | 어플리케이션 연동 장치 및 방법 |
CN104881283A (zh) * | 2015-05-20 | 2015-09-02 | 深圳市创维电器科技有限公司 | 一种获取基于安卓的终端设备的root权限的方法及*** |
KR101773300B1 (ko) | 2016-08-19 | 2017-08-31 | 국방과학연구소 | 안드로이드 기반 모바일 단말기를 위한 간편한 커널 접근제어 정책 설정 방법 및 시스템 |
KR102610058B1 (ko) * | 2017-01-10 | 2023-12-06 | 삼성전자주식회사 | 프로세스의 권한 상승을 검출하는 전자 장치 및 저장 매체 |
CN111565203B (zh) * | 2020-07-16 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 业务请求的防护方法、装置、***和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110084693A (ko) * | 2010-01-18 | 2011-07-26 | (주)쉬프트웍스 | 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법 |
KR20120090160A (ko) * | 2011-02-07 | 2012-08-17 | 조성환 | 보안 기능을 가지는 스마트 폰 및 이의 보안방법 |
-
2012
- 2012-09-17 KR KR1020120102765A patent/KR101388053B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110084693A (ko) * | 2010-01-18 | 2011-07-26 | (주)쉬프트웍스 | 안드로이드 단말 플랫폼에서의 악성 코드와 위험 파일의 진단 방법 |
KR20120090160A (ko) * | 2011-02-07 | 2012-08-17 | 조성환 | 보안 기능을 가지는 스마트 폰 및 이의 보안방법 |
Non-Patent Citations (1)
Title |
---|
TISTORY BLOG * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101645868B1 (ko) * | 2015-04-07 | 2016-08-04 | 주식회사 퓨쳐시스템 | 어플리케이션 인식을 위한 룰 생성 방법 및 어플리케이션 인식을 위한 룰 생성 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20140044974A (ko) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101388053B1 (ko) | 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
KR101739125B1 (ko) | 모바일 디바이스용 어플리케이션의 권한을 분석하고 위험성을 검출하기 위한 장치 및 방법 | |
US20160065613A1 (en) | System and method for detecting malicious code based on web | |
US8762948B1 (en) | System and method for establishing rules for filtering insignificant events for analysis of software program | |
US8434151B1 (en) | Detecting malicious software | |
JP5265061B1 (ja) | 悪意のあるファイル検査装置及び方法 | |
US20160232344A1 (en) | Method for re-adjusting application permission and user terminal for performing the same method | |
Schmeelk et al. | Android malware static analysis techniques | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
US20080320556A1 (en) | Method for recognizing information flow and detecting information leakage by analyzing user's behaviors | |
CN102340398A (zh) | 安全策略设置、确定方法、应用程序执行操作方法及装置 | |
Joy et al. | Rootkit detection mechanism: A survey | |
KR101217709B1 (ko) | 악성코드 탐지 장치 및 방법 | |
CN113779578A (zh) | 移动端应用的智能混淆方法和*** | |
KR100745639B1 (ko) | 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치 | |
KR101311367B1 (ko) | 메모리 보호기능 우회 공격 진단 장치 및 방법 | |
Abbadini et al. | Lightweight cloud application sandboxing | |
KR101386605B1 (ko) | 권한정보 관리를 통한 악성코드 탐지방법 | |
CN110457892B (zh) | 一种嵌入式***权限管理方法及*** | |
CN111222122A (zh) | 应用权限管理方法、装置及嵌入式设备 | |
JP6787841B2 (ja) | アクセス制御装置、アクセス制御方法およびアクセス制御プログラム | |
CN113779589B (zh) | 一种安卓智能手机应用误配置检测方法 | |
Rana et al. | A security analysis of browser extensions | |
Kim et al. | Detecting illegally-copied apps on android devices | |
Kaur et al. | Major software security risks at design phase |
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 | ||
FPAY | Annual fee payment |
Payment date: 20170410 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180409 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |