|
- Алексей Любимов, 17.11.03, atmsk.ru, оригинал -
TanaT: Юджин, в своем
интервью LinuxPlanet вы сказали, что проблемы с безопасностью есть и у
Linux и у MS Windows. А не указывает ли столь частое появление патчей и
заплаток для Linux на то, что эта система защищена лучше?
Юджин Спаффорд: Нет. Это указывает лишь на то, что у Linux
проблем с безопасностью еще больше, чем у Windows. Частота появления
патчей не может быть индикатором защищенности системы. Если говорить по
существу, то это отрицательный показатель: чем выше качество кода, тем
реже требуется выпускать заплатки для него.
В
этом смысле безопасность напрямую связана с качеством кода.
Нестабильный, неправильно спроектированный или плохо написанный код -
залог ошибок и просчетов, которые приведут к "дырам" и созданию
программ, их использующих. Конечно, правильный с точки зрения
программиста код еще не является залогом безопасности, так как он не
проектировался с целью быть защищенным.
|
Наличие даже оперативно закрываемых "дыр" в ПО -несомненный минус и
в этом плане само наличие заплат, безусловно, "... отрицательный показатель: чем выше
качество кода, тем реже требуется выпускать заплатки для него.".
С другой стороны, выявленные и незакрытые дыры являются
гораздо большим криминалом и в этом плане наличие тех же
оперативных обновлений уже несомненный плюс.
Сами дыры в безопасности могут иметь разные последствия и разные
причины. Нельзя же в самом деле сравнивать локальный эксплойт mp123
плейера с удаленным взломом mssql или поднятого по умолчанию сервиса
RPC. Аналогично и заплаты могут быть всего лишь жестом бессилия, как,
например, запрет всех без исключения вложений *.exe в аутлуке.
Такое "обновление" по определению сиюминутно, не решает возникшей
проблемы и только отягощает положение в плане безопасности, так как
только маскирует реальные проблемы.
Получается, нельзя просто сравнить количество обновлений и на этом
сделать какие то выводы. Необходимо анализировать характер найденных
уязвимостей, сроки выпуска обновлений и те потенциальные проблемы в
плане безопасности, которые эти исправления несут. Кроме того, сравнивая
разные системы необходимо позаботиться о едином базисе для сравнений.
Если в одной системе предоставлена возможность получать _полную_
информацию о найденных ошибках, обеспечен полностью прозрачный аудит
исходного кода и всех обновлений, то анализируя статистику обновлений
остальных ОС, необходимо добиваться того же самого, иначе корректность
сравнения таких результатов будет под вопросом.
Так что же мы имеем в виду, когда говорим о ситуации с обновлениями
в линуксе?
Безусловно, обновления в сфере безопасности для линукса есть. Они есть
как для ядра, так и для системного и пользовательского ПО, работающего
на этой платформе. С другой стороны, нет таких обновлений, которые
затрагивали бы всех пользователей линукса или хотя бы подавляющее
большинство. Когда говорят об уязвимостях в линуксе, то всегда после
этого идет скучное перечисление конкретных версий конкретного ПО и
множества условий при которых эта уязвимость проявляется.
Практически все сервисы и программы в линуксе имеют несколько
альтернативных реализаций и это значит, что та или иная проблема с любым
из них не приведет к "мировым премьерам" вирусов, их использующих.
С другой стороны, линукс постоянно проходит массовый аудит кода,
причем как исходного кода, так и кода всех обновлений.
Что мы имеем, рассматривая ситуацию с обновлениями в виндовс?
Известно, что для виндовс постоянно выходят обновления, сервиспаки,
обновления на обновления и обновления на сервиспаки. Еще известно, что
несмотря на все эти обновления, антивирусы и файрволы, вирусы
волнами опоясывают планету, блокируя экономику целых стран и принося
многомиллиардные убытки. Страдают все - и государственные организации и
коммерческие структуры самой разной величины. Это положение вещей
объективно и от него не отмахнуться. А вот что касается аудита
исходного кода, анализа серьезности найденных прорех и обновлений, их
закрывающих, "изнутри" - вот тут как раз ничего не известно и есть
полный простор для фантазий. МС полагает, что все замечательно,
множество независимых исследователей считает, что все, наоборот, плохо,
но истина заключается в том, что истинного положения вещей даже в
далеком приближении не знает никто. Общество не информировано, потому
что все закрыто, а МС сама не знает, что же она там понаписала,
поскольку ситуация давно уже вышла из под ее контроля. Собственно
говоря, спросите любого инвестора, готов ли доверить свои деньги
компании, которая уклоняется от финансового аудита, не показывает баланс
и другую финансовую и бухгалтерскую отчетность, предпочитая вместо
этого выпускать журнальчик со своими мыслями о своем же финансовом
положении и вы получите примерный расклад в сфере безопасности для МС...
Итого, мы имеем с одной стороны прозрачный, с большим запасом
прочности из за постоянно поддерживаемой избыточности кода и
перманентно со всех сторон проверяемый множеством независимых
исследователей линукс и задрапированный со всех сторон черный ящик,
страдающий от различных генных заболеваний, этакий гемофилик, виндовс.
Каким образом на основании числа обновлений можно сравнивать такие
разные сущности? Юджину это удалось. Браво, Юджин!
TanaT: "Баги" в продуктах
Microsoft оказываются более критическими, чем ошибки в Linux. Например,
благодаря одной из последних ошибок в Internet Explorer стало возможным
существование червя Klez, который совершил свое победное шествие по
планете. Не говоря уже об уязвимости в DCOM...
Юджин Спаффорд: Понимаете, тут смысл в том, что Windows
более популярна не только среди пользователей, но и среди
"кодокопателей". Поэтому и вредоносный код, имеющий целью проникнуть в
Windows, имеет намного больше шансов на успех, чем аналогичный для
Linux. И не потому, что Windows менее защищена, а потому, что
компьютеров под управлением Windows - намного больше.
Если
вы напишите две программы, использующие "дыру" в защите, одна в Linux,
другая в Windows, и выпустите их в свободное плавание, то Windows-код
успеет поразить намного больше компьютеров, пока пользователи не
идентифицируют его как вредоносный код. Следует также обратить внимание,
что средний пользователь Windows является менее опытным и
подготовленным, чем средний пользователь Linux. |
Статистика www.netstat.ru:
Наиболее распространенные классы
операционных систем, использующиеся при поддержке доменов
.RU


