Крис Касперски
Количество дыр, обнаруженных в Windows, уже давно перешагнуло через все
мыслимые границы и неуклонно продолжает расти. Выходить в Интернет стало
небезопасно. Дальше так жить нельзя – надо защищаться. Для этого
организуем защитный бастион, основанный на Linux/BSD, и пригодный как для
офиса, так и для домашнего использования.
Почему Windows NT небезопасна? Почему в ней обнаруживаются все новые и новые
дыры? Вопрос абстрактный, но мы все-таки постараемся дать на него ответ. Начнем
с того, что умных людей в Microsoft осталась не так уж и много, налицо
явная текучка кадров. Опытные специалисты покидают «империю зла» и уходят в
другие компании. Достаточно вспомнить памятный скандал с менеджером, в которого
Стив Балмер зашвырнул креслом (от такого руководителя я бы и сам ушел) – http://www.cnews.ru/news/line/index.shtml?2005/09/06/186136
и http://russian.joelonsoftware.com/Articles/HowMicrosoftLosttheWaronA.html
– последний источник рассказывает о переменах, происходящих внутри Microsoft, и
деградации операционной системы.
Падение культуры программирования легко
проследить с помощью дизассемблера. Если MS-DOS 6.x еще содержала огромное
количество ассемблерного кода, а Windows 95 представляет собой настоящий шедевр
оптимизации (без всякой иронии!), запрограммированный на смеси ассемблера с
чистым Си, то в Windows 98 уже доминирует Си++, «мастера» и прочие
автоматические кодогенераторы, заменившие живой ум. Windows NT 4.x (которая,
как известно, создавалась приблизительно в то же самое время, что и Windows
95, только другим коллективом программистов) – это блестяще оптимизированная,
хотя и слишком навороченная система, запрограммированная руками и головой, но в
Windows 2000 и тем более XP уже доминирует Си++ и «мастера». Программисты
старого поколения так не поступают! Вывод – все это писали новички, со всеми
вытекающими отсюда последствиями. В дизассемблере код выглядит просто ужасно.
Поражает даже не тяжеловесность, а… «рассосредоточенность» кода, тонким слоем
размазанного по куче функций. В частности, никакой единой функции переключения
контекста в Windows NT нет! SwitchContext – это только малая часть, весь
остальной код размазан по всему ядру, регистры многократно сохраняются/восстанавливаются
в разных местах, делается куча проверок на допустимость их значений и т. д.
Сетевые компоненты выглядят еще хуже.
К тому же Windows очень стремительно развивается
и содержит массу избыточного, никому не нужного кода, который не так-то просто
удалить из системы или хотя бы просто отключить. Причем развитие идет по
принципу «не трогаем того, что написали, а набрасываем сверху еще
и еще». Как следствие, количество связей между отдельными компонентами
системы лавинообразно нарастает, а времени на тестирование нет, и продукт
выбрасывается на рынок таким как есть. Кража исходных текстов Windows 2000
только подлила масла в огонь. Они есть практически у каждого хакера, но
отсутствуют у легальных специалистов по безопасности, а это, значит, что
игра идет в одни ворота. Хакеры ищут дыры, а специалисты вынуждены лишь
признавать их постфактум.
Вместо того чтобы вылизывать систему и работать
над ее улучшением, Microsoft несется вперед, предлагая новые революционные
решения, которые даже она при своих миллиардных доходах просто физически не в
состоянии отладить. Так что количество дыр в последующих версиях Windows
сокращаться не собирается, и хакерство будет только процветать. Как в этих
условиях хранить и обрабатывать конфиденциальные данные, не говоря уже про
«электронные кошельки», кража которых в последнее время принимает массовый
характер?
Служба поддержки Microsoft отвечает – регулярно
устанавливайте на компьютер свежие заплатки, которые и так устанавливаются
службой Windows Update. Предложение, конечно, заманчивое, но… заплатки
выпускаются не мгновенно и только для уже известных дыр. Для домашнего
компьютера такая степень защищенности вполне подходит, да и то… Только
представьте, сколько электронных денег сможет утащить хакер, если он напишет
вирус прежде чем будет выпущен «патч»? А для фирмы захват сервера вообще может
стать фатальным. Причем заплатки выпускаются не бесконечно, а только в течение
так называемого «жизненного цикла продукта», определяемого самой Microsoft.
В практическом плане это означает, что даже если старая операционная
система полностью удовлетворяет нашим скромным потребностям, ее все равно
придется менять, попутно обновляя «железо», что выливается в солидные расходы и
вызывает множество проблем от необходимости обучения персонала до «старые
программы не запускаются».
Про то, что заплатки занимают огромный объем и
для их перекачки необходимо иметь по меньшей мере DSL-модем, мы промолчим. К
тому же реально воспользоваться Windows Update все равно не удастся.
Задумайтесь, что произойдет, если операционная система упадет? Ведь после
установки с дистрибутивного диска выходить в Интернет и качать заплатки
ни в коем случае нельзя, ведь в эти минуты наш узел совершенно
беззащитен перед хакерами, а вероятность атаки не так уж и мала, особенно если
вспомнить про червей, которые стучатся во все компьютеры подряд. Теоретически
можно скачать заплатки в виде отдельных файлов, сохранив их на любом носителе,
но… тогда придется разбираться в них самостоятельно, а это не так-то
просто, поскольку заплатки содержат зависимости и абы как не встают или встают,
но не работают.
Исчезает самое главное преимущество Windows –
простота управления. Воздвигнуть NT-сервер и оставить его без присмотра сегодня
уже не получится. Если только не нанять администратора, разбирающегося в
безопасности, с высокой степенью вероятности сервер будет взломан. Тоже самое
относится и к домашним машинам. Вирусы так и прут! Они создают излишний трафик,
воруют пароли и другую секретную информацию или просто нарушают
нормальную работу операционной системы, вызывая сбои и зависания, убытки
от которых зачастую весьма значительны. Давайте посмотрим, что в этой ситуации
можно предпринять…