KR20240076910A - 안드로이드 어플리케이션의 권한 분석 방법 및 장치 - Google Patents

안드로이드 어플리케이션의 권한 분석 방법 및 장치 Download PDF

Info

Publication number
KR20240076910A
KR20240076910A KR1020220158821A KR20220158821A KR20240076910A KR 20240076910 A KR20240076910 A KR 20240076910A KR 1020220158821 A KR1020220158821 A KR 1020220158821A KR 20220158821 A KR20220158821 A KR 20220158821A KR 20240076910 A KR20240076910 A KR 20240076910A
Authority
KR
South Korea
Prior art keywords
permissions
authority
declared
android
permission
Prior art date
Application number
KR1020220158821A
Other languages
English (en)
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 KR1020220158821A priority Critical patent/KR20240076910A/ko
Publication of KR20240076910A publication Critical patent/KR20240076910A/ko

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)

Abstract

안드로이드 어플리케이션의 권한을 분석하는 방법 및 장치가 개시도니다. 개시된 안드로이드 어플리케이션의 권한 분석 방법은 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 상기 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성하는 단계; 상기 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출하는 단계; 상기 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하는 단계; 및 상기 제1 내지 제3권한으로부터, 상기 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하는 단계를 포함한다.

Description

안드로이드 어플리케이션의 권한 분석 방법 및 장치{PERMISSION ANALYSIS METHOD AND APPARATUS FOR ANDROID APPLICATION}
본 발명은 안드로이드 어플리케이션의 권한을 분석하는 방법 및 장치에 관한 것이다.
안드로이드 어플리케이션에는 권한(permission)이 선언된다. 선언된 권한을 통해 안드로이드 어플리케이션은 시스템이나 자원에 접근할 수 있다. 권한은 어플리케이션의 실행에 필요한 수준에서 선언될 필요가 있으며, 그렇지 않을 경우 보안에 문제가 발생할 수 있다.
어플리케이션이 과도한 권한을 요구할 경우, 해당 어플리케이션을 통해 본래 목적과 다른 기능이 수행될 수 있으며, 이를 통해 악성 행위가 수행될 수도 있다. 예컨대 블루투스 기능을 수행하는 애플리케이션이, 안드로이드 스마트폰에서 GPS, 문자 전송 등의 다른 기능을 수행할 수도 있다.
따라서, 안드로이드 어플리케이션에서 선언되는 권한의 관리가 필요하며, 안드로이드 어플리케이션의 실행에 필요한 권한 정보를 제공하는 방법에 대한 요구가 있다.
관련 선행문헌으로 특허 문헌인 대한민국 등록특허 제10-2258915호, 제10-1739125호, 및 제10-2102220호가 있다.
본 발명은 안드로이드 어플리케이션의 보안성을 강화를 지원할 수 있는, 안드로이드 어플리케이션의 권한 분석 방법 및 장치를 제공하기 위한 것이다.
또한 본 발명은 안드로이드 어플리케이션의 실행에 필요한 권한을 보다 정확하게 분석할 수 있는 방법 및 장치를 제공하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 상기 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성하는 단계; 상기 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출하는 단계; 상기 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하는 단계; 및 상기 제1 내지 제3권한으로부터, 상기 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하는 단계를 포함하는 안드로이드 어플리케이션의 권한 분석 방법이 제공된다.
또한 상기한 목적을 달성하기 위한 본 발명의 다른 실시예에 따르면, 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 수집하는 단계; 및 상기 수집된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 권한을 도출하는 단계를 포함하는 안드로이드 어플리케이션의 권한 분석 방법이 개시된다.
또한 상기한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따르면, 메모리; 및 상기 메모리와 전기적으로 연결된 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 상기 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성하고, 상기 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출하고, 상기 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하고, 상기 제1 내지 제3권한으로부터, 상기 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하는 안드로이드 어플리케이션의 권한 분석 장치가 개시된다.
본 발명의 일실시예에 따르면, 안드로이드 어플리케이션에서 선언된 권한 뿐만 아니라, 추가적으로 선언이 필요한 권한에 대한 정보가 제공되므로, 개발자는 추가적으로 선언이 필요한 권한을 안드로이드 어플리케이션에 추가하고, 추가적으로 선언이 필요한 권한에 대한 보안을 강화할 수 있으며, 결과적으로 안드로이드 어플리케이션에 대한 보안성이 강화될 수 있다.
또한 본 발명의 일실시예에 따르면, 안드로이드 어플리케이션에서 선언된 권한이나 이용되는 기능 뿐만 아니라, 안드로이드 어플리케이션과 동일 카테고리에 포함된 레퍼런스 어플리케이션에 선언된 권한을 분석함으로써, 안드로이드 어플리케이션의 실행에 필요한 권한을 보다 정확하게 분석할 수 있다.
도 1은 본 발명의 일실시예에 따른 안드로이드 어플리케이션의 권한 분석 장치를 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 안드로이드 어플리케이션의 권한 분석 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 다른 실시예에 따른 안드로이드 어플리케이션의 권한 분석 방법을 설명하기 위한 도면이다.
도 4 및 도 5는 본 발명의 일실시예에 따른 권한 관계 그래프를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 안드로이드 어플리케이션의 권한 분석 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 권한 분석 장치는 역컴파일러(110), API 분석부(120), CCP 분석부(130), 설명서 분석부(140) 및 필요 권한 분석부(150)를 포함한다.
역컴파일러(110)는 입력된 안드로이드 어플리케이션을 역컴파일하여, 입력된 안드로이드 어플리케이션에서 권한이 선언된 매니페스트(manifest) 파일을 추출한다. 역컴파일러(110)는 타겟 안드로이드 어플리케이션, 레퍼런스 안드로이드 어플리케이션 등을 역컴파일할 수 있다. 타겟 안드로이드 어플리케이션은 권한 분석 대상이 되는 어플리케이션이며, 레퍼런스 안드로이드 어플리케이션은 권한 분석에 참조가 되는 어플리케이션이다.
API 분석부(120)는 타겟 안드로이드 어플리케이션의 매니페스트 파일에 선언된 권한을 확인하고, 선언된 권한에 의해 실행되는 기능을 위해 호출되는 API를 선언된 권한과 매핑한다. 예컨대, 매니페스트 파일에서 선언된 권한에 의해 GPS 장치가 이용되어야 하는 경우, GPS API가 매핑될 수 있다. 그리고 API 분석부(120)는 매핑된 API에 의해 호출되는 라이브러리에서, 선언된 권한을 확인한다.
매핑된 API에 의해 호출되는 라이브러리에서, 선언된 권한은 타겟 안드로이드 어플리케이션의 실행에 필요한 권한에 대응된다.
CCP(Category-based Common Permission) 분석부(130)는 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 타겟 안드로이드 어플리케이션의 실행에 불필요한 권한을 도출한다. CCP 분석부(130)는 레퍼런스 안드로이드 어플리케이션의 매니페스트 파일에서 선언된 권한을 확인하여, 레퍼런스 안드로이드 어플리케이션들에서 공통적으로 이용되는 권한을 분석함으로써, 타겟 안드로이드 어플리케이션의 실행에 불필요한 권한을 도출한다.
CCP 분석부(130)는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들의 빈도를 이용해, 타겟 안드로이드 어플리케이션의 실행에 필요한 권한과 불필요한 권한을 판단할 수 있다. 타겟 안드로이드 어플리케이션의 카테고리와 동일 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 자주 선언되는 권한들은 타겟 안드로이드 어플리케이션의 실행에 필요한 권한으로 볼 수 있으며, 레퍼런스 안드로이드 어플리케이션들에서 가끔 선언되는 권한들은 타겟 안드로이드 어플리케이션의 실행에 불필요한 권한으로 볼 수 있다.
설명서 분석부(140)는 타겟 안드로이드 어플리케이션에 포함된 설명서(description)을 분석하여, 타겟 안드로이드 어플리케이션의 실행에 필요한 권한을 생성한다. 안드로이드 어플리케이션 설명서는 어플리케이션의 기능이나 효과 등을 설명하는 문서로서, 설명서 분석부(140)는 설명서의 내용을 토대로, 매니페스트 파일에서 선언된 권한 이외에 타겟 안드로이드 어플리케이션의 실행에 필요한 권한을 생성할 수 있다. 설명서는 자연어로 기재되며, 따라서 설명서 분석부(140)는 미리 학습된 딥러닝 기반의 자연어 처리 모델을 이용해, 설명서를 분석할 수 있다.
필요 권한 분석부(150)는 API 분석부(120), CCP 분석부(130) 및 설명서 분석부(140)의 분석 결과를 이용하여, 타겟 안드로이드 어플리케이션에 필요한 권한과 불필요한 권한을 결정한다. 필요 권한 분석부(150)는 타겟 안드로이드 어플리케이션에 필요한 권한과 불필요한 권한을 함께 사용자에게 제공할 수 있다.
한편, 실시예에 따라서, 권한 분석 장치는 메모리 및 메모리와 전기적으로 연결된 적어도 하나의 프로세서를 포함할 수 있으며, 프로세서는 타겟 안드로이드의 권한 분석을 위한 일련의 과정을 수행한다. 프로세서는 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성한다. 그리고 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출한다. 그리고 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 어플리케이션들에서 선언된 권한을 이용하여, 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하고, 제1 내지 제3권한으로부터, 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정한다.
이와 같이 본 발명의 일실시예에 따르면, 안드로이드 어플리케이션에서 선언된 권한 뿐만 아니라, 추가적으로 선언이 필요한 권한에 대한 정보가 제공된다. 따라서 개발자는 추가적으로 선언이 필요한 권한을 안드로이드 어플리케이션에 추가하고, 추가적으로 선언이 필요한 권한에 대한 보안을 강화할 수 있으므로, 안드로이드 어플리케이션에 대한 보안성이 강화될 수 있다.
도 2는 본 발명의 일실시예에 따른 안드로이드 어플리케이션의 권한 분석 방법을 설명하기 위한 도면이다.
본 발명의 일실시예에 따른 권한 분석 방법은 메모리 및 프로세서를 포함하는 컴퓨팅 장치에서 수행될 수 있으며, 전술된 권한 분석 장치는 이러한 컴퓨팅 장치의 일예이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 컴퓨팅 장치는 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성(S210)한다. 전술된 바와 같이 컴퓨팅 장치는 미리 학습된 자연어 처리 모델을 이용하여, 설명서를 분석할 수 있다.
예컨대, 타겟 안드로이드 어플리케이션의 설명서에 "외부 스토리지에 사진을 저장할 수 있습니다"라는 문장이 기재되어 있는 경우, 컴퓨팅 장치는 외부 스토리지와 사진 촬영을 위한 카메라의 이용을 위한 권한을, 제1권한으로 생성할 수 있다.
자연어 처리 모델은 Bi-LSTM 레이어와 셀프 어텐션 레이어를 포함하는 모델일 수 있으며, 자연어 처리 모델의 학습을 위한 훈련 데이터 확보를 위해 데이터 증강과 역번역이 이용될 수 있다. 훈련 데이터에 포함된 설명서의 다양한 단어에 대한 유의어는 데이터 증강을 통해 생성될 수 있으며, 제1언어로 기재된 설명서는 제2언어로 번역된 후, 다시 제1언어로 역번역되어 학습에 이용될 수 있다. 역번역 과정에서, 최초 제1언어로 기재된 설명서와 내용은 유사하지만 다양한 구조의 문장들이 생성될 수 있고, 이를 통해 자연어 처리 모델의 성능이 향상될 수 있다.
그리고 컴퓨팅 장치는 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출(S220)한다. 제2권한은 타겟 안드로이드 어플리케이션의 실행에 필요한 권한으로서, 안드로이드 어플리케이션은 다양한 라이브러리를 호출하여 이용하며, 따라서 안드로이드 어플리케이션에서 선언된 권한 이외에, 호출된 라이브러리에 선언된 권한 역시 타겟 안드로이드 어플리케이션의 실행에 필요한 권한이다.
그리고 컴퓨팅 장치는 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출(S230)한다. 컴퓨팅 장치는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들을 타겟 안드로이드 어플리케이션의 실행에 필요한 권한과 불필요한 권한으로 분류하여, 제3권한을 도출한다. 제3권한을 도출하는 방법은 도 3에서 자세히 설명된다.
컴퓨팅 장치는 제1 내지 제3권한으로부터, 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정(S240)한다. 컴퓨팅 장치는 타겟 안드로이드 어플리케이션에 선언된 제4권한을 검출하고, 제4권한에서 제3권한을 삭제하고, 제1 및 제2권한을 추가하여, 선언 필요 권한을 결정할 수 있다. 여기서, 제4권한은 타겟 안드로이드 어플리케이션의 매니페스트 파일에 선언된 권한에 대응된다.
컴퓨팅 장치는 실시예에 따라서, 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하고, 제4권한 중에서 선언 필요 권한을 제외한 나머지 권한을 불필요한 권한으로 출력할 수 있다.
한편, 도 2에서는 단계 S210 내지 S230은 시계열적으로 처리되는 것으로 표현되었으나, 병렬적으로 수행될 수 있다. 컴퓨팅 장치는 병렬적으로 수행되어 도출된 제1 내지 제3권한을 이용하여, 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 안드로이드 어플리케이션의 권한 분석 방법을 설명하기 위한 도면이며, 도 4 및 도 5는 본 발명의 일실시예에 따른 권한 관계 그래프를 설명하기 위한 도면이다.
도 3을 참조하면 본 발명의 일실시예에 따른 컴퓨팅 장치는 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 수집(S310)한다. 컴퓨팅 장치는 레퍼런스 안드로이드 어플리케이션들의 매니페스트 파일로부터 선언된 권한에 대한 정보를 수집할 수 있다.
일예로서, 타겟 안드로이드 어플리케이션의 카테고리가 뷰티(beauty) 카테고리라면, 뷰티 카테고리의 다양한 안드로이드 어플리케이션이 레퍼런스 안드로이드 어플리케이션들로 이용될 수 있다. 또한 레퍼런스 안드로이드 어플리케이션의 일반성을 보장하기 위해, 뷰티 카테고리의 안드로이드 어플리케이션 중 미리 설정된 개수만큼의 상위 순위의 안드로이드 어플리케이션이, 레퍼런스 안드로이드 어플리케이션으로 이용될 수 있다.
컴퓨팅 장치는 단계 S310에서 수집된 권한을 이용하여, 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출(S320)한다.
컴퓨팅 장치는 일실시예로서, 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들 중 선언된 빈도수가 임계 횟수 이상인 권한을 제외한 나머지 권한을 제3권한으로 결정할 수 있다. 다시 말해, 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들 중에서, 선언된 빈도수가 임계 횟수보다 작은 권한 즉, 적게 선언된 권한이 제3권한으로 결정될 수 있다.
또는 컴퓨팅 장치는 권한 관계 그래프를 생성하고, 권한 관계 그래프를 이용하여, 제3권한을 결정할 수 있다. 권한 관계 그래프의 노드는, 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한에 대응되며, 엣지는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 연결한다. 엣지에는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한의 연결 빈도수가 할당될 수 있다.
도 4는 뷰티 카테고리의 5개의 레퍼런스 안드로이드 어플리케이션에 대한 권한 관계 그래프의 일예를 나타내는 도면이다. 도 4에서는 5개의 레퍼런스 안드로이드 어플리케이션에서 공통적으로 선언된 권한은 카메라 자원 및 스토리지 자원을 이용하기 위한 권한이다. 따라서, 카메라 자원 노드(410) 및 스토리지 자원 노드(420)가 엣지(401)로 연결되고, 엣지(401)에는 연결 빈도수 5가 할당된다. 그리고 5개의 레퍼런스 안드로이드 어플리케이션 중에서, 3개의 어플리케이션이 위치 추정 기능을 이용하기 위한 권한이 선언된 경우, 카메라 자원 노드(410)와 위치 추정 기능 노드(430), 그리고 스토리지 자원 노드(420)와 위치 추정 기능 노드(430) 역시 엣지(402, 403)로 연결되고, 엣지(402, 403)에는 각각 연결 빈도수 3이 할당된다.
레퍼런스 안드로이드 어플리케이션이 더욱 많아진다면, 도 4의 권한 관계 그래프는 도 5에 도시된 권한 관계 그래프와 같이 확장될 수 있다. 도 5에서 엣지로 연결되지 않은 노드는, 레퍼런스 안드로이드 어플리케이션에서 단독으로 이용되는 단일 권한에 대응된다.
레퍼런스 안드로이드 어플리케이션에서 단독으로 이용되는 단일 권한은 권한의 선언 빈도가 매우 낮은 것이므로, 컴퓨팅 장치는 단계 S320에서 엣지가 연결되지 않은 노드에 대응되는 권한을 제3권한으로 결정할 수 있다.
또는 컴퓨팅 장치는 권한 관계 그래프의 전체 노드 중에서, 연결 빈도수가 임계 빈도수 이상인 엣지에 연결된 노드를 제외한 나머지 노드에 대응되는 권한을 제3권한으로 결정할 수 있다. 즉, 컴퓨팅 장치는 연결 빈도수가 임계 빈도수 이상인 엣지에 연결된 노드에 대응되는 권한을 필요 권한으로 분류하고, 권한 관계 그래프의 전체 노드 중에서 필요 권한에 대응되는 노드를 제외한 나머지 노드에 대응되는 권한을 제3권한으로 결정할 수 있다.
권한 관계 그래프의 엣지는 레퍼런스 안드로이드 어플리케이션에서 선언된 권한에 대응되는 노드를 모두 연결하기 때문에, 컴퓨팅 장치는 연결 빈도수가 임계 빈도수보다 낮은 엣지에 연결된 노드에 대응되는 권한을 제3권한으로 결정하지 않고, 필요 권한에 대응되는 노드를 제외한 나머지 노드에 대응되는 권한을 제3권한으로 결정한다.
도 4의 예시에서, 임계 빈도수가 4라면, 스토리지 자원 노드(420) 및 카메라 자원 노드(410)에 대응되는 권한은 필요 권한으로 분류되고, 위치 추정 기능 노드(430)에 대응되는 위치 추정 기능은 제3권한으로 결정될 수 있다.
본 발명의 일실시예에 따르면, 안드로이드 어플리케이션에서 선언된 권한이나 이용되는 기능 뿐만 아니라, 안드로이드 어플리케이션과 동일 카테고리에 포함된 레퍼런스 어플리케이션에 선언된 권한을 분석함으로써, 안드로이드 어플리케이션의 실행에 필요한 권한을 보다 정확하게 분석할 수 있다.
앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (15)

  1. 타겟 안드로이드 어플리케이션의 설명서를 분석하여, 상기 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성하는 단계;
    상기 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출하는 단계;
    상기 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하는 단계; 및
    상기 제1 내지 제3권한으로부터, 상기 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하는 단계
    를 포함하는 안드로이드 어플리케이션의 권한 분석 방법.
  2. 제 1항에 있어서,
    상기 제3권한을 도출하는 단계는
    상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들 중 선언된 빈도수가 임계 횟수 이상인 권한을 제외한 나머지 권한을 상기 제3권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  3. 제 1항에 있어서,
    상기 제3권한을 도출하는 단계는
    상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한에 대응되는 노드 및 상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 연결하는 엣지를 포함하는 권한 관계 그래프를 생성하는 단계; 및
    상기 권한 관계 그래프를 이용하여, 상기 제3권한을 도출하는 단계
    를 안드로이드 어플리케이션의 권한 분석 방법.
  4. 제 3항에 있어서,
    상기 제3권한을 도출하는 단계는
    상기 엣지가 연결되지 않은 노드에 대응되는 권한을 상기 제3권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  5. 제 4항에 있어서,
    상기 권한 관계 그래프는
    상기 엣지에 할당되는, 상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한의 연결 빈도수를 더 포함하며,
    상기 제3권한을 도출하는 단계는
    상기 권한 관계 그래프의 전체 노드 중에서, 상기 연결 빈도수가 임계 빈도수 이상인 엣지에 연결된 노드를 제외한 나머지 노드에 대응되는 권한을 상기 제3권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  6. 제 2항에 있어서,
    상기 선언 필요 권한을 출력하는 단계는
    상기 타겟 안드로이드 어플리케이션에 선언된 제4권한을 검출하는 단계; 및
    상기 제4권한에서 상기 제3권한을 삭제하고, 상기 제1 및 제2권한을 추가하여, 상기 선언 필요 권한을 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  7. 제 1항에 있어서,
    상기 제1권한을 생성하는 단계는
    미리 학습된 자연어 처리 모델을 이용하여, 상기 설명서로부터 상기 제1권한을 생성하는
    안드로이드 어플리케이션의 권한 분석 방법.
  8. 제 7항에 있어서,
    상기 자연어 처리 모델를 위한 훈련 데이터는
    데이터 증강을 통해 생성된 유의어 또는 역번역을 통해 생성된 문장을 포함하는
    안드로이드 어플리케이션의 권한 분석 방법.
  9. 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 수집하는 단계; 및
    상기 수집된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 권한을 도출하는 단계
    를 포함하는 안드로이드 어플리케이션의 권한 분석 방법.
  10. 제 9항에 있어서,
    상기 불필요한 권한을 도출하는 단계는
    상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한들 중 선언된 빈도수가 임계 횟수 이상인 권한을 제외한 나머지 권한을 상기 불필요한 권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  11. 제 9항에 있어서,
    상기 불필요한 권한을 도출하는 단계는
    상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한에 대응되는 노드 및 상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 연결하는 엣지를 포함하는 권한 관계 그래프를 생성하는 단계; 및
    상기 권한 관계 그래프를 이용하여, 상기 불필요한 권한을 도출하는 단계
    를 안드로이드 어플리케이션의 권한 분석 방법.
  12. 제 11항에 있어서,
    상기 불필요한 권한을 도출하는 단계는
    상기 엣지가 연결되지 않은 노드에 대응되는 권한을 상기 불필요한 권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  13. 제 12항에 있어서,
    상기 권한 관계 그래프는
    상기 엣지에 할당되는, 상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한의 연결 빈도수를 더 포함하며,
    상기 불필요한 권한을 도출하는 단계는
    상기 권한 관계 그래프의 전체 노드 중에서, 상기 연결 빈도수가 임계 빈도수 이상인 엣지에 연결된 노드를 제외한 나머지 노드에 대응되는 권한을 상기 불필요한 권한으로 결정하는
    안드로이드 어플리케이션의 권한 분석 방법.
  14. 메모리; 및
    상기 메모리와 전기적으로 연결된 적어도 하나의 프로세서를 포함하며,
    상기 프로세서는
    타겟 안드로이드 어플리케이션의 설명서를 분석하여, 상기 타겟 안드로이드 어플리케이션의 실행에 필요한 제1권한을 생성하고,
    상기 타겟 안드로이드 어플리케이션에서 호출되는 API에 의해 이용되는 라이브러리에 선언된, 제2권한을 검출하고,
    상기 타겟 안드로이드 어플리케이션의 카테고리에 포함되는 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 이용하여, 상기 타겟 안드로이드 어플리케이션의 실행에 불필요한 제3권한을 도출하고,
    상기 제1 내지 제3권한으로부터, 상기 타겟 안드로이드 어플리케이션의 선언 필요 권한을 결정하는
    안드로이드 어플리케이션의 권한 분석 장치.
  15. 제 14항에 있어서,
    상기 프로세서는
    상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한에 대응되는 노드 및 상기 레퍼런스 안드로이드 어플리케이션들에서 선언된 권한을 연결하는 엣지를 포함하는 권한 관계 그래프를 생성하는 단계; 및
    상기 권한 관계 그래프를 이용하여, 상기 제3권한을 도출하는 단계
    를 포함하는 안드로이드 어플리케이션의 권한 분석 장치.
