OS X

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

[[운영체제 구성/Apple OS|운영체제 구성]][편집]

OS X의 운영체제 구성은 위의 게시물 링크를 참조한다.

부팅 프로세스[편집]

OS가 정상적인 부팅이 안될 때 아래에 있는 표의 이벤트 내용[1]을 확인하여 어떤 단계에서 발생한 문제인지 확인할 수 있다.

OS X 부팅 단계별 발생 이벤트
부팅 단계 발생 이벤트
Power On
Boot-ROM/RAM 검사 초기화
BootROM-POST
-검은색 화면, 전원 LED 켜짐 : POST 또는 BootROM 실패
-전원 LED가 1초에 한 번씩 깜빡임 – RAM 불량, RAM 없음
-세 번 깜빡이고 잠깐 멈춘 다음 세 번 더 깜빡임이 지속적으로 발생 : RAM 부족
BootROM-EFI
부팅음 발생
Boot EFI
-금속사과모양 : boot.efi 발견
-금지표시(⊘) : boot.efi를 로드하지 못했거나 다른 문제 발생
-지구모양 깜빡임 : netboot 서버에서 booter/커널 검색
-금속사과모양 아래 회전하는 지구 모양 : netboot 서버에서 booter/커널 발견
-깨진 폴더가 깜빡임 : 부팅 가능한 장치를 찾지 못함
Kernel
회색 바탕화면에 금속 사과모양과 회전하는 기어
launchd
파란색 화면
loginwindow
로그인 윈도우가 나타남
User Environment Setup
“Logging in...” 텍스트가 쓰여진 로그인 창과 진행 상태를 나타내는 막대가 나타남. 로그인에 성공하면 바탕화면과 독(작업표시줄)이 나타남

OS X의 전체적인 부팅 프로세스[2]는 다음과 같다.

BootROM[편집]

BootROM은 컴퓨터가 켜지면 가장 처음으로 시작되는 스타트업(boot) 프로그램이 포함된 하드웨어 구성요소이다. 이 프로그램은 POST(Power-On Self Test)와 EFI(Extensible Firmware Interface)를 포함한다.

POST (Power-On Self Test)[편집]

POST는 전원 공급에 대한 자체 테스트 기능을 가지며 시스템 버스, 그래픽 카드, 메모리, 키보드, 디스크 등의 중요 하드웨어 인터페이스를 설정한다. 또한 RAM이 해당 컴퓨터 사양에 정상적으로 작동하는지 확인한다. 만약 시스템이 POST 단계에서 실패하면 비프(beep)를 울리거나 LED를 깜빡일 것이고, POST를 정상적으로 통과했다면 일반적인 부팅음을 들을 것이다.

EFI (Extensible Firmware Interface)[편집]

다음으로 운영체제와 플랫폼 펌웨어 사이의 소프트웨어 인터페이스를 정의하는 EFI 단계가 작동하며, Windows OS의 BIOS와 같은 것이라고 할 수 있다. PowerPC 기반의 Mac에서는 Open Firmware라는 것을 사용했고, 2006년 OS X 10.5(Leopard)부터 Intel 기반의 Mac에 EFI가 사용되었다.

EFI

Boot EFI[편집]

Boot EFI는 Intel 기반의 Mac부터 적용된 것으로 PowerPC 기반 Mac에서의 boot loader인 BootX와 같은 기능을 한다. 펌웨어가 로드된 후 Kernel이 로드되기 전에 boot.efi가 로드된다. boot.efi는 커널 환경과 시스템을 부팅하기 위해 필요한 드라이버들을 초기화하며, 커널 초기화 프로세스를 진행한다. 부팅 시 화면에 금속 사과모양이 나타나면 boot.efi를 발견했다는 의미이다.

Kernel[편집]

커널은 입력 및 출력 장치를 제어하는 I/O 키트를 초기화하며, I/O 키트는 커널에 로드된 드라이버들을 연결한다. 그럼 커널은 launchd 프로세스를 시작하고, launchd는 나머지 부팅 과정을 진행한다.

