{"id":38787,"date":"2023-03-16T15:38:01","date_gmt":"2023-03-16T19:38:01","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=38787"},"modified":"2026-04-14T10:33:05","modified_gmt":"2026-04-14T14:33:05","slug":"ventura-adds-com-apple-provenance","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2023\/03\/16\/ventura-adds-com-apple-provenance\/","title":{"rendered":"Ventura Adds com.apple.provenance"},"content":{"rendered":"<p><a href=\"https:\/\/eclecticlight.co\/2023\/03\/13\/ventura-has-changed-app-quarantine-with-a-new-xattr\/\">Howard Oakley<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=35132679\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2023\/03\/13\/ventura-has-changed-app-quarantine-with-a-new-xattr\/\">\n<p>What happens in macOS Ventura is essentially the same until the moment that quarantine is cleared, when macOS now attaches a new extended attribute (xattr) of type <code>com.apple.provenance<\/code> to the file. This contains an 11-byte binary reference unique to that quarantine event, and may be protected by SIP to make it persist and prevent it from being stripped.<\/p>\n<p>[&#8230;]<\/p>\n<p>Defeating any SIP protection is simple for the user: when an app with a protected <code>com.apple.provenance<\/code> xattr is copied to another volume, the SIP protection breaks, and the xattr can be deleted in the normal way. However, code that tries to remove that xattr while it&rsquo;s still protected may fail, and that has resulted in problems reported in Ventura by some users.<\/p>\n<p>[&#8230;]<\/p>\n<p>Randy has also identified the binary content of this new xattr as containing an 8-byte integer that is that app&rsquo;s primary key in the <code>provenance_tracking<\/code> table in <tt>\/var\/db\/SystemPolicyConfiguration\/ExecPolicy<\/tt>. This would enable macOS to check the previous cdhash and other information about the app, perhaps to determine whether fuller checks are required by Gatekeeper, when the app is launched on subsequent occasions. That would make it a key part of Ventura&rsquo;s new extended Gatekeeper checks.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/mastodon.social\/@ethanschoonover\/110023043181626308\">Ethan Schoonover<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mastodon.social\/@ethanschoonover\/110023043181626308\"><p>A small macOS improvement idea:<\/p><p>When I hit command-i on a macOS app, it would be nice if the app would include the website for the developer\/application in the info or comments field.<\/p><p>I&rsquo;ve forgotten about some apps that I&rsquo;ve installed (i.e. i have no idea what they are even for) and would like to easily pop open the site for them without launching and hoping the URL is in help or about (or just manually searching online).<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/eclecticlight.co\/2023\/03\/16\/what-is-macos-ventura-doing-tracking-provenance\/\">Howard Oakley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2023\/03\/16\/what-is-macos-ventura-doing-tracking-provenance\/\">\n<p>While it&rsquo;s clear that macOS Ventura is now tracking the provenance of apps that have completed their first run with the quarantine flag set, this provenance tracking doesn&rsquo;t (yet) appear to be used to tailor or modify the checks run by Gatekeeper. It&rsquo;s possible that provenance tracking isn&rsquo;t yet mature enough to be used for that purpose, or that it&rsquo;s intended for something else. Perhaps Ventura 13.3 will reveal more.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/08\/18\/gatekeeper-changes-in-macos-ventura\/\">Gatekeeper Changes in macOS Ventura<\/a><\/li>\n<\/ul>\n\n<p id=\"ventura-adds-com-apple-provenance-update-2023-05-11\">Update (2023-05-11): <a href=\"https:\/\/eclecticlight.co\/2023\/05\/10\/how-macos-now-tracks-the-provenance-of-apps\/\">Howard Oakley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2023\/05\/10\/how-macos-now-tracks-the-provenance-of-apps\/\"><p>When the app is moved to a different enclosing folder, such as Applications, and is launched for the first time using the Finder, its xattrs change: the quarantine flag is cleared but left in place, a com.apple.macl xattr that&rsquo;s protected by SIP is attached, and an unprotected com.apple.provenance xattr is also attached.<\/p><p>If the app is first launched from the same folder that it arrived in, that works differently, and no provenance xattr will be attached. Neither are provenance xattrs attached to documents.<\/p><p>[&#8230;]<\/p><p>On subsequent runs of that app, <code>syspolicyd<\/code> locates the previously stored provenance data, and updates it[&#8230;]<\/p><\/blockquote>\n\n<p id=\"ventura-adds-com-apple-provenance-update-2026-04-14\">Update (<a href=\"#ventura-adds-com-apple-provenance-update-2026-04-14\">2026-04-14<\/a>): <a href=\"https:\/\/eclecticlight.co\/2025\/12\/05\/quarantine-macl-and-provenance-what-are-they-up-to\/\">Howard Oakley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/eclecticlight.co\/2025\/12\/05\/quarantine-macl-and-provenance-what-are-they-up-to\/\">\n<p>Most recent versions of macOS have what&rsquo;s known as a <em>Provenance Sandbox<\/em> that enables the security system to track the origins of files, and trace which app has altered them. This has recently been detailed in full in Koh M. Nakagawa&rsquo;s <a href=\"https:\/\/i.blackhat.com\/BH-USA-25\/Presentations\/USA-25-Koh-XUnprotect-Reverse-Engineering-macOS-XProtect-Remediator-wp.pdf\">account of XProtect Remediator<\/a>. It operates quite differently from the regular app sandbox, and doesn&rsquo;t appear to impose any restrictions.<\/p>\n<p>Apps that aren&rsquo;t signed by Apple are assigned an 11-byte integer when they first clear Gatekeeper&rsquo;s checks, and those are entered into the Provenance Tracking table in the ExecPolicy database, and attached to the app in the <code>com.apple.provenance<\/code> xattr. When that app performs operations like opening a file in write mode, or creating a new one, the same xattr with that app&rsquo;s provenance ID is attached to the file. Thus, by checking the provenance ID on any file with the xattr, the app that last wrote to the file can be identified.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Howard Oakley (Hacker News): What happens in macOS Ventura is essentially the same until the moment that quarantine is cleared, when macOS now attaches a new extended attribute (xattr) of type com.apple.provenance to the file. This contains an 11-byte binary reference unique to that quarantine event, and may be protected by SIP to make it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2023-03-16T19:38:05Z","apple_news_api_id":"ac63d52c-26cc-45bb-900b-969cc0101579","apple_news_api_modified_at":"2026-04-14T14:33:09Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/ArGPVLCbMRbuQC5acwBAVeQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[1902,465,30,2223],"class_list":["post-38787","post","type-post","status-publish","format-standard","hentry","category-technology","tag-extended-attributes","tag-gatekeeper","tag-mac","tag-macos-13-ventura"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=38787"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38787\/revisions"}],"predecessor-version":[{"id":51576,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38787\/revisions\/51576"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=38787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=38787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=38787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}