gatoazul (gatoazul) wrote,
gatoazul
gatoazul

Categories:

Почему я ненавижу "Майкрософт"

Почему я ненавижу "Майкрософт"

2. Не очень хорошее, плохое и ужасное


Интересно: зависание, требующее 30 минут для починки означает, что было повреждено что-то критически важное, что его надо исправить или восстановить. По меньшей мере, требуется не просто перезагрузка. Это случается каждые шесть недель на сервере и это считается «не очень плохо»... Подумайте об этом. И заметьте еще, что большинство других разновидностей Юникса - «Солярис», BSD, AIX так же надежны, как Линукс.

Но разрыв между продолжительностью работы Windows и других систем даже больше, чем описал Воэн-Николс. Сравните полчаса отключки раз в шесть недель с системой Netware из следующей статьи, помещенной в «TechWeb» 9 апреля 2001 года.

Сервер 54. где ты?

Университет Северной Каролины наконец нашел свой сетевой сервер, который хотя и потерялся четыре года назад, не пропустил за это время ни одного сетевого пакета. Администраторы университета, как ни старались, не могли найти сервер. Призвав на помощь фирму «Novell», работники дотошно проследили, куда идет кабель, пока буквально не уперлись в стену. Оказалось, что рабочие по ошибки заложили сервер во время ремонта.

Хотя эта история и вызывает некоторые сомнения в ее подлинности, всем известно, что серверы Netware способны без обслуживания работать годами. Я недавно выключил сервер Netware в нашем головном офисе. Это сервер Netware 5.0, на котором работало ПО, предоставляющее услуги почтового сервера, факс-сервера и защиты сети от вирусов плюс обычные службы доступа к файлам и принтерам для всей компании. Он работал без единой ошибки больше года, и выключили его мы только потому, что нам надо было его физически перевезти в другое здание. Если бы не надо было переезжать, он бы работал годами – в конце концов, как может снизиться его производительность, пока никто не выдернет шнур из розетки или загрузит в спешке непроверенное ПО? Время непрерывной работы наших серверов на базе Линукса и Соляриса (которые работают как веб-серверы, серверы базы данных и почтовые серверы для критически важных задач плюс обеспечивают стандартный доступ к файлам и принтерам) тоже измеряется месяцами. Год непрерывной работы – обычная вещь для платформ Netware и Юникс, а пара лет работы тоже вполне реальна. Большинство обновлений ОС, кроме замены ядра, не требуют перезагрузки юниксовского сервера в отличие от Windows, требующей полной перезагрузки при замене динамической библиотеки в какой-нибудь подсистеме. Убедитесь сами: проверьте статистику !!! и сравните время работы серверов на базе Windows и на базе Юникс. Цифры говорят сами за себя.

«Майкрософт» обещает 99.999% стабильность работы Windows 2000. Это немного больше 5 минут отключения в год. Я не верю, что это – реалистичная цель для Windows. Продукты «Майкрософт» никогда не приближались к таким показателям бесперебойной работы. Даже, учитывая, что повышение надежности Windows 2000 надо главным образом обеспечивать с помощью решений третьих фирм по кластеризации и создании избыточности (о чем забывают упомянуть объявления в глянцевых журналах), все равно очень сомнительно, что пять минут отключений в год для кластера на основе Windows – цифра реальная.

Еще серьезнее, наверное, тот факт, что кроме кластеризации нет других возможностей исправить многие программные ошибки, подрывающие надежность типичного сервера Windows. Типичный сервер NT или 2000 может внезапно попасть под влияние нескольких одновременных сбоев. Сбои могут варьироваться от сетевых процессов, которые внешне работают нормально, но игнорируют все сетевые запросы, до сорвавшихся с цепи серверных приложений, блокирующих операционную систему целиком. Обычно единственное решение в таких случаях – выключить и перезапустить систему. Припоминаю, как я проделывал это три раза в неделю на производственном сервере. Поверьте мне, радости тут мало. Можно понять некоторых системных администраторов, считающих, что лучший способ разогнать систему на базе Windows – это придать ей ускорение 9,81 м/с2.

