macOS Dangerous Entitlements & TCC perms
**com.apple
**で始まる権限はサードパーティには利用できず、Appleのみがそれらを付与できます。
高
com.apple.rootless.install.heritable
com.apple.rootless.install.heritable
権限**com.apple.rootless.install.heritable
はSIPをバイパス**することを可能にします。詳細はこちらを参照してください。
com.apple.rootless.install
com.apple.rootless.install
権限**com.apple.rootless.install
はSIPをバイパス**することを可能にします。詳細はこちらを参照してください。
com.apple.system-task-ports
(以前はtask_for_pid-allow
と呼ばれていました)
com.apple.system-task-ports
(以前はtask_for_pid-allow
と呼ばれていました)この権限は、カーネルを除く任意のプロセスのタスクポートを取得することを可能にします。詳細はこちらを参照してください。
com.apple.security.get-task-allow
com.apple.security.get-task-allow
この権限は、他のプロセスが**com.apple.security.cs.debugger
権限を持つプロセスのタスクポートを取得し、この権限を持つバイナリによって実行されるプロセスにコードをインジェクト**することを可能にします。詳細はこちらを参照してください。
com.apple.security.cs.debugger
com.apple.security.cs.debugger
デバッグツール権限を持つアプリケーションは、Get Task Allow
権限がtrue
に設定された未署名およびサードパーティアプリケーションの有効なタスクポートを取得するためにtask_for_pid()
を呼び出すことができます。ただし、デバッガーはデバッグツール権限を持っていても、Get Task Allow
権限を持たないプロセスのタスクポートを取得できず、したがってシステム整合性保護によって保護されているプロセスのタスクポートを取得できません。詳細はこちらを参照してください。
com.apple.security.cs.disable-library-validation
com.apple.security.cs.disable-library-validation
この権限は、Appleによって署名されていないか、メインの実行可能ファイルと同じTeam IDで署名されていないフレームワーク、プラグイン、またはライブラリをロードすることを可能にします。したがって、攻撃者は任意のライブラリのロードを悪用してコードをインジェクトすることができます。詳細はこちらを参照してください。
com.apple.private.security.clear-library-validation
com.apple.private.security.clear-library-validation
この権限は**com.apple.security.cs.disable-library-validation
と非常に似ており、ライブラリの検証を直接無効にする代わりに、プロセスがcsops
システムコールを呼び出して無効にする**ことを可能にします。
詳細はこちらを参照してください。
com.apple.security.cs.allow-dyld-environment-variables
com.apple.security.cs.allow-dyld-environment-variables
この権限は、ライブラリやコードをインジェクトするために使用できるDYLD環境変数の使用を可能にします。詳細はこちらを参照してください。
com.apple.private.tcc.manager
またはcom.apple.rootless.storage
.TCC
com.apple.private.tcc.manager
またはcom.apple.rootless.storage
.TCC
このブログによると および このブログによると、これらの権限はTCCデータベースを変更することを可能にします。
system.install.apple-software
およびsystem.install.apple-software.standar-user
system.install.apple-software
およびsystem.install.apple-software.standar-user
これらの権限は、ユーザーに許可を求めることなくソフトウェアをインストールすることを可能にします。これは特権昇格に役立ちます。
com.apple.private.security.kext-management
com.apple.private.security.kext-management
カーネルにカーネル拡張機能をロードするように要求するための権限が必要です。
com.apple.private.icloud-account-access
com.apple.private.icloud-account-access
権限**com.apple.private.icloud-account-access
を使用すると、com.apple.iCloudHelper
** XPCサービスと通信し、iCloudトークンを提供できます。
iMovieとGaragebandにはこの権限がありました。
この権限からiCloudトークンを取得するためのエクスプロイトについての詳細については、次のトークを参照してください:#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
com.apple.private.tcc.manager.check-by-audit-token
TODO: これが何を許可するかわかりません
com.apple.private.apfs.revert-to-snapshot
com.apple.private.apfs.revert-to-snapshot
TODO: このレポート によると、これは再起動後にSSVで保護されたコンテンツを更新するために使用できる可能性があります。方法を知っている場合は、PRを送信してください!
com.apple.private.apfs.create-sealed-snapshot
com.apple.private.apfs.create-sealed-snapshot
TODO: このレポート によると、これは再起動後にSSVで保護されたコンテンツを更新するために使用できる可能性があります。方法を知っている場合は、PRを送信してください!
keychain-access-groups
keychain-access-groups
この権限リストには、アプリケーションがアクセスできるキーチェーングループが含まれています:
kTCCServiceSystemPolicyAllFiles
kTCCServiceSystemPolicyAllFiles
フルディスクアクセス権限を与え、持っているできるTCCの最高権限の1つです。
kTCCServiceAppleEvents
kTCCServiceAppleEvents
アプリケーションがタスクの自動化に一般的に使用される他のアプリケーションにイベントを送信することを許可します。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
ユーザにパスワードを求めさせるようにすることもできます:
またはそれらを任意のアクションを実行させることができます。
kTCCServiceEndpointSecurityClient
kTCCServiceEndpointSecurityClient
他の権限の中で、ユーザーのTCCデータベースを書き込むことができます。
kTCCServiceSystemPolicySysAdminFiles
kTCCServiceSystemPolicySysAdminFiles
ユーザーのホームフォルダーパスを変更するユーザーの**NFSHomeDirectory
属性を変更することができ、それによりTCCをバイパス**することができます。
kTCCServiceSystemPolicyAppBundles
kTCCServiceSystemPolicyAppBundles
デフォルトでは許可されていないアプリのバンドル内のファイル(app.app内)を変更できます。
このアクセス権を持っているユーザーを確認することができます。システム設定 > プライバシーとセキュリティ > アプリの管理.
kTCCServiceAccessibility
kTCCServiceAccessibility
プロセスはmacOSのアクセシビリティ機能を悪用することができます。つまり、例えばキーストロークを押すことができます。そのため、Finderのようなアプリを制御するアクセスをリクエストし、この権限でダイアログを承認することができます。
Medium
com.apple.security.cs.allow-jit
com.apple.security.cs.allow-jit
この権限により、mmap()
システム関数にMAP_JIT
フラグを渡すことで、書き込み可能かつ実行可能なメモリを作成することができます。詳細はこちらを参照してください。
com.apple.security.cs.allow-unsigned-executable-memory
com.apple.security.cs.allow-unsigned-executable-memory
この権限により、Cコードをオーバーライドまたはパッチすることができ、長期間非推奨の**NSCreateObjectFileImageFromMemory
**(基本的に安全ではない)を使用したり、DVDPlaybackフレームワークを使用したりすることができます。詳細はこちらを参照してください。
この権限を含めると、アプリがメモリの安全でないコード言語に一般的な脆弱性にさらされる可能性があります。この例外がアプリに必要かどうかを慎重に検討してください。
com.apple.security.cs.disable-executable-page-protection
com.apple.security.cs.disable-executable-page-protection
この権限により、ディスク上の自身の実行可能ファイルのセクションを強制的に終了することができます。詳細はこちらを参照してください。
実行可能メモリ保護を無効にする権限は、アプリから基本的なセキュリティ保護を削除し、攻撃者がアプリの実行可能コードを検出されずに書き換えることが可能になります。可能であれば、より狭い権限を選択してください。
com.apple.security.cs.allow-relative-library-loads
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
com.apple.private.nullfs_allow
この権限により、デフォルトでは禁止されているnullfsファイルシステムをマウントすることができます。ツール: mount_nullfs.
kTCCServiceAll
kTCCServiceAll
このブログ投稿によると、このTCC権限は通常、以下の形式で見つかります:
プロセスがすべてのTCC権限を要求することを許可します。
kTCCServicePostEvent
kTCCServicePostEvent
Last updated