Mobile Forensic/iOS

Understanding the Internals of iOS Devices

liqu3ur 2025. 3. 9. 16:27
반응형

iPhone models

iPhone은 시장에서 가장 인기 있는 스마트폰 중 하나이다. Apple는 2007년 6월에 1세대 아이폰을 출시했다. 첫 출시 이후 아이폰은 뛰어난 기능성과 사용 편의성 덕분에 엄청난 인기를 얻었다. iPhone 5 이후에 출시된 기기들에서는 데이터를 물리적으로 복구기에는 어려움이 있지만, 해당 기기가 jailbreaking된 상태라면 예외이다. 그러나 아이폰이 잠금 해제된 경우 파일 시스템 및 논리적 데이터 수집은 가능하다.

 

Identifying the correct hardware model

아이폰을 조사하기에 앞서, 올바른 하드웨어 모델과 기기에 설치된 펌웨어 버전을 식별하는 것이 필요하다. 아이폰의 세부 정보를 아는 것은 해당 기기에서 증거를 확보하는 과정에서의 중요성과 가능성을 이해하는 데 큰 도움이 된다. 예로 파일 시스템이나 논리적 이미지를 수집하기 위해서는 기기의 비밀번호(passcode)가 필요하다. 설령 기기의 물리적 지원이 가능하더라도 이메일이나 비밀번호와 같은 데이터를 복호화하려면 passcode가 필수적이다. iOS 버전, 기기 모델, passcode의 복잡성에 따라 brute force attack을 통해 passcode를 얻을 수도 있다.

기기의 하드웨어를 식별하는 방법은 여러 가지가 있다. 가장 쉬운 방법은 Apple의 기술 문서를 통해 기기 뒷면에 표시된 모델 번호를 확인하는 것이다. 아이폰 모델을 식별하는 방법에 대한 자세한 내용은 다음에서 확인할 수 있다. https://support.apple.com/en-in/108044 

아이폰의 펌웨어 버전은 '설정 → 일반 → 정보 → 버전'을 통해 확인할 수 있다. 펌웨어는 특정 기능을 활성화하고 기기의적인 작동을 지원하는 역할을 한다.

또 다른 방법으로는 libimobiledevice 소프트웨어 라이브러리의 ideviceinfo 명령어 도구를 사용해 아이폰 모델과 iOS 버전을 식별할 수 있다. 이 라이브러리는 passcode로 잠겨 있는 기기와도 통신할 수 있도록 지원한다. 이 명령어 도구는 Homebrew를 사용해 설치하는 방법이 가장 쉽다. Homebrew는 Apple의 macOS 운영체제에서 사용할 수 있는 무료 오픈소스 소프트웨어 패키지 관리 시스템이다. Homebrew를 통해 간편하게 libimobiledevice 라이브러리를 설치하고 사용할 수 있다.

macOS에서 아이폰 모델과 iOS 버전 정보를 확인하는 방법은 아래와 같다.

# 터미널(Terminal) 애플리케이션 실행
@ Homebrew 설치
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
# libimobiledevice 라이브러리 설치
brew install libimobiledevice
# 아이폰 연결 및 ideviceinfo 명령 실행
ideviceinfo -s

 

Windows PC의 경우는 iExplorer와 같은 무료 도구를 사용해 아이폰의 정보를 확인할 수 있다. 이 도구들은 iOS 기기의 모델, 내부 이름, iOS 버전 등과 같은 정보를 제공한다. Mac과 Windows에서 아이폰 정보를 복구하는 방법은 ipad 기기에도 동일하게 적용된다.

 

아이폰의 각 신규 모델은 향상된 기능이나 새롭게 추가된 특징을 가지고 출시된다. 앞서 언급한 것과 같이 아이폰의 세부 정보를 아는 것은 해당 기기에서 증거를 확보하는 과정에서의 중요성과 가능성을 이해하는 데 필수적이다.

포렌식 수사관은 사용할 도구와 방법론이 해당 아이폰 모델에 지원해야 하기 때문에 기기 모델을 반드시 알아야 한다. 또한 아이폰의 내부 저장 용량을 파악해 포렌식 이미지 전체를 저장할 수 있을 만큼 충분히 큰 증거 저장소를 준비해야 한다. 대부분의 도구는 증거 드라이브의 디스크 공간이 부족해질 때까지 경고를 해주지 않기에 저장 공간 부족으로 인해 시간을 낭비하고 기기를 다시 수집해야 하는 상황이 발생할 수 있다.