Делает ли это Windows полностью неприменимым продуктом, который нигде не запускается в стабильной конфигурации? Нет. К счастью, нет. Есть ситуации, когда системы Windows (и рабочие станции, и серверы) могут работать долгое время, не слетая. Установленная продавцом версия Windows NT или 2000 на первоклассной системе, состоящей только из одобренных компонентов, со всеми требующимися пакетами обновлений и только с сертифицированными драйверами не будет доставлять вам особых проблем (если вы, конечно, не используете ее для чего-то большего, чем доступ к файлам и принтерам). Правило здесь такое: использовать только аппаратное обеспечение, перечисленное в списке совместимости от «Майкрософт», использовать только предоставленные продавцом и сертифицированные драйвера и другое ПО, и применять кластерные решения третьих фирм для приложений, которые критически важны для работы.

Если быть честным, то Windows 2000 – немного лучше, чем (или скорее, не так плоха, как) Windows 2000. Она меньше склонна к спонтанным падениям, а некоторые из ошибок, вызванных неуклюжим дизайном NT, исправлены. (Например, домашние каталоги пользователей больше не располагаются в каталоге WINNT). На большинстве систем (особенно на ноутбуках) Windows 2000 работает гораздо устойчивее. По моему мнению, это показывает, что несколько относительно мелких изменений могут оказать большое влияние. Но по-прежнему, учитывая общее качество продуктов «Майкрософт» и Windows в частности, никаких гарантий дать нельзя. И естественно, «Майкрософт» добавила целый набор новых ошибок и глюков в Windows XP, которые свели на нет многие улучшения Windows 2000, так что Windows XP менее стабильна, чем Windows 2000. Но это и есть новшество специально для вас, наверное.

Самое страшное, что «Майкрософт», кажется, не понимает, насколько серьезны все эти проблемы. Или скорее, понимает, но мало о них беспокоится, пока продажи возрастают. Их документы о серьезных проблемах (которые на майкрософтовском новоязе всегда называются «вопросами») выражают это совершенно ясно. Возьмем, например, «Вопрос отказа в обслуживании по протоколу TCP/IP»: серьезную проблему, обнаруженную несколько лет назад. Из-за нее сервера NT перестают отвечать на сетевые запросы на обслуживание, из-за чего перестают работать критически важные службы. (Не путайте эту проблему с намеренным атаками типа «Отказ в обслуживании», для которых уязвимы почти все операционные системы; здесь же речь идет только о Windows). Когда для этой проблемы еще не было найдено реального решения, единственный ответ «Майкрософт» был таким: «Этот вопрос никоим образом не затрагивает важные данные. Сервер только становится недоступным на короткое время, что легко исправляется перезагрузкой сервера». (Администраторам на NT пришлось ждать следующего пакета обновлений, вышедшего через несколько месяцев после обнаружения ошибки).

И «Майкрософт» думает, что это барахло сможет конкурировать с Юниксом угрожать рынку больших машин для запуска критически важных приложений?

Угу.

Я так не считаю.

В сентябре 2001 «Хьюлетт-Паккард» собрал в один кластер 225 ПК под управлением операционной системы OpenLinux. Получившаяся система (названная «I-cluster») по своим результатам производительности вошла в общий список 500 лучших суперкомпьютеров, хотя работала на стандартном, немодифицированном железе. (Кстати, значительная часть компьютеров из этого списка работает на Линуксе, а для суперкомпьютерных приложений используется все больше и больше юниксовских кластеров). «Майкрософт» со своей линией продуктов, происходящих только от однопользовательских настольных систем, не может и мечтать о такой масштабируемости – ни сейчас, ни вообще. Но несмотря на это, «Майкрософт» заявила на !!! сайте, поддерживаемом совместно с «Unisys», что Windows затмит своей производительностью Юникс, поскольку сервер Unisys с установленным Windows 2000 Datacenter может быть расширен до 32 процессоров. Это заявление, естественно, - наглая ложь: оно неверно и «Майкрософт» прекрасно это знает. Однако «Майкрософт» пытается убедить нас, что производительность, надежность и масштабируемость линии продуктов Windows сравнима с Юниксом, и что кластеризованные сервера под Windows – жизнеспособное решение для замены средних и больших компьютеров под Юниксом. Я не шучу, именно так они и говорят. Если вы хоть как-то интересовались масштабируемостью средних серверов под Юниксом и требованиям к приложениям, для которых используются такие машины, вы поймете, насколько это смешно. А если не интересовались, то вот вам такой факт: когда «Майкрософт» приобрела прибыльную службу бесплатной почты Hotmail, там было примерно 10 миллионов пользователей, а основные системы, обеспечивающие ее работу, управлялись Юниксом. Сегодня число пользователей Hotmail превышает 50 миллионов, но несмотря на утверждения «Майкрософт» о мощи серверов Windows и их попытки заменить базовую систему Hotmai своим серверами, почта до сих пор работает под Юниксом. Этот вопрос подробно обсуждался в просочившемся !!! внутреннем документе, написанном членом Группы серверных продуктов Windows 2000 Дэвидом Бруксом. Он упоминает вошедшую в пословицы стабильность ядра Линукса и веб-сервера Апач, прозрачность системы, сочетание в ней силы и простоты. Windows же, с другой стороны, рассматривается как система без особой необходимости настроенная на использование графического интерфейса (Брукс пишет: «Серверные продукты Windows 2000 продолжают разрабатываться с оглядкой на настольные компьютеры»), сложная, запутанная, без необходимости расточительная (Брукс: «Действительно, Windows требует более мощного компьютера, чем Линукс или FreeBSD»), «требующая время от времени перезагрузки» (именно так).

