모바일 7

단말기 내 중요정보 저장 여부

취약점 개요 애플리케이션 사용 폴더 및 외부 저장소에 존재하는 파일 내 중요정보 저장 여부를 점검한다. 외부저장소에는 어떤 정보이든 서비스에 중요한 역할을 하는 정보를 저장해서는 안되며, 내부 저장소에 저장이 되더라도 암호화되어 안전하게 저장되어야 한다. 내부저장소와 외부저장소 안드로이드는 데이터를 저장할 때 내부 저장소와 내부 저장소로 나눌 수 있다. 내부 저장소 - 안드로이드 플랫폼, 시스템 등에서 사용되는 공간 - 안드로이드 API에 의해 권한이 통제 외부 저장소 - 애플리케이션 간 데이터 공유 가능 - WRITE_EXTERNAL_STROAGE 권한을 갖고 있는 애플리케이션은 설정에 따라 데이터를 읽고 쓰는 것이 가능 데이터를 저장하는 방법 1) Shared Preferences - 원시 데이터를 ..

메모리 내 중요정보 저장 여부

취약점 개요 앱에 입력하는 모든 입력값과 앱이 실행되는 모든 정보들이 메모리에 적재되어 실행된 후, 실행이 완료되면 다른 데이터들로 채워진다. 해당 이용자 단말기 메모리 영역에서 이용자 중요정보의 평문 노출 여부 점검한다. Honeycomb이후 버전의 메모리 구조 안드로이드에서는 자바 가상머신 대신 달빅 가상머신을 사용하여 앱을 구현한다. 프로세스가 실행될 때마다 달빅 가상 머신을 사용하여 동작에 필요한만큼 메모리를 할당하고, 더 사용해야 한다면 프로세스당 허용된 메모리 내에서 할당한다. (허용된 메모리 한계 이상을 사용하면 OOM(Out Of Menory)에러가 발생한다. 애플리케이션이 실행되는 동안 참조하고 정보를 저장하는 메모리 영역은 "Dalvik heap allocated" 영역이므로 해당 영역..

안드로이드 루팅 탐지

안드로이드 루팅 탐지 SU 명령어로 확인 su 명령어가 실행여부로 확인 try { Runtime.getRuntime().exec("su"); } catch ( Exception e) { //Exception이 발생한다면 Rooting이 되지 않은 것으로 확인 } 프로세스 리스트로 확인 루팅 관련 프로세스 존재 여부로 확인 Runtime.getRuntime().exec("ps") 루팅 관련 어플 확인 루팅 관련 어플 설치여부로 확인 KingRoot spapaRoot owelRoot SU파일 존재 유무 확인 su 파일 존재 유무로 확인 /system/bin/su /system/xbin/su /sbin/su /system/su /system/bin/.ext/.su /system/usr/su-backup sys..

ADB(Android Debug Bridge) 사용법

ADB(Android Debug Bridge) - 안드로이드 애뮬레이터나 PC에 실제 연결된 장치를 제어하기 위한 안드로이드 디버깅 도구 - CLI를 통해 명령어를 입력하여 안드로이드 기기와 통신 ADB 설치 위치 - 안드로이드 SDK에 기본적으로 포함 - SDK 폴더의 하위 폴더인 platform-tools에 포함 - Nox의 ADB 경로 : C:\Program Files (x86)\Nox\bin ADB 동작 과정 1. ADB 클라이언트가 시작되면 가장 먼저 ADB 서버 프로세스가 실행중인지를 점검 2. 만약 서버 프로세스가 실행 상태가 아니라면 서버 프로세스를 구동 3. 서버가 구동되면서 TCP 5037 포트에 바인드시키고, 모든 클라이언트는 5037 포트를 통해 ADB 서버와 통신 1) 서버가 동작..