Отчет по безопасности: Windows против Linux
Николас Петрелей
Издано 22 октября 2004
перевод Алексеенко В.Н 12.11.2004 г



Вступление


Много суматохи было из-за того, действительно ли Linux более безопасен чем Windows. Мы сравнили Windows и Linux, исследуя следующие показатели в 40 недавних исправлениях, относящиеся к Microsoft Windows Server 2003 и Red Hat Enterprise Linux AS v.3:

1. Серьезность уязвимости безопасности, получена по следующим показателям:
2. Количество критически серьезных уязвимостей

Результаты не были неожиданостью. Даже по субъективным стандартам Microsoft, 38% недавних исправлений относятся к недостаткам, которые Microsoft помечает как "Критические". Только 10% исправлений Red Hat относятся к критическим. Эти результаты легко показывают поблажки к Microsoft и резкость к Red Hat, так как вышеупомянутые результаты основаны на оценках Microsoft, а не нашем более строгом применении показателей безопасности. Если бы мы применили наши собственные показатели, это увеличило бы количество "Критических" недостатков в Windows Server 2003 до 50%.

Мы сделали запрос к базе данных United States Computer Emergency Readiness Team (CERT), и данные CERT подтверждают наши худшие опасения. Когда мы сделали запрос к базе данных, то результаты были выведены в порядке от наиболее критических до наименее критических, 39 из первых 40 записей CERT для Windows оценены выше порога CERT "серьезная опасность". Только три из первых 40 записей были выше порога, когда мы делали запрос к базы данных о Red Hat. Когда мы делали запрос базы данных CERT о Linux, только 6 из первых 40 записей были выше порога "серьезная опасность".

Помните также, что оба списка Red Hat И Linux включают недостатки в программном обеспечении, которое выполняется и под Windows, что означает, что эти недостатки касаются и Linux и Windows. Но не одна из тревог, связанная с Windows не затрагивает программное обеспечение, которое выполняется на Linux.

Итак, почему все же многие утверждают обратное, что Linux является менее безопасным чем Windows? Есть явные логические дыры в рассуждении, что Linux менее безопасен. Требуется только небольшое исследование, чтобы разоблачить мифы и логические ошибки следующих часто повторяемых утверждениях:

1. на Windows так много нападений, потому что у нее больше инсталляций, чем у Linux, поэтому Linux был бы также уязвим, если бы он имел больше инсталляций, чем Windows.
2. "Открытым исходникам" свойственно быть менее безопасным, потому что злые хакеры могут легче в них найти недостатки.
3. Для Linux больше "Критических заплаток" чем для Windows, поэтому Linux менее безопасен чем Windows
4. Для Linux время, между обнаружением проблемы и выходом заплатки, больше чем Windows. Под Windows быстрее исправляют ошибки.

Ошибка утверждений №3 и №4 состоит в том, что они игнорируют самые важные показатели чтобы измерить относительную безопасность одной операционной системы против другой. Поскольку Вы увидете в нашем разделе "Реальная безопасность и серьезные показатели", что измерение безопасности одним показателем (типа того, как долго требуется ждать между открытием недостатка и и выпуском исправления) приводит к бессмысленным результатам.

Наконец, мы также включили краткий обзор концептуальных различий между Windows и Linux, объясняя почему Windows имеет тенденцию быть более уязвимой к нападениям как на сервер, так и на Desktop-компьютер, и почему Linux свойствена большая безопасность.

Разоблачение Мифов

Миф: Безопасность из-за небольшого количества


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

Это рассуждение имеет неприятные последствия для тех, кто полагает, что Apache - самое популярное программное обеспечение web-сервера в Internet. Согласно обзору за сентябрь 2004 web-сайта Netcraft, [1] 68% web-сайтов запущено под web-сервером Apache. Только 21% web-сайтов запущено под web-сервером Microsoft IIS. Если проблемы защиты сводятся к простому факту, что цель злых хакеров наиболее установленная система, из этого следует, что мы должны видеть больше червей, вирусов и другой нечисти направленной на Apache и на основные операционные системы для Apache, чем для Windows и IIS. Кроме того, мы должны тогда видеть более успешные нападения на Apache, чем на IIS, так как смысл мифа в том, что проблема в безопасности из-за большого количества установленых копий, а не в уязвимостях.

