Изучив, как функционирует конкретный Web-узел, можно определить важнейшие меры его защиты. Paros - инструмент, с помощью которого можно точно выяснить, как пользователь взаимодействует с Web-узлом, и как туда могут проникнуть злоумышленники.
Paros показывает скрытый механизм взаимодействия между браузером пользователя и Web-узлом и собирает данные для анализа. В сущности, это сервер-посредник, установленный на клиентском компьютере, и браузер подключается к нему, когда требуется отправить Web-запрос. Paros, в свою очередь, подключается к целевому Web-серверу. Благодаря расположению между клиентским компьютером и целевым Web-сервером, Paros может собрать полезные сведения из целевого Web-узла и представить их администратору для анализа.
Установка Paros
Paros - бесплатное приложение Java. Существуют версии программы для Windows и Unix (в том числе Mac OS X). Прежде чем загрузить Paros, следует убедиться в наличии на системе среды Sun Microsystems, Java Runtime Environment (JRE) 1.4.2 или более новой версии. На Web-узле Java можно проверить, имеется ли в компьютере новейшая версия, или загрузить ее по адресу http://www.java.com/en/download/index.jsp.
После установки JRE можно загрузить новейшую версию программы Paros и краткое руководство пользователя с Web-узла Paros (http://www.parosproxy.org).
Процедура установки проста. Программа Paros представляет собой файл Java Archive (JAR), но в папке WindowsProgram FilesParos имеется ярлык для запуска программы. В компьютерах Unix необходимо перейти к папке с содержимым файла Paros.zip и запустить сценарий startserver.sh. Paros запускается в собственном окне как автономная программа Java.
Затем нужно настроить браузер, чтобы установить посредническое соединение с сервером Paros. По умолчанию Paros принимает сетевые соединения через TCP-порт 8080 локального компьютера. Можно изменить сервер, с которым будет установлено соединение, или порт подключения в Paros, выбрав режим Local proxy из меню Tools, Options.
При просмотре Web-страницы в браузере, настроенном для работы с Paros, в интерфейсе пользователя Paros можно увидеть данные о Web-узле. Собранные данные можно сохранить, а впоследствии открыть как предыдущий сеанс. Рассмотрим панели ГИП Paros и отображаемые в них данные, посетив в качестве примера Web-узел Windows IT Pro.
Навигация по интерфейсу Paros
На Экране 1 показан функциональный интерфейс Paros, в котором имеется три панели и дополнительный инструментарий, к которому можно получить доступ из меню. В левой верхней панели Sites показан иерархический вид всех Web-узлов, доступных с использованием введенного URL. В панели Sites на Экране 1 показан посещаемый Web-узел, http://www.windowsitpro.com, а также шесть других Web-узлов, с которыми браузер устанавливал соединение в ходе посещения целевого узла. Этот результат типичен для Web-узлов, в которых используются рекламные объявления, так как реклама обычно загружается из сторонних Web-узлов.
В нижней панели интерфейса Paros представлена история, результаты работы "паука" (spider) или важные предупреждения об уязвимых местах, в зависимости от кнопки, на которой щелкнул пользователь. На Экране 1 в нижней панели показана история URL-адресов, посещенных в результате одного запроса к http://www.windowsitpro.com, а также ответ Web-сервера.
Web-страница Windows IT Pro приведена первой, за ней следует запрос к файлу Cascading Style Sheets (CSS), а затем к рекламным сайтам.
Если щелкнуть на элементе в панели Sites или History, то в правой верхней панели можно увидеть собственно запрос или ответ. Вкладку Trap в этой панели можно использовать, чтобы остановить любой запрос (или ответ) и изменить запрос после того, как он покинул браузер. Например, чтобы протестировать, проверяет ли сервер данные, можно ввести данные в запрошенном, корректном формате целевого Web-узла, а затем изменить его на некорректный формат в Paros. Если Web-сервер принимает некорректные данные как приемлемые, значит, обнаружено потенциально уязвимое место.
На вкладках Request и Response в правой верхней панели показаны собственно данные, отправляемые из Web-узла и принимаемые им. Например, на вкладке Request можно увидеть строку HTTP GET, использованную для обращения к данным Web-узла, и сопутствующие данные, такие как строка Agent (тип браузера), ссылочный URL и даже данные cookie-файлов. Щелкнув на вкладке Response, можно увидеть данные, аналогичные показанным на Экране 1 в правой верхней панели, которые Web-сервер передает клиенту, в том числе исходный текст HTML и изображения, а также метаданные, такие как срок действия страницы, способ и разрешение кэширования страницы, сведения о записи и чтении cookie-файла.
Как начинающим администраторам, так и имеющим опыт аудита Web-узлов, полезно посетить несколько сайтов, чтобы познакомиться с реальным механизмом их работы. По мере освоения Paros можно использовать передовые функции программы, чтобы оценить безопасность Web-узла.
Дополнительные функции Paros
Paros не только отображает картину взаимодействия с Web-узлом, но и сохраняет исходный текст и изображения целевого Web-узла. Администратор безопасности может вручную просмотреть эти данные, чтобы оценить свой Web-узел и обнаружить уязвимые места. Например, можно обнаружить скрытые поля в формах и протестировать корректность проверки полей узла. Можно также автоматизировать несколько известных механизмов проверки.
Поиск. Paros располагает мощными функциями поиска, в которых можно применять регулярные выражения для поиска текстовых комбинаций в сеансе Paros. Paros также располагает полезными поисковыми шаблонами для таких задач, как поиск cookie-запросов, запросов баннеров и опубликованных страниц. На Экране 2 показано, как использовать образец для поиска cookie-запросов. С помощью Paros можно искать скрытые поля или комментарии, которые следует удалять в процессе проектирования.
"Паук". Можно "проползти" по сайту, чтобы быстро собрать все его данные, настроив Paros на рекурсивное обращение по каждой обнаруженной ссылке, и даже попытаться отослать формы. Этот метод позволяет найти ссылки или переходы к страницам, которые можно пропустить при более поверхностном исследовании.
Сканирование. Для автоматизации обследования Web-узлов в Paros реализована функция Scan, которую можно настроить на поиск уязвимых мест и других полезных сведений. Например, можно искать устаревшие файлы, проверять утечки частных IP-адресов и наличие идентификаторов сеансов в URL-адресах, а также выяснять, остаются ли образцовые или стандартные страницы и конфигурации в целевом Web-сервере. Сканирование поможет выявить уязвимость для типичных атак из Web, таких как атаки с использованием встроенных команд SQL или кросс-сайтовых сценариев. Чтобы обратиться к функции сканирования, нужно развернуть меню Analyse, а затем выбрать пункт Scan Policy, чтобы задействовать или исключить различные проверки.
После того, как будет настроена политика сканирования, следует выделить Web-узел в панели Sites или History, и щелкнуть Analyse, Scan, чтобы начать проверку. Paros проверит сайт, а затем покажет недостатки, отнесенные к высокой, средней или низкой категориям опасности.
Фильтры. В ходе аудита можно заменить обычные данные запросов и ответов собственными данными. Например, можно протестировать локально измененную страницу, изменив агента пользователя или заменив полное имя (FQDN) сервера IP-адресом собственного клиента. В Paros следует выбрать Filter из меню Tools, а потом активизировать и определить нужные фильтры. Любые запросы или ответы, проходящие через Paros, будут изменены в зависимости от настройки этих фильтров.
Восстановление параметров браузера
Завершив аудит, следует закрыть Paros и удалить конфигурацию посредника из браузера, так как она снижает быстродействие. Благодаря положению между браузером и целевым Web-узлом, в сочетании с аналитическими возможностями, которые позволяют просматривать и на ходу изменять Web-запросы и ответы, Paros может стать полезным дополнением для набора инструментов администратора ИТ-безопасности.
Джефф Феллинг (jeff@blackstatic.com) - редактор Windows IT Security и вице-президент по информационной безопасности компании aQuantive. Автор книги "IT Administrator's Top 10 Introductory Scripts for Windows" (издательство Charles River Media).