보안 공부/모바일 보안

[iOS 취약점 진단] iOS 자체 보안

H.J.World 2022. 4. 30. 10:10
728x90
반응형

1. Chain Of Trust

BootROM -> LLB(Low Level Boot) -> iBoot -> Kernel
    Signiture Check      Signiture Check

- iDevice 전원을 키는 순간 부터 부팅까지 모든 과정에 있어서 서명 검증을 하고 있음
- 시스템의 모든 구성 요소들이 애플에 의해 만들어지고 서명되었음을 보증
- 이 체인은 Bootstrap이 각각의 애플리케이션의 서명을 확인하는데 사용되며, 모든 애플리케이션은 직접적으로 혹은 간접적으로 애플에 의해 서명되어야함

2. 파일 데이터 보호
Software
- file Encrption System : 파일 전체 암호화를 통한 데이터 보호

Hardware
- Cypto Engine : 하드웨어에 내장된 전용 암호 엔진
- Secure Enclave : 하드웨어 베이스의 키 매니저

3. 코드서명
Application Code Signing
- iOS kernel은 Apple에 의해 직접적으로 또는 간접적으로 서명된 앱만 실행 가능
- 악성 행위를 하는 App이 배포되거나 실행되기 힘듬
- 탈옥을 통해 서명되지 않은 앱 실행시킬 수 있음

4. ARLR
- 메모리 주소 영역을 고정시키지 않고 랜덤화하는 기술
- iOS에서는 바이너리 코드와 라이브러리, 동적 링커, 스택, 힙 같은 주소 영역들이 모두 랜덤화
- 공격 코드 개발 힘듬

5. iOS 기능 축소
- 공격에 활용될 수 있는 애플리케이션 수를 크게 줄임 -> 사용자에게 제한된 권한을 제공
- /bin/sh 자체가 없고, 제공되더라도 rm, ls, ps등과 같은 명령어 사용 불가
- 공격 벡터를 줄이기 위해 여러 가지 기능들을 제공하지 않음
  -> 이래서 탈옥이 필요

6. 권한 분리
- 앱은 모두 Mobile이란 사용자 권한으로 실행
- 시스템 관련 동작은 _wireless나 _mdnspresponder 등과 같은 권한으로 수행됨
- 애플리케이션으로 침투한 공격자가 수행할 수 있는 동작에 한계가 존재

7. 샌드박스
- 애플리케이션 마다 샌드박스
- 일반적으로 앱이 다른 앱의 디렉터리 접근 불가
- Bundle 디렉토리 안에서 실행되고 동작함
 -> 공격코드 생성에 어려움, 공격이 성공해도 다음단계(메시지 보내거나, 전화를 걸거나) 하기 어려움

728x90
반응형