마지막으로, 기기의 네트워크 기능도 반드시 확인해야 한다. 이는 수사 과정에서 원격 접속이나 데이터 삭제(wiping)를 방지하기 위해 기기를 적절히 격리하는 데 필요하다. 

 

아래 이미지는 시대에 따라 변하는 iPhone 모델의 사양과 기능을 정리한 표이다.

 

아이폰 하드웨어에 대한 기본적인 이해는 포렌식 수사를 수행하는 과정에서 기기를 어떻게 다뤄야 할지 판단하는 데 큰 도움이 된다. 일부 모델은 전체 디스크 암호화를 강제하지만, 구형 모델은 그렇지 않는다. 암호화된 기기의 데이터를 수집하는 과정에서는 추가적인 절차가 필요하며, 경우에 따라서는 접근 자체가 어려울 수도 있다. 따라서 수사관은 데이터 수집 및 분석 단계에서 발생할 수 있는 모든 장애물에 대비해야 한다.

또한, 아이폰의 기능과 초기 OS 버전 및 현재 OS 버전에 대한 이해도 중요하다. 이 정보에 따라 복구 가능한 데이터의 종류와 위치가 달라질 수도 있기 때문이다. Apple는 iOS 버전마다 데이터 저장 위치가 일관되지 않으므로, 최초 사용 시 설치된 OS 버전을 아는 것이 포렌식 도구가 중요한 데이터를 놓치지 않도록 하는 데 필수적이다.

 

iPhone hardware

아이폰은 다양한 제조업체에서 제공하는 모듈, 칩, 전자 부품들이 모여 구성된 기기이다. 아이폰의 복잡성 때문에 하드웨어 구성 요소는 매우 방대하며, 각 기기마다 내부 부품에 대한 연구가 필요하다. 아이폰의 분해한 후의 이미지는 https://ko.ifixit.com/Device/iPhone 사이트에서 확인할 수 있다.

 

iPad models

Apple iPhone은 휴대폰의 생산과 사용 방식을 완전히 바꾸어 놓았다. 마찬가지로, 2010년 1월에 출시된 iPad는 노트북의 판매에 큰 영향을 미쳤다. iPad를 통해 개인들은 비디오 촬영, 사진 촬영, 음악 재생, 책 읽기, 인터넷 탐색 등 다양한 기능을 활용할 수 있게 되었다. iPad 모델을 식별하는 방법에 대한 자세한 내용은 https://support.apple.com/en-in/108043 에서 확인할 수 있다.

iPhone과 마찬가지로, 모든 iPad 버전이 물리적 수집을 지원하는 것은 아니다. 또한, Apple은 iOS 버전마다 데이터 저장 위치를 변경했기 때문에 iPad 기기에도 영향을 미친다. 포렌식 수사는 다양한 iPad 모델과 출시된 iOS 버전, 현재 설치된 iOS 버전, 저장 용량, 네트워크 접근 벡터 등을 모두 고려해야 한다. iPad 모델들의 사양과 기능은 Apple 공식 사이트 또는 기기 관련 문서에서 확인할 수 있다.

 

Understanding the iPad hardware

Apple iOS 기기의 성공적인 요소 중 하나는 하드웨어 구성 요소의 적절한 선택이다. iPhone과 마찬가지로 iPad도 다양한 제조업체에서 제공하는 모듈, 칩, 전자 부품들이 모여 이루어진 기기이다. iPad의 내부 이미지는 https://ko.ifixit.com/Device/iPad 에서 확인할 수 있다.

 

Apple Watch models

애플워치는 2015년 봄에 출시되었다. 이 스마트워치는 사용자가 iPhone 데이터를 워치와 동기화하고, iPhone 과 상호작용하며 독립적인 장치로서 기능할 수 있도록 한다. 애플워치를 사용하면 전화를 받거나, SMS, iMessage 및 이메일을 보내고 응답할 수 있으며, third-party 애플리케이션을 사용할 수 있고, Apple map을 통해 길찾기 등을 할 수 있다. 애플워치는 iOS 8.2 이상을 실행할 수 있는 iPhone 과만 페어링할 수 있으며, iPad와는 호환되지 않는다. 

