Сравнивать безопасность операционных систем исключительно по количеству их взломов непродуктивно

Вопрос о том, какой стиль разработки — открытый или закрытый — позволяет делать более надежные и безопасные программы, стал сегодня практически религиозным. При этом каждая из заинтересованных сторон использует собственные показатели безопасности программного обеспечения, и привести высказываемые суждения к «общему знаменателю» удается редко. К примеру, в Microsoft любят ссылаться на сайт www.zone-h.org, по данным которого операционная система Linux явно проигрывает Windows по безопасности — ее взламывают в 58% случаев. Правда, при этом обычно забывают объяснить, что этот Web-ресурс фиксирует случаи взлома Web-сайтов. Иными словами, данная статистика относится скорее к Web-приложениям, но не определяет защищенность собственно операционной системы (в частности, в 20% случаев причиной взлома сайта является ошибка его администратора, которую никак нельзя назвать проблемой операционной системы). В то же время большое количество взломов Web-серверов на платформе Linux может говорить как об их популярности и распространенности, так и об усилиях, прилагаемых хакерами для взлома Web-приложений.

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

Другой метод сравнения безопасности операционных систем основан на количестве сообщений о найденных в них дефектах безопасности. При этом наиболее интересны не абсолютные данные, но доля дефектов разного типа. В базе данных компании Secunia хранятся сведения о предупреждениях нарушения безопасности в около 6 тыс. различных программных продуктов с 2003 года. Сотрудники Secunia ввели общую классификацию сообщений и даже подготовили статистику.

В таблицу включены сведения по ядру операционной системы Linux, хотя законченным продуктом является скорее дистрибутив. Однако если сравнивать дистрибутивы операционных систем, то оказывается, что, например, продукт Red Hat кроме ядра содержит еще множество разнообразных программных компонентов, таких как почтовые серверы, инструменты разработки и даже СУБД, аналогов которых нет в поставке Windows, но их обновления также учитываются в базе Secunia. К тому же Red Hat быстро развивается, и за время существования Windows XP сменилось несколько версий дистрибутива Red Hat, а в базе данных каждая версия учитывается по отдельности.

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

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

Анализ построенной таблицы показывает, что по доле сообщений, позволяющих захватить операционную систему, а также по возможности удаленного эксплуатирования дефектов ядро Linux оказывается наиболее безопасной системой. Впрочем, по количеству сообщений Linux находится на уровне других Unix-подобных систем. В то же время считающиеся достаточно безопасными варианты операционной системы BSD имеют практически такую же долю дистанционно эксплуатируемых ошибок, что и Windows.


Безопасность операционных систем

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