Наиболее распространенные классы веб-серверов,
обеспечивающих доступ к системам, поддерживающим домены, по
протоколу HTTP

Получается, что каждый codered и nimbda для windows должно быть
четыре для bsd и три для линукса. Где они? Вирусы для iis мы уже
неоднократно видели, а где по девять на каждый из них для апача?
Аналогичные пропорции мы, по идее, должны были увидеть и для mysql и
других широко распространенных сервисов для линуксов, bsd etc.
Юджин, пора искать другие аргументы!
Относительно среднего уровня пользователей вполне можно согласится.
Тогда извечные вопросы русской интеллигенции - кто виноват и что
делать? Кто виноват, что операционная система скрывает от
пользователя суть производимых им действий, подменяя их абсолютно не
информативным мультяшным графическим интерфейсом? Виндовс изучают
в школах, институтах, на курсах и все таки уровень пользователей так и
остается неудовлетворительным и если в противовес такому удручающему
положению дел, пользователи линукса демонстрируют более высокий уровень
владения предметом, может быть дело заключается в том, что линукс проще
в освоении, лучше документирован и более логично устроен, нежели
гордость лучших умов планеты земля, вершина софтостроения, то
бишь американский аналог не стреляющей царь-пушки - виндовс? Тогда,
возможно, стоит рекомендовать более широкое использование линукса и тем
самым содействовать повышению уровня безопасности в общемировом
ИТ-пространстве? Нет?
TanaT: То есть было бы
глупо утверждать, что Linux защищен лучше?
Юджин
Спаффорд: У Linux стопроцентный иммунитет против вредоносного
Windows-кода. Это очевидно, так как последний просто не сможет работать
под Linux. Также все ошибки в Linux не носят очень уж глобального
характера, опять же в виду не слишком широкого использования Linux.
Но
это отнюдь не значит, что Linux защищен лучше. С технической точки
зрения, безопасность системы - это ее бинарное свойство. В этом ключе,
ни Windows, ни Linux не могут обеспечить приемлемого уровня
безопасности, так как любая система, имеющая какие-либо уязвимости, не
может считаться безопасной.
Чаще
всего вместо понятия "безопасность", мы используем такое свойство
системы, как "доверие" или "надежность". С учетом конкретной среды
исполнения, политик безопасности и стоящих перед операционной системой
задач мы можем говорить, что этой системе мы доверяем больше, чем
другой. Но лишь в рамках вполне определенных дополнительных условий. С
данной точки зрения можно подобрать ситуации, когда Linux и Windows
одинаково надежны, а можем и такие, когда одна окажется лучше другой.
В
ответе на этот вопрос я не пытаюсь защитить Windows - очевидно, что
качество ее кода довольно низкое, а ее дизайн не ставил во главу угла
безопасность. Тем не менее, при некоторых условиях Windows может ничем
не уступать и даже превосходить Linux. Например, представьте себе
начинающего пользователя, работающего на ПК без выхода в сеть. Здесь
Windows будет лучшим выбором, так как у нее более дружелюбный интерфейс
и более подробная документация.
|
Другими словами, в отличие от виндовс, вирусы под линукс не
существуют. Иначе какой смысл было бы печалится о
неработоспособности вредоносного виндовс кода? Своего бы, нативного,
хватало... Глобальных ошибок в отличие от той же виндовс тоже нет, а по
поводу распространенности статистика уже приводилась.
"Но это отнюдь не значит, что
Linux защищен лучше.". Боже упаси! Это всего лишь значит,
что у вас не украдут или не уничтожат важные данные когда вы просто
заходите на тот или иной сайт. Еще это значит, что вам не придется
оплачивать трафик каких то сопливых школьников, которые через тот же
интернет первым попавшимся эксплойтом взломают ваш компьютер и накачают
через вас несколько гигабайт нужной им информации. Безопасность, это
ведь "бинарное свойство". Если среди 6000 программ в вашем дистрибутиве
нашлась одна или две, имеющие какие то экзотические проблемы с
безопасностью, касающиеся одного пользователя на миллион, то это тоже
самое, что какая нибудь нимбда, уничтожающая всех вин-пользователей под
корень...

