Безопасность событий файловой системы

События API файловой системы ставят интересную проблему перед безопасностью. Поскольку это обеспечивает продвижение пути файловой системы до измененного содержания, храня ту информацию в персистентной базе данных, это представляет новый путь для информационных утечек, хотя только имен каталогов.

События API файловой системы добиваются этого беспокойства двумя способами: полномочия и предотвращение.

Полномочия файловой системы и события файловой системы

Самая очевидная проблема безопасности, связанная с событиями файловой системы, является одной из конфиденциальности. Если Боб видит список событий от изменений до корневого каталога Элис, Боб мог бы видеть вещи, которые Элис не хочет, чтобы он видел. Например, у Элис могло бы быть имя каталога, совпадающее с кодовым названием невыпущенного продукта Apple.

Для предотвращения этой потенциальной утечки безопасности пользователи не получают событий, если пользователь не может достигнуть измененного каталога через стандартные полномочия файловой системы.

Удаленные события файловой и файловой системы

Когда файлы или каталоги удалены, эти события взгляд точно так же, как любое другое событие файловой системы. Это означает, что имена каталогов задержатся на Вашем компьютере даже после того, как будет удален файл.

Не возможно удалить отдельные записи программно. Единственный способ удалить предшествующие записи в базе данных состоит в том, чтобы произвести чистку всех записей до определенной записи ID. Можно сделать это путем вызова FSEventsPurgeEventsForDeviceUpToEventId в Вашем приложении.

В то время как gzipped данные хранятся в серии файлов в .fseventsd каталог на корневом уровне каждого объема (доступный только полностью пользователь), Вы никогда не должны работать с данными непосредственно, поскольку формат этих файлов может измениться в любое время.

Предотвращение хранения событий файловой системы

В некоторых случаях содержание объема является достаточно секретным, что не является надлежащим зарегистрировать их. Для отключения вхождения в систему основания на объем (для создания тома резервного копирования, например), необходимо сделать следующее:

Таким образом, если Ваш объем смонтирован в /Volumes/MyDisk, Вы создали бы пустой вызванный файл /Volumes/MyDisk/.fseventsd/no_log.