Don’t let overlooked obligations become incidents. Learn how.
Utility navigation bar redirect icon
Portal LoginSupportContact
Search
Close search
Huntress Logo in Teal
  • Platform Overview
    Managed EDR

    Get full endpoint visibility, detection, and response.

    Managed EDR

    Get full endpoint visibility, detection, and response.

    Managed ITDR

    Protect your Microsoft 365 identities and email environments.

    Managed ITDR

    Protect your Microsoft 365 identities and email environments.

    Managed SIEM

    Managed threat response and robust compliance support at a predictable price.

    Managed SIEM

    Managed threat response and robust compliance support at a predictable price.

    Managed Security Awareness Training

    Empower your teams with science-backed security awareness training.

    Managed Security Awareness Training

    Empower your teams with science-backed security awareness training.

    Managed ISPM

    Continuous Microsoft 365 and identity hardening, managed and enforced by Huntress experts.

    Managed ISPM

    Continuous Microsoft 365 and identity hardening, managed and enforced by Huntress experts.

    Managed ESPM

    Proactively secure endpoints against attacks.

    Managed ESPM

    Proactively secure endpoints against attacks.

    Integrations
    Integrations
    Support Documentation
    Support Documentation
    See Huntress in Action

    Quickly deploy and manage real-time protection for endpoints, email, and employees - all from a single dashboard.

    Huntress Cybersecurity
    See Huntress in Action

    Quickly deploy and manage real-time protection for endpoints, email, and employees - all from a single dashboard.

    Huntress Cybersecurity
  • Threats We Stop
    Phishing
    Phishing
    Business Email Compromise
    Business Email Compromise
    Ransomware
    Ransomware
    Infostealers
    Infostealers
    View Allright arrowView Allright arrow
    Industries We Serve
    Education
    Education
    Financial Services
    Financial Services
    State and Local Government
    State and Local Government
    Healthcare
    Healthcare
    Law Firms
    Law Firms
    Manufacturing
    Manufacturing
    Utilities
    Utilities
    View Allright arrowView Allright arrow
    Tailored Solutions
    MSPs
    MSPs
    Resellers
    Resellers
    SMBs
    SMBs
    Compliance
    Compliance
    What Gets Overlooked Gets Exploited

    Most days, nothing happens. But one day, something will.

    Huntress Cybersecurity
    Cybercriminals Have Evolved

    Get the intel on today’s cybercriminal groups and learn how to protect yourself.

    Huntress Cybersecurity
  • Pricing
  • Community Series
    The Product Lab

    Shape the next big thing in cybersecurity together.

    The Product Lab

    Shape the next big thing in cybersecurity together.

    Fireside Chat

    Real people. Real perspectives. Better conversations.

    Fireside Chat

    Real people. Real perspectives. Better conversations.

    Tradecraft Tuesday

    No products, no pitches – just tradecraft.

    Tradecraft Tuesday

    No products, no pitches – just tradecraft.

    _declassified

    Exposing hidden truths in the world of cybersecurity.

    _declassified

    Exposing hidden truths in the world of cybersecurity.

    Resources
    Upcoming Events
    Upcoming Events
    Ebooks
    Ebooks
    On-Demand Webinars
    On-Demand Webinars
    Videos
    Videos
    Whitepapers
    Whitepapers
    Datasheets
    Datasheets
    Cybersecurity Education
    Cybersecurity 101
    Cybersecurity 101
    Cybersecurity Guides
    Cybersecurity Guides
    Threat Library
    Threat Library
    Real Tradecraft, Real Results
    Real Tradecraft, Real Results
    2026 Cyber Threat Report
    2026 Cyber Threat Report
    The Huntress Blog
    Huntress Lands on the Microsoft Marketplace
    Huntress Cybersecurity
    Huntress Lands on the Microsoft Marketplace
    Huntress Cybersecurity
    How Huntress & DEFCERT Are Streamlining CMMC Assessment Prep
    Huntress Cybersecurity
    How Huntress & DEFCERT Are Streamlining CMMC Assessment Prep
    Huntress Cybersecurity
    Live Hacking Into Microsoft 365 with Kyle Hanslovan
    Huntress Cybersecurity
    Live Hacking Into Microsoft 365 with Kyle Hanslovan
    Huntress Cybersecurity
  • Why Huntress

    Go beyond AI in the fight against today’s hackers with Huntress Managed EDR purpose-built for your needs

    Huntress Cybersecurity
    Why Huntress

    Go beyond AI in the fight against today’s hackers with Huntress Managed EDR purpose-built for your needs

    Huntress Cybersecurity
    The Huntress SOC

    24/7 Security Operations Center

    The Huntress SOC

    24/7 Security Operations Center

    Reviews

    Why businesses of all sizes trust Huntress to defend their assets

    Reviews

    Why businesses of all sizes trust Huntress to defend their assets

    Case Studies

    Learn directly from our partners how Huntress has helped them

    Case Studies

    Learn directly from our partners how Huntress has helped them

    Community

    Get in touch with the Huntress Community team

    Community

    Get in touch with the Huntress Community team

    Compare Huntress
    Bitdefender
    Bitdefender
    Blackpoint
    Blackpoint
    Breach Secure Now!
    Breach Secure Now!
    Crowdstrike
    Crowdstrike
    Datto
    Datto
    SentinelOne
    SentinelOne
    Sophos
    Sophos
    Compare Allright arrowCompare Allright arrow
  • HUNTRESS HUB

    Login to access top-notch marketing resources, tools, and training.

    Huntress Cybersecurity
    HUNTRESS HUB

    Login to access top-notch marketing resources, tools, and training.

    Huntress Cybersecurity
    Partners
    MSPs

    Join our partner community to deliver expert-led managed security.

    MSPs

    Join our partner community to deliver expert-led managed security.

    Resellers

    Partner program designed to grow your cybersecurity business.

    Resellers

    Partner program designed to grow your cybersecurity business.

    Tech Alliances

    Driving innovation through global technology Partnerships

    Tech Alliances

    Driving innovation through global technology Partnerships

    Microsoft Partnership

    A Level-Up for Your Business Security

    Microsoft Partnership

    A Level-Up for Your Business Security

  • Press Release
    Huntress Announces Collaboration with Microsoft to Strengthen Cybersecurity for Businesses of All Sizes
    Huntress Cybersecurity
    Press Release
    Huntress Announces Collaboration with Microsoft to Strengthen Cybersecurity for Businesses of All Sizes
    Huntress Cybersecurity
    Our Story

    We're on a mission to shatter the barriers to enterprise-level security.

    Our Story

    We're on a mission to shatter the barriers to enterprise-level security.

    Newsroom

    Explore press releases, news articles, media interviews and more.

    Newsroom

    Explore press releases, news articles, media interviews and more.

    Meet the Team

    Founded by former NSA Cyber Operators. Backed by security researchers.

    Meet the Team

    Founded by former NSA Cyber Operators. Backed by security researchers.

    Careers

    Ready to shake up the cybersecurity world? Join the hunt.

    Careers

    Ready to shake up the cybersecurity world? Join the hunt.

    Awards
    Awards
    Contact Us
    Contact Us
  • Portal Login
  • Support
  • Contact
  • Search
  • Get a Demo
  • Start for Free
