직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항)이전 글에 이어지는 글입니다.[안드로이드 모의해킹] 코드 패치와 앱 무결성 검증 (smali 코드 분석) 개요 어셈블리 코드 수정(NDK) 안드로이드 NDK로 개발된 코드 또한 수정이 가능하다. 직접 예제 코드를 작성하고 변조하는 실습을 진행한다. 안드로이드 스튜디오에서 새 프로젝트 생성을 선택하고 Native C++ 프로젝트를 생성한다. 네이티브 언어로 함수를 정의한다. 함수의 기능은 이전의 실습과 유사하게 두 정수의 합을 반환하는 기능을 수행한다. 상용 앱에서는 더 복잡한 기능을 수행하..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 안드로이드 단말의 무결성만큼 앱의 무결성도 매우 중요하다. 공격자가 앱 내부 코드를 변조하여 리패키징을 수행하면, 악성코드가 앱 내부에 삽입될 수 있다. 안드로이드 설치 파일은 구글 플레이 스토어뿐만 아니라 제3자 제공 스토어에서도 다운로드 받을 수 있으며, 단말에서 허용하는 경우 apk 파일을 별도로 다운로드 하여 설치할 수 있다. 이 과정에서 위∙변조된 앱이 설치되면 사용자 데이터에 접근하거나 민감정보가 유출될 수 있다. 예를 들어 기존 앱과 동일한 뷰로 로그인 기능을 구현하..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항)학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다.1. 개요앱이 설치되는 경로와 사용자 데이터가 분리되면, 앱과 사용자 데이터 간에 격리된 환경을 유지할 수 있다. 이를 통해 앱 간 서로의 데이터 접근을 방지하고, 민감한 정보의 유출을 예방할 수 있다. 그러나 루트 사용자는 데이터 경로와 관계없이 접근할 수 있어 보안에 취약할 수 있다.동적 분석에서의 중요정보 저장 취약점 진단은 기능을 직접 실행하면서 데이터..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 정보가 저장되는 위치와 값을 확인했다면 정보의 중요성과 민감도를 판단하는 과정이 필요하다.찾은 정보가 중요정보인지 여부를 판단하는 기준을 수립하기 위해 안드로이드 단말에 존재하는 정보 자산과 기능 자산의 유형을 소개한다. 앱을 분석할 때 다음의 기능들을 포함하여 안전한 데이터 처리를 구현하고 있는지 확인한다. 정보 요소 전화번호 단말기 전화번호 통화기록 통화시간, 날짜, 수발신 기록 등 IMEI 단말기 ID 센서 정보 Wi-Fi, Bluetooth, NFC, 조도 센서, 근접 센서..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 앱이 설치되는 경로와 사용자 데이터가 분리되면, 앱과 사용자 데이터 간에 격리된 환경을 유지할 수 있다. 앱 간의 서로에 데이터에 접근하지 못하도록 방지하고, 민감한 정보의 유출을 예방할 수 있다. 하지만 앱의 사용자 데이터는 루트 사용자는 경로에 관계없이 접근할 수 있으며, 앱 업데이트나 제거와 무관하게 유지되는 경우가 있기 때문에 민감정보가 보관되어 있는 경우 보안에 취약해질 수 있다. 동적 분석에서의 중요정보 저장 취약점 진단은 정적분석과는 다르게 기능을 직접 실행하면서 쌓이..
사전지식 패스트부트(Fastboot) 부트로더 언락 등의 작업을 수행할 수 있으며 system, boot, recovery 등 다양한 영역의 펌웨어를 교체작업할 수 있는 엔지니어링 프로토콜이다. 부트로더가 허용하는 경우에만 시스템을 플래싱할 수 있으며, 부트로더는 기본적으로 잠겨 있다. 부트로더를 잠금해제 할 수는 있지만 해제하는 시점에 개인정보보호를 위해 저장된 사용자 데이터는 모두 삭제된다. 삼성 단말기에서는 패스트부트라는 용어 대신 다운로드 모드(download mode)라는 명칭을 사용한다. Magisk 동작원리 systemless working boot.img에 'init' 파일이 빌드되어 있기 때문에 boot.img 파일을 수정하는 것이 필요하며, /system 경로의 파일은 수정할 필요가 없..
안드로이드 취약점진단에서 루팅 탐지 우회와 관련있는 매지스크 모듈인 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..