Конечно, Hotmail – не единственный пример, когда «Майкрософт» отказывается есть свои собственные собачьи консервы. Направленный против Линукса сайт «Мы знаем выход», который «Майкрософт» вместе со своим партнером «Unisys» запустила в первые месяцы 2002 года, поначалу работал на Юниксе и Апаче (и был переведен на IIS под Windows 2000 только после того, как над этим стало смеяться все компьютерное сообщество). А бухгалтерский отдел «Майкрософт» использовал для важных приложений вроде ведения платежных ведомостей платформу IBM AS/400 до конца девяностых годов. Пища для размышлений.

Стоит также вспомнить, что «Майкрософт» не знает о работе в сети самых элементарных вещей. Система Windows в среде TCP/IP до сих пор использует имя NetBIOS. Сетевая работа «Майкрософт» построена вокруг NetBEUI, являющейся расширенной версией NetBIOS. Это настоящий протокол каменного века, совершенно немаршутизуемый. Он использует множество широковещательных сообщений, которые в сетевом сегменте с ПК под Windows создают значительную долю сетевого трафика, даже для соединений типа точка-точка (например, между почтовым ящиком на сервере и клиентским ПК). Если бы не возможность инкапсулировать трафик NETBIOS/NetBEUI в пакеты TCP/IP, связь Windows с реальным миром была бы совершенно невозможна. (Заметьте, что «Майкрософт» называет инкапсуляцию пакетов NetBEUI «чистым IP» и сделайте выводы сами).

В любом случае ПК под Windows склонны генерировать в сети необыкновенное количество мусора. Я помню один документ от «Майкрософт», в котором говорилось, что типичная сеть ПК состоит из десяти, максимум двенадцати, равноранговых рабочих станций, все под управлением операционных систем Windows. По моему мнению, это объясняет все остальное. Если вам нужно нечто большее, это ваши собственные проблемы.

Кстати: не надо верить мне на слово – попробуйте сами. Возьмите хороший, быстрый сервер FTP (например, работающий под Юниксом). Загрузите на сервер под Windows NT или 2000 несколько больших файлов (скажем, в 50 Мб) и скачайте их назад. (Я проделал это на Пентиуме II с 233 МГц). Вы вероятно увидите скорость порядка 1 Мбит/с для загрузки и 2-3 Мбит/с для скачивания. Затем загрузите Линукс на той же самой машине и повторите опыт. Теперь вы увидите скорость, ограниченную только пропускной способностью сети или возможностями вашего сервера FTP. На 10-мегабитовой сети скорость загрузки и скачивания в 5 Мбит/с будет минимумом. Чтобы еще более убедиться, можете повторить этот опыт с действительно медленным клиентом (например, Пентиумом 60 или 75 Мгц) под Линуксом. Скорость связи будет по-прежнему ограничена сетью, а не системой. (Замечание: явление не ограничено FTP и затрагивает все остальные сетевые протоколы. Это проблема производительности, связанное с кодом в стеке IP Windows и других частях архитектуры, связанных с передачей данных).

