보안 공부/모바일 보안

안드로이드(Android) 모의해킹/보안진단(1)

H.J.World 2022. 5. 25. 23:55
728x90
반응형

Android 보안위협
 1. 포렌식 공격
  - 공격 시나리오 : 공격자는 피해자의 단말기를 탈쥐한 후 메모리와 디스크 정보를 덤프하여 주용 정보들을 탈취
  - 설명 : 디바이스의 물리적인 저장소의 조사 / 폰 또는 테블릿 절도는 다른 컴퓨팅 장치를 훔치는 것보다 쉽고 빈번함
 2. 코드 실행 공격
  - 공격 시나리오 : 공격자가 피해자 단말기에서 실행 되는 앱의 입의 코드 실행 취약점을 이용해 피해자의 단말기에서 임의 코드를 실행하여 단말기를 장악
  - 설명 : 단말기 혹은 단말기 앱의 임의 코드 실행 취약점을 이용해 공격자가 원하는 임의의 코드가 피해자의 단말기에서 실핼될 수 있음
 3. 웹 기반 공격
   - 공격 시나리오 : 공격자가 웹 뷰를 통해 만들어진 앱에서 웹 취약점을 통해 사용자 및 서버 공격
   - 설명 : 악의적으로 제작된 HTML과 자바스크립트를 사용하여 사용자를 공격할 수 있음
 4. 악성 앱 공격
   - 공격 시나리오 : 공격자는 유명한 앱의 서명 개인키를 탈취해 악성 코드를 삽입한 업데이트 버전을 배포하는 방식으로 공격 가능
   - 설명 : 공격자가 악의적으로 만든 앱을 배포하여 사용자들의 단말기를 공격할 수 있음
 
Android 이해
 1. Linux Kernel
  - 리눅스 계열을 사용하는 Android의 핵심으로 하드웨어와 우리가 사용하고 있는 OS를 연결 시켜주는 다리와 같은 존재
 2. Android kernel
  - Binder : Android 전용 프로세스 간 통신 메커니즘 원격 메소드 호출 시스템
  - Ashmem(Android Shared Memmory) : 안드로이드 공유 메모리
  - Pmem(Process Memmory allocator) : 프로세스 메모리 할당자
  - Logger : logcat 명령
 3. HAL(hardware Abstraction Layer) 하드웨어에 대한 공통 명령어 집합들로 이루어져 있으며, 프레임워크의 요청에 따라 해당 하드웨어 라이브러리 모듈을 제공
 4. Runtime
  - AOT, JIT
  - 최적화된 GC
 5. Booting Process
 1). Power On : 물리적 하드웨어에 전원 공급
 2). Boot Loader : ROM에 저장되어 있는 Boot ROM 코드 실행 -> RAM에 Boot Loader로드
 3). Kernel : Init Process 실행
 4). Init : /sys, /dev, /proc 디렉토리 마운트 init.rc 스크립트 실행
 5). Zygote : Dalvik VM 초기화& 실행 시키고 Android 디바이으에서 App 실행 시 메모리 사용량을 최소화 하기 위한 준비를 함
 6). System Server & Managers : native library를 Call하여 Native System Service 구동
 
APK 구조
 - assets : 앱 실행에 필요한 자원(동영상 등)
 - res : 앱 실행에 필요한 자원 (아이콘 등)
 - META-INF : 인증 서명과 관련한 정보
 - libs : 라이브러리 파일
 - AndroidManifest.xml : Android 정의 파일로 Android App 정보 (접근권한, 버전 등)
 - resources.arsc : 파일의 리소스의 배열리아는 뜻으로 res 정보가 들어있는 파일
 - class.dex : Android 가상머신 달빅(Dalvik)이 인식할 수 있도록 *.class 파일을 바이트 코드로 변환 시킨 소스 파일로

AndroidManifest.xml
 - 고유한 패키지 이름
 - Activity, Service, Broadcast Receiver, Instrumentation Definition
 - 권한 정의
 - 응용프로그램과 함께 패키지 되어 사용되는 외부 라이브라리에 대한정보
 - 공유 UID정보, 기본 설치 위치 및 UI정보

728x90
반응형