Аргерих Л. О языке РНР. Часть 5. Страница 67


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

Обычные типы уязвимостей

В информации, помещаемой на упомянутых выше сайтах и почтовых спис­ках (advisories), часто указывается тип уязвимости. Ниже приводятся опи­сания наиболее распространенных из них с объяснением опасности, кото­рую они представляют.

Backdoor

«Черный ход» (backdoor) - это имя пользователя и пароль, прошитые разра­ботчиком в коде приложения. Он дает возможность входа в систему, о кото­рой не известно конечному пользователю и которая нигде не документирова­на. Чаще всего это связано с забывчивостью разработчика, не удалившего старый код для отладки. Этот тип уязвимости редко, но встречается. Из­вестный пример - выпуск Borland исходного кода Interbase SQL Server. Чер­ный ход, включающий имя пользователя и пароль по умолчанию для полно­го доступа, были обнаружены проектом Firebird. Подробности можно узнать на http://www.securityfocus.com/advisories/3152/"> http://www.securityfocus.com/advisories/3152/.

Buffer Overflow

Переполнение буфера происходит при попытке программы

сохранить данные в памяти, объем которой недостаточен для этих данных, при отсутствии в программе проверки размера памяти. В результате про­грамма перезаписывает данные в следующем участке памяти.

Переполнение буфера - один из чаще всего встречающихся типов уязвимос- тей. Пользуются им для того, чтобы переписать информацию, которая идет после текущего блока памяти. В результате можно изменить адрес возврата текущей функции или вызвать крах выполняемого приложения с выходом в оболочку. Хорошее описание простых случаев переполнения буфера есть на http://www.ph.rack.org/show.php?%d1%80=49&%d0%b0=14%d0%b4%5d%d1%88"> http://www.ph.rack.org/show.php?р=49&а=14д]ш чтения требуется некото­рое знание С и языка ассемблера).

CGI Exploit

Это (эксплуатируемые уязвимости) в выполняемых сценариях

CGI. Эксплойты этого типа разнообразны и обычно служат для получения с сервера конфиденциальной информации или обхода политики безопаснос­ти. Далее в этой главе мы рассмотрим некоторые способы избежать их появ­ления в программах.