초기 Watch OS는 워치가 iPhone 의 Bluetooth 범위 내에 있어야만 모든 기능이 작동했으나, Watch OS 2.X부터는 Wi-Fi를 통해 독립적으로 작동할 수 있게 되었다. 애플워치 3는 2017년 9월 12일에 처음 소개되어 9월 22일에 iPhone 8과 함께 출시되었다. iPhone 5S 이상에서 iOS 11 이상을 실행해야 하며, LTE 셀룰러 연결이 내장되어 있어 음성 및 데이터 통신이 가능하다.

 

Understanding the Apple Watch hardware

애플워치에는 두 가지 크기가 있지만, 하드웨어는 각 모델에서 비슷하다. Apple은 애플워치의 전체 사양을 공개하지 않았기 때문에, 현재 우리가 알고 있는 정보에 의존할 수밖에 없다. 

 

Filesystem

iOS 기기의 포렌식 절차를 잘 이해하려면 사용되는 파일 시스템에 대해 아는 것이 중요하다. iPhone과 다른 Apple iOS 기기에서 사용되는 파일 시스템은 HFSX이다. 이는 HFS Plus의 변형이며, 주요 차이점은 HFSX는 대소문자를 구분하는 반면 HFS Plus는 대소문자를 구분하지 않는다는 점이다. 

OS X는 기본적으로 HFS Plus를 사용하며, iOS는 HFSX를 사용한다. 애플 파일 시스템(APFS)은 2016년 6월에 HFS+의 대체 시스템으로 도입되었으며, iOS 10.3 버전에서 iOS 기기용으로, macOS 10.13 버전에서 macOS 기기용으로 출시되었다.

 

HFS Plus filesystem

1996년 Apple은 대용량 데이터셋의 저장을 지원하기 위해 새로운 파일 시스템인 계층적 파일 시스템(HFS)을 개발했다. HFS 파일 시스템에서는 저장 매체가 볼륨으로 표시되며, HFS 볼륨은 512 byte의  논리적 볼륨으로 나누어진다. 논리적 볼륨은 주어진 볼륨에서 첫 번째부터 마지막까지 번호가 매겨지며, 물리적 블록과 동일한 크기인 512 byte로 고정된다. 이러한 논리적 블록은 할당 블록으로 그룹화되어 HFS 파일 시스템이 데이터를 보다 효율적으로 추적할 수 있도록 돕는다. HFS는 16 bit 값을 사용하여 할당 블록에 주소를 지정하며, 이로 인해 할당 블록의 수는 65,535로 제한된다. HFS의 디스크 공간 할당 비효율성과 몇 가지 제한 사항을 극복하기 위해 Apple은 HFS Plus 파일 시스템을 도입했다.

 

HFS Plus 파일 시스템은 더 큰 파일 크기를 지원하도록 설계되었다. HFS 볼륨은 일반적으로 512 byte 크기의 섹터로 나뉘며, 이러한 섹터는 할당 블록으로 그룹화된다. HFS 볼륨은 일반적으로 512 byte 크기의 섹터로 나뉘며, 이러한 섹터는 할당 블록으로 그룹화된다. 할당 블록의 수는 볼륨의 전체 크기에 따라 달라진다. HFS Plus는 32 bit 블록 주소를 사용하여 할당 블록에 주소를 지정한다. 기본적으로 Journaling을 사용하는 HFS Plus는 디스크에 대한 모든 트랜잭션을 기록하여 파일 시스템 손상을 방지하는 데 도움을 준다. HFS Plus 파일 시스템의 주요 특징은 아래와 같다.

  • 디스크 공간의 효율적 사용
  • 파일 이름을 위한 유니코드 지원
  • name forks 지원
  • 파일 압축
  • Journaling
  • 동적 크기 조정
  • 동적 파일 재배열 및 저장(defragmentation)
  • macOS 외의 운영체제에서 부팅 가능

 

HFS Plus volume

