피드로 돌아가기
GeekNewsSecurity
원문 읽기
Loupe - 네이티브 iOS 앱이 볼 수 있는 기기 핑거프린팅 표면을 보여주는 iOS 앱
iOS 공개 API 기반 Device Fingerprinting 표면 분석 및 가시화
AI 요약
Context
iOS 앱이 사용자 명시적 권한 없이 접근 가능한 기기 정보의 범위를 정량적으로 확인하려는 시도임. 다수의 공개 API가 제공하는 원시 데이터가 결합되어 고유한 Device Fingerprint를 형성하며, 이는 개인 식별 및 추적의 경로로 활용됨.
Technical Solution
- API 접근 비용에 따른 세 단계(Passive, Needs Permission, Advanced)의 데이터 분류 체계 설계
- Locale, Time Zone, Battery 등 프롬프트 없이 획득 가능한 Passive 데이터 수집 로직 구현
- LSApplicationQueriesSchemes를 통한 특정 App 설치 여부 확인 및 URL-scheme probing 기법 적용
- Keychain persistence를 활용하여 앱 재설치 후에도 유지되는 식별자 추적 메커니즘 분석
- Xcode buildable folders 구조를 채택하여 프로젝트 파일 수정 없이 Swift 소스 파일을 동적으로 반영하는 빌드 파이프라인 구축
실천 포인트
- 앱 설계 시 LSApplicationQueriesSchemes에 정의하는 앱 목록을 최소화하여 Fingerprinting 엔트로피 감소 - Keychain을 이용한 지속적 식별자 저장이 개인정보 보호 정책 및 App Store 심사 가이드라인에 부합하는지 검토 - 기기 고유 정보 대신 임의 생성된 UUID를 사용하고, 데이터 수집 시 최소 권한 원칙(Principle of Least Privilege) 적용