728x90
반응형
QARK
QARK 란?
- QARK(Quick Android Review Kit)는 오픈소스 안드로이드 앱 취약점 진단 프레임워크다.
- 기존의 상용 도구들과 같이 간편하게 앱에 대한 자동화 진단을 제공한다.
> 진단 가능 보안 취약점
더보기
Inadvertently exported components
Improperly protected exported components
Intents which are vulnerable to interception or eavesdropping
Improper x.509 certificate validation
Creation of world-readable or world-writeable files
Activities which may leak data
The use of Sticky Intents
Insecurely created Pending Intents
Sending of insecure Broadcast Intents
Private keys embedded in the source
Weak or improper cryptography use
Potentially exploitable WebView configurations
Exported Preference Activities
Tapjacking
Apps which enable backups
Apps which are debuggable
Apps supporting outdated API versions, with known vulnerabilities
- QARK 사용에 앞서 QARK 분석 아키텍처를 살펴본다.
- 모의해킹 관점에서의 앱 진단 시 : 디컴파일 과정을 통한 소스 코드 추출
- Manifest.xml 파일 추출 (Apktool A B.apk)
- APK 압축 해제 (change apk to zip, unzip file.zip)
- dalvik 바이트 코드 추출 (dex2jar classes.dex)
- 자바 바이트 코드 추출 (JD-GUI)
- 자바 클래스 파일 추출 (Save all classes)
- QARK 에서 진단 시 : 각 과정에서 추출한 코드는 Parser를 이용해 정적 분석 수행
- 권한 분석, 앱 컴포넌트 분석, 버전 분석
- 자바 클래스 구문 분석
- Manifest.xml 파일을 통한 클래스 분석
- 추출한 코드를 통해 취약점 분석
- 결과 도출
- 모의해킹 관점에서의 앱 진단 시 : 디컴파일 과정을 통한 소스 코드 추출
QARK 설치 및 실행
- QARK 다운로드 링크는 다음과 같다.
- https://github.com/linkedin/qark
- Git 사용 시 git clone <https://github.com/linkedin/qark> 로 다운 가능하다.
- QARK 실행 조건
- Python 2.7.x
- JRE 1.6+ (preferably 1.7+)
- OSX or Ubuntu Linux (Other may work, but not fully tested)
- QARK는 대화형 모드와 헤드리스 모드를 지원한다.
- 대화형 : # python qark.py
- 헤드리스 : # python qark.py --source 1 --pathtoapk /Users/foo/qark/sampleApps/goatdroid/goatdroid.apk --exploit 1 --install 1
- 헤드리스2 : # python qark.py --source 2 -c /Users/foo/qark/sampleApps/goatdroid/goatdroid --manifest /Users/foo/qark/sampleApps/goatdroid/goatdroid/AndroidManifest.xml --exploit 1 --install 1
- 정상 설치 되었다면 APK 파일과 Source 파일 중 분석할 대상 선택이 가능해진다.
- 그 후, APK 패스 입력을 위한 선택 및 경로 입력, Manifest 파일에 대한 분석 진행 여부, 디컴파일에 대한 물음, 분석에 대한 물음에 대해서도 입력한다.
- 분석을 마치면 2 를 입력하여 빠져나온다.
분석 결과 확인
- QARK 지원 분석 모듈
기본 정보(Dashboard)
매니페스트(Manifest)
앱 컴포넌트(App Components)
웹 뷰(Web Views)
X.509 인증서 관련 이슈(X.509 Issues)
파일 권한(File Permissions)
암호 버그(Crypto Bugs)
Pending Intents
ADB 명령어(ADB Commands)
자동 분석 중 발생하는 에러(Parsing Errors)
운영체제 버그(OS Bug)
- 분석 결과는 report 디렉터리에서 확인이 가능하며, HTML 형태로 분석 보고서를 보여준다.
+++ QARK Headless Mode
- 대화형 모드보다 간편하다.
Usage: qark.py [-h] [-s int] [-m MANIFEST] [-p APKPATH]
[-a AUTODETECT | -c CODEPATH] [-e EXPLOIT] [-i INSTALL]
[-d DEBUGLEVEL] [-v] [-r REPORTDIR]
[-t ACCEPTTETMS | -b BASESDK]
- 자동 분석 명령어 : python qark.py -s 1 -p /root/Desktop/qark/InsecureBankv2.apk -e 0 -i 0
728x90
반응형