HFS Plus 볼륨은 데이터를 체계적으로 관리하기 위해 여러 내부 구조를 포함하고 있다. 이러한 구조에는 Header, Alternate Header, 5개의 Special File이 있다. 5개의 Special File은 아래와 같다.

  • Allocation File
  • Extents Overflow File
  • Catalog File
  • Attributes File
  • Startup File

이 중 Extents Overflow File, Catalog File, Attributes File은 B-tree 구조를 사용한다. B-tree 구조는 데이터를 효율적으로 검색, 조회, 수정, 삭제할 수 있는 자료구조이다. HFS Plus 볼륨 구조는 아래 이미지와 같다.

HFS Plus Volume structure

볼륨 구조에 대한 설명은 아래와 같다.

  • 1024 bytes : 부팅 로드 정보를 위해 예약된 영역이다.
  • Volume Header : 할당 블록 크기, 볼륨 생성 시각, 5개의 Special File에 대한 메타데이터 등 볼륨 정보를 저장한다.
  • Allocation File : 시스템에서 사용 중인 할당 블록을 추적하는 파일이다. 각 할당 블록에 대해 1 bit씩 할당되며, 비트가 설정되어 있으면 사용 중은 블록이고 설정되지 않으면 비어 있는 블록이다.
  • Extents Overflow File : 파일 크기가 8블록을 초과할 때 할당된 블록 정보를 기록하며, 실제 데이터를 찾을 때 참조된다. 이 파일은 불량 블록 정보도 기록한다.
  • Catalog File : 볼륨 내의 파일 및 폴더 계층 구조 정보를 담고 있어 파일과 폴더의 위치를 찾는 데 사용된다.
  • Attributes File : 인라인 데이터 속성 레코드, 포크 데이터 속성 레코드, 확장 속성 레코드 등을 포함한다.
  • Startup File : HFS Plus를 지원하지 않는 시스템에서 부팅을 도와주는 정보를 담고 있다.
  • Alternate Volume Header : 볼륨 헤더의 백업으로, 디스크 복구 시 주로 사용된다.
  • 512 bytes : Apple이 제조 과정에서 사용하는 용도로 예약된 영역이다.

 

APFS filesystem

APFS(Apple File System)는 iOS, macOS, tvOS, watchOS용으로 설계된 64bit 파일 시스템으로, 단일 볼륨에서 9경 개 이상의 파일을 지원한다. 주요 기능은 아래와 같다.

  • Clones : 파일이나 디렉토리의 즉각적인 복사본 생성, 수정 사항은 별도의 위치에 저장, 변경 전 블록은 계속 공유된다. 변경 사항은 클론 파일의 델타로 저장
  • Snapshots : 파일 시스템의 특정 시점에 대한 읽기 전용 인스턴스
  • Space Sharing : 여러 파일 시스템이 물리적 볼륨의 동일한 여유 공간을 공유하도록 허용
  • Encryption : 세 가지 모드 지원
    - 암호화 없음
    - 단일 키 암호화
    - 다중 키 암호화(파일 데이터용 개별 키와 민감한 메타데이터용 별도 키 사용) 하드웨어에 따라 AES-XTS 또는 AES-CBC 암호화 방식 사용
  • Crash protection : Copy-on-Write 메타데이터 방식을 사용해 파일 시스템 업데이트 중 장애 발생 시 데이터 보호
  • Sparse(희소) files : 파일의 논리적 크기가 디스크에서 실제 차지하는 물리적 공간보다 클 수 있도록 허용
  • Fast directory sizing(크기 계산) : 디렉토리 계층이 확장될 때, 디렉토리의 총 사용 공간을 빠르게 계산하고 업데이트 가능

 

The APFS structure

APFS는 하나의 컨테이너로 구성되며, 이 컨테이너 안에는 하나 이상의 볼륨이 포함될 수 있다. APFS 구조는 아래 이미지와 같다.

APFS 구조 개요

