macOS Dangerous Entitlements & TCC perms
Зверніть увагу, що entitlements, які починаються з com.apple
, недоступні для сторонніх розробників, лише Apple може надавати їх.
Високий
com.apple.rootless.install.heritable
com.apple.rootless.install.heritable
Entitlement com.apple.rootless.install.heritable
дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.
com.apple.rootless.install
com.apple.rootless.install
Entitlement com.apple.rootless.install
дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.
com.apple.system-task-ports
(раніше відомий як task_for_pid-allow
)
com.apple.system-task-ports
(раніше відомий як task_for_pid-allow
)Цей entitlement дозволяє отримати порт завдання для будь-якого процесу, крім ядра. Перевірте це для отримання додаткової інформації.
com.apple.security.get-task-allow
com.apple.security.get-task-allow
Цей entitlement дозволяє іншим процесам з entitlement com.apple.security.cs.debugger
отримати порт завдання процесу, який виконується бінарним файлом з цим entitlement та впровадити код в нього. Перевірте це для отримання додаткової інформації.
com.apple.security.cs.debugger
com.apple.security.cs.debugger
Додатки з entitlement Debugging Tool можуть викликати task_for_pid()
для отримання дійсного порту завдання для непідписаних та сторонніх додатків з entitlement Get Task Allow
, встановленим на true
. Однак навіть з entitlement debugging tool, відладчик не може отримати порти завдання процесів, які не мають entitlement Get Task Allow
, і які, отже, захищені Системою Інтегритету. Перевірте це для отримання додаткової інформації.
com.apple.security.cs.disable-library-validation
com.apple.security.cs.disable-library-validation
Цей entitlement дозволяє завантажувати фреймворки, плагіни або бібліотеки без підпису від Apple або підписані тим самим ідентифікатором команди, тому злоумисник може використовувати деяке довільне завантаження бібліотеки для впровадження коду. Перевірте це для отримання додаткової інформації.
com.apple.private.security.clear-library-validation
com.apple.private.security.clear-library-validation
Цей entitlement дуже схожий на com.apple.security.cs.disable-library-validation
, але замість прямого вимкнення перевірки бібліотек, він дозволяє процесу викликати системний виклик csops
для його вимкнення.
Перевірте це для отримання додаткової інформації.
com.apple.security.cs.allow-dyld-environment-variables
com.apple.security.cs.allow-dyld-environment-variables
Цей entitlement дозволяє використовувати змінні середовища DYLD, які можуть бути використані для впровадження бібліотек та коду. Перевірте це для отримання додаткової інформації.
com.apple.private.tcc.manager
або com.apple.rootless.storage
.TCC
com.apple.private.tcc.manager
або com.apple.rootless.storage
.TCC
Згідно з цим блогом та цим блогом, ці entitlements дозволяють змінювати базу даних TCC.
system.install.apple-software
та system.install.apple-software.standar-user
system.install.apple-software
та system.install.apple-software.standar-user
Ці entitlements дозволяють встановлювати програмне забезпечення без запиту дозволу від користувача, що може бути корисним для підвищення привілеїв.
com.apple.private.security.kext-management
com.apple.private.security.kext-management
Entitlement, необхідний для запиту ядру завантажити розширення ядра.
com.apple.private.icloud-account-access
com.apple.private.icloud-account-access
Entitlement com.apple.private.icloud-account-access
дозволяє взаємодіяти з сервісом XPC com.apple.iCloudHelper
, який надасть токени iCloud.
iMovie та Garageband мали цей entitlement.
Для отримання більш детальної інформації про експлойт для отримання токенів iCloud з цього entitlement, перегляньте виступ: #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
Цей entitlement перелічує групи ключів, до яких має доступ додаток:
kTCCServiceSystemPolicyAllFiles
kTCCServiceSystemPolicyAllFiles
Надає дозвіл на повний доступ до диска, один з найвищих дозволів TCC, які ви можете мати.
kTCCServiceAppleEvents
kTCCServiceAppleEvents
Дозволяє додатку надсилати події до інших додатків, які часто використовуються для автоматизації завдань. Керуючи іншими додатками, він може зловживати дозволами, наданими цим іншим додаткам.
Наприклад, змушуючи їх запитувати у користувача його пароль:
Або змушувати їх виконувати довільні дії.
kTCCServiceEndpointSecurityClient
kTCCServiceEndpointSecurityClient
Дозволяє, серед інших дозволів, записувати базу даних користувачів TCC.
kTCCServiceSystemPolicySysAdminFiles
kTCCServiceSystemPolicySysAdminFiles
Дозволяє змінювати атрибут NFSHomeDirectory
користувача, що змінює шлях його домашньої теки та, отже, дозволяє обійти TCC.
kTCCServiceSystemPolicyAppBundles
kTCCServiceSystemPolicyAppBundles
Дозволяє змінювати файли всередині пакунків програм (у програмі.app), що заборонено за замовчуванням.
Можливо перевірити, хто має доступ до цього в System Settings > Privacy & Security > App Management.
kTCCServiceAccessibility
kTCCServiceAccessibility
Процес зможе зловживати функціями доступності macOS, Що означає, наприклад, що він зможе натискати клавіші. Таким чином, він може запитати доступ до управління програмою, наприклад, Finder, та схвалити діалогове вікно з цим дозволом.
Середній
com.apple.security.cs.allow-jit
com.apple.security.cs.allow-jit
Цей дозвіл дозволяє створювати пам'ять, яка є записувальною та виконувальною, передаючи прапорець MAP_JIT
до функції системи mmap()
. Перевірте це для отримання додаткової інформації.
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.
kTCCServicePostEvent
kTCCServicePostEvent
Last updated