НовостиСобытияКонференцииФорумыIT@Work
Open Source:

Блог

Яндекс.Диск поломал Windows — продолжение

Сергей Голубев
05.12.2013 13:13:14

Увы, оказалось, что "пострадавшими" в этой истории оказались именно пользователи Linux. Пользователям Windows труд по восстановлению системы был компенсирован — они получили дополнительно 200 ГБ на Яндекс.Диске, причём совершенно бесплатно. За такую цену я бы Linux мог и два раза переустановить.

В-общем, всё как обычно. Одним — приключения и компенсация, другим — скучная стабильность.

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

Релиз-менеджер компании РОСА Александр Казанцев рассказал, что в системе РОСА тщательно тестируются только те пакеты, которые предназначены для репозитория Main, а Contrib проверяется довольно поверхностно. Тем не менее, все обновления так или иначе идут на сборочную и разработчики обязательно увидят, если где-то что-то не так.

Разумеется, пресловутого человеческого фактора исключать нельзя. Поэтому стопроцентной гарантии нет.

Технический директор компании "ПингВин Софтвер" Вячеслав Калошин утверждает, что чисто теоретически подобная ошибка может быть в любой системе и при любом пакетном менеджере. Но на практике вероятность этого довольно мала.

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

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

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

Отсюда практические выводы для людей с прокачанной паранойей.

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

Во-вторых, угроза может быть только в скриптах типа PRE-INSTALL и POST_INSTALL. При установке программы из неконтролируемого составителями дистрибутива источника следует распаковать пакет и убедиться, что таких скриптов там нет. А если есть, то их проверять отдельно.

Комментариев: 7

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Donat Lipkovsky
05.12.2013 16:16:19

На самом деле для проверки действия программ при установке и обновлении есть практически 100% методы избавления от неприятностей независимо от источника установки.
Думаю они идентичны для всех систем.
Скажем в корпоративной среде (имею ввиду Windows, если не возражаете) автоматическая установка обновлений, как правило отключена, даже для важных обновлений безопасности. Сначала обновления ставятся на тестовые машины и только потом дается добро на установку в рабочую среду. Да это гиморно, но гораздо менее, чем устранять грустные последствия.
Для домашних пользователей так же есть возможность проявить бдительность - ставить предварительно в том же VirtualBox, но опять же - кто этим будет заниматься?!
Собственно тут можно много чего писать, но всё это будет касаться околосторонних манипуляций - сама система тут не при чём, ни в случае Линукса, ни в случае Виндоуса, ибо, повторюсь, если ВЫ (ПОЛЬЗОВАТЕЛЬ) права максимальные дали - дальше или счастье или тушите свет.
Таким образом в 99% случаев дело не в безопасности системы, как таковой, а в прокладке между рулём и сиденьем.

05.12.2013 20:34:17

Систему можно сделать безопасной архитектурно. Например, в MacOS X приложения распространяются в виде образов файловой системы, которая используется только пользователем и с правами пользователя. Даже если там есть аналог POST_INSTALL (а он там есть), такой пакет не сможет навредить больше, чем пользовательским данным. Но пользовательским данным программа в любом случае сможет навредить.

В Linux такой подход пока ещё только планируется в Ubuntu Click, который обещается через год.

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

Т.е. задача в принципе имеет решение.

Donat Lipkovsky
06.12.2013 11:32:51

А ничего, что тот же Яндех.Диск для Mac OS X требует административных прав для установки его в каталог Программы (Application), который является системным, так же как и Program Files в Виндоус?
Или вы имеете ввиду стандартный случай, когда установив систему и создав административную учётную запись во время установки, пользователь Мас'а так и продолжает под ней пилить, не удосужившись создать стандартную запись пользователя, как и в случае пользователя Виндоус?!
Кстати, под Виндоус вы можете установить тот же Google Chrome именно под обычным пользователем. При установке будет появляться окно с запросом административных прав, но его можно проигнорировать. В этом случае Хром полностью установиться в профиль обычного пользователя. В случае Маса, проигнорировать "копирование" в папку Программы не обойти, а туда опять нужны административные права.
Кроме этого для Виндоус есть целый набор так называемых Portable http://portableapps.com/ приложений, которые вы можете запускать с флэшки, не устанавливая их даже в профиль обычного пользователя?


Цитата
В Linux такой подход пока ещё только планируется в Ubuntu Click, который обещается через год


Вообще-то эта фишка пока позиционируется в основном для Ubuntu Touch, а для настольных систем ей, опять же пока, не собираются заменять стандартные пакеты.
Для общего развития, так же полезно заглянуть сюда http://msdn.microsoft.com/ru-ru/library/t71a733d.aspx

Цитата
Кроме того, есть ещё подход Android

Подход замечательный - но это не настольная ОС, как и Ubuntu Touch.

06.12.2013 11:44:53

Я не совсем понял — это были аргументы за или против того, что проблема может быть решена архитектурно?

Donat Lipkovsky
06.12.2013 12:53:54

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

07.12.2013 10:27:06

Цитата
Но примеры, которые вы привели не являются "архитектурным решением" проблемы обсуждаемой в статье.


Потому что Android — это не настольная ОС, как и Ubuntu Touch?

Donat Lipkovsky
07.12.2013 10:48:39

Это вопрос?

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии