Повышение безопасности машины времени

Столкнувшись с новостью о том, что теперь в дикой природе существует программа-вымогатель для Mac, я задумался о безопасности резервных копий моей машины времени.

Разрешения

Во-первых, я посмотрел на права доступа к файлам, которые находятся в моей капсуле времени, а именно:

Каталог данных

Пользователь (неизвестно) Чтение и запись

Группа (все) Чтение и запись

Индивидуальные Sparbundle для каждого резервного компьютера в каталоге данных

Пользователь (неизвестно) Чтение и запись

Группа (персонал) Чтение и запись

Группа (все) Чтение и запись

Кажется, что здесь есть, что улучшать. Во-первых, я не понимаю, почему указан Неизвестный пользователь. Есть ли причина для этого или я могу удалить этот пункт? Во-вторых, есть ли необходимость давать разрешения на чтение и запись «всем» и «персоналу»?

Если я правильно понимаю, резервные копии Time Machine запускаются процессом backupd , который на моем компьютере запускается от имени пользователя root . Таким образом, кажется, что только пользователь root должен иметь доступ для чтения и записи. Это верно? Могу ли я удалить существующие разрешения и добавить пользователя «root» с разрешениями на чтение и запись?

Наконец, обеспечит ли это изменение дополнительную линию защиты от программ-вымогателей? Если программа-вымогатель работает от имени обычного пользователя X и не получает root, она может зашифровать все файлы, к которым X имеет доступ для записи, но не сможет зашифровать резервные копии машины времени, потому что к ним имеет доступ только root. Верна ли эта линия или рассуждение?

Запуск OSX El Capitan, 10.11.3.

Ответы (2)

Обновление после обсуждения с bmike (см. ниже)

Во время фактического резервного копирования Time Machine backupd монтирует два общих ресурса. /Volumes/Whatever и /Volumes/Time Machine Backups. В то время как первый не может быть доступен пользователю без полномочий root, последний может. Действительно, можно очистить ACL файлов и впоследствии перезаписать их. Так что вопрос безопасности открыт.

Оригинальный ответ

Немного подумав о базовой системе крепления, я пришел к выводу, что мой первоначальный вопрос содержал ошибочное предположение, удаление которого, возможно, делает вопрос устаревшим. Я решил написать ответ вместо того, чтобы удалить вопрос в пользу столь же заблуждающихся.

Когда я проверил права доступа к своим файлам sparsebundle, я вручную смонтировал диск Time Capsule. Поскольку я смонтировал диск как обычный пользователь, этот пользователь стал владельцем точки монтирования (проверив терминал, я вижу, что моя учетная запись пользователя является владельцем точки монтирования, а «персонал» - это группа).

Теперь мое предположение (которое не было для меня прозрачным) заключалось в том, что если Time Machine смонтирует диск во время сеанса резервного копирования, он будет присутствовать в системе так же, как если бы я смонтировал его вручную. Но это неправильно. Ибо так как backupd запускается от root, то точка монтирования принадлежит root (проверка в терминале, владелец "root", группа "wheel", группа и мир не имеют прав.) и, таким образом, процесс, принадлежащий обычному пользователь не сможет зашифровать файлы на диске Time Machine, смонтированном с помощью backupd .

Таким образом, в настройке Time Capsule на данный момент не существует опасности, что программа-вымогатель зашифрует резервную копию. Однако с локально подключенным внешним жестким диском все может быть по-другому. Я смутно помню, что, когда я все еще использовал внешний жесткий диск, я мог видеть раздел Time Machine, смонтированный в Finder (чего я сейчас не вижу), и, следовательно, он мог быть смонтирован с правами пользователя. Я не могу проверить это, так как у меня нет внешнего жесткого диска с машиной времени, но, возможно, кто-то еще может что-то сказать по этому поводу.

Я даю вам +1 за то, что вы подумали об этом и подняли не только проблему, но и предложили ответ. Однако я не согласен с вашей оценкой защищенности резервных копий. Защита точки монтирования предотвращает только случайную ошибку, а не минимально грамотного программиста. Даже если точка монтирования защищена, пока код работает с файлом за файлом, для вмешательства в пользовательские файлы не требуется root-права.
@bmike, я не уверен, что понимаю ваше замечание относительно моей оценки. Вы поняли, что я говорю, что руту принадлежит только точка монтирования, а файлы в монтировании нет? Это не так: точка монтирования и все файлы в монтировании принадлежат root. Таким образом, безопасность просто следует парадигме разрешений unix. Чтобы сломать это, потребуется больше, чем минимально компетентный программист, поскольку кажется, что для этого потребуется получить root-доступ.
Смотрите мой ответ. Мало того, что sudo/root не нужен - не администратор может саботировать свои пользовательские файлы (но не файлы другого пользователя)

Резервные копии Time Machine в первую очередь защищены ACL, запрещающим кому-либо запись в файл.

$ ls -le /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text 
-rw-r--r--@ 1 me    staff  - 14 Mar  8 11:54 /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text
0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

Чтобы вредоносная программа изменила файл в подсистеме резервного копирования, ей необходимо сначала прочитать и удалить любой ACL, а затем она сможет внести изменения в файл, хранящийся в каталоге Time Machine.

$ chmod -a# 0 /Volumes/Whatever/Backups.backupdb/Mac/Latest/Macintosh\ HD/Users/me/Desktop/file.text 

После приведенной выше команды файл открыт для модификации или полного удаления.

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

Ни песочница, ни защита целостности системы не остановят какой-либо вредоносный процесс, запущенный от имени администратора, от шифрования/изменения/удаления файлов пользовательских данных на резервном диске, который можно подключить (сетевые диски) или подключить и уже подключить.

Чтобы защитить ваши резервные копии, вам нужно будет так или иначе иметь копию в автономном режиме, предполагая, что злоумышленник знает, что нужно проверить и изменить/удалить ACL, прежде чем они вмешаются.

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

Таким образом, первое место назначения резервного копирования может запускаться часто, но быть уязвимым для вредоносных программ. Второй пункт назначения будет сообщать вам каждые две недели или около того, что он устарел, если вы не смонтируете его и не начнете более ручное резервное копирование.

Это не идеально, но я полагаю, что Apple может перепроектировать систему, если этот потенциальный риск со временем станет более реальным риском в OS X. Единственная спасительная черта привратника и подписанного кода заключается в том, что чем более широко распространено вредоносное ПО, тем более вероятно, что Apple запретит его запуск на машинах, которые используют защиту Gatekeeper. В этом случае похоже, что прошло менее 48 часов с момента публичного объявления об угрозе до того, как средство от Apple отключило ее.

Используя учетную запись администратора, я не могу воспроизвести это. ls -le /Volumes/MyBackup/Imac.sparsebundle дает мне отказ в разрешении, если я не sudo. Я также не могу выполнить chmod -a# 0 для файла, принадлежащего пользователю root (я создал тестовый файл, потому что не хочу возиться со своими резервными копиями), так как это дает мне операцию, не разрешенную.
Филипп и я провели короткую сессию контроля качества в чате , чтобы проверить результаты здесь, если кому-то интересно.
Проблема решена. Во время фактического резервного копирования Time Machine backupd монтирует два общих ресурса. /Volumes/Whatever и /Volumes/Time Machine Backups. В то время как к первому пользователь без полномочий root не может получить доступ, второй может. Действительно, можно очистить ACL файлов и впоследствии перезаписать их. Так что вопрос безопасности открыт.
не может воспроизводиться в последней версии macOS. не /Volumes/Time Machine Backupsсоздается, и без sudo я не могу удалить материал из фактической резервной копии, а изменение ACL также требует повышенных привилегий.