Защита информации в Интернет

         

Удаленное переполнение буфера



Удаленное переполнение буфера

О Windows NT ходят легенды, что в ней существуют многочисленные секретные "лазейки", с помощью которых можно получить статус администратора любой удаленной системы. На самом деле в настоящее время известно лишь несколько подобных недостатков, которые при определенных условиях могут дать подобный эффект, однако все они относятся к приложениям, а не к самой системе Windows NT. Чем это объясняется, то ли относительной "молодостью" NT, то ли архитектурой, заложенной в нее разработчиками Microsoft, — это спорный вопрос.
С точки зрения удаленного проникновения самые тяжелые последствия способна вызвать ошибка переполнения буфера (buffer overflow). Более подробно переполнение буфера будет рассматриваться в главе 14, а сейчас для продолжения обсуждения достаточно сказать, что переполнение буфера возникает тогда, когда программы не способны адекватно отслеживать длину вводимых данных. В таких случаях избыточные данные записываются поверх части стека центрального процессора. Если это произойдет не случайно, а в результате передачи в качестве избыточных данных соответствующих команд, то новый код может привести к выполнению операций, подобранных высококвалифицированным программистом. Одной из наиболее значимых статей, посвященных проблеме переполнения буфера, является работа Алефа Вана (Aleph One) Smashing the stack for fan and profit. Ее можно найти по адресу http://phrack.infonexus.com/archive.html. К другим статьям о переполнении буфера системы Windows относятся Tao of Windows Buffer Overflow хакера Дилдога (Dildog), Win32 Buffer Overflows Барнаби Джека (Barnaby Jack) в Phrack 55, а также статьи членов группы CIS (Cerberus Information Security).
Переполнение буфера можно отнести к одному из двух основных классов: удаленное и локальное. Для достижения локального переполнения требуется доступ к консоли, и его обычно могут осуществить лишь интерактивные пользователи. Удаленное переполнение буфера является гораздо более опасным. Такой возможностью могут воспользоваться взломщики, имеющие нулевые привилегии на целевом компьютере и находящиеся на любом узле сети. Как правило, удаленное переполнение буфера связано с размещением на целевой системе "полезного груза" (т.е. кода, помещенного в стек центрального процессора), что впоследствии позволяет взломщику удовлетворить практически любые свои желания. В табл. 5.3 приведены некоторые наиболее известные публикации об ошибках переполнения буфера системы NT и других программных продуктов компании Microsoft.
Теоретически, учитывая огромный объем и сложность исходного кода Windows NT, в нем должно существовать довольно много изъянов подобного рода. Однако, как видно из табл. 5.3, между двумя изданиями этой книги практически не появилось новых хакерских программ, вызывающих переполнение буфера самой операционной системы NT/2000. В то же время, как видно из табл. 5.3, службы (IIS) и приложения (Outlook) системы Windows являются достаточно уязвимыми. Поэтому не стоит рассчитывать на абсолютную защищенность операционной системы: все возрастающий поток исследований проблемы переполнения буфера Win32 в любой момент может привести к прорыву обороны.



Содержание раздела