09.08.2002
В Windows найдена ошибка, которую нельзя исправить

В ОС Windows обнаружено серьёзное уязвимое место: пользуясь им злоумышленник может запустить на компьютере любую программу, даже не имея для этого достаточных прав.

Ситуация осложнена тем, что устранить уязвимое место при помощи обычных заплаток не удастся: ошибка была допущена ещё на этапе проектирования программного интерфейса Win32 (Win32 API), передает Compulenta.ru.

Доказывая недопустимость распространения исходных кодов Windows, вице-президент Microsoft Джим Оллчин как-то заметил, что национальной безопасности США будет нанесён серьёзный ущерб, если откроются некоторые недостатки этой операционной системы. Эти слова натолкнули на мысль заняться поиском недостатков Windows независимого консультанта по вопросам компьютерной безопасности Криса Пейджета.

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

Основой, на которой базируется пользовательский интерфейс Windows, являются сообщения (messages). Каждое действие, предпринимаемое пользователем, порождает массу сообщений, передаваемых для обработки окнам (отдельные компоненты интерфейса, такие как кнопки или, например, поля ввода текста, с точки зрения Windows, также являются окнами). Некоторые сообщения генерируют работающие приложения или сама система.

Проблема в том, что Windows никак не контролирует передачу сообщений между разными приложениями. Любое приложение может послать любое сообщение любому окну, и то обработает его, не задумываясь. В Windows NT/2000/XP некоторые программы имеют администраторские права, а другие - нет. Вредоносная программа может заставить выполнять программу с администраторскими правами действия, которые для неё самой запрещены.

Чтобы проверить реальность угрозы, Пейджет написал программу под названием Shatter, узнающую идентификатор окна антивируса Network Associates VirusScan. Имея идентификатор, Shatter может послать антивирусу сообщение, устраняющее ограничение на длину текста, который можно ввести в текстовое поле в одном из его диалоговых окон. В этот момент требуется вмешательство взломщика: он должен поместить в буфер обмена исполняемый код программы, которую он хочет запустить. Сделать это можно при помощи какого-нибудь шестнадцатиричного редактора. Shatter перемещает данные из буфера обмена в текстовое поле. После этого с помощью отладчика этот код можно запустить.

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

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

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

Источник: FederalPost