Forensic/개론 & 논문 정리

[논문 리뷰] icloud ...

ukkiyeon 2025. 2. 24. 23:14

문제

- 수사관이 iCloud 계정에 로그인할 수 있다면, 이와 연동된 다른 Apple 서비스에 접근 가능하여 수사에 유용할 수 있음 

- 그러나 iCloud는 1단계 및 2단계 인증을 요구하므로, 계정 접근이 어렵고, 추가 인증을 위한 기기 확보 필요 


해결

- Windows 환경의 활성/비활성 상태 시스템에서 로컬 저장소 및 물리 메모리 분석을 통해 2단계 인증을 우회할 수 있는 iCloud 인증 정보 추출 방법 소개 

- 이를 반영한 iCloud 디지털포렌식 수사 절차 제안 

- 가상 시나리오 구성 


개념

[Windows DPAPI]

- Windows Data Protection API의 약어로, Windows에서 제공하는 암호화 서비스를 구성하는 CryptAPI의 한 종류

- 사용자 인증정보(웹사이트 비밀번호, 자동 로그인 쿠키, 크로미움 암호화 키 등)를 암호화하여 저장해두었다가 필요시 복호화하여 사용자 인증을 시도 

- 활성 상태 시스템에서는 CryptProtectData 및 CryptUnprotectData API를 호출하여 사용자 인증 정보를 암호화하거나 복호화 가능 

- 비활성 시스템에서는 Windows 로컬 계정 비밀번호의 SHA-1, 사용자 GUID 파일, SID 값을 이용해 DPAPI 마스터키를 획득한 후, 이를 통해 암호화된 사용자 인증 정보를 복호화 

- Windows 로컬 계정 대신 Microsoft 계정을 사용한 시스템의 경우에는, 활성 상태에서는 CryptAPI를 통해 사용자 인증정보 암복호화가 가능하지만, 비활성 상태에서는 SHA-1 계산 방법이 다르며, DPAPI password의 SHA-1 값을 의미

 

 

 

 

[iCloud Inernal API]

오픈 소스로 공개되어 있음 


iCloud 계정 접근 방법

1. 1단계 인증 + 2단계 인증(iCloud 계정과 연동된 기기로 랜덤 6자리 코드)

2. 1단계 인증 + 브라우저 신뢰 토큰 

3. PCS 세션(사용자가 iCloud 최종 로그인에 성공할 경우, 서버로부터 PCS 세션을 발급 가능): 물리 메모리 내 웹 브라우저 프로세스에 존재하는 정보로, 로컬에는 일반적으로 저장되지 않지만, 1단계 인증 페이지에서 로그인 상태 유지 옵션을 설정한 경우, 로컬에 저장하여 사용할 수 있음. 이를 획득한 경우 iCloud 로그인 프로세스를 거치지 않고 데이터에 직접 접근이 가능


iCloud 인증 정보 추출

활성 상태 시스템과 비활성 상태 시스템을 구분하여 iCloud 인증 정보 추출 방법을 정의 + 로컬 vs. 메모리 

- 활성 상태: 현장의 라이브 PC로, 관리자 권한 획득이 가능한 상황

- 비활성 상태: PC가 꺼져있는 상태로 수사관이 로컬에 대한 이미지 사본을 획득한 상황 

 

 

1. 활성 + 로컬

=> 1단계 인증 정보(ID/PW), 브라우저 신뢰토큰, PCS 세션 정보 추출 가능 

- 해당 인증 정보는 모두 AES-GCM으로 암호화 

 

2. 활성 + 메모리 

=> iCloud 계정 ID, 브라우저 신뢰토큰, PCS 세션 정보 추출 가능 

 

3. 비활성 + 로컬

=> 활성 상태와 동일한 정보 추출 가능

- DPAPI 마스터키는 수동 획득 필요 

 

4. 비활성 + 메모리 

=> 활성 상태와 동일한 정보 추출 가능

- hiberfill.sys 수집을 통해 iCloud 인증 정보 추출


추출한 iCloud 인증 정보 활용 

[iCloud 인증 정보]

- 계정 ID/PW

- 브라우저 신뢰토큰

- PCS 세션 정보

- X-Apple-Session-Token 


오 ..