Новые версии Windows облегчения не принесли. Любой инженер по сетям, использующий PPPoE (протокол «точка-точка» через Этернет) вместе с ADSL скажет вам, что надо устанавливать MTU (настройку, ограничивающую размер пакета) в 1492 или менее. В XP по умолчанию она выставлена на 1500, что может привести к проблемам на маршутизаторах многих провайдеров. «Майкрософт» знает об этой проблеме, но XP тем не менее настаивает на настройке PPPoE с MTU в 1500. Пользователи PPPoE могут залезть в реестр, но официальной заплатки нет, а в XP пользователь не может удобно изменить это значение. (Проблема довольна типична для XP. Предыдущие версии Windows требовали для поддержки таких настроек программ от сторонних производителей. Это было неудобно, но по крайней мере была возможность получить код от производителей, которые знали, что делают. В Windows XP «Майкрософт» хотела сделать все сама, но только испортила дело).

А если этого мало, то читатели этого документа сообщают, что согласно Джону Двораку из «PC Magazine» ядро Windows выдыается на скорости 483 Мбит/с. Дворак замечает, что многие предприятия ставят сейчас гигабитовый Этернет, но Windows (включая XP) за ними просто не поспевает.

А теперь почитайте, как «Майкрософт» называет Windows 2000 и XP единственной идеальной платформой для интернет-приложений...

Неряшливый код программ, обеспечивающий сетевую поддержку Windows, и стека протоколов еще и делает систему более уязвимой к атакам типа «Отказ в обслуживании». Такая атака – просто разновидность компьютерного вандализма, когда ставится цель завалить систему или как-то иначе сделать ее нерабочей. При типичной атаке «ОО» на выбранную в качестве мишени систему посылается нарочито неправильный сетевой пакет, который вызывает ошибочное срабатывание и сбой системы. Пакет формируется так, чтобы использовать один из известных изъянов ОС. В случае с Windows способов поломать систему намного больше. Например, процедуры ядра Windows 2000 и XP, обрабатывающие приходящие пакеты IPsec (порт UDP 500), написаны так плохо, что даже поток обыкновенных пакетов IPsec к серверу вязнет, перегружая процессор. И конечно же фильтры IPsec в Windows не могут заблокировать поток пакетов 500/udp.

Другой способ сделать систему нерабочей – атака «Распределенный отказ в обслуживании». В ней участвует множество сетевых систем, посылающих сетевой трафик к одной системе-жертве или в один сетевой сегмент, которые затопляются трафиком и становится недоступными. Что-то противопоставить такой атаке почти невозможно и все платформы одинаково уязвимы.

Уязвимостей и так достаточно, а Windows 2000 и XP стали новыми платформами для генерации таких атак. Единственное реальное «усовершенствование» в стеке IP в Windows 2000 и XP такое: непонятно по какой причине «Майкрософт» увеличила контроль приложений над стеком IP. Это не улучшило некачественную сетевую производительность Windows, зато дало приложениям возможность строить произвольные пакеты IP, чтобы генерировать невероятно злобный трафик в Интернете. Теперь можно подделывать адреса источника пакета и проводить полномасштабные атаки «Отказ в обслуживании», используя поле SYN.

Пока что мы рассматривали только Windows. Большинство проблем с продуктами «Майкрософт» происходят именно от системы, поскольку Windows – самая сложная линия продуктов фирмы, а отдельные продукты взаимодействуют с системой намного больше, чем на любой другой платформе. Но, к несчастью, большинство серверных и настольных приложений скроены из того же самого материала, что и сама Windows. Общее качество их кода и дизайна не намного лучше.

Дополнительные серверные продукты обычно запускаются на сервере под Windows. Это означает, что все проблемы небезопасной и нестабильной платформы автоматически относятся к серверным продуктам, которые работают на таком сервере. Например, Microsoft SQL Server – продукт с довольно небольшим числом проблем. В основе своей это стандартная реализация универсального сервера SQL. Может быть, в нем нет особых достижений или новаций, но это неплохой продукт, определенно сделанный не по стандартам «Майкрософт». Но любая служба баз данных не может быть более стабильной, чем сервер, на котором она работает. (Это, естественно, относится к любому программному продукту, не только к серверу SQL). Так что все уязвимые места сервера Windows сразу становятся уязвимыми местами сервера баз данных.

