안드로이드 취약점진단에서 루팅 탐지 우회와 관련있는 매지스크 모듈인 Zygisk의 동작 원리에 대해 정리한다. Zygote 프로세스 개요 안드로이드 앱은 자바 코드로 작성되어 있고 가상머신인 안드로이드 런타임(ART)에서 동작한다. 앱이 실행될 따마다 가상머신을 초기화하고 자원을 할당하는 작업은 실행을 느리게 하는 원인이 된다. Zygote(자이고트) 프로세스는 앱이 실행되기 이전에 실행된 가상 머신의 코드 및 메모리 정보를 공유함으로써 실행시간을 단축한다. 리눅스의 fork() 시스템 콜의 동작 원리와 비슷하다. 자식 프로세스 'A'를 생성할 때 부모 프로세스의 메모리 구성 정보 및 공유 라이브러리에 대한 링크 정보를 공유한다. 부모 프로세스에는 이미 이러한 정보들을 가지고 있으므로 링크 정보만 매핑하..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다. 개요 동적분석을 실시하기 위해 앱을 설치하고 실행할 단말기 또는 에뮬레이터 등 분석환경을 준비한다. 실제 단말기를 사용하는 경우 루팅된 기기를 준비하며, 실습에서는 안드로이드 스튜디오를 이용한 에뮬레이터 단말 환경을 준비한다. 1. 동적 분석 환경 준비 안드로이드 스튜디오는 구글에서 제공하는 공식 홈페이지(https://developer.android.c..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다. 개요 이전 포스트에서 이어지는 글입니다. [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part2 Part 3. 세 번째 버튼은 클릭할 수 없도록 비활성화 되어 있다. 앱에서 사용 불가능하도록 disabled ..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다. 개요 이전 포스팅에서 이어지는 글입니다. 2023.08.05 - [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 두 번째 Flag 찾기 두 번째 버튼에 관련 로직이 존재하고 있다. 계속 MainActivity를 분석하면 버튼을 생성하고 버튼에 실행할 class를 명시하고 있다. setOnClickLis..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 1. 개요 APK 정적 분석 과정을 거치면서 감은 잡혔지만 실습해보기 전까진 이게 맞는건지 확실하지 않을 수 있기 때문에 직접 앱개발과 분석 과정을 추가했다. 애플리케이션 레벨의 취약점은 개발자의 실수에서 야기되는 경우가 많기 때문에 직접 개발해보는 것이 필요하다. 직접 개발을 하면서 귀찮았던점, 느슨하게 처리한 부분이 실제 상용 앱에서도 동일하게 취약점이 발생할 가능성이 높다. 필자가 개발한 앱은 github(https://github.com/colfax0483/Vulnerable_a..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 안드로이드는 SSL 통신을 지원하며, 단대단 암호화 적용 후 패킷을 주고 받는다. 앱이 서버와 정상 통신을 하기 위해서는 상호간의 신뢰할 수 있는 인증서를 가진 상태에서 공개키를 이용한 암호화를 적용한 패킷을 전송한다. 하지만 암호화된 패킷은 분석가가 패킷의 내용을 살피기 어렵기 때문에 복호화하는 과정이 필요하다. - 단말기 입장에서는 분석가의 Proxy 도구(Burp 등)가 서버가 되어 인증서를 대체한다. - 앱 서버 입장에서는 분석가의 Proxy 도구가 단말기가 되어 인증서를 ..