TCC Database
Transparency, Consent, and Control (TCC) database — records every privacy permission grant and deny on macOS. Essential for understanding what an application could access.
- Status
- available
- CLI plugin
- system.tcc
- Categories
- system, security
Overview
The TCC database is macOS's permission ledger. Every time a user (or admin) grants or denies an app access to a privacy-sensitive resource — camera, microphone, screen recording, contacts, the home directory, the entire disk — a row is written to TCC.db. For investigators, TCC is the canonical record of what an attacker's tooling could see.
Analysis Tips
accesstable: Holds the grants. Key columns areservice(resource type),client(bundle id),auth_value(0=denied, 2=allowed),last_modified- System vs user TCC: Full Disk Access is recorded in system-level
/Library/Application Support/com.apple.TCC/TCC.db(root-owned, requires elevated access to read) csreqblob: Each row contains a code-signing requirement to prevent tampering — mismatched bundle IDs and csreq are a tampering signalprompt_count: How many times the app has been asked. High counts on sensitive services (e.g., screen recording) can indicate suspicious behaviour- Service vocabulary:
kTCCServiceScreenCapture,kTCCServiceCamera,kTCCServiceSystemPolicyAllFiles,kTCCServiceAccessibilityare the most forensically meaningful
Related Artifacts
- Persistence Mechanisms - TCC grants persist across reboots and tie back to installed agents
- Unified Logs -
tccdsubsystem logs each authorisation check - Pattern of Life - Knowledge of which apps were used pairs with what they were authorised to access
References
Data sources
~/Library/Application Support/com.apple.TCC/
Per-user privacy permission grants (camera, microphone, screen recording, contacts, calendars, etc.)
/Library/Application Support/com.apple.TCC/
System-wide privacy grants — Full Disk Access lives here