처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.11 47

macOS의 '개인정보 및 보안' 설정, 사실 믿으면 안 됩니다

Hacker News 원문 보기
macOS의 '개인정보 및 보안' 설정, 사실 믿으면 안 됩니다

무슨 일이 있었나요?

맥을 쓰는 개발자라면 시스템 설정에서 '개인정보 및 보안(Privacy & Security)' 패널을 한 번쯤은 열어봤을 거예요. 어떤 앱이 카메라에 접근할 수 있는지, 어떤 앱이 파일 시스템을 읽을 수 있는지 관리하는 그 화면이요. 그런데 이 설정 화면이 실제 시스템 상태를 정확하게 반영하지 않는다는 분석이 나왔어요.

쉽게 말하면, 설정 화면에서는 어떤 앱이 카메라 접근 권한을 가지고 있지 않다고 보여주는데, 실제로는 그 앱이 카메라에 접근할 수 있는 상황이 존재할 수 있다는 거예요. 설정 화면이 거짓말을 하고 있는 셈이죠.

기술적으로 무엇이 문제인가요?

macOS의 프라이버시 보호 시스템은 TCC(Transparency, Consent, and Control)라는 프레임워크로 동작해요. TCC가 뭐냐면, 앱이 민감한 리소스(카메라, 마이크, 위치, 연락처 등)에 접근하려고 할 때 사용자에게 동의를 구하고, 그 결과를 데이터베이스에 저장해서 관리하는 시스템이에요.

문제는 이 TCC 데이터베이스가 여러 곳에 분산되어 있다는 점이에요. 시스템 수준의 TCC DB, 사용자 수준의 TCC DB가 따로 있고, 여기에 MDM(Mobile Device Management) 프로파일을 통한 설정도 별도로 존재해요. 그런데 시스템 설정 앱의 '개인정보 및 보안' 화면은 이 모든 소스를 완벽하게 통합해서 보여주지 못하는 거예요.

더 심각한 건, macOS가 업데이트될 때마다 일부 TCC 권한이 리셋되거나, 새로운 권한 카테고리가 추가되면서 기존 설정과의 정합성이 깨지는 경우가 있다는 거예요. 예를 들어 앱을 업데이트하면 번들 ID는 같지만 코드 서명이 바뀌면서, TCC에서는 새로운 앱으로 인식하는데 설정 화면에서는 이전 권한 상태를 그대로 보여주는 식의 불일치가 발생할 수 있어요.

왜 이게 중요한가요?

개발자 입장에서 이게 특히 문제가 되는 몇 가지 시나리오가 있어요.

첫째, 보안 감사(Security Audit) 상황이에요. 회사에서 직원들의 맥북에 어떤 앱들이 어떤 권한을 가지고 있는지 점검할 때, 시스템 설정 화면만 보고 판단하면 실제 상태와 다를 수 있다는 거예요. 보안 담당자가 "이 맥북은 문제없어"라고 보고했는데, 실제로는 특정 앱이 카메라에 접근할 수 있는 상태라면 꽤 곤란해지겠죠.

둘째, 앱 개발 시 권한 테스트 과정이에요. 본인이 만든 앱의 권한 요청이 제대로 동작하는지 테스트할 때, 시스템 설정에서 권한을 껐다 켰다 하면서 확인하는 경우가 많은데요, 설정 화면의 상태가 실제 TCC 데이터베이스와 다르면 디버깅이 엉뚱한 방향으로 빠질 수 있어요.

셋째, 사용자 프라이버시에 대한 신뢰도 문제예요. Apple은 프라이버시를 핵심 가치로 내세우고 있잖아요. "iPhone에서 일어나는 일은 iPhone에 머문다"는 광고 문구까지 있었는데, 정작 프라이버시 관리 UI가 부정확하다면 그 약속의 신뢰성에 금이 가는 거예요.

TCC 데이터베이스를 직접 확인하는 방법

그래서 설정 화면 대신 실제 TCC 데이터베이스를 직접 확인하는 방법을 알아두면 좋아요. 터미널에서 다음과 같이 조회할 수 있어요.

사용자 수준 TCC DB 위치는 ~/Library/Application Support/com.apple.TCC/TCC.db이고, 시스템 수준은 /Library/Application Support/com.apple.TCC/TCC.db예요. SQLite 데이터베이스이기 때문에 sqlite3 명령으로 열어볼 수 있어요.

다만 최근 macOS 버전에서는 SIP(System Integrity Protection)과 풀 디스크 접근 권한 때문에 이 DB에 직접 접근하는 것도 제한이 있어요. tccutil 같은 명령줄 도구를 사용하거나, 서드파티 보안 도구를 활용하는 방법도 있어요.

업계 맥락 — OS 수준 프라이버시 관리의 한계

이건 macOS만의 문제는 아니에요. Windows에서도 앱 권한 관리 UI가 실제 레지스트리 설정과 불일치하는 경우가 보고된 적이 있고, Android에서도 앱 권한을 취소했는데 실제로는 백그라운드에서 여전히 접근이 가능한 사례가 있었어요.

OS 수준의 프라이버시 제어는 결국 UI 레이어, 프레임워크 레이어, 커널 레이어가 모두 일관되게 동작해야 하는데, 이 층들 사이에 틈이 생기면 사용자가 보는 것과 실제 동작이 달라지는 거예요. 이런 문제를 근본적으로 해결하려면 "UI에서 보여주는 상태"와 "실제 적용되는 상태"가 항상 같은 소스(Single Source of Truth)에서 나와야 해요.

한국 개발자에게 주는 시사점

국내에서도 맥을 개발 머신으로 쓰는 비율이 계속 높아지고 있어요. 특히 iOS/macOS 앱 개발자라면 TCC 시스템을 깊이 이해하는 게 중요한데요, 앱 스토어 심사에서도 불필요한 권한 요청이 있으면 리젝되는 경우가 많거든요.

실무 팁을 하나 드리자면, macOS 앱을 개발할 때 권한 관련 테스트는 시스템 설정 화면에 의존하지 말고, 프로그래밍 방식으로 권한 상태를 확인하세요. 예를 들어 카메라 권한이라면 AVCaptureDevice.authorizationStatus(for:)를 호출해서 실제 런타임 상태를 확인하는 게 더 정확해요.

또 보안 관련 업무를 하는 분이라면, 맥 장비 보안 점검 시 설정 화면 스크린샷만으로 판단하지 말고, 실제 TCC DB를 조회하는 스크립트를 만들어서 자동화하는 걸 추천해요.

마무리

macOS의 프라이버시 설정 화면은 "현재 상태의 완벽한 반영"이 아니라 "대략적인 안내"에 가까워요. 보안이 중요한 환경이라면 UI를 맹신하지 말고, 실제 시스템 상태를 직접 검증하는 습관을 들이세요.

맥을 쓰시는 분들, 본인의 TCC 설정을 직접 확인해본 적 있나요? 혹시 설정 화면과 다른 부분을 발견한 경험이 있다면 공유해주세요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.