보안 공부/모바일 보안

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

H.J.World 2022. 6. 1. 23:29
728x90
반응형

개인적으로 공부하기 위해 정리한 내용입니다. 

두서없이 나열되어있으니.. 궁굼한점은 댓글..

 

Rooting : 안드로이드 운영체제를 탑재한 모바일 기기에서 관리자 권한을 획득하는것

루팅의 목적
1. 시스템 설정 변경
2. OS에대한 Root권한
3. File System 접근

 

ADB Tool : 안드로이드 장치와 통신하도록 연결

USIM을 사용하는 APP 진단

Wifi Detection
- APP에서 Cellural Data와 Wifi Data 사용을 확인하여 Wifi 사용 시 더 이상 서비스를 이용하지 못하도록 App 및 서비스 기능 종료
- Wifi 탐지 기능을 우회하면 기존 Wifi 사용 시와 진단 환경 구축은 같음.
- Wifi를 사용해야 진단 PC와 같은 네트워크에서 Network Proxy를 사용할 수 있음
- SMS 인증 등 곡 Cellural Data를 사용하여야 하는 경우가 있기 떄문에 이런 기능의 경우 USIM을 사용하되, Wifi를 통해 데이터가 전송 될 수 있도록 함수 후킹을 통한 변조 필요


정적분석
 - 분석할 타겟을 실제 실행 시키지 않은 상태로 분석
  -> App Binary 분석
  -> App Directory
목적
 - 앱의 동작 로직을 파악하기 위해
 - 동적 분석을 쉽게 하기 위해
 - 중요 정보가 단말기에 저장되어 있는지 확인하기 위해
 
 
동적분석
 - 분석할 타겟을 실제로 실행시키면서 분석을
  -> 원격 디버깅을 이용한 동적 분석
  -> 함수 후킹을 이용한 동적 분석
  -> TCP Proxy를 이용한 패킷 분석
  -> HTTP Proxy를 이용한 패킷 분석
  -> 코드 패치를 통한 동적 분석
 
동적분석의 목적
 - 앱의 동작 로직을 정확하게 파악하기 위해
 - 호출되는 메서드를 추적하기 위해
추출 
 - 백업 기능 : 위치(/sdcard/backups/apps)
 

함수 후킹
 - 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 등을 중간에서 바꾸거나 가로채는 명령, 방법 기술이나 행위를 말함
 - 함수가 실행 직후와 반환 직전에 임의의 코드를 삽입하여 실행시키는 것
 - 함수의 실행 흐름을 임의의 코드로 변경해주는것


Android Mobile Solution 분석
 -> App 정적 분석, 동적 분석을 어렵게 만들어 공격자로부터 App을 보호하려는 목적으로 적용됨
 -> Apple과 다르게 개발자가 많은 구현을 할 수 있어 솔루션에서 사용되는 Trick들이 굉장히 많고 굉장히 까다로움
 -> 루팅탐지, adti-디버깅, App 무결성, 앱 난독화
 
 1. 루팅 탐지
 -> Root 권한을 목적으로 행하는 안드로이드 디바이스 권한 상승
 -> 공격자 입장 : App을 정적분석, 동적분석 data 변조 및 해당 App이 사용하는 file들에 대한 접근을 하기 위해서
 -> 사용자 입장 : System app 제거, 잠겨있는 기능들을 사용하기 위해
 
 2. 루팅 탐지 원리
 -> 루팅이 되었을때 나타나는 특징들을 확인하여 루팅을 탐지함
 -> 설치된 Package 확인 : 루팅했을 떄 설치되는 App이 존재하는지 호가인하여 루팅 탐지, pm을 이용
 -> file 확인 : 루팅하면 존재하는 파일들 확인(su 등)
 -> build.prop 파일에서 기본값 확인 : ro.build.tag 등 기존값들을 확인
 -> Directory Permission 확인 : 루팅하고 시스템 디렉터리 권한을 확인하기

 3. 루팅 탐지 우회 원리
 -> 루팅 탐지하는 로직에 탐지되지 안도록 우회 , 코드 패치 or 함수 후킹

728x90
반응형