APFS의 각 파일 시스템은 구조는 블록 헤더로 시작한다. 블록 헤더는 Fletcher의 체크섬 알고리즘을 사용한 전체 블록의 체크섬으로 시작하며, Copy-on-Write 버전, 블록 ID, 블록 유형을 포함한다.

  • Container Superblock은 블록 크기, 블록 수, 공간 관리자를 위한 포인터, 모든 볼륨의 블록 ID, 블록 맵 B-tree에 대한 포인터(각 볼륨의 ID와 오프셋 포함)를 저장한다.
  • Nodes는 다양한 종류의 항목을 저장하는 데 사용된다. B-tree의 일부이거나 독립적으로 존재할 수 있으며, 유연한 크기 또는 고정된 크기의 항목을 포함할 수 있다.
  • Space Manager는 APFS 컨테이너 내 할당된 블록을 관리하고, 사용 가능한 블록 수와 할당 정보 파일에 대한 포인터를 저장한다.
  • Allocation Info File은 할당 파일의 길이, 버전, 오프셋 정보를 저장한다.
  • B-tree는 여러 노드를 관리하며, 루트 노드의 오프셋을 포함한다.
  • Volume Superblock은 볼륨의 이름, ID, 타임스탬프를 포함한다.
  • Allocation File은 단순한 비트맵 형태로 구성되며, 블록 헤더와 타입 ID가 없다.

 

Disk layout

기본적으로 파일 시스템은 두 개의 논리적 디스크 파티션으로 구성된다. 시스템(root 또는 펌웨어) 파티션과 사용자 데이터 파티션이다.

 

시스템 파티션

  • OS와 iPhone에 기본적으로 설치된 애플리케이션이 포함된다.
  • 읽기 전용으로 마운트되며, OS 업그레이드 중이거나 장치가 탈옥된 경우에만 쓰기 가능 상태가 된다.
  • 펌웨어 업그레이드가 수행될 때만 업데이트되며, 이 과정에서 전체 시스템 파티션이 포맷되지만 사용자 데이터는 영향을 받지 않는다.
  • 시스템 파티션은 NAND 드라이브 크기에 따라 보통 0.9GB에서 2.7GB 정도의 작은 공간을 차지한다.
  • 일반적으로 공장 출하 상태로 유지되므로, 유의미한 증거 데이터를 얻기는 어렵다.
  • 만약 iOS 기기가 탈옥되면, 탈옥 관련 정보와 사용자 데이터가 시스템 파티션에 저장될 수 있다. 탈옥은 사용자에게 루트 접근 권한을 제공하지만, 제조사의 보증이 무효화된다.

사용자 데이터 파티션

  • 음악, 연락처, 서드파티 앱 데이터 등 사용자가 생성한 모든 데이터를 포함한다.
  • NAND 메모리의 대부분을 차지하며, 장치에서 /private/var 경로에 마운트된다.
  • 포렌식에서 중요한 대부분의 증거 데이터가 이 파티션에 존재한다.
  • 물리적 수집 시, 사용자 데이터와 시스템 파티션 모두 .dmg 또는 .img 파일 형식으로 캡처하고 저장해야 한다.
    • Windows 기반 도구 및 방법은 주로 주로 .img 파일을 생성한다.
    • macOS 기반 도구 및 방법은 .dmg 파일을 생성한다.
  • 두 형식의 이미지 파일은 대부분의 상용 포렌식 분석 도구에서 지원된다.
  • 이러한 raw 이미지 파일은 읽기 전용으로 마운트하여 포렌식 분석에 사용된다.

 

iPhone operating system

iOS는 Apple의 가장 진보되고 기능이 풍부한 독점 모바일 운영체제이다. 1세대 iPhone과 함께 출시되었으며, 처음에는 iPhone OS로 불렸지만 이후 iOS로 이름이 변경되어 iPhone, iPod touch, iPad, Apple TV 등 모든 Apple iOS 기기를 구동하는 통합 운영체제를 나타내게 되었다. iOS는 macOS X의 핵심 기술에서 파생되어, 모바일 장치에 맞게 자그마하고 효율적으로 최적화되었다.

iOS의 주요 특징은 아래와 같다.

  • Multi-Touch Interface : 손가락으로 화면을 스와이프해 페이지를 넘기거나, 두 손가락을 오므려 화면을 확대·축소하는 등의 제스처를 통해 장치를 직관적으로 조작 가능
  • 장치의 전반적인 작동 지원 : iOS는 장치가 원활하게 동작하도록 전반적인 시스템을 관리