Умиляет пример с ПК без выхода в сеть. Уважаемый эксперт упустил из
виду, что вредоносный код можно принести на дискетах,
сдромах, usb-flash, microdrive etc, а также набить с клавиатуры. Так что
с точки зрения безопасности windows будет лучшим выбором только в том
случае, если представить себе пользователя, работающего на ПК без
клавиатуры, usb, дискет, сдромов и т.д. Хотя, "и в этом случае
сомнения не оставляют меня", сказал бы сам Юджин.
TanaT:
Известно, что ядро Linux - одна из самых безопасных частей этой ОС. Его
многократно проверяли на наличие "дыр" опытные специалисты. Основное ПО
для Linux разрабатывается опытными разработчиками коммерческими фирмами,
в которых работают вполне квалифицированные программисты. Так откуда же
берутся "дыры", если над ОС работают лишь эксперты?
Юджин
Спаффорд: Эксперты тоже могут ошибиться. Эксперты, использующие
такие опасные инструменты, как С, и создающие заплатки на код,
написанный другими людьми, вполне могут допускать ошибки. Переполнения
буфера, отсутствие проверки параметров и неправильное использование
библиотечных вызовов - наиболее частые гости каждого дистрибутива Linux.
До настоящего времени самые серьезные ошибки отыскивались в коде,
написанном лишь профессиональными программистами. Хотя велико количество
и менее опытных программистов, каждый из которых может добавить свой
неграмотный код в систему.
Суть
же в том, что обычное для сегодняшнего дня проектирование приложений
чаще всего приводит к проблемам. Если архитектура проекта с самого
начала не учитывает проблем безопасности и во время разработки не
проводится контрольный мониторинг (отслеживание всех связей и
взаимодействий объектов друг с другом), то получившийся проект будет
почти наверняка содержать множество уязвимостей, которые потом будут
отысканы и использованы со злым умыслом. Требуется, как можно раньше
прилагать как можно больше усилий к тому, чтобы улучшить защищенность
приложений.
Безопасность
- это не дополнительный приз. Это то, что надо ставить во главу угла
еще во время проектирования проекта.
|
Хотелось бы добавить следующее. К сожалению, далеко не всегда дешевая
массовая x86 архитектура позволяет решать проблемы безопасности во время
проектирования. слишком часто это ведет к резкому снижению
производительности и другим побочным эффектам. И все таки разработчики
уделяют много внимания тому, чтобы сделать процесс использования таких
"стандартных" уязвимостей, как переполнение буфера или отсутствие
проверки параметров как можно более сложным. Для линукса есть множество
разработок типа grsec, rsbac, патчи Инго Молнара, благодаря которым тот
же срыв стека перестает вести к потери управления и даже получение
привилегий рута все равно не дает злоумышленнику возможности уничтожить
или модифицировать важные данные. Другими словами, пользователь
линукса имеет возможность получить тот уровень безопасности, который ему
необходим, в то время как пользователь виндовс такой возможности по сути
дела лишен. Результаты сертификации линукса в гос органах только
подтверждают это.
TanaT: Но ведь Microsoft
имеет тысячи хорошо тренированных программистов, многие из которых
вполне компетентны в вопросах безопасности. Они постоянно следят за тем,
чтобы уязвимостей было меньше. Но Windows по-прежнему далека от идеала.
Почему? В чем здесь дело?
Юджин
Спаффорд: Потому что Windows разработана для бизнеса. Она
предназначена для того, что работать с приложениями и сервисами, которые
необходимы для бизнеса и требуют минимальной тренировки. Большинство
пользователей волнует лишь то, чтобы их работа была выполнена. Они
выберут для своих целей ту платформу, которая требует наименьшей
предварительной подготовки и имеет в своем арсенале все необходимые
утилиты.
Windows
получила свое широкое распространение по двум причинам. Во-первых, DOS
была очень популярна. Во-вторых, все приложения Microsoft работают под
Windows лучше, чем под любыми другими операционными системами. Чем
обусловлена популярность DOS в то время, когда другие ОС (такие как Mac)
были формально более предпочтительными? А тем, что IBM построила свою
маркетинговую политику на ПК, которые управлялись именно DOS. Что же до
бизнесменов, то они доверяют IBM.
Если
внимательно изучить историю, то господство Windows состоит из одних
лишь инцидентов и прецедентов, а вовсе не на более качественных
технологиях.
TanaT:
Так почему же в современной Windows так много "багов"?
Юджин
Спаффорд: До недавнего времени, безопасность и качество не являлись
основными приоритетами Microsoft. Люди по-прежнему покупали Windows и
продукцию Microsoft даже, если она содержала уязвимости. Таким образом,
до тех пор, пока люди покупали ПО от Microsoft и не мигрировали на
другие платформы (такие как Solaris и Macintosh), у Microsoft не было
причин улучшать качество своего кода. Основной целью Microsoft являлось
обновлять свои продукты как можно чаще, чтобы пользователи покупали все
новые и новые версии. В такой гонке не остается времени на качественное
тестирование кода на предмет ошибок в безопасности.
TanaT:
Как вы считаете, NT платформы от Microsoft защищены лучше обычных
Windows (9x/ME)?
Юджин
Спаффорд: Я думаю, что у этих ОС есть хороший потенциал для того,
чтобы быть более безопасными. Но реализация Windows NT/2000/XP была
таковой, чтобы сохранить совместимость с как можно большим числом уже
существующих Windows-приложений. Именно поэтому многие возможности
остались не воплощенными.
|
Собственно, это стоит намотать на ус тем, кто полагает, что виндовс со
времен 9x куда то ушла. С другой стороны, потеряв очередного клиента из
за вирусной атаки или взлома, пользователь win2000/xp может
утешаться тем, что потенциал у его копии виндовс в норме. Результат -
дрянь, но потенциал...
TanaT: Посмотрим теперь
на BSD. Как вы оцениваете защищенность этих ОС? Например, разработчики
OpenBSD при проектировании ОС сделали основной упор на безопасность. Они
также потратили много человеко-часов на аудирование уже готового кода.
На сегодняшний день еще ни одна "дыра" не была обнаружена в базовой
инсталляции OpenBSD.
Юджин
Спаффорд: Я считаю, что BSD-системы более стабильны, лучше
спроектированы и имеют намного меньше недостатков в безопасности, чем
другие ОС. Аудирование кода OpenBSD действительно позволило найти и
устранить много уязвимостей.
Я
больше доверяю BSD-системам, чем Windows или Linux. Конечно, их нельзя
назвать самыми безопасными, но все же они лучше большинства популярных
сегодня ОС. Если вы хотите построить Интернет-сервер и решаете, что
выбрать в качестве платформы (Linux, Windows или BSD), я бы рекомендовал
вам остановиться на BSD.
TanaT:
Вы очень часто используете статистику уязвимостей в качестве своих
аргументов. Можете поделиться ею с нами?
Юджин
Спаффорд: Конечно. Она не является секретной. Данные показывают,
что нет никакого превосходства Linux над Windows. |
Петька,
приборы!
-16!
-чего 16?!
-а чего приборы?!
Глядя на "число уязвимостей" 210 (линукс), 140 (windows), 90
(Freebsd) и (10) macOSX трудно понять, почему Юджин рекомендует *bsd
(которые в сумме имеют примерно столько же "уязвимостей", сколько
виндовс), а не macOSX? Все таки расположение к определенному ПО -
чувство глубоко личностное и не требущее объективной мотивации...
TanaT:Проблема, поднятая
в интервью, намного серьезней, чем кажется на первый взгляд.
Разработчики и пользователи системы Linux часто говорят, что их ОС
защищена лучше Windows. В качестве основных аргументов часто можно
услышать нечто похожее на "Linux разрабатывается открытым сообществом
программистов, каждый из которых может вносить свой вклад в общее дело"
и "исходный код почти всех приложений, входящих в состав Linux открыт
для всех - любой может исследовать его на уязвимости или просто
модифицировать". Наверное, это покажется странным, но эти доводы не
имеют никакого отношения к безопасности: они могут быть истолкованы, и
как плюсы, и как минусы.
|
Эти доводы имеют такое же отношение к безопасности, как телекамеры в
супермаркете, как независимые наблюдатели на выборах, как публикация
ежегодного баланса и тому подобные мероприятия, никак не мешающие
совершению правонарушений, но лишь делающие их видимыми.
То, что открытость программ (в частности и как мера повышающая
безопасность ПО) не ценится частью экспертов, еще не значит, что это
бесполезная вешь.
| TanaT:Хочется еще раз
процитировать слова Ричарда Столлмана, идеолога свободного программного
обеспечения: "В отличие от некоторых, я никогда не говорил, что основной
причиной перехода к свободному ПО является его большая надежность или
более широкие возможности". Цитата взята из эксклюзивного интервью,
которое Ричард Столлман дал нашей компании |
Собственно, эти самые "большая надежность или более широкие
возможности" оказались опосредованным следствием свободной модели
развития. Эти преимущества явились результатом труда громадного
количества профессионалов, которые и наполнили GNU конкретным
содержанием. И сам Столмен, как создатель gcc и emacs нимало
поспособствовал такому развитию событий...
| Последнее время представители
Microsoft все чаще и чаще делают заявления о том, что внимание
разработчиков Microsoft к безопасности их систем и приложений возросло
как никогда ранее. Вспомните хотя бы известную фразу Билла Вегте,
вице-президента подразделения Windows Server Division корпорации
Microsoft: "При разработке Windows Server 2003 мы ставили во главу угла
повышение безопасности системы. Безопасность является одной из главных
забот пользователей, и новые функции, реализованные в этой версии,
значительно облегчают создание защищенных систем. Windows Server 2003
представляет собой надежную безопасную платформу, обогащенную целым
рядом новаторских решений". На практике действительно приняты кое-какие
меры по упрощению управления патчами и сервис-паками (полезная утилита
MBSA), а также повышена безопасность по умолчанию в Windows Server
2003. Очень надеемся, что Microsoft не остановится на полпути и
безопасность ее операционных систем будет только возрастать. |
Когда речь идет о виндовс - действительно можно только надеятся.
В линуксе всегда можно влиять на процесс разработки, изучать текущие
решения, обсуждать с разработчиками различные варианты, вносить свои
исправления и это, пожалуй, одно из самых серьезных отличий между
операционными системами общего назначения виндовс и линукс.
На самом деле, при всем сумбуре интервью, слепой статистике и
сентенциями непонятно откуда взявшемся о преимуществе виндовс, Юджин
совершенно метко подметил, что сами по себе вопросы безопасности пока
еще не сильно заботят пользователей-покупателей. Фактически, вопросы
безопасности на сегодня ограничиваются выбором наиболее популярного
антивируса. А это значит, что и в обозримом будущем ни микрософт, ни
другие коммерческие вендоры не пойдут далее ничем не подкрепленных
деклараций в плане улучшения качества выпускаемых ими продуктов. В
линукс-сообществе также еще очень мало используются средства проверки и
доказательства безопасности кода, проект линукса на микроядре буксует
не первый год, так что и тут не все идеально. И все таки при всех своих
недостатках, линукс остается одним из лучших выборов в качестве
корпоративной платформы, интернет сервера или домашней машины.
Алексей
Любимов
PS
Послушайте Юджина - если уж запустили виндовс, не забудьте выдернуть
сетевой шнур... :)
|