안드로이드·갤럭시·AOS 애플리케이션 취약점진단/모의해킹 무료 강의 학식(hagsig)
가. 취약점 정의
- 민감정보 메모리 저장(Sensitive Information in Memory) 취약점이라고 부른다.
- 앱에 입력하는 모든 입력 값과 실행되는 모든 정보들이 메모리에 적재된다.
- *중요정보가 저장된 속성 또는 변수를 초기화하지 않거나, 내용을 암호화 하지 않을경우 메모리에 중요정보가 평문으로 노출된다.
*중요정보 : 아이디/패스워드, 개인정보(이름, 주민등록번호, 전화번호 등), 쿼리문, 서버정보 등
- 메모리 내에 중요정보가 평문으로 노출될 경우 해커에 의해 정보가 유출되어 2차 피해로 이어질 수 있다.
나. 대응방안
- 중요한 정보를 포함할 수 있는 속성 또는 변수를 사용한 뒤, 저장된 값을 바로 제거하거나 덮어씌워야 한다.
- 하이브리드 방식일 경우 웹 패킷의 내용이 메모리에 노출된다. 이때 파라미터 값이 암호화 되어있지 않을경우 메모리에 중요정보들이 노출되므로, 암호화 통신을 적용하고 있더라도 파라미터 값을 암호화 하여야 한다.
- AndroidManifest.xml 파일에 있는 android:debugable
속성을 "false"로 지정한다.
- 중요 정보를 입력하는 곳에는 가상 키보드 사용한다.(종단 간 암호화로 인해 메모리에 계정정보가 평문으로 남지 않음)
다. 취약점 진단 실습
1. DDMS 설치
- DDMS
란 *Dalvik Debug Monitor Service의 약자로 안드로이드 OS의 디바이스나 에뮬레이터의 내부작동 및 상태를 모니터링하거나 통화, SMS, 위치정보 등을 가상으로 설정하여 개발시에 특정한 상황 등을 설정할 수 있는 디버깅 툴이다.
*달빅(Dalvik) 바이트 코드 : 안드로이드 런타임에서 구동되는 Java 바이트 코드로 smali 파일에 기입되어 있음
- 과거에는 안드로이드 스튜디오(Android Studio)
에서 DDMS를 사용할 수 있었지만, 3.1 버전부터 지원하지 않게 되었다.
- 아래의 첨부파일을 클릭하여 다운로드 할 수 있다.
2. DDMS 실행 및 디바이스 연결
- adb
를 이용해 디바이스와 PC를 연결한다.
adb connect 127.0.0.1:62001
※ adb에 대한 자세한 사용방법은 아래의 게시글을 참고하자.
[AOS App 취약점 진단 · 모의해킹] - adb 다운로드, 디바이스 연결 및 파일 송수신 명령어 정리
- ddms.bat
파일을 실행한다.
- 아래와 같이 온라인으로 표시되어야 PC와 디바이스가 정상적으로 연결되어 디버깅을 할 수 있다.
3. 분석 대상 앱 설치
- 실습을 위해 인시큐어뱅크
애플리케이션을 설치한다.
※ 인시큐어뱅크 앱이 설치되어있지 않은 사람은 아래의 글을 참고하여 앱을 설치하길 바란다.
2023.04.10 - [Mobile App 취약점 진단/AOS App 진단] - 인시큐어뱅크 앱 설치 및 실행 방법 정리(InsecureBankv2)
- 연결된 디바이스에서 인시큐어뱅크 애플리케이션을 실행한다.
- 아래의 사진과 같이 DDMS에 표시된 인시큐어뱅크 앱을 선택하고 ② Show heap updates
버튼을 클릭하여 메모리 덤프를 실행한다.
- 인시큐어뱅크의 패스워드 변경기능을 통해 패스워드를 변경한다.
- 패스워드 변경 후 ② Dump HPROF file
버튼을 클릭하여 덤프된 메모리 데이터를 PC에 저장한다.
- 저장한 메모리 덤프 파일(.hprof)
을 메모장으로 연다.
- 내용을 살펴보면 패스워드 변경 시 사용된 username과 password가 메모리에 평문으로 노출되었다는 것을 확인할 수 있다.
'Mobile App 취약점 진단 · 모의해킹 > AOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
DDMS.bat 실행 오류 해결방법(No suitable Java found) (0) | 2024.01.04 |
---|---|
[AOS 취약점 진단] 09강 - 메모리 내 중요정보 노출 확인(am dumpheap) (0) | 2023.12.09 |
[AOS 취약점 진단] 08강 - 디바이스 로그 내 저장된 중요정보 확인(실습 2) (0) | 2023.12.03 |
[AOS 취약점 진단] 08강 - 디바이스 로그 내 저장된 중요정보 확인(실습 1) (0) | 2023.12.03 |
[AOS 취약점 진단] 07강 - 애플리케이션 파일 및 데이터 권한 확인 (0) | 2023.12.03 |