macOS X와의 주요 차이점은 아래와 같다.

  • Architecture : macOS X는 Intel x86_64 기반, iOS는 ARM 기반으로 커널과 바이너리가 컴파일
  • Kernel : macOS X 커널은 오픈소스지만, iOS 커널은 비공개이다.
  • 메모리 관리 : 모바일 환경에 맞춰 훨씬 더 엄격한 메모리 관리
  • 보안 강화 : 시스템이 강화되어 기본 API에 대한 접근이 제한된다.

 

iOS architecture

iOS는 기본 하드웨어 구성 요소와 화면에 나타나는 애플리케이션 사이의 중재자 역할을 한다. 애플리케이션은 하드웨어와 직접 통신하지 않고, 잘 정의된 시스템 인터페이스를 통해 하드웨어와 소통한다. 이러한 추상화 덕분에 하드웨어 사양이 다른 장치에서도 쉽게 동작하는 애플리케이션을 개발할 수 있다.

iOS 아키텍처는 아래 이미지와 같이 네 개의 계층으로 구성되어 있다.

iOS layers

각 계층은 애플리케이션 개발을 지원하는 여러 프레임워크로 구성되어 있다. 

  • Cocoa Touch layer : iOS 애플리케이션의 시각적 인터페이스를 개발하는 데 필요한 주요 프레임워크를 포함하고 있다. 이 계층의 프레임워크는 기본 애플리케이션 인프라를 제공하고, 멀티태스킹, 터치 기반 입력, 많은 고급 시스템 서비스와 같은 핵심 기술을 지원한다.
  • Media layer : 그래픽, 오디오 및 비디오 프레임워크를 제공하여 모바일 장치에서 최고의 멀티미디어 경험을 만든다. 이 계층의 기술은 개발자가 뛰어난 시각적 효과와 소리를 제공하는 애플리케이션을 만들 수 있도록 도와준다.
  • Core Services layer : 애플리케이션에 필요한 기본 시스템 서비스를 제공한다. 이 서비스들 중 일부는 개발자들이 직접 사용하지 않지만, 시스템의 많은 부분이 이 서비스 위에 구축된다. 이 계층은 위치 서비스, iCloud, 소셜 미디어 등과 같은 기능을 지원하는 기술을 포함하고 있다.
  • Core OS layer : 가장 기본적인 계층으로, 장치 하드웨어 위에 직접 위치한다. 이 계층은 저수준 기능을 처리하고, 네트워킹(BSD 소켓), 메모리 관리, 스레딩(POSIX 스레드), 파일 시스템 처리, 외부 액세서리 접근, 프로세스 간 통신 등의 서비스를 제공한다.

 

iOS security

최신 버전의 iOS는 보안을 핵심으로 설계되었다. 가장 상위 수준에서 iOS 보안 아키텍처는 아래와 같은 형태로 나타난다.

iOS 보안 아키텍처

Apple iOS 기기(iPhone, iPad, iPod touch)는 여러 보안 레이어로 설계되며, 하위 수준의 하드웨어 기능은 멀웨어 공격으로부터 기기를 보호하고, 상위 수준의 운영체제 기능은 무단 사용을 방지한다. iOS 보안 기능에 대한 간단한 개요는 아래와 같다.

  • Passcodes, Touch ID, and Face ID
    • 암호는 기기의 무단 접근을 제한한다. 암호가 설정되면 기기를 켜거나 깨울 때마다 암호 입력을 요구한다. iOS 기기는 단순 암호와 복잡한 암호 모두를 지원한다. iOS 9에서는 기존의 4자리 암호 대신 6자리 단순 암호 옵션이 도입되었다. iPhone 5S 이후 모델에서는 Touch ID 지문 인식을 암호로 사용할 수 있으며, 이는 단순 또는 복잡한 암호로 보완된다. iPhone X에서는 새로운 생체 인식 잠금 방식인 Face ID를 지원해 사용자가 얼굴을 암호로 사용할 수 있다. 또한 보안성도 높아, 타인이 Touch ID로 iPhone을 잠금 해제할 확률이 1/50,000이라면 Face ID에서는 1/1,000,000에 불과하다.
  • Code Signing
    • 코드 서명은 사용자가 기기에 무단 애플리케이션을 다운로드하고 설치하는 것을 방지한다. Apple은 아래와 같이 설명한다.
    • "코드 서명은 컴파일된 iOS 애플리케이션이 사용자의 것으로 봉인되고 식별되는 과정이다. 또한 iOS 기기는 신뢰할 수 있는 기관이 서명하지 않은 애플리케이션이나 라이브러리를 실행하거나 로드하지 않는다. 모든 애플리케이션이 승인된 신뢰할 수 있는 출처에서 제공되었으며, 조작되지 않았음을 보장하기 위해, iOS는 모든 실행 가능한 코드가 Apple에서 발급한 인증서를 사용해 서명되도록 요구한다."
  • Sandboxing
    • 샌드박싱은 코드 실행 이후의 악용을 방지하기 위해 애플리케이션을 엄격하게 제한된 영역에 배치한다. iOS 기기에 설치된 애플리케이션은 샌드박스로 격리되며, 하나의 애플리케이션이 다른 애플리케이션의 데이터를 접근하는 것은 불가능하다. 기본적으로 샌드박스는 파일, 네트워크 리소스, 하드웨어 등에 대한 애플리케이션의 접근을 세부적으로 제한하는 메커니즘이다.
  • Encryption
    • iPhone 4부터 시작해 iOS 기기의 전체 파일 시스템은 기기의 고유 하드웨어 키에서 계산된 파일 시스템 키를 사용해 암호화된다. 이 키는 OS와 하드웨어 사이의 레벨에 존재하는 삭제 가능한 저장소에 저장된다. 이 때문에 JTAG나 Chip-Off 방식은 데이터를 암호화된 상태로 덤프하기 때문에 효과적인 데이터 수집 방법이 되지 못한다.
  • Data protection
    • 데이터 보호 기능은 저장된 데이터를 보호하고 오프라인 공격을 어렵게 만들기 위해 설계되었다. 이 기능은 사용자의 기기 암호와 기기 하드웨어 암호화를 결합해 강력한 암호화 키를 생성한다. 이후 생성된 강력한 암호화 키를 사용해 디스크에 저장된 데이터를 암호화한다. 이 키는 기기가 잠겨 있을 때 데이터를 접근하지 못하게 하여, 기기가 침해되더라도 중요한 정보가 안전하게 보호된다.
  • Address Space Layout Randomization
    • ASLR은 iOS 4.3에서 도입된 공격 방지 기술로, 메모리 내 애플리케이션 객체의 위치를 무작위로 배치해 메모리 손상 취약점을 악용하는 것을 어렵게 만든다.
  • Privilege separation
    • iOS는 최소 권한 원칙에 따라 동작한다. iOS에는 root와 mobile 두 가지 사용자 역할이 있다. 시스템에서 가장 중요한 프로세스는 root 사용자 권한으로 실행되며, 사용자가 직접 접근할 수 있는 브라우저나 서드파티 애플리케이션 같은 모든 애플리케이션은 mobile 사용자 권한으로 실행된다.
  • Stack-smashing protection
    • 스택 스매싱 방지는 버퍼 오버플로우 공격으로부터 보호하는 기술이다. 이 기술은 스택 내의 버퍼와 제어 데이터 사이에 무작위로 생성된 값(stack canary)을 삽입해 공격자가 스택을 덮어쓰는 것을 탐지하고 방지한다.
  • Data execution prevention
    • DEP는 프로세서가 메모리의 실행 가능한 코드 부분과 데이터 부분을 구별하도록 하는 공격 방지 기술이다. 예로 코드 인젝션 공격에서 공격자는 자신의 코드를 삽입하고 실행하려고 시도한다. 하지만 DEP는 삽입된 부분을 코드가 아닌 데이터로 인식하기 때문에 이를 실행하지 않는다.
  • Data wipe
    • iOS는 '모든 콘텐츠 및 설정 지우기' 옵션을 제공해 iPhone의 데이터를 완전히 삭제한다. 이 방식의 데이터 삭제는 데이터를 보호하는 암호화 키를 제거함으로써 사용자 설정과 정보를 지운다. 기기에서 암호화 키가 삭제되면 포렌식 수사에서도 삭제된 데이터를 복구할 수 없다. 또한 기기 메모리에 저장된 데이터를 덮어쓰는 다른 삭제 방법도 존재한다. 데이터 삭제에 대한 자세한 정보는 https://support.apple.com/en-in/108931 에서 확인할 수 있다.
  • Activation Lock
    • 활성화 잠금은 iOS 7에서 도입된 도난 방지 기능으로, '나의 iPhone 찾기' 기능을 통해 작동한다. '나의 iPhone 찾기'가 활성화되면 활성화 잠금이 설정되며, '나의 iPhone 찾기'를 끄거나 기기를 초기화하거나 다시 활성화하려면 Apple ID와 비밀번호가 필요하다.
  • The App Store
    • App Store는 Apple이 개발 및 유지 관리하는 iOS용 애플리케이션 배포 플랫폼이다. 사용자는 이 중앙화된 온라인 스토어에서 무료 또는 유료 애플리케이션을 검색하고 다운로드할 수 있다. 2017년 1월 기준으로 App Store에는 220만 개 이상의 애플리케이션이 등록되어 있다.
    • App Store의 애플리케이션은 일반적으로 서드파티 개발자가 XCode와 iPhone SDK를 사용해 개발한다. 이후 Apple의 검토 프로세스를 통해 애플리케이션이 Apple의 가이드라인을 준수하는지 확인한 후 승인을 받으면 App Store에 게시되어 사용자가 다운로드하거나 구매할 수 있다. 이 엄격한 검토 과정 덕분에 App Store는 악성코드에 비교적 안전하지만, 100% 안전하다고 보장할 수는 없다.
    • 2015년 9월, XCodeGhost라는 악성코드가 App Store 내 50개의 애플리케이션에 감염된 사례가 발견되었다. 이 악성코드는 XCode 자체에 내장되어 있어 탐지가 더 어려웠으며, 전 세계 5억 명 이상의 사용자에게 영향을 미쳤다. Apple은 감염된 애플리케이션을 즉시 삭제하는 조치를 취했다. 현재 사용자는 iTunes 또는 iOS 기기에서 App Store에 접근할 수 있다.
  • Jailbreaking
    • 탈옥은 Apple의 모바일 운영체제가 부과한 제한을 소프트웨어 또는 하드웨어 취약점을 통해 제거하는 과정이다. 탈옥을 통해 서명되지 않은 코드를 실행하고 운영체제에서 root 권한을 얻을 수 있다. 가장 일반적인 탈옥 이유는 Apple의 App Store에서 승인되지 않은 애플리케이션을 설치하거나 제한된 기능을 확장하는 것이다.
    • 탈옥은 포렌식 데이터 수집에 도움이 될 수 있지만, 기기의 보증이 무효화되고, 기기가 벽돌 상태가 될 위험이 있으며, 공장 초기화로 복구가 불가능할 수 있다. 한 번 탈옥한 기기는 영구적으로 탈옥 상태가 되며, 기기의 보증은 무효화된다고 가정하는 것이 좋다.
    • 대부분의 탈옥 도구는 기기에 비공식 애플리케이션 설치 관리자인 Cydia를 추가한다. 이를 통해 사용자는 App Store에서 제공하지 않는 다양한 서드파티 애플리케이션, 도구, 트윅 등을 설치할 수 있다.
    • 대표적인 탈옥 도구로는 redsn0w, sn0wbreeze, evasi0n, Absinthe, seas0npass, Pangu, TaiG 등이 있다. 그러나 모든 iOS 버전이 탈옥 가능한 것이 아니며, 아래 이미지는 가지고 있는 기기와 iOS 버전에 따라 적절한 탈옥 도구를 선택하는 데 도움이 된다.

2012년 10월, 미국 저작권청은 iPad의 탈옥이 불법이라고 선언한 반면, iPhone의 탈옥은 합법으로 간주했다. 해당 법률은 3년마다 검토되지만, 아직 변경되지 않았다.

반응형

'Mobile Forensic > iOS' 카테고리의 다른 글

Logical Imaging - SMS  (0) 2025.04.15
Logical Imaging - CallHistoryDB  (0) 2025.03.28
iOS Data Analysis and Recovery  (0) 2025.03.21
Data Acquisition from iOS Backups  (0) 2025.03.11
Data Acquisition from iOS Devices  (0) 2025.03.11