Portal LoginSupportContact
Search
Close search
Get a Demo
Start for Free
HomeBlog
Full Transparency: Controlling Apple's TCC Part II
Published:
March 11, 2024

Full Transparency: Controlling Apple's TCC Part II

By:
Stuart Ashenbrenner
Share icon
Glitch effectGlitch effectGlitch effect

In my last article, I gave an introduction to Apple's Transparency, Consent, and Control (TCC) framework. The primary goal of TCC is to empower users with transparency regarding how their data is accessed and used by applications. This time around, we're going to dig deeper into the mechanism that runs TCC and what's going on in the background.

The Primary Framework

TCC is managed by a tccd binary in the System directory, at /System/Library/PrivateFrameworks/TCC.framework/Support/tccd. It’s worth noting, that formerly, this binary was located within the /Versions/A/ directory in the .framework bundle but has since moved.

There is one aspect of TCC parlance that I want to cover before we dive too deep. We will be primarily talking about two () when we speak about the TCC framework—we'll often discuss a client and a service. In this case, the client is the application that’s requesting permission, such as Zoom, whereas the service is the permission it is requesting, such as camera or microphone access. The client is requesting access to a service.

If we dump the strings from this binary, we can see the different services that TCC covers, although their names are not necessarily straightforward.

Loading Gist...

When we look in our TCC databases, one of the columns we'll see is service. Within this service field, we’ll see one of the above values, correlating the requesting application and the requested service.

When a user, let's say, wants to use their microphone in a program that hasn't requested access yet, Apple will display a prompt, asking the user if they want to “Allow” or “Not Allow” access. These prompts can look different depending on the service. We can dump the contents of the binary property list (plist) located at /System/Library/PrivateFrameworks/TCC.framework/Resources/Localizable.loctable, and see some of Apple's prompts in the plist.

<key>en</key>
    <dict>        <key>NOTIFY_BUTTON_kTCCServiceSystemPolicyAppBundles</key>
       <string>Allow…</string>
       <key>NOTIFY_SERVICE_kTCCServiceSystemPolicyAppBundles</key>         <string>"%@" was prevented from modifying apps on your Mac.</string>        <key>REQUEST_ACCESS_ADD_MODIFY_ADDED</key>        <string>Keep Add Only</string>        <key>REQUEST_ACCESS_ADD_kTCCServiceCalendar_ADD</key>        <string>OK</string>        <key>REQUEST_ACCESS_ALLOW</key>        <string>Allow</string>        <key>REQUEST_ACCESS_ALLOW_kTCCServiceFocusStatus</key>        <string>OK</string>        <key>REQUEST_ACCESS_ALLOW_kTCCServiceGameCenterFriends</key>        <string>Allow</string>        <key>REQUEST_ACCESS_ALLOW_kTCCServicePhotos</key>        <string>Allow Access to All Photos</string>        <key>REQUEST_ACCESS_DENY</key>        <string>Don't Allow</string>        <key>REQUEST_ACCESS_DENY_kTCCServiceFocusStatus</key>        <string>Don't Allow</string>

     truncated

In our case, this is the key/value pair that applies to our specific use case where %@ is the client making the request.

<key>REQUEST_ACCESS_SERVICE_kTCCServiceMicrophone</key>
<string>“%@” would like to access the microphone.</string>

Let's examine our root-level TCC database, located at /Library/Application Support/com.apple.TCC.db, take a peek at an entry, and map the columns to the values. In this case, we're looking at the system extension from Red Canary's Red Canary Mac Monitor tool.

kTCCServiceEndpointSecurityClient - service (a system extension with the Endpoint Security entitlement)
com.redcanary.agent.securityextension - client (generally the Bundle Identifier (or path) of the client making the request)
0 - client_type (the client is a bundle ID(0) or an absolute path(1), which is common for debug tools or Xcode projects)
2 - auth_value (user action taken - denied(0), unknown(1), allowed(2), limited(3))
4 - auth_reason (how the user took the action)
1 - auth_version
"X'212 bytes'" - csreq (binary blob)
NULL - policy_id
0 - indirect_object_identifier_type
UNUSED - indirect_object_identifier (bundle ID or absolute path of the client interaction)
NULL - indirect_object_code_identity
0 - flags
1681493977 - last_modified (last time it was modified in epoch time)
NULL - pid
NULL - pid_version
UNUSED - boot_uuid
0 - last_reminded

Understanding these different fields can help us navigate all what TCC is tracking.

MDM Overrides

One odd caveat of TCC is the MDMOverrides.plist located in the same com.apple.TCC directory. This binary property list contains MDM-specific TCC permissions. Via MDMs, administrators can deploy payloads, called PPPC payloads, that get added to the System Settings > Profiles. Here, admins can specify TCC permissions they want enabled or not. This is paramount in allowing admins to deploy software silently, run commands on the endpoint, and lots more. 

However, because these permissions are added to the MDMOverrides.plist, as opposed to the TCC.db, they sometimes go unreflected in the UI. This can make triage of deployment issues tedious while attempting to cross reference files. In the meantime, most users cannot assist since the UI goes unchanged. 

We've also seen issues where MDMs give some system binaries too broad of permissions. In one case, we observed an MDM giving bash full disk access (FDA) to its out-of-the-box, primary payload. Unfortunately, because they didn't only give their own signed agent permissions, then call bash from their agent, they gave (and actively give) bash carte blanche to the entire system. When I discovered this, I checked my TCC permissions in the UI, then I checked the actual sqlite database, via sqlite3 /Library/Application Support/com.apple.TCC/TCC.db before I realized that this was buried roughly halfway through my MDMOverrides file. Although I can understand Apple's design idea behind this—making it so MDMs can operate behind the scenes to add these permissions, if administrators are unaware of the effect of the payloads they're deployed, this could be an easy way for a threat actor to easily live-off-the-land.

Wrap Up

TCC is arguably one of the primary user-facing security features provided by Apple out of the box and is one of the first lines of defense to protect against on-disk abuse. Understanding its building blocks and operations can help security professionals and administrators, and even end users, navigate its labyrinth. 

Next time, on Full Transparency, we’ll discuss the MDMOverrides property list and all of the nuances therein. 

Categories
Cybersecurity Education
Summarize this postClose Speech Bubble
ChatGPTClaudePerplexityGoogle AI

See Huntress in action

Our platform combines a suite of powerful managed detection and response tools for endpoints and Microsoft 365 identities, science-backed security awareness training, and the expertise of our 24/7 Security Operations Center (SOC).

Book a Demo
Share
Facebook iconTwitter X iconLinkedin iconDownload icon
Glitch effect

You Might Also Like

  • Full Transparency: Controlling Apple's TCC

    Dive into Apple's TCC framework, decoding its role in user privacy. Explore permissions, challenges, and the encryption safeguarding sensitive data.
  • Ask the Mac Guy: What's the Deal with Full Disk Access For Mac

    Learn about the importance of Full Disk Access for Mac, its role in macOS security, and how it affects app performance and functionality.
  • Built-in macOS Security Tools

    We discuss some of our favorite and most interesting built-in macOS security tools.
  • Feeling Blue(Noroff): Inside a Sophisticated DPRK Web3 Intrusion

    Learn how DPRK's BlueNoroff group executed a Web3 macOS intrusion. Explore the attack chain, malware, and techniques in our detailed technical report.
  • AMOS Stealer Exploits AI Trust: Malware Delivered Through ChatGPT and Grok

    Attackers are exploiting user trust in AI and aggressive SEO to deliver an evolved Atomic macOS Stealer. Learn why this social engineering tradecraft bypasses traditional network controls and the future of macOS infostealer defense.
  • Ask the Mac Guy: Best Practices for Securing Macs

    Tips from a Mac expert. Discover the best practices users and administrators can use to secure your Mac devices or your Mac fleet.
  • Endpoint Security In a macOS World

    It would take hours to cover everything endpoint security can do, but this blog covers it in a few aspects: a high-level overview, a deeper dive and how detection engineers can leverage it.
  • Understanding GDAP and Its Operational Impact

    Everything you need to know about Microsoft's authentication control, Granular Delegated Admin Privileges (GDAP).

Sign Up for Huntress Updates

Get insider access to Huntress tradecraft, killer events, and the freshest blog updates.
Privacy • Terms
By submitting this form, you accept our Terms of Service & Privacy Policy
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Huntress Managed Security PlatformManaged EDRManaged EDR for macOSManaged EDR for LinuxManaged ITDRManaged SIEMManaged Security Awareness TrainingManaged ISPMManaged ESPMBook a Demo
PhishingComplianceBusiness Email CompromiseEducationFinanceHealthcareManufacturingState & Local Government
Managed Service ProvidersResellersIT & Security Teams24/7 SOCCase Studies
BlogResource CenterCybersecurity 101Upcoming EventsSupport Documentation
Our CompanyLeadershipNews & PressCareersContact Us
Huntress white logo

Protecting 215k+ customers like you with enterprise-grade protection.

Privacy PolicyCookie PolicyTerms of UseCookie Consent
Linkedin iconTwitter X iconYouTube iconInstagram icon
© 2025 Huntress All Rights Reserved.

Join the Hunt

Get insider access to Huntress tradecraft, killer events, and the freshest blog updates.

By submitting this form, you accept our Terms of Service & Privacy Policy