А мы видим все "с точностью до наоборот". Исторически IIS долго был первой целью для червей и других нападений, и эти нападения были в значительной степени успешны. Червь Code Red, который эксплуатировал переполнение в буфере IIS, чтобы получить контроль над web-сервером, заразил приблизительно 300 000 серверов, и количество заражений остановилось, потому что был написан новый червь, чтобы прекратить распространение червя Code Red. Он даже мог бы иметь большую скорость распространения, так как убил себя сам через 3 недели. Другой червь IISWorm, имел ограниченное влияние только потому, что червь был плохо написан, а не потому что IIS хорошо защищал себя.

Да черви для Apache тоже существовали, типа червя Slapper (Slapper фактически эксплуатировал известную уязвимость в OpenSSL, не в Apache). Но черви для Apache редко изменяют заголовки, потому что это имеет ограниченный эффект и легко восстанавливается. Целевые сайты уже залатали известную OpenSSL-дыру. Было также просто вычистить и восстанавить зараженный сайт несколькими командами и без перезагрузки сервера, благодаря модульному характеру Linux и UNIX.

Возможно это то, почему, согласно Netcraft, 47 из лучших 50 web-сайтов с самым долгим uptime (время между перезагрузками) выполняют Apache. [2] Ни один из лучших web-сайтов не выполняет Windows или Microsoft IIS. Так это истина, что злые хакеры нападают на самые многочисленные программные платформы? Тогда возникает вопрос, почему хакеры настолько успешны при вторжении на самое популярное настольное программное обеспечение и операционную систему, заражая 300 000 серверов IIS, но неспособны сделать подобное с самым популярным web-сервером и с его операционными системами?

Проницательные наблюдатели, которые исследуют Netcraft, обратят внимание, что все 50 web-серверов в Netcraft списке uptime (время от одной перезагрузки сервера до другой) выполняются под BSD, главным образом BSD/OS. Ни один из них не выполняется под Windows, и ни один из них не выполняется под Linux. Самое долгое uptime в "лучших 50" - это 1 768 дней или почти 5 лет.

Это, кажется, делает BSD выглядящей лучше всех операционных систем в терминах надежности, но Netcraft информация неумышленно вводит в заблуждение. Netcraft контролирует uptime операционных систем, основываясь на том, как те операционные системы следят за uptime. Linux, Solaris, HP-UX, и некоторые версии FreeBSD только считают до 497 дней uptime, после чего их счетчики uptime сбрасываются, чтобы обнулиться и запуститься снова. Все web-сайты, запущеные на машинах, выполняющихся под Linux, Solaris, HP-UX и в некоторых случаях FreeBSD "кажется" что перезагружаются каждые 497 дней, даже если они работают годами. Обзор Netcraft никогда не может дать ответ более длинного uptime чем 497 дней для любой из этих операционных систем, даже если они работали годами без перезагрузки, что и объясняет, почему они никогда не появляются в лучших 50.

Это объясняет, почему невозможно для Linux, Solaris и HP-UX достичь большого значения uptime, как у BSD, даже если эти операционные системы реально работают долго без перезагрузки. Но это не объясняет, почему Windows не найдена в списке лучших 50 uptime. Windows не сбрасывает свой счетчик uptime. Наверное, ни один web-сервер на базе Windows не способен работать достаточно долго, не перезагружаясь, чтобы занять место среди лучших 50 в uptime.

Учитывая сброс счетчика uptime после 497 дней, трудно сравнить uptime Linux с uptime Windows с помощью публично доступных данных Netcraft. С сентября 2004 среднее uptime web-серверов Windows, которые выполняют собственный web-сайт Microsoft (www.microsoft.com) - примерно 59 дней. Максимальное uptime для Windows Server 2003 в том же самом сайте - 111 дней, и минимум - 5 дней. Сравните это с www.linux.com (типовой сайт, который выполняется на Linux), который имел среднее и максимальное uptime 348 дней. Так как среднее uptime точно равно максимальному uptime, это означает или эти серверы достигли 497 дней uptime и сбросили счетчики в ноль и еще достигли 348 дней, или эти серверы были размещены в онлайн и перезагрузились через 348 дней.

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

Миф: Открытый Источник Опасен


