СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Определяем уязвимости веб-сервиса с помощью Acunetix Web Vulnerability Scanner
Сегодня большая часть информации обрабатывается веб-приложениями и выдается пользователю с помощью динамически генерируемых страниц. Номера кредитных карточек, персональные данные клиентов, важная корпоративная информация, ко всему этому можно получить доступ 7 дней в неделю, 24 часа в сутки. Естественно, и злоумышленики пытаются этим воспользоваться.
Несмотря на то что уязвимости могут быть в принципе в любом сервисе, запущенном в системе, статистика показывает, что в последнее время существенно увеличилось количество нападений на прикладном уровне. По различным подсчетам приблизительно 60-75% атак направлены на веб-cервисы, количество таких атак, как SQL Injection, cross-site-scripting, никогда не уменьшается. Несмотря на то что об этих технологиях и методах защиты от них написано немало, взломы все равно продолжаются. Вероятно, потому, что веб-сервер ориентирован на публичный доступ, поэтому его не спрячешь за межсетевым экраном. Страдают не только проекты, созданные программистами-одиночками, но и, казалось бы, вылизанный код крупных проектов также содержит ошибки. Отследить все моменты довольно тяжело, да и подчас работа сдается в авральном порядке в короткие сроки. Ситуацию усложняет то, что протокол HTTP может использовать множество способов кодирования и инкапсуляции информации. Поэтому контроль за вводимой информацией и проверка ее корректности по-прежнему являются ключевыми факторами при обеспечении безопасности всех веб-приложений.
Вручную проверить большой объем кода, чтобы выявить все возможные значения всех элементов данных – задача сложная и трудоемкая, требующая больших знаний в различных областях. По этой причине все чаще приходится прибегать к специализированным сканерам безопасности, работающим на прикладном уровне. Одним из продуктов, позволяющим протестировать веб-сайт на наличие слабых мест, является Acunetix Web Vulnerability Scanner.
Основные возможности Acunetix WVS
При проверке ресурса Acunetix WVS сначала изучает весь сайт, следуя за всеми ссылками, включая файл robots.txt, выводит общую структуру и информацию о каждом файле, версию сервера и программного обеспечения. Для уменьшения трафика можно выбрать режим ручного сканирования (Get list URL only), когда выводятся только ссылки на страницы, а исследователь сам выбирает необходимое направление. Следующим шагом происходит автоматическая проверка всех вводимых данных. При обнаружении уязвимостей можно щелчком мышки получить подробную информацию об уязвимом месте. Предупреждения разделены на четыре категории в зависимости от опасности: Informational, Low, Medium и High.
Сканирование больших ресурсов может забрать много времени, поэтому некоторые тесты можно отключать, правда, если вычетко осознаете, что делаете. Кроме того, можно задать расширения файлов, ссылки на которые не будут отслеживаться. Для удобства можно создать несколько профилей сканирования и сканировать веб-сайты с различными настройками.
В зависимости от версии сканера можно задать DNS-имя проверяемого ресурса, IP-адрес либо диапазон адресов. Если адресов для сканирования много, то удобнее использовать предварительно составленный список, который затем передать программе. Сканируются в том числе и виртуальные узлы, в независимости от типа веб-сервера и используемой операционной системы. Acunetix WVS в автоматическом режиме способен обнаруживать многие уязвимые места, которые могут привести к атакам (внедрение кодов PHP и ASP, SQL и CRLF-внедрение, SSI и межсайтовый скриптинг, выполнение кода, включение файла и др.). Поддерживаются все основные веб-технологии ASP, ASP.NET, PHP и CGI. Обнаруживаются места, позволяющие просмотреть исходный код.
Сканер обнаруживает файлы и каталоги, которые могут содержать чувствительную информацию и каталоги со слабыми разрешениями, в которых можно редактировать, удалять и создавать файлы. Определяет наличие опасных методов HTTP (PUT, TRACE, DELETE). Кроме того, он позволяет заменять стандартные баннеры, выдаваемые сервером. Встроенный редактор HTTP/HTTPS (HTTP editor) позволяет создавать запросы к серверу, для того чтобы затем, проанализировав ответ, самому оценить уязвимость сервиса к новым видам атак. Для декодирования POST-запросов в распоряжение исследователя дается соответствующий декодер (Base 64 в plain text, URL в plain и наоборот). Новые атаки можно создавать при помощи Vulnerability Editor.
Сниффер HTTP позволяет регистрировать, прерывать и модифицировать весь HTTP/HTTPS-трафик. Для удобства можно подключать фильтры (traps) или задавать регулярные выражения, которые будут отслеживать только определенные события.
Одним из слабых мест в любой защите является использование слабых паролей. Тест аутентификации позволяет обнаружить такие места, используя атаку по словарю. При этом в случае получения 401 ответа от сервера программа переходит к следующему слову. Если сервер использует нестандартный ответ (что можно проследить при помощи сниффера), в отдельном поле можно указать его номер. Учитывая, что подобную методику используют и другие программы, предназначенные для подбора пароля, веб-мастерам следует в случае неудачного ввода пароля просто возвращать исходную форму без дополнительных комментариев либо перебрасывать пользователя на другую страницу (можно и динамически генерируемую). Такой подход затруднит перебор и по крайней мере отвадит новичков, использующих чужой инструментарий.
По окончанию сканирования выдается отчет, в котором указаны не только уязвимые места, но и короткие рекомендации по их устранению, и ссылку на ресурсы с подробным описанием уязвимости. Кроме того, результат может быть сохранен в базе данных (поддерживается MS SQL Server от 7.0 и MS Access) для последующего просмотра и сопоставления с последующим сканированием при помощи Compare results node (рис. 1). Обнаруживая таким образом все изменения и уязвимые места, появившиеся за это время. Работает на Windows 2000/XP/2003, для установки потребуется 17 Мб свободного пространства.
Рисунок 1. Acunetix WVS позволяет сравнить результаты сканирования
Лицензия
Acunetix WVS доступен в двух версиях enterprise и consultant. Первая имеется в различных вариантах и может быть ограничена по количеству сканируемых сайтов, времени использования и типам компьютеров, на которых может устанавливаться Acunetix WVS. Кроме того, версия enterprise оставляет записи в файлах журналов веб-серверов о произведенном сканировании. Ориентирована в первую очередь на администраторов, которые должны контролировать безопасность своего сервера. Вторая не имеет ограничений по количеству сканируемых серверов и ориентирована на специалистов по безопасности. Цена колеблется от 395 до 2995 у.е. Оценочная версия, которую можно свободно скачать, не позволяет сохранять результат сканирования и ограничена только адресом http://test.acunetix.com.
Напоследок хочется отметить, что Acunetix WVS обладает удобным и понятным интерфейсом, помогающим в работе, легок в установке, настройке и использовании. Буквально через несколько минут после начала установки можно получить готовый результат. К плюсам также можно отнести частичную локализацию выводимых сообщений и хорошую документацию.
Ссылки:
- Страница проекта Acunetix WVS – http://www.acunetix.com/wvs.
- Open Source (GPL) web server scanner Nikto – http://www.cirt.net/code/nikto.shtml.
- Webserver Security Scanner AriRang – http://www.monkey.org/~pilot/arirang.
- Цикл статей «Тестирование веб-приложений на проникновение» – http://www.bugtraq.ru/library/security.