본문으로 바로가기

안드로이드·갤럭시·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 버전부터 지원하지 않게 되었다.

- 아래의 첨부파일을 클릭하여 다운로드 할 수 있다.

DDMS.zip
9.40MB

 

2. DDMS 실행 및 디바이스 연결

- adb를 이용해 디바이스와 PC를 연결한다.

adb connect 127.0.0.1:62001

 

※ adb에 대한 자세한 사용방법은 아래의 게시글을 참고하자.

[AOS App 취약점 진단 · 모의해킹] - adb 다운로드, 디바이스 연결 및 파일 송수신 명령어 정리

 

adb 다운로드, 디바이스 연결 및 파일 송수신 명령어 정리

가. Android Debug Bridge(adb) 정의 - adb(안드로이드 디버그 브릿지)는 기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구이다. - 디바이스에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix Shel

hagsig.tistory.com

 

- ddms.bat 파일을 실행한다.

- 아래와 같이 온라인으로 표시되어야 PC와 디바이스가 정상적으로 연결되어 디버깅을 할 수 있다.

 

3. 분석 대상 앱 설치

- 실습을 위해 인시큐어뱅크 애플리케이션을 설치한다.

※ 인시큐어뱅크 앱이 설치되어있지 않은 사람은 아래의 글을 참고하여 앱을 설치하길 바란다.

2023.04.10 - [Mobile App 취약점 진단/AOS App 진단] - 인시큐어뱅크 앱 설치 및 실행 방법 정리(InsecureBankv2)

 

인시큐어뱅크 앱 설치 및 실행 방법 정리(InsecureBankv2)

1. 인시큐어뱅크 앱 이란? - 모바일 뱅킹 취약점 진단을 위한 테스트 용도로 제작된 애플리케이션이다. - 안드로이드 앱 취약점 진단을 실습할 수 있는 환경을 제공한다. - 2019년 이후로 업데이트

hagsig.tistory.com

 

- 연결된 디바이스에서 인시큐어뱅크 애플리케이션을 실행한다.

- 아래의 사진과 같이 DDMS에 표시된 인시큐어뱅크 앱을 선택하고 ② Show heap updates 버튼을 클릭하여 메모리 덤프를 실행한다.

 

- 인시큐어뱅크의 패스워드 변경기능을 통해 패스워드를 변경한다.

 

- 패스워드 변경 후 ② Dump HPROF file 버튼을 클릭하여 덤프된 메모리 데이터를 PC에 저장한다.

 

- 저장한 메모리 덤프 파일(.hprof)을 메모장으로 연다.

- 내용을 살펴보면 패스워드 변경 시 사용된 username과 password가 메모리에 평문으로 노출되었다는 것을 확인할 수 있다.