Внушительный отчет uptime Apache также подвергает сомнению другой популярный миф: открытый исходный текст (где проекты приложений обнародованы) более опасен, чем проприетарный исходный текст (где проекты являются секретными), потому что хакеры могут использовать исходный текст, чтобы найти и использовать недостатки.

Количество эффективных Windows-вирусов, троянов, шпионских программ, червей и злонамеренных программ огромен, и количество машин, неоднократно заражаемых любой комбинацией вышеупомянутого является настолько большим, трудно определить количество в реалистических сроках. Злонамеренное программное обеспечение является настолько необузданным, что среднее время, которое требуется для непропатченой Windows XP, чтобы быть зараженной после соединения с Internet ровняется 16 минутам. Это меньше времени, чем загрузка и установка исправления, которые помогли бы защищать тот PC. [3]

Другой пример, web-сервер Apache - открытый источник. Microsoft IIS является закрытым. В этом случае, доказательство опровергает и "безопасность из-за небольшого количества" миф и "открытый источник опасен" миф. Web-сервер Apache - самый популярный web-сервер. Если бы эти два мифа были истиной, то можно было бы ожидать, что Apache и операционные системы, на которых это выполняется, переносили бы гораздо больше вторжений и проблем, чем Windows Microsoft и IIS. Истина в противоположном. Apache монополист на лучшую статистику uptime. Ни Windows Microsoft, ни Microsoft IIS не появляются где-нибудь в лучших 50 серверах с лучшим uptime. Очевидно факт, что злые хакеры имеют доступ к исходному тексту Apache, но это не дает им преимущество, чтобы создать более успешные нападения против Apache, чем IIS.

Мифы: Заключения, основанные на одном показателе


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

Одно популярное утверждение - что "есть больше тревог безопасности для Linux, чем для Windows, и поэтому Linux менее безопасен чем Windows". Другое утверждение - "среднее время, которое проходит между открытием дыры в безопасности и когда исправление для дыры выпущено, больше для Linux, чем для Windows, и поэтому Linux менее безопасен, чем Windows".

Последнее утверждение наиболее таинственное из всех. Это - неуловимая тайна, так как любой может заключить, что среднее время ответа Microsoft между открытием дыры и выпуска заплатки меньше, чем у любой конкурирующей операционной системы, не говоря уж о Linux. Но у Microsoft заняло семь месяцев исправление одной из самых серьезных уязвимостей защиты (Microsoft Security Bulletin MS04-007 ASN.1 Vulnerability, eEye Digital Security опубликован AD20040210), и есть недостатки про которые Microsoft открыто заявила, что их НЕЛЬЗЯ ИСПРАВИТЬ. Бюллетень Защиты Microsoft MS03-010 об уязвимости Denial Of Service (DoS - отказ в обслуживании) в Windows NT говорит, что эта уязвимость НИКОГДА не будет исправлена. Позже Microsoft заявила, что не будет исправлять уязвимости Internet Explorer для любых своих операционных систем старше, чем Windows XP. Строго говоря, семь месяцев между открытием и исправлением не могли бы иметь чрезмерно драматического эффекта для "среднего времени исправления", если Вы сможете найти достаточно много превосходных "средних времен исправления". Но только требуется один случай "никогда не будут исправлены" чтобы так упало "среднее время исправления" без возможности восстановления.

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

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

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

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

Любой единственный показатель вводит в заблуждение в терминах важности. Давайте рассмотрим ситуацию, что есть больше дыр для программного обеспечения Linux, чем Windows. Это бессмыслено, потому что оставляет самые важные оставшиеся без ответа вопросы. Из всех тревог по безопасности, сколько недостатков, о которых сообщают, что они представляют материальный риск? Насколько серьезны эти риски? Какова вероятность что они нанесут вашим системам серьезное повреждение? Эти вопросы важны. Что для вас является предпочтительным: операционная система с 100 недостатками, которые подвергают ваши системы маленькому или никакому повреждению и не могут эксплуатироваться никем кроме локальных пользователей с настоящей учетной записью входа в систему и физическим доступом к вашей машине? Или Вы предпочли бы операционную систему с 1 критическим недостатком, который позволяет любому злому хакеру из Internet стирать всю информацию на вашем сервере? Ясно одно, число дыр в безопасности, как единственный показатель, не важный показатель для защиты одной операционной системы перед другой.

далее