1. 하드코딩 된 중요 정보
○ 하드코드란 프로그램 소스 코드 내에 데이터를 직접 입력해서 저장한 경우를 뜻함
○ 중요한 정보(관리자 계정, 암호화키 등)가 소스 코드 내에 노출된 경우 취약점
○ 개발 편의를 위해 입력받은 값을 소스 코드 내에 저장해서 발생하는 경우가 많음
○ 안드로이드 앱은 디컴파일이 가능하여 중요 정보를 코드 내 주석 등으로 노출할 경우 쉽게 확인 가능
○ 정적분석 + 코드 분석
● apk 파일을 자바(코틀린) 파일로 디컴파일 후 분석하는 방법으로 취약점은 진단
2. 원본 파일이 있을 경우
안드로이드 스튜디오 설치 : https://developer.android.com/studio?hl=ko
Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android Developers
Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.
developer.android.com
JADX 설치 : https://github.com/skylot/jadx/releases
Releases · skylot/jadx
Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.
github.com
○ Dex 파일을 java로 변환하는 디컴파일러
○ 안드로이드 Dex 및 Apk 파일에서 java 소스 코드를 생성하기 위한 명령 줄 및 GUI 도구
○ 달빅 바이트 코드를 APK, dex, aar 및 zip 파일에서 자바 클래스로 디컴파일
○ resources.arsc에서 AndroidManifest.xml 및 기타 리소스 디코딩
○ deobfuscator 포함
4. 대응방안
○ 중요정보가 하드코드 되지 않도록 제거해야 함
○ 중요한 키 값이 소스 코드 내에서 사용되어야 한다면, 해당 값은 암호화하여 보호해야 함
○ 개발자용 테스트 계정 등 개발에 사용한 정보에 주의를 기울여 개발해야 함
'프로젝트 > AOS 모바일 앱 모의해킹' 카테고리의 다른 글
6. 취약한 인증 매커니즘 액티비티 노출 취약점 (0) | 2024.12.24 |
---|---|
5. 통신 과정 취약점 진단 (1) | 2024.12.22 |
4. 취약한 로깅 메커니즘 (2) | 2024.12.19 |
3. 앱 내부/외부 저장소 취약점 진단 (0) | 2024.12.17 |
1. InsecureBankv2 앱 소개 및 설치(가상 은행 앱) (2) | 2024.12.10 |