[논문 리뷰] ACMiner: Extraction and Analysis of Authorization Checks in Android's Middleware
ACMiner는 Android 시스템 서비스의 권한 검사 조건을 자동으로 추출하고 분석하는 정적 분석 프레임워크로, SecurityException 예외 발생으로 이어지는 코드 패턴을 탐색한 후 연관 규칙 마이닝을 적용하여 누락되거나 잘못 구현된 접근 제어를 나타내는 일관성 없는 패턴을 탐지한다. Android 7.1.1에서 28개의 취약점을 발견하였으며, 수작업 분석 대상이었던 4,004개의 엔트리 포인트를 246개로 줄였고, 그 중 7개는 제3자 앱에 의해 악용 가능한 보안 민감성 엔트리 포인트였다.
Billions of users rely on the security of the Android platform to protect phones, tablets, and many different types of consumer electronics. While Android's permission model is well studied, the enforcement of the protection policy has received relatively little attention. Much of this enforcement is spread across system services, taking the form of hard-coded checks within their implementations. In this paper, we propose Authorization Check Miner (ACMiner), a framework for evaluating the correctness of Android's access control enforcement through consistency analysis of authorization checks. ACMiner combines program and text analysis techniques to generate a rich set of authorization checks, mines the corresponding protection policy for each service entry point, and uses association rule mining at a service granularity to identify inconsistencies that may correspond to vulnerabilities. We used ACMiner to study the AOSP version of Android 7.1.1 to identify 28 vulnerabilities relating to missing authorization checks. In doing so, we demonstrate ACMiner's ability to help domain experts process thousands of authorization checks scattered across millions of lines of code.
연구 동기 및 목표
- Android의 특권 시스템 서비스에서 접근 제어 강제화에 대한 체계적인 분 析 부족 문제를 해결하기 위해.
- Kratos나 AceDroid와 같은 이전 도구들이 수작업으로 구성된 검사 조건이나 근본적인 분석에 의존하는 한계를 극복하기 위해.
- 수천 개의 서비스 엔트리 포인트를 포함한 수백만 줄의 코드에서 도메인 전문가가 누락되거나 일관성 없는 권한 검사 조건을 효율적으로 식별할 수 있도록 하기 위해.
- Android 미들웨어에서 누락되거나 잘못 구성된 접근 제어와 관련된 취약점을 더 넓고 정확하게 탐지하는 것을 향한 커버리지 향상 및 정밀도 향상을 위해.
- 삼각 규칙 마이닝을 통한 가용성 있는 통찰을 제공하여, 우선순위 정렬 및 수정을 위한 일관된 접근 제어 패턴을 제안하기 위해.
제안 방법
- ACMiner는 서비스 엔트리 포인트와 SecurityException 예외를 발생시키는 코드 사이의 프로그램 논리를 분석하여 권한 검사 조건을 식별한다. 정적 분석을 통해 관련 조건을 추출한다.
- 텍스트 분석 및 정규 표현식을 적용하여, SecurityException 예외 발생으로 이어지는 조건 논리에 영향을 주는 보안 관련 상수 및 변수/메서드 이름을 탐색한다.
- 이러한 탐지된 조건들로부터 정책 규칙을 구성하여 각 서비스 엔트리 포인트에 대한 의도된 접근 제어 정책을 표현한다.
- 서비스 수준에서 연관 규칙 마이닝을 적용하여 동일한 서비스 내 엔트리 포인트 간의 권한 검사 조건을 비교하고, 취약성을 시사하는 일관성 없는 패턴을 식별한다.
- 이 방법은 App Ops나 수작업으로 정의된 목록에서 다루지 못한 다양한 권한 검사 조건의 반자동 탐지도 지원한다.
- 결과는 연관 규칙 제안을 통해 우선순위를 정하고, 보안 전문가가 효율적으로 수작업 검증을 수행할 수 있도록 한다.
실험 결과
연구 질문
- RQ1대규모이고 복잡한 코드베이스에서 Android 시스템 서비스의 권한 검사 조건을 체계적이고 자동으로 어떻게 추출할 수 있는가?
- RQ2동일한 시스템 서비스 내 엔트리 포인트 간 접근 제어 강제화의 일관성 없는 패턴을 연관 규칙 마이닝이 어느 정도 탐지할 수 있는가?
- RQ3Kratos나 AceDroid와 같은 기존 도구와 비교해 ACMiner가 누락되거나 잘못된 권한 검사 조건을 탐지하는 데서 커버리지와 정밀도는 어느 정도인가?
- RQ4ACMiner는 Android의 핵심 시스템 서비스에서 보안 취약점을 식별하기 위해 필요한 수작업 분석의 노력을 얼마나 줄일 수 있는가?
- RQ5이 방법을 통해 제3자 앱에 의해 악용 가능한 취약점 중 어떤 종류의 것이 드러날 수 있는가?
주요 결과
- ACMiner는 AOSP Android 7.1.1의 4,004개의 시스템 서비스 엔트리 포인트를 분석하여, 그 중 1,995개에서 권한 검사 조건을 식별하였다.
- 이들 중에서 연관 규칙 마이닝이 일관성 없는 권한 검사 조건을 가진 246개의 엔트리 포인트를 선별하여, 수작업 검토에 필요한 공격 표면을 크게 줄였다.
- 246개의 의심스러운 엔트리 포인트에 대한 수작업 조사 결과, 28개의 보안 취약점이 발견되었으며, 그 중 7개는 제3자 앱에 의해 악용 가능한 보안 민감성 엔트리 포인트였다.
- 추가로, 제3자 앱에 의해 직접적으로 악용되지 않더라도 여전히 핵심적인 접근 제어 결함을 포함하는 12개의 취약점도 발견되었다.
- 수작업으로 구성된 목록에 의존하는 대신 반자동 탐색 기반의 접근 방식을 사용함으로써, ACMiner는 Kratos 대비 검사 커버리지에서 2552% 향상을 달성하였다.
- ACMiner는 보다 뛰어난 확장성과 정밀도를 입증하였으며, 전문가 분석 대상 엔트리 포인트 수를 4,000개 이상에서 단 246개로 줄여, 연관 규칙 마이닝의 가용성 있는 제안을 통해 효율적인 우선순위 정렬과 조치가 가능했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.