launchd[편집]

launchd는 시스템 및 사용자에 대한 데몬(daemon)을 관리한다. 데몬은 주기적으로 서비스 요청을 처리하기 위해 계속 실행되는 프로그램으로 수집된 요청들을 또 다른 프로그램이나 프로세스들이 처리할 수 있도록 적절히 전달하기도 한다. 시스템을 부팅하는 동안 launchd는 “/System/Library”, plist 파일을 관리하는 “/Library”에서 LaunchDaemons 및 LaunchAgents 폴더를 스캔한다. 이는 launchd가 관리하는 프로세스를 나타내며, 프로세스가 시작되어야 할 때 실행해야하는 코드의 위치를 지정한다.

Startup Scripts and Startup Items[편집]

launchd가 성공적으로 실행된 후 기본 시스템 초기화 작업을 위해 “/etc/rc”스크립트를 실행한다. 이러한 초기화 작업은 파일 시스템 일관성 체크(fsck)와 startup 항목들을 실행하는 “SystemStarter”프로세스를 실행시킨다. 스타트업 항목(startup items)은 OS X 시스템을 정상적으로 작동시키기 위해 준비하는 부팅 과정 중 마지막 단계에서 실행되는 프로세스로 사용자 정의 쉘 스크립트와 같은 프로그램으로 구성되어 있다.

The loginwindow Process[편집]

로그인 단계는 로그인 화면과 시스템이 초기화된 후 발생한다. loginwindow 프로세스는 로그인 프로세스와 개인 사용자 세션을 조정한다. 사용자의 로그인 환경 설정에 따라 사용자 이름과 비밀번호를 입력하라는 메시지가 표시될 수 있다. 또는 자동 로그인 기능을 위한 캐시값을 사용할 수도 있다. 사용자의 로그인 이름과 패스워드가 인증되면 loginwindow는 사용자 환경을 로드한다. 사용자가 로그인하면 loginwindow는 다음과 같은 일을 수행한다.

사용자의 컴퓨팅 환경(기본 설정, 환경 변수, 장치 및 파일 권한, keychain 접근 등)
독(Dock), 파인더(Finder), SystemUIServer 실행
설치 중인 경우 Setup Assistant 실행
사용자가 자동으로 실행되도록 설정한 애플리케이션 실행

메모리와 프로세스 관리[편집]

메모리 관리[편집]

인텔 아키텍처 기반의 운영체제는 메모리 관리 기법을 통해 각각의 프로세스를 독립적인 가상 메모리 영역에서 동작하도록 하고, 가상 주소를 물리 메모리의 주소에 맵핑하여 프로세서가 데이터를 처리하는 구조를 가지고 있다. OS X는 32비트 애플리케이션을 관리하기 위해 Intel의 32비트 메모리 관리 기술을 사용한다. 기본적으로 32비트 환경에서 4기가 물리 메모리 영역을 표현할 수 없는 윈도우와 다르게 OS X는 추가적으로 4기가 메모리 전체를 표현할 수 있도록 PAE를 기본적으로 활성화하여 물리 메모리 4기가 영역 전체를 접근할 수 있도록 지원한다.

선형주소에서 물리주소 변환 방식 (PAE 활성화)

위의 그림에서 선형주소에서 물리주소 변환 방식은 'Directory Entry' 포인터와 'Table Entry'포인터를 한 비트씩 줄이고 2비트의 'Page Directory Pointer Table'을 두어, 최대 220개의 페이지를 가질 수 있도록 설계되었다. PAE 기술을 적용한 경우 디렉터리 엔트리와 테이블 엔트리의 정보를 4바이트 정렬이 아닌 8바이트 정렬을 사용하여 지정할 수 있는 주소 범위를 확장한다.

OS X는 64비트 애플리케이션 관리 및 64비트 커널 이미지로 부팅 시 메모리 관리를 위해 PML4기술이 적용된 ‘PAE-Enabled Paging in IA-32E Mode'를 사용한다. 이 방식은 64비트 선형주소 중 실제로 48비트 영역만을 주소로 사용하며, OS X의 32비트 물리 메모리 관리 방식에서 하나의 엔트리가 추가된 구조를 가지고 있다.