Впрочем, другие дополнительные сервисные продукты поставляются со своими дополнительными проблемами. Веб-сервер от «Майкрософта» Internet Information Server (IIS) задумывался не только, чтобы просто выдавать страницы, написанные на стандартном HTML, но также обеспечивать дополнительную аутентификацию, устанавливать связи с базам данных, хранящими данные, добавить возможность выполнения сценариев на сервере и у клиента, генерировать динамический HTML и Активные серверные страницы (ASP) и т.д. Он действительно все это делает, делает и кое-что сверх того, но не очень хорошо. Скорость его работы хуже, чем у других основных веб-серверов (особенно у «Апача»), аутентификация далека от надежности (об отсутствии безопасности в продуктах «Майкрософт» мы еще поговорим), а интеграция самого сервера с сервером баз данных далека от гладкости. Динамический HTML, ASP и сценарии требуют выполнения кода на сервера и здесь начинает играть роль плохое управление процессами: нагрузка на сервер часто оказывается чрезмерной. Кроме того, запуск кода на сервере в ответ на сетевые запросы создает множество проблем с безопасностью, и помимо всего прочего сгенерированные страницы не соответствуют общему стандарту HTML, они корректно отображаются только в собственных браузерных продуктах «Майкрософт».

Почтовый сервер «Майкрософта» под названием «Exchange» тоже имеет несколько острых углов. Потерять почту фирмы за несколько дней из-за сбоя сервера – дело обычное. «Exchange» разрабатывался, чтобы взаимодействовать главным образом с другими продуктами от «Майкрософт» (особенно с почтовым клиентом «Outlook», и RFC - общепринятые стандарты Интернета не принимали слишком серьезно. Это ограничивает совместимость и может приводить к проблемам всякого рода. «Outlook Express» кроме того общается с сервером Exchange по протоколу IMAP весьма странным образом. Он открывает септильон соединений; каждое соединение регистрируется на сервере, выполняет одну задачу, устанавливает соединение в холостой режим... и отключает соединение. Поскольку Outlook Express не всегда правильно закрывает почтовый ящик перед отключением соединения, ящик и его копия в Outlook не всегда совпадают. На практике это выглядит так: вы можете стереть в Outlook сообщения, но через несколько минут они как по волшебству возникают вновь, поскольку сообщения об удалении не были доставлены почтовому ящику до отключения соединения.

Как и все остальные приложения «Майкрософт», дополнительные серверные продукты тесно привязывается во время установки к системе. Они заменяют динамические библиотеки, принадлежащие операционной системе, и запускают службы на системном уровне. Это как минимум не добавляет стабильности системы в целом, и конечно же большинство кода в дополнительных серверных продуктах того же сомнительного качества, что и код в самой системе. Надежность и бесперебойность работы любой службы не может быть лучше, чем у серверной ОС, на которой он работает. Но большинство дополнительных серверных продуктов «Майкрософт» добавляют свои собственные сложности, свои ошибки и недоделки, отчего система только ухудшается. В результате время бесперебойной работы и показатели надежности легко предсказать. Неэффективность, существующая в Windows, также присутствует в дополнительных серверных продуктах, так что на практике каждая дополнительная служба требует отдельной машины. Другими словами, если вам нужен файловый сервер и сервер печати, веб-сервер и почтовый сервер, вам потребуется три отдельных машины, а Юникс или Netware вероятно смогут обойтись и одной.

К настольным приложения «Майкрософт» (вроде Word и Excel) относится практически все вышесказанное. Они находятся на последних стадиях раздувания функциональности: они переполнены всякими штучками, не добавляющими ничего полезного к продукту, но подрывающими производительность из-за своей сложности, глючности, повышенной требовательности к ресурсам и дополнительного кода, что в свою очередь, увеличивает риск. После многих лет дополнений и латаний тексты этих продуктов стали совершенно беспорядочными. Безопасность, если таковая вообще есть, была добавлена в последний момент. Например, документ Word, защищенный паролем, вообще не зашифрован. Вставки «защищенного» документа в другой, незащищенный, (например, в чистый новый документ) вполне достаточно, чтобы обойти эту «защиту».

Анимированные скрепки еще не делают Word лучшим текстовым процессором. Мы бы предпочли совсем другое, например, разумное поведение автоформата, возможность видеть коды разметки, более полные алгоритм и словарь для проверки правописания. Но несмотря на все «новые» версии Офиса и постоянные пожелания пользователей, у «Майкрософт» так и не дошли до этого руки. Вместо этого у нас есть многопользовательская поддержка, которая время от времени «забывает» свои настройки, и «автоматическая правка», которая ограничена настолько, что больше раздражает, чем приносит пользы. Документы Word стали очень большими и неуклюжими, иногда они искажаются при сохранении на диск и потом Word виснет при попытке их прочесть.

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

Меню во всех приложениях «Майкрософт», даже тех, которые поставляются как MS Office, непоследовательны и неинтуитивны. Например, пункт меню для установки настроек приложения может называться «Предпочтения» в одних продуктах и «Настройки» в других, а находиться он может в меню «Файл», в меню «Правка» или где-нибудь еще, в зависимости от продукта, который вы используете. Чтобы создать еще большую неразбериху, одни и те же пункты в разных приложениях работают по-разному. Например, кнопка «Неупорядоченный список» (для создания маркированного списка) делает правильные отступы в Word, но совершенно игнорирует их в PowerPoint (PowerPoint добавляет маркеры, но портит левые отступы в тексте). Кнопка F3 включает функцию «Искать строку заново» практически во всех продуктах «Майкрософт», кроме Internet Explorer, в котором по ней без всяких причин вызывается окно «Найти: все файлы».

Наиболее важное приложение «Майкрософт», не входящее в MS Office, - это конечно Internet Explorer. В своей первой инкарнации это был совершенно непримечательный обозреватель интернета; например, версия 2.0, поставлявшаяся с Windows NT 4, была такой отсталой, что даже не поддерживала фреймы. Вскоре все изменилось – когда «Майкрософт» начала объединять обозреватель с системой в рамках своей стратегии по интегрированию и упаковке (подробно о ней ниже).

С чистым сердцем можно сказать, что последние версии IE (начиная с 6-й версии) – браузеры неплохие. Они делают то, что им положено и делают вполне нормально. По крайней мере, они показывают стандартный код HTML в виде корректно отрисованных страниц с приемлемой по любым меркам скоростью. Предыдущие версии были не настолько хороши и даже сознательно отклонялись от глобальных стандартов HTML с целью отбить у пользователей охоту пользоваться стандартным HTML и склонить их к собственным идеям «Майкрософт» - закрытым и сковывающим.

Главный недостаток Internet Explorer в том, что он пытается стать чем-то большим, нежели обозреватель Интернета. К нему добавлена поддержка сценариев (с возможностью запуска программ на Visual Basic или Jscript, внедренных в страницу), и он подсоединяется напрямую к ядру Windows. Я видел страницы, которые могли отключить систему Windows, если их просматривали в Internet Explorer. «Майкрософт», мягко выражаясь, не особо беспокоится элементарными соображениями безопасности. И конечно установка новой версии Internet Explorer заменяет (перезаписывает) значительные куски операционной системы Windows со всеми вышеописанными последствиями.

Похожие проблемы можно найти в Outlook – почтовом клиенте от «Майкрософт». Outlook – фактически отдельное приложение, но отдельно оно не поставляется. Есть две версии: одна идет вместе с Internet Explorer (и называется Outlook Express), вторая входит в MS Office (она называется Outlook и в нее включены возможности планировщика и групповой работы). Сам по себе Outlook – приемлемый, хотя и ничем не примечательный почтовый клиент: он дает пользователю возможность читать и писать электронные письма. Он поставляется с некоторыми противными настройками по умолчанию, но по крайней мере их можно изменить, хотя средний пользователь-новичок этого, естественно, никогда не делает. (Например, сообщения по умолчанию отсылаются как присоединенные файлы HTML, а не в виде нормально читаемого текста, когда пользователь отвечает на письмо, цитаты отображаются с каким-то ужасным форматированием, которое невозможно исправить без динамита, в исходящем электронном сообщении нередка бывает куча мусора). Более серьезно то, что и Outlook, и его дружок на сервере Exchange имеют привычку выкидывать поля из заголовков писем – сомнительная практика. Из-за этого усложняется администрирование сети и поиск проблем.

И тут мы приходим к одной из главных слабостей продуктов «Майкрософт»: безопасности или, вернее, к ее отсутствию. Печально известная уязвимость ПО «Майкрософт» - сама по себе проблема.

Все начинается с довольно слабой безопасности Windows. Количество уже имеющихся сообщений о дырках в безопасности просто поражает, но продолжает расти. С другой стороны, дыры в безопасности Windows стали настолько обычными, что уже почти не привлекают ничьего внимания. «Майкрософт» обычно преуменьшает последние проблемы с безопасностью и выпускает очередную заплатку... потом. Если бы в «Майкрософте» действительно хотели решить эти проблемы, там больше бы заботились о том, чтобы убедиться, что проблемы разрешены до начала продаж – поменяв таким образом способ ведения бизнеса на обратный. Это сократило бы количество ресурсов, растрачиваемых заказчиками каждый год на латание и перелатывание систем, пытаясь очистить их от ошибок «Майкрософт», но это также снизит зависимость от того, что «Майкрософт» называет «поддержка программ». Тем временем, хакеры не нарадуются на шаткие модели безопасности и на еще более слабое шифрование паролей (такое как простая операция «исключающее ИЛИ», «шифрование», которое практически каждый студент заново изобретает во время учебы). Хакеры, детишки, только освоившие сценарии и прочие искатели славы могут воспользоваться широким набором простых дыр в безопасности. Некоторые из последних и крайне заразных червей, например, распространяются так быстро, потому что могут расколоть пароли для удаленного доступа за двадцать секунд. (Это не остановила «Майкрософт» от запуска весной 2003 года рекламной кампании, уверяющей, что хакеры вымирают вслед за додо и динозаврами, потому что «Майкрософт» делает ну такое безопасное ПО. Не удивительно, что эта кампания нарушала несколько законов, касающихся правдивости рекламы, и ее свернули).

Другая немалая часть проблемы – отсутствие адекватного разделения между кодом, работающим на различных системных и пользовательских уровнях. Windows всегда предполагает, что код работает с самыми большими привилегиями, так что может делать почти все, что угодно, в том числе и с вредительскими целями. Из-за этого невозможно запретить вредному коду проникнуть в систему. Пользователи могут (намеренно или нет) загрузить код из Интернета и запустить его, но невозможно уберечь ресурсы системного уровня от повреждения кодом пользовательского уровня).

