Это название придумал не я. Поэтому оно в кавычках. Это название статьи Михаила Рамендика (см. например, http://www.infobez.com/article.asp?ob_no=5848). Мы с Михаилом знакомы давно, и я всегда с удовольствием читаю его материалы. Не потому, что он постоянно отстаивает интересы свободного ПО, а я "должен" читать такие статьи, так как нахожусь "по другую сторону баррикад". Нет, не поэтому. Кстати, я ничего такого и не "должен" :-). Просто Михаил пишет умно и достаточно объективно. Что, к сожалению, большая редкость для нашей прессы.
Так вот, Михаил описывает сегодняшнюю ситуацию со свободным ПО. Общемировую. Если вкратце, то он видит пять проблем следующим образом: 1) СП�� надо выдержать настоящую конкуренцию, которая еще только начинается; 2) СПО не должно гнаться за копированием чужих идей; 3) решения на СПО должны перестать быть "экзотикой"; 4) необходимо завлечь производителей коммерческого ПО на платформу СПО; 5) необходимо разобраться с патентованием.
Я перечислил только названия соответстующих разделов из его статьи. Почитайте - получите удовольствие. Что касается меня, то я бы добавил еще одну проблему - проблему безопасности. Как утверждали и продолжают утверждать сторонники СПО, одним из главных достижений СПО является безопасность. И это якобы должно следовать из концептуальной возможности проверять код всеми желающими. На деле, к сожалению поклонников СПО, все обстоит хорошо только на словах. Теоретически вроде бы правильный принцип проверки кода всеми желающими не приводит пока к положительным результатам. Например, на основе статистики самого компетентного международного сайта secunia.com в прошлом году даже новые разработки Red Hat - сервер Enterprise Linux Server v.5 и клиент Enterprisre Linux Client v.5 не порадовали своих создателей. В них было найдено рекордное число уязвимостей - 97 и 99 соответственно. При том, что в самом ядре Linux Kernel 2.6 за 2007 год было найдено 32 уязвимости. А ведь в соответствии с методологией подсчета уязвимостей эти уязвимости ядра надо прибавить к уязвимостям продуктов.И тогда получим совершенно невообразимые цифры - 129 и 131 уязвимостей соответственно. В то время как коммерческое ПО показало вполне приличную работу архитекторов безопасности и программистов: в сервере Sun Solaris 10 было найдено 88 уязвимостей (хотя это многовато, пожалуй), в Windows Server 2003 Enterprise - 31, в клиентской Apple Mac OS X - 26, в Windows Vista - 17.
С чем это связано? С различием в подходах к процессу разработки и программирования. Со стороны СПО - множество слабо контролируемых разработчиков, со стороны коммерческого ПО - жесткий контроль разработки и кодирования. И еще с тем, что идея о том, что все желающие бросятся проверять код просто не работает. Проверять код - тяжкий труд. Кроме того, это труд для профессионалов. Почитайте книгу Ховарда и Лебланка "Защищенный код" - там много интересных примеров, как действительно находятся ошибки в коде.
Кстати, неработоспособность идеи о том, что все захотят улучшать код, каждый может проверить на своем опыте. Все мы много раз видели и продолжаем видеть опечатки и неточности на чужих сайтах. Много ли раз каждый из нас бросался исправлять эти ошибки писав и звонив в редакции этих сайтов? Просто сознайтесь себе сами - никогда. Но за своими сайтами следим - мы за это получаем зарплату, хотя часто и опосредованным образом (за счет улучшения качества сайта и увеличения продаж с него, и т.д.).
В заключение хочу пожелать ребятам-разработчикам СПО постараться выполнить те задачи, которые описал Михаил, и которые добавил и я сам. Многим может показаться странным такой призыв со стороны сотрудника Майкрософт. Но мы же с вами умные люди - если конкурент становится достойнее, то и ты сам растешь над собой быстрее :-)
Так что желаю всем вам достойных конкурентов, чтобы самим становиться все лучше и лучше!
Спасибо за интересное мнение, Владимир.
Не являюсь ни программистом, ни специалистом в сфере безопасности, скажу только, что согласен с высказанным мнением: то, что бесплатно, не может контролироваться так же хорошо, как то, за что неплохо платят. Свободное ПО, безусловно, положительно влияет на качество платного ПО, создавая конкуренцию в некоторой степени, а может даже борясь на равных с платным ПО. Сейчас СПО напоминает (проводя параллели) медицину в России: она формально бесплатна (это СПО) и доступна каждому, однако, каждый из нас понимает, что за качественное лечение (это платное ПО) необходимо платить.
ситуация №1
лицензирование небольшой компании. Все с нуля покупаем, внедряем. Главный вопрос: как сэкономить решен в пользу офиса: МС офис покупается только для тех, кто работает с выгрузками из 1С, остальным опенофис. В итоге: постоянные вопли и стенания что опенОфис не так открывает вордовские документы, что их приходится редактировать перед началом работы потому, что съезжают таблицы, поля и т.п. В остальном: все нормально, кто работает со своими личными документами не используя шаблоны компании - никаких нареканий, кроме "непривычно и немного неудобно из-за расположения значков".
Ситуация №2
Большая сеть, часть серверов на *nix системах, часть на windows. Системами на *nix занимается один админ, виндовыми серваками - целый отдел. И это не потому что винды так сложны в обслуживании, а потом, что по *nix системам реальных специалистов в нашей деревне хорошо человек 10 наберется. В итоге *nix админ переводит весь свой сектор ответственности на win системы ибо в одного постоянно без выходных и проходных и без нормлаьного отпуска тянуть кучу серверов он просто устал.
Итог: совместимость. Нету её ещё на все 100% и второй фактор: обученный персонал. Реально людей, которые изучают win больше, чем тех кто учит *nix. Опять же в нашей деревне ближайший учебный центр майкрософта в соседней области, а ближайший учебный центр по *nix я даж не представляю где...
Достойное начало достойного блога. :)
Хотелось бы отметить, что огромная, а она действительно поражает, разница в количественных показателях Windows и RedHat вызвана различием в идеологии.
Разница в том, что Windows идет как базовая система на которую есть возможность "навешать" разных сервисов не идущих с ней к комплекте. В дистрибутив *nix зачастую включается достаточно много стороннего ПО к которому тот же RedHat никакого отношения не имеет. Посмотрите сами: http://secunia.com/product/13652/?task=advisories_2007
Security updates для например: mysql, squid, samba включены в эту статистику, но это почти равноценно включению в статистику по Windows ошибок найденных например в продуктах Oracle.
Необходимо отходить от этой практики так же как отходят от практики использования мегагерцев. Возможно есть смысл сравнить количество ошибок в сервере ориентированном на определенную задачу. Скажем MS + ISA против RedHat + squid + iptables. Насколько я знаю они предназначены примерно для одного круга задач.
Спасибо за статьи. Действительно интересно. Однако на мой взгляд, проблема внедрения СПО с точки зрения безопасности еще и в "проблеме доверия". Ведь внедряя СПО я должен безусловно доверять своему системному администратору. А теперь давайте подумаем, сколько получает этот администратор? Вот-вот. Цена безопасности в этом случае будет в лучшем случае равна пятикратной зарплате сисадмина! И это факт! А найти спеца по безопасности + ко всем его достоинствам, знающего Linux на уровне хорошего системного администратора, не знаю как у вас, а у нас достаточно сложно!
Очень понравилось в комментариях сравнение с платным/социальным мед.обслуживанием. Более того, опять же в продолжение, масса людей говорит, что с легкостью установили СПО и теперь его радостно пользуют (помогла социальная медицина) и не менее, а то и более масса людей, кто от этого не в восторге (не помогла, пошли к платным мелдикам). Но при этом у обеих ветвей есть свои пользователи. Кто то согласен решить проблемму, потратив время и сьэкономив деньги. Кто то - наоборот. И действительно, при отсутствии социальной медицины - коммерческая очень сильно бы задрала цены (см. США). А так, приходится конкурировать и балансировать на сложном рубеже. Спасибо за статью.
"о стороны коммерческого ПО - жесткий контроль разработки и кодирования" - я понимаю причины этой фразы, это примерно также как "наш замечательные компьютеры перед продажей проходят 24-вую проверку на надежность
к сожалению, знаком с "внутренней кухней" таких проверок, это только правильные слова для клиентов :(
я не злорадствую, на самом деле хотелось бы в проверке на самом деле без срывов сроков, без контрольности контролеров и так далее, но жизнь всегда вносит свои коррективы
К комментарию Pablo:
"Хотелось бы отметить, что огромная, а она действительно поражает, разница в количественных показателях Windows и RedHat вызвана различием в идеологии.
Security updates для например: mysql, squid, samba включены в эту статистику, но это почти равноценно включению в статистику по Windows ошибок найденных например в продуктах Oracle."
Не совсем согласен с вашими доводами. Все дело в том, что сервере Windows Server 2003, который сравнивается с сервером Red Hat, все модули, аналогичные упоминаемым Вами mysql, squid, samba, присутствуют, причем собственной разработки Microsoft. Это, например, база данных SQL 2005 в специальной поставке для серверов (в Red Hat это mysql), и т.д. Кроме того, в серверах Microsoft присутствуют функциональные модули аналоги которых просто отсутствуют в серверах Linux (да и Unix тоже). Это, например, сервер Certificate Authority выдачи и обслуживания цифровых сертификатов для организации системы PKI, служба упроавления цифровыми правами документов RMS (Right Management System), и другие.
И, естественно, Microsoft несет ответственность за уязвимости этих модулей. Так же как и Red Hat несет ответственность за те модули, которые она включила в свою поставку: обратите внимание, что уязвимости в mysql, squid и samba были закрыты самой Red Hat.
Вывод. Поставщик несет ответственность за то, что он поставляет, включая закрытие найденных уязвимостей. И это не зависит от того, кто разработал модули, входящие в поставку - сам вендор или сторонняя организация. В рассматриваемой нами ситуации просто у Red Hat не было, по-видимому опыта и наработок сделать модули, аналогичные mysql, squid и samba, свмостоятельно. А Microsoft просто делает все эти модули сама.
Так что все уязвимости расписаны именно по тем корзинкам, в которых они и должны быть. Без mysql ведь у Red Hat ведь просто не получился бы сервер :-)
Мм.. не соглашусь пожалуй с топикстартером в вопросе НЕ работоспособности идеи бесплатных правок. Естественно говорю только за себя, но все же - зачастую отписываю авторам статей с указанием на опечатки/ошибки (правда, грешен, лишь интересных мне статей) и не считаю, что мне за это кто-то что-то должен.
По поводу безопастности. Такое большое количество ошибок в опенсорстных проектах найдено только лишь за счет того, что огромное, просто не стравнимое с количеством тестеров проприетарного ПО, количетво людей проверяет как исходный код (причем люди с абсолютно разными похходами к написанию кода, что позволяет найти нетривиальные ошибки) так и в работе. У проприетарного ПО ограниченный круг тестеров, ограниченный инструкциями, поэтому количество найденных багов и не бывает таким большим. Плюс, я могу ошибаться, но мне кажеься, что далеко не обо всех ошибках проприетарного ПО сообщается вслух, дабы не портить репутацию компании, ведь ни что не мешает заявить, что патч закрывает 3 уязвимости, а на самом деле закрыть 10. В опенсорсе такое не пройдет впринципе.
ЗЫ. Чтобы не было возгласов, что это написал упертый линуксоид оговорюсь, что сам работаю и дома и на работе исключительно на Вин системах, в силу их большей распространенности и, наверное, лени в изучении опенсорсного ПО )).
На комментарий ZoolooS:
"Такое большое количество ошибок в опенсорстных проектах найдено только лишь за счет того, что огромное, просто не стравнимое с количеством тестеров проприетарного ПО, количетво людей проверяет как исходный код (причем люди с абсолютно разными похходами к написанию кода, что позволяет найти нетривиальные ошибки) так и в работе."
Что интересно, 3-5 лет назад защитники Linux как раз объясняли мЕньшее количество уязвимостей у Linux как раз теми же самыми аргументами :-). Если же почитать книги, как ищутся ошибки в кодах, и какова эффективность людей различной квалификации (например ту же мной рекомендуемую книгу "Защищенный код"), то станет ясно что от количества тестеров НИЧЕГО не зависит - зависит от их КАЧЕСТВА.
Кстати, ресурс secunia.com, на которsq я ссылаюсь, ведет учет как раз уязвимостей, а не числа патчей. Все компании стараются закрыит одним патчем максимальное число уязвимостей. Майкрософт выпускает вообще лишь один патч в месяц, Apple - когда сочтет нужным, и т.д. Кстати, Apple только что выпустил патч для целых 90-ти уязвимостей в OS X.
Ну а то, что Вы пишете об ошибках авторам - честь Вам и хвала за это. Но Ваш пример, к сожалению, лишь подтверждает правило...
Да нет же. :-)
Это просто разница идеологий, и сравнивать одной линейкой просто невозможно. Объясню. Для установки нового ПО под windows необходимо иметь файл дистрибутива полученный при покупке или же скачанный из сети. Каждая программа установки может иметь свой интерфейс и даже идеологию. Различные подобияinstall shield например и примитивная распаковка zip. Под *nix , в пределах дистрибутива, установка происходит с помощью одного универсального инструмента и одной и той же командой. Т.е. redhat просто предоставляет удобный инструмент для этих операций. Под windows это может выглядеть например как многостраничный каталог с ссылками на ПО. Щелчком по пиктограмме устанавливается программа.
В связи с этим и различие в подсчетах.
Несколько примеров:
1. Насколько я знаю, под Windows функциональность почтового сервера реализуется компонентой под названием Exchange. Под redhat возможны несколько популярных вариантов (sendmail, postfix, exim) и около десятка менее известных. При этом уязвимости найденные в продуктах аккумулируются. Скажем если за прошлый год было найдено по одной уязвимости в тройке лидеров,secunia учтет все три. Что же происходит под windows? Уязвимости найденные в Exchange не учитываются в общей статистике по ОС.
2. Более замечательный пример. И под windows и под redhat возможно создание динамических страниц с помощью популярного php. Учитывать ли в статистике уязвимости найденные в языке программирования? На данный момент под windows учет не производиться, под redhat производиться.
Зачастую под *nix существует несколько продуктов-конкурентов с схожей функциональностью. В различных рейтингах учитываются они все. Это и вызывает столь ужасающую разницу. Вывод только один - менять систему и не доверять никому. :)
Pablo, тогда зачем же производитель включает в стандартную поставку столько "мусора"? Если функционал перечисленных программ повторяет друг друга, а уязвимости - суммируются, то зачем создавать дистрибутив в котором будет всего много, не лучше ли выбрать наиболее качественный продукт, включить в дистрибутив и сопровождать только его. Это как установка сервера - серьезные администраторы не ставят все подряд, с запасом на будущее, а оставляют только те модули, которые нужны для работы сервера в заданной роли.
И именно производитель виноват в том, что наполнив роли избыточным функционалом, он получил такое большое количество уязвимостей. Где же принцип отсечения лишнего, которым так гордятся в *nix сообществе ?
Вопрос к участникам спора:
А разве Ред Хат это СПО? Равно как и mysql.
Я так слышал, что это уже вроде как коммерческий софт.
Вот Убунту это СПО. Кстати, на недавнем слёте хакеров, это единственная система, которую хакеры со слёта не крекнули
"
Очень понравилось в комментариях сравнение с платным/социальным мед.обслуживанием.
а мне нет. Когда медицина становится бизнесом, то это имеет и отрицательные стороны.
За деньги отрежут всё. В том числе и то, что и не надо было бы.
Например: очень часто сие проявляется с операциями по удалению зоба... режут почём зря.
Большинство багов RedHat являются "проблемами безопасности" только на бумаге. За SELinux они просто несущественны и фактически ничем не грозят пользователям.
Автор, а Вы в каком городе живете коль не секрет?