KR1020220158821A 2022-11-24 2022-11-24 안드로이드 어플리케이션의 권한 분석 방법 및 장치 KR20240076910A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220158821A KR20240076910A (ko) 2022-11-24 2022-11-24 안드로이드 어플리케이션의 권한 분석 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220158821A KR20240076910A (ko) 2022-11-24 2022-11-24 안드로이드 어플리케이션의 권한 분석 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240076910A true KR20240076910A (ko) 2024-05-31

Family

ID=91330338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220158821A KR20240076910A (ko) 2022-11-24 2022-11-24 안드로이드 어플리케이션의 권한 분석 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20240076910A (ko)

Similar Documents

Publication Publication Date Title
US12067126B2 (en) System and method for application security profiling
US10296307B2 (en) Method and system for template extraction based on source code similarity
RU2422890C2 (ru) Создание ресурса с использованием онтологий
US8893102B2 (en) Method and system for performing backward-driven path-sensitive dataflow analysis
US11650905B2 (en) Testing source code changes
KR101203327B1 (ko) 재사용 가능성 점수 및 제안된 재사용 가능한 데이터에 의한 자원 작성
Pan et al. {FlowCog}: Context-aware semantics extraction and analysis of information flow leaks in android apps
EP3458953A1 (en) Systems and methods for model-based analysis of software
US20040205411A1 (en) Method of detecting malicious scripts using code insertion technique
JP2006523898A (ja) ソースコードの脆弱点の検出法および検出システム
KR20180077691A (ko) 문장 추상화 장치 및 방법
Huang et al. Detecting sensitive data disclosure via bi-directional text correlation analysis
US10241759B2 (en) Detecting open source components built into mobile applications
WO2024174622A1 (zh) 侧信道检测的方法和装置
Wang et al. Demadroid: Object Reference Graph‐Based Malware Detection in Android
CN110727476A (zh) 一种授权配置文件的生成方法、装置、设备及存储介质
Dufay et al. Privacy-sensitive information flow with JML
CN111158667B (zh) 代码注入方法和装置、电子设备及存储介质
KR102110735B1 (ko) 취약점 탐색을 위한 바이너리 재생성 방법 및 시스템
CN113138797A (zh) 面向Intel SGX的程序自动化移植系统
KR20240076910A (ko) 안드로이드 어플리케이션의 권한 분석 방법 및 장치
JP2004005441A (ja) スクリプト処理装置、インタプリタ、スクリプト処理方法、スクリプト処理プログラム、およびスクリプトプログラム
KR20210141026A (ko) 생성적 적대 신경망 기반의 재현 데이터 생성 장치 및 상기 장치의 학습 방법
US10789067B2 (en) System and method for identifying open source usage
Underwood et al. In search of shotgun parsers in android applications

Legal Events

Date Code Title Description
E902 Notification of reason for refusal