Тесная интеграция между различными продуктами «Майкрософт» не очень-то улучшает общую безопасность. Все программные компоненты перегружены функциями и все компоненты используют функции друг друга. К несчастью, это означает, что заодно разделяются и все прорехи в безопасности. Например, почтовый клиент Outlook использует части из Internet Explorer, чтобы отрисовывать HTML, вставленный в почтовые сообщения, в том числе выполнять код сценариев. И, конечно же, IE и Outlook подсоединяются к ядру Windows с достаточными привилегиями, чтобы запускать произвольный вредительский код, который может оказаться в полученном электронном сообщении или на просматриваемой странице. Поскольку Outlook использует части кода IE, он заодно и страдает от ошибок в Explorer. Потому дыры, существующие в Outlook, взламывают IE и наоборот, а поскольку IE напрямую подключен к определенным функциям ядра Windows, эти функции можно использовать через дыры в Outlook. Другими словами, небольшая прореха в безопасности в одном из компонентов сразу же угрожает всей системе. Читай: уязвимость в Internet Explorer означает уязвимость в Windows Server 2003! Простой скрипт на Визуал Бейсике в почтовом сообщении имеет достаточно прав, чтобы перезаписать половину планеты, что было доказано эпидемиями почтовых вирусов (например, «Мелиссой», «I love you» и подобными червями), причинившими ущерб на миллиарды долларов.

Tags: программирование
Subscribe

  • Азиз Несин. "Несчастная Неджла"

    Азиз Несин Несчастная Неджла Просто стыдно родиться и вырасти в Стамбуле, но Стамбула при этом не знать. Но я вот как раз такой стамбулец, который…

  • Азиз Несин. Жить в Стамбуле

    Азиз Несин Жить в Стамбуле Я родился и вырос в Стамбуле. И мать моя отсюда, и отец… Их родители тоже… Все родичи мои —…

  • Бедуинские дети

    Император Юстиниан не только построил монахам церковь и крепостные стены, но и позаботился, чтобы святые мужи не отвлекались на разные бытовые…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 3 comments