Одно из ключевых различий между Unix и Microsoft Windows с точки зрения безопасности заключается в том, что высокая надежность систем Unix проистекает непосредственно из качественной архитектуры. При попытке добавить те же функции безопасности в MS Windows они реализуются как дополнения, не интегрированные в структуру операционной системы.
Например, одной из давних проблем безопасности Windows является недостаточно эффективное разграничение прав. Оно существует, и даже на уровне архитектуры, но реализовано как попало и действует нормально только при условии, что все функции пользовательского уровня работают корректно и используются непосредственно по назначению.
Модульность системы — еще одно преимущество Unix с точки зрения безопасности. В Windows многие приложения интегрированы в основные системные компоненты настолько беспорядочно, что какой-нибудь тривиальный браузерный эксплойт может получить доступ к ядру и воздействовать оттуда на работу всей системы. В Unix столь тесной взаимосвязи между компонентами системы не существует.
Важность разграничения прав
Некоторые могут возразить, что самые важные данные все равно хранятся в папках, доступных рядовому пользователю, а значит, разграничение прав ничего не решает. Однако те, кто так говорит, не понимают, в чем суть этой технологии. Возможности системы разграничения прав не ограничиваются защитой от заражений и блокированием доступа к правам администратора.
Вредоносное программное обеспечение, проникающее в систему по сети, не может нормально работать, потому что серверные процессы в Unix-системах, как правило, запускаются из-под специализированной учетной записи. Поэтому внедрившись через сетевой порт, вирус может влиять лишь на службу, которая этот порт использует. Это касается и многих служб, запускаемых рядовым пользователем, поскольку они меняют «владельца», когда возникает необходимость в повышении привилегий.
Для эффективной работы многих вредоносных программ требуются права администратора. Регистраторы клавиатурных нажатий (кейлогеры) — давний бич Windows, но в Unix для их работы требуется административный уровень доступа. Поэтому даже внедрившись в систему через учетную запись рядового пользователя, кейлогер не может функционировать.
Другие угрозы безопасности — руткиты, троянцы, клиенты ботнетов — тоже могут работать в Unix только с правами администратора. Отсутствие жесткого разграничения прав в Windows сводит на нет все преимущества этой технологии.
Пользовательский контроль и автоматическое выполнение файлов
Windows очень уязвима перед вирусами и червями — отчасти потому, что выполняет за пользователя многие задачи. В результате вредоносный код запускается автоматически при выполнении совершенно не связанных с ним задач. Например, при попытке открыть файл Microsoft Word, являющийся, на самом деле, виртуозно замаскированной вредоносной программой, Windows с готовностью передает файл от Word другому процессу, необходимому для успешного запуска этой программы.
В Unix такая автоматизация по умолчанию отсутствует. Файл обычно открывается в качестве аргумента к команде, которая запускает соответствующее заявленному типу файла приложение. Поэтому при попытке запустить вредоносную программу, маскирующуюся под документ OpenOffice.org, операционная система не пытается использовать более подходящее для запуска приложение, а открывает текстовый процессор, которому, конечно же, не удастся прочитать этот файл, потому что он на самом деле не является документом.
Еще один пример неудачной автоматизации в Windows — это автозапуск. Министерство обороны США как-то раз пострадало от вируса, который был автоматически запущен при подключении к системе съемного накопителя. Автозапуск можно отключить, но это не всегда легко, да и вообще такая функциональность не должна быть активирована по умолчанию. Что еще хуже, автоматическое обновление Windows порой заново активирует отключенный автозапуск.
Разные философии
Все эти различия Unix и Windows с точки зрения архитектуры и безопасности иллюстрируют разительный контраст в философии разработчиков. К сожалению, похоже, что в то время как философия Unix заключается в обеспечении фундаментальной безопасности системы по умолчанию, философия Windows выражается одной фразой: «Кому сдалась эта ваша безопасность?»
И разработчики Microsoft, увы, не одиноки. Некоторые Unix-системы тоже двигаются в этом направлении. Дистрибутивы Linux типа Ubuntu с каждой новой версией все больше подтверждают распространенное представление о том, что уровень безопасности обратно пропорционален популярности. Тем не менее, еще не скоро они опустятся до столь вопиющего пренебрежения безопасностью, как Windows. Их защищает от этого близкая к Unix архитектура. К сожалению, это преимущество, вероятно, уже очень скоро сойдет на нет.