Итак, начатый мной
"Мак-эксперимент" - опрос общественного мнения на тему "почему компьютер типа Apple Mac на базе ОС типа MacOS X считается более защищенным от вирусов, чем компьютер с ОС типа Windows" - можно считать завершенным.
Updated! Забыл написать про уже существующие дыры в ОС и запущенные сервисы. Исправился :).
Теперь подытожим полученные ответы и сделаем выводы на основе информации, полученной от мак-юзеров, Apple, Google и Wikipedia.
Ответы типа "Вам наврали, вирусы на маке каждый день ловлю, три раза переустанавливал всё, на винде меньше было", *Побежал за попкорном* и различные варианты смыслового "гы" типа "вирусы под фрёй? вы не затрахались их под систему собирать?", при всей их цветастости и наглядной демонстрации уровня интеллекта мак-юзеров, увы, отбрасываем по причине неинформативности.
Во-первых, "полное отсутствие вирусов на Mac" - это все-таки миф.
пруфлинк (там же можно увидеть и Антивирус Касперского для Mac).
Да, - строго говоря, это не вирус в "традиционном" для пользователей Windows понимании; но под описание
malware вполне подходит, а так как мы рассматриваем вопрос принципиально, то засчитывается.
Во-вторых, скажу пару слов про отличия в архитектуре операционных систем.
Первоначально
MacOS X базировалась на ядре
BSD (а если точнее, то на основе
Darwin), что относило ее к семейству
Unix-like. С релизом
Mac OS X v10.5 Leopard она получила
сертификат UNIX 03 и теперь имеет полное право считаться
сертифицированной Unix-системой.
Ну, так как для многих все это - не более чем набор красивых слов, богато украшенных ссылками на непонятно что ;), постараюсь объяснить попроще.
По сравнению с ОС Windows, ОС "типа Unix" имеет более сложную и "строгую" конструкцию и с точки зрения разработчика, и с точки зрения пользователя.
Грубо говоря, для нее труднее писать программы вообще, и программы-вирусы в частности, а пользователю в ней труднее ориентироваться, поскольку с одной стороны, там все очень "строго", а с другой - все может быть намного более запутанным.
Здесь следует сказать пару слов про "открытость" системы.
Когда программист пишет вирус под Windows, то он исследует ОС в режиме "черного ящика" - пишет программный код, запускает его и смотрит, реагирует ли система так, как ему надо, или нет. Почему так? Потому, что Windows - система "проприетарная" (то есть, целиком и полностью принадлежащая одному владельцу), и многие функции в Windows либо недокументированы совсем, либо документированы частично (пример - документация на NTFS).
Для написания же вируса под ОС "типа Unix" всегда можно обратиться к исходным кодам тех или иных элементов системы, которые присутствуют в 99% случаев (не буду говорить, что это сильно упростит дело ;) ).
Ну и, конечно же, нельзя пройти мимо такой вещи, как дыры в системе.
Не секрет, что дыры есть в любой ОС, и в ОС Windows, и в ОС "типа Unix". "Заплатки" выпускаются регулярно и для той, и для другой, дыры уровня "epic fail" были и тут, и там, и в принципе по общему количеству дыр я бы сказал, что у них принципиальный паритет (хотя настаивать не буду, если кто-то считает, что OS X круче, пусть так и будет ;) ).
Теперь - обратим внимание на сравнение моделей безопасности.
Под Windows пользователь обычно сидит под аккаунтом администратора, либо привилегированного пользователя, а все системные программы (или прикидывающиеся таковыми) запускаются с системным аккаунтом, который имеет еще более высокие привилегии, чем администратор.
В ОС "типа Unix" пользователь сидит под сильно урезанным аккаунтом, вводя пароль администратора лишь при необходимости выполнения каких-то конкретных операций, а все системные программы получают ровно столько прав, сколько им нужно для выполнения данной конкретной функции (примерно ;) ).
С появлением в Windows Vista системы контроля учетных записей UAC (User Account Control) модели безопасности в целом уравнялись, но по своему опыту могу сказать, что поведение UAC задалбливает пользователей так быстро, что отключение UAC - это то, что меня просят сделать первым делом при установке системы :). Как это выдерживают те, кто работают на Mac - не знаю :).
Про дыры и сервисы.
Принципиально, дыры в ОС могут искать и находить не только программисты, но и обычные пользователи, поскольку для этого нужно просто много свободного времени и достаточно четко сформулированное понятие, что мы, собственно, ищем. Если находится дыра в MacOS, то по причине достаточной открытости ОС ее трудно не признать дырой, общественность "требует" и Apple реагирует достаточно быстро; а если находится дыра в ОС Windows, то по причине закрытости ОС ее могут "замалчивать" достаточно долго, считая "не критичной", "не опасной" или "вовсе не дырой". А время реакции в случае с ОС Windows лучше бы иметь побыстрее, поскольку рынок много шире, и соблазна использовать это знание в корыстных целях много больше.
С сервисами тоже нет паритета.
ОС Windows проектировалась на автоматическую работу без участия администратора или пользователя в большинстве рутинных операций (отсюда, например, запущенный "по умолчанию" в системе механизм установки обновлений), посему в ней по-умолчанию больше крутится всего, что может быть доступно извне, и, как следствие этого, подвержено атаке (напоминаю, что все сервисы в ОС Windows работают от системного аккаунта, и достаточно получить доступ к самому дохлому процессу, чтобы наделать дел в системе).
MacOS, являясь ОС "типа Unix", извне практически полностью закрыта. Это создает определенные неудобства, но "все счастливы". Этого мало, - не все сервисы имеют полный набор привилегий, а намеренное его "повышение" требует реакции администратора с ручным вводом пароля (кстати, в ОС "типа Unix" во многих местах ввод пароля возможен только методом набора с консоли, и никакого "paste" - дополнительная защита "от дураков").
Скажу пару слов и про распространенность ОС.
Хотя в мировых масштабах ОС Windows делает Mac вчистую (более 95% десктопов), в отдельных странах уровень "Mac-ализации" достигает 8%. Но почему же там нет соответственного количества вирусов? Видимо, здесь действует "фора" MacOS в виде изначальной большей сложности системы, простому программисту написать под нее вирус непросто (ха ха - каламбурчик вышел ;) ), а непростому - неинтересно, поскольку непростые программисты обычно деньги зарабатывают, а не фигней страдают ;). А деньги на вирусах для MacOS не зарабатываются потому, что даже 8% - это вовсе не "более 90%" - можно сказать, что тут срабатывает хорошо знакомый всем эффект "неуловимого Джо".
Учитывая все вышесказанное, резюмирую.
Почему для ОС MacOS так мало распространены вирусы?
На мой взгляд, так сложилось исторически.
Apple Mac долгое время был учебно-домашним компьютером, в отличие от строго ориентированного на бизнес рынка PC. Неудивительно, что PC и ОС Windows до сих пор являются главным "рынком сбыта" для вирусов, причем тут уже неважно, кто именно их пишет и по чьему заказу.
Почему те же вирусы нельзя так же просто перевыпускать под MacOS?
По моему мнению, здесь уже сказывается технологическая сложность ОС "типа Unix" (я намеренно использую термин "сложность", поскольку я не считаю это "продвинутостью" или, наоборот, "отсталостью" данной ОС).
Они достаточно различны, чтобы нельзя было быстро "портировать" вирус простой перекомпиляцией кода, - в MacOS не сработают сами принципы "вирусной программы", написанной под ОС Windows. В то же время, тратить рабочее время высококвалифицированного программиста (а большинство сильных вирусов пишутся настоящими виртуозами своего дела) с негарантированным результатом ради "мене чем 5% рынка", думаю, экономически неоправданно.
Впрочем, возьму на себя смелость сделать прогноз: как только рынок Apple Mac подрастет до 20% (желательно, конечно же, по количеству машин в бизнес-применении, но в принципе, сгодится и по общему количеству машин), все будет - и вирусы, и вирусные эпидемии, и антивирусы как массовое явление.
Ну, и напоследок - пару забавных высказываний, подслушанных у Windows и Mac-юзеров, для полноты картины:
- у тебя Windows SP2 или SP3?
- я не знаю, а где посмотреть?
- я вчера обновился до 10.5. это просто сууууууупееееееееер!!!
Думаю, что это в какой-то степени характеризует среднестатистических пользователей обоих систем.
А теперь - хочу сказать большое спасибо pа техническую консультацию
sanmai,
war666beast и
xxpeacedeathxx.
P.S.: Информация к размышлению об "уязвимости компьютерных систем".
Самым распространенным методом получения информации у
Кевина Митника был метод
социальной инженерии - "Social engineering became his primary method of obtaining information", который не имеет ничего общего с техникой и работает напрямую с человеческим фактором, посему защиты от него просто не существует. Соответственно, разговоры об абсолютной, 100%-ной защищенности компьютерных систем от вирусов, атак и несанкционированного доступа есть пустой звук; но, так как мы живем в далеко не идеальном мире, 75-80%-ная защита уже имеет смысл.