IA-32e 모드 페이징 구조 (PAE, Page Size : 4KB)

위의 그림과 같은 구조에서 48비트만 주소로 사용하는 이유는 64비트 시장을 먼저 선점한 AMD64의 아키텍처가 48비트 크기의 주소영역을 표시하기 때문에 그 호환성을 위해 동일한 비트의 주소로 표현한다. 64비트 전체 주소를 표현하지 않지만, 236의 페이지를 표현하기 때문에, 충분한 메모리 공간을 표현할 수 있다. 64비트 주소 표현 방식이기 때문에, 각 엔트리의 크기는 8바이트를 가진다.

프로세스 관리[편집]

OS X는 크게 두 커널을 하나로 융합한 XNU 커널에 기반하고 있다.
애플은 두 커널의 융합을 위해 XNU 커널은 다른 운영체제와 다르게 동일한 정보를 가진 두 개의 프로세스 구조체와 두 개의 스레드 구조체를 동기화하여 관리하고 있다.

OS X 프로세스 관리

시스템에서 하나의 프로세스가 구동되면, pthread 라이브러리를 이용하여 커널의 가상 메모리 영역에 'Mach Thread' 구조체를 1:1로 정의한다.
Mach Thread는 Darwin 커널의 프로세스 단위인 Task에서 관리하며, 이 Task는 'Mach Task‘라고 명명되어 있다. Mach Task는 해당 프로세스에 대한 가상 메모리 영역을 정의하고, 물리 메모리와 가상 메모리를 매핑시키기 위한 정보를 가진다.
앞서 말한 바와 같이 OS X는 Darwin 커널뿐만 아니라 BSD 커널의 관리를 위해 Darwin의 Mach Thread 구조체 정보는 BSD의 uthread 구조체와 연결되어 있으며, Darwin의 Task 구조체는 BSD의 proc 구조체와 연결되어 관리된다. 실제 XNU 커널이 관리하는 프로세스 목록은 BSD의 프로세스 목록으로, 이 목록을 추출하여 프로세스 정보를 추출할 수 있다.

데이터 획득[편집]

OS X에서의 데이터 획득은 활성 시스템에서 물리 메모리 수집, 운영체제 Artifact 수집 및 비휘발성 시스템에서 저장매체 분리를 통한 데이터 수집, Live CD를 이용한 데이터 수집, Target Disk Mode를 이용한 데이터 수집, 디스크 이미지에서 데이터 수집이 있으며 자세한 내용은 주제의 링크를 참조한다.

데이터 추출[편집]

데이터 추출은 획득한 데이터에서 시스템 정보, 사용자 행위 정보, 애플리케이션 사용 흔적 정보 등을 추출해 내는 과정을 말한다. 자세한 내용은 제목 링크의 내용을 참조한다.

포렌식 분석 도구[편집]

Mac Marshal[편집]

Mac Marshal은 Architecture Technology Corporation의 자회사격인 ATC-NY에서 개발한 것으로 Mac OS를 포렌식 관점에서 통합적으로 분석하는 도구이다.
Macintosh 및 XP 이상의 Windows 환경에서 실행 가능하며, OS X는 10.7 Lion 버전까지만 지원한다.
상용 툴이며 가격은 $995이다. Mac Marshal이 제공하는 주요 기능은 다음과 같다.

  • OS X 및 듀얼-부트 디스크, 여러 가지 형식의 파티션 이미지 분석
  • 메일, 사파리, iChat, 주소록 등의 애플리케이션 설정정보 및 로그파일 분석
  • Spotlight 파일의 메타 데이터를 이용한 빠른 검색 수행
  • 종합적인 사용 정보 수집
  • iPod, iPhone 등의 기기 연결 정보
  • VMWare, VirtualBox, Parallels 등의 가상머신 탐지
  • FileVault로 암호화된 사용자 디렉터리 탐지 및 분석
  • dd, EnCase, FTK, AFF, 애플 디스크 이미지 지원
  • 보고서 생성 기능

Mac Marshal – Acquisition Options Mac Marshal – Application 분석

BlackLight[편집]

BlackLight는 BlackBagTech에서 개발한 것으로 멀티 플랫폼 포렌식 분석 도구이고 Macintosh 및 Windows 환경에서 실행 가능하다.
상용 툴이며, 가격은 $2,600이다. OS X의 데이터에 대해 조사자들에게 빠르고 직관적인 분석이 가능하도록 한다. 또한, OS X 뿐만 아니라 iOS 디바이스(iPhone, iPad, iPod Touch)에 대한 분석도 가능하다.
일반적인 Unix 이미지 포맷인 dd와 dmg를 비롯하여 EnCase(*.E01) 이미지 파일에 대한 분석도 제공한다.
메시지 분석을 지원하는 애플리케이션은 iChat, SMS, MMS, Skype, iMessage 등이 있다.

인터넷, 이메일 사용 흔적에 대한 분석 등 OS X 사용 흔적에 대한 통합적인 분석이 가능하고, 리포팅 기능을 제공하기 때문에 데이터를 효과적으로 정리할 수 있다.

BlackLight – SMS 분석 BlackLight – Mail 분석 BlackLight – 보고서 생성

MacResponse LE[편집]

MacResponse LE는 오픈소스 기반의 라이브 정보 수집 도구로 github에서 다운받아 사용할 수 있다.
통합 포렌식 분석 기능을 제공하기 보다는 라이브 포렌식 분석에 중점을 둔다. 제공하는 기능은 다음과 같다.

  • 디스크 정보 확인
  • 파일 시스템 정보 확인
  • FileVault 탐지
  • Spotlight 애플리케이션 리스트
  • 로드된 드라이버 확인
  • 로그인 세션 확인
  • 네트워크 연결 정보 확인
  • 물리 메모리 수집
  • Property 리스트
  • 시스템 정보(날짜, 시간 등) 확인
  • 사용자 정보 확인

대표적으로 물리 메모리 수집 기능이 있는데 KEXT에서 커널 메모리 주소로 접근하여 덤프하는 방법을 사용한다.
그러나 이 도구에서 사용하는 물리 메모리 수집 기법은 OS X 10.6 Snow Leopard까지만 지원한다.
또한, 64비트 환경에서는 PE_state 구조체에 접근할 수 없기 때문에 32비트 아키텍처만 지원하는 제한적인 측면이 존재한다.
MacResponse LE에서 사용이 제한되는 부분을 보완하기 위해 추가적으로 4장에서 소개한 Inception, MacMemoryReader, OSXPMEM 등의 도구를 사용할 수 있다.

MacResponse LE – Live Acquisition

OS X 기기 구성[편집]

OS X를 사용하는 Apple 제품은 크게 일반 사용자용인 MacBook Air, 전문가용인 MacBook Pro, 일체형 PC인 iMac으로 나뉜다. 각 제품별 하드웨어 구성 리뷰는 2013년 출시된 신형 제품을 대상으로 했으며 제품별 사양은 아래와 같다.

Mac 제품 비교
구분 MacBook Air MacBook Pro iMac
외관
Macbook air.png
Macbook pro.png
Imac.png
Display
11.6인치 / 13.3인치
LED 백라이트 와이드스크린
13.3인치
LED 백라이트 와이드스크린
21.5인치 / 27인치
LED 백라이트 와이드스크린
사양
최대 구매 시 업그레이드 가능한 사양
1.7GHz 듀얼 코어 Intel Core i7 프로세서
최대 8GB 메모리
최대 512GB flash 저장 장치 Intel HD Graphics 5000
최대 2.9GHz 듀얼 코어 Intel Core i7 프로세서
최대 8GB 메모리
최대 1TB 5400rpm 하드 드라이브 / 최대 512GB 고정형 드라이브 Intel HD Graphics 4000
최대 3.5GHz 쿼드 코어 Intel Cord i7 프로세서
최대 32GB 메모리
최대 3TB 7200rpm 하드 드라이브 / 최대 3TB Fusion Drive / 최대 1TB flash 저장 장치
[21.5인치] Intel Iris Pro / NVIDIA GeForce GT 750M(1GB GDDR5 메모리)
[27인치] NVIDIA GeForce GT 755M(1GB) / GTX 775M(2GB) / GTX 780M(4GB)
기타특징
USB 3 포트 2개
MacSafe 2 전원 포트
Thunderbolt 포트
802.11ac Wi-Fi2
Bluetooth 4.0 무선 기술
FaceTime HD 카메라
USB 3 포트 2개
Firewire 800 포트
MagSafe 전원 포트
Thunderbolt 포트
802.11n Wi-Fi
Bluetooth 4.0 무선 기술
Gigabit Ethernet
FaceTime HD 카메라
SuperDrive(CD reader)
USB 3 포트 4개
Thunderbolt 포트
802.11n Wi-Fi
Bluetooth 4.0 무선 기술
Gigabit Ethernet
FaceTime HD 카메라

2009년형부터 MacBook Air의 기본 저장 장치는 SSD이며, MacBook Pro와 iMac은 SSD와 HDD 중에 선택하여 장착할 수 있다.
Apple 제품에 사용되는 ‘Flash 저장 장치’는 NAND + SSD 컨트롤러 조합의 커스텀 PCB 기판을 의미한다. 즉, 일반적인 SSD가 폼팩터(케이스)에 들어 있는 것과 다르게 Apple 제품에 장착된 SSD는 기판 위에 NAND와 컨트롤러가 납땜되어 있다.
iMac 제품에서만 지원하는 Fusion 드라이브는 물리적으로 분리되어 있는 SSD와 HDD를 하나의 드라이브처럼 결합해서 사용하는 것을 의미한다. SSD의 빠른 성능과 HDD의 대용량의 이점을 결합한 것으로 입출력이 많은 파일은 SSD 영역에, 입출력이 적은 파일은 HDD 영역에 나눠서 저장한다.
디스크 이미징을 위한 Target Disk Mode에 사용되는 Firewire 포트는 현재 MacBook Pro에서만 지원하며 2011년부터 전 제품에 Thunderbolt 포트가 제공되기 시작했다.
일부 구형 제품에서 Thunderbolt 포트와 동일한 외관의 Mini DisplayPort를 발견할 수 있다. 이 포트는 Thunderbolt 케이블 연결이 가능하지만 Thunderbolt의 기능적인 면을 제공하지는 않는다.

MacBook Air[편집]

2013년 출시된 MacBook Air 13.3인치의 내부 구조는 아래와 같다.

MacBook Air 내부 구조

다음은 MacBook Air에서 데이터가 저장되는 SSD의 위치를 나타낸다.

MacBook Air SSD의 위치

MacBook Pro[편집]

2013년 출시된 MacBook Pro 13.3인치의 내부 구조는 아래와 같다.

MacBook Pro 내부 구조

다음은 MacBook Pro에서 사용되는 SSD의 위치를 나타낸다. MacBook Pro에서는 모델에 따라 SSD와 HDD를 사용한다.

MacBook Pro SSD의 위치

iMac[편집]

2013년 출시된 iMac 27인치의 내부 구조는 다음과 같다.

iMac 내부 구조 iMac HHD의 위치

iMac은 기본적으로 HDD를 제공하기 때문에 iMac에서 데이터가 저장되는 HHD의 위치는 위의 사진과 같다. 그러나 디스크 업그레이드를 원할 시 아래와 같이 I/O 보드에서 확장 포트 근처 PCI-E SSD 슬롯에 SSD 카드를 장착하면 된다.

iMac I/O보드의 SSD 슬롯

참고문헌[편집]

  1. Apple, http://support.apple.com/kb/ht2674
  2. Owen Linzmayer, Mac OS X Startup Sequence, Macintosh Reference Guide http://www.peachpit.com/guides/content.aspx?g=mac&seqNum=59