В течение первых 15 лет существования классической Mac OS, вплоть до выхода Mac OS 9 в 1999 году, компьютеры оставались в основном однопользовательскими, и вопрос конфиденциальности не вызывал особого беспокойства. В эти безмятежные годы настольных издательских систем и HyperCard пользователи хотели делиться информацией, а не скрывать ее, а Интернет находился в зачаточном состоянии. И только в Mac OS 9 появились возможность создания нескольких учетных записей пользователей и механизм защиты данных с помощью связок ключей.
Mac OS X стала первой полноценной многопользовательской операционной системой для Mac. Но несмотря на то, что интернет-соединения становились всё более распространёнными и продолжительными, конфиденциальности уделялось недостаточно внимания. В 2011 году вкладка Privacy (Конфиденциальность) в разделе Security & Privacy (Безопасность и Конфиденциальность), а затем в System Preferences (Системные настройки) содержала всего три пункта: Location Services (Служба геолокации), Contacts (Контакты) и Diagnostics & Usage (Диагностика и Использование). Хотя функции конфиденциальности развивались и в других местах системы, для простоты я сосредоточусь на этой панели в System Preferences (Системные настройки) и ее преемнице в System Settings (Системные настройки).
В OS X 10.10 Yosemite (2015) и в 10.12 Sierra (2017) эти три пункта расширились до восьми, к ним добавились Calendars (Календари), Reminders (Напоминания), Accessibility (Универсальный доступ) и две социальные сети - Twitter и Facebook.
Затем на WWDC в 2018 году Apple показала свою новую архитектуру конфиденциальности как одну из ключевых особенностей macOS 10.14 Mojave. В названии изменился порядок слов на Privacy & Security (Конфиденциальность и Безопасность).
Mojave защищала информацию в 15 категориях:
-
Службы геолокации,
-
Контакты (адресные книги),
-
Календари,
-
Напоминания,
-
Фотографии (библиотеки фотографий),
-
Почта,
-
Сообщения,
-
История просмотров в Safari,
-
HTTP-куки,
-
История вызовов (iOS),
-
Резервные копии Time Machine,
-
Резервные копии iTunes,
-
Доступ к камере,
-
Доступ к встроенному микрофону,
-
Автоматизация (AppleScript и другие).
Новая система защиты получила название TCC (Transparency Consent and Control) и с тех пор стала кошмаром разработчиков, службы поддержки и многих пользователей. При худшем раскладе она приводит к сбою приложений, которые не соответствуют ее правилам, как показано на диаграмме ниже для macOS 10.14.
Слева показаны различные классы защищенных данных. Для тех, что выделены красным, были свои пункты управления в System Preferences (Системные настройки)/Privacy& Security (Конфиденциальность и Безопасность). В первую очередь необходимо было определить, подписано ли компанией Apple приложение, пытающееся получить доступ к защищаемым данным. Если да, то доступ определялся с помощью приватных, а иногда и обычных элементов управления.
Приложения сторонних разработчиков проверялись на предмет наличия доступа к определенному классу защищенных данных в соответствии с настройками конфиденциальности. Если имели, то доступ предоставлялся без дополнительных диалогов. Обратите внимание, что добавление приложения в список Full Disk Access (Доступ к диску) давало ему доступ ко всем защищенным данным, но не к службам или оборудованию, без запроса дополнительного согласия.
Если доступ еще не был предоставлен, то нужно было выяснить, на базе какой версии SDK было создано приложение. Если на базе 10.13 или более ранней версии, то Mojave не ожидала, что они будут поддерживать такую информацию об использовании. Поэтому она должна была показать диалоговое окно с предложением дать согласие на запрашиваемый доступ. Обычно оно содержало вот такое стандартное сообщение.
Если согласие было дано, то приложение добавлялось в соответствующий раздел в настройках конфиденциальности. Если было отклонено, то приложению отказывали в доступе. Но оно не попадало ни в какой черный список, потому что согласие все еще можно было получить в следующий раз.
Если приложение было создано на основе 10.14 SDK, то применялись более строгие правила. Здесь разработчикам требовалось указать, как используются данные, к которым приложение пытается получить доступ. Если приложение не предоставляло соответствующую информацию, TCC считал запрос на доступ к защищенным данным непреднамеренным, и приложение “неожиданно завершало работу” (unexpectedly quit).
Если приложение содержало эту информацию, то macOS Mojave отображала диалоговое окно, которое включало в себя, в том числе и эту информацию. Если пользователь давал согласие, приложение добавлялось в соответствующий список в настройках.
Начиная с Mojave, TCC стал богатым источником для поиска уязвимостей как сторонними исследователями, так и злоумышленниками. Три уязвимости были обнаружены вскоре после выхода первой версии 10.14. Две из них, обнаруженные Патриком Уордлом (Patrick Wardle) и Джеффом Джонсоном (Jeff Johnson), не были раскрыты, чтобы позволить Apple устранить их. А третья касалась доступа к данным при подключении пользователя по ssh и была не столько уязвимостью, сколько фичей, которую можно было эксплуатировать.
Каждая последующая версия macOS пополняла этот список. В Catalina (10.15, 2019) были добавлены новые места, для доступа к которым требовалось согласие пользователя, в том числе:
-
~/Desktop (Рабочий стол), широко используется для текущих файлов,
-
~/Documents (Документы), основное хранилище файлов,
-
~/Downloads (Загрузки), местоположение по умолчанию для загруженных файлов,
-
iCloud Drive, теперь широко используется для совместного доступа к рабочим документам,
-
сторонние облачные хранилища, если они используются,
-
съемные диски,
-
сетевые диски.
Это панель Security & Privacy (Безопасность и Конфиденциальность) из macOS Catalina в 2019 году.
К моменту выхода macOS 13 Ventura в 2022 году раздел Privacy & Security (Конфиденциальность и Безопасность) в System Settings (Системные настройки) был полностью переработан и содержал 20 категорий. Некоторые из них, например Full Disk Access (Доступ к диску) и Files and Folders (Файлы и Папки), пересекались, а другие, например Accessibility (Универсальный доступ), похоже, были названы недостаточно понятно. Элементы управления различались в зависимости от категории, и многие пользователи боялись возиться с ними.
При таких темпах роста у Privacy (Конфиденциальность) вскоре появится собственное приложение наряду с System Settings (Системные настройки).
Автор: RingoMDM