프로젝트/AOS 모바일 앱 모의해킹

2. 하드 코딩 된 중요 정보

real-again 2024. 12. 11. 09:00

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 포함

 

jadx-gui를 이용한 하드코딩 된 데이터 확인

 

4. 대응방안

○ 중요정보가 하드코드 되지 않도록 제거해야 함

중요한 키 값이 소스 코드 내에서 사용되어야 한다면, 해당 값은 암호화하여 보호해야 함

개발자용 테스트 계정 등 개발에 사용한 정보에 주의를 기울여 개발해야 함