Информационная безопасность, защита и безопасное администрирование веб-ресурсов. Сравнительное тестирование сканеров безопасности web-приложений Сканирование на безопасность веб ресурса

Рубрика: .
Автор: Максадхан Якубов, Богдан Шкляревский.

В данной статье рассматриваются проблемы администрирования веб-ресурсов, а также методы, способы и рекомендации по безопасному администрированию и защите от взломов и кибератак.

Первый этап проектирования, создания или использования безопасного веб-сайта - это обеспечение максимального уровня безопасности сервера, на котором он размещается.

Основным компонентом любого веб-сервера является операционная система. Обеспечить ее безопасность сравнительно просто: достаточно вовремя устанавливать последние обновления системы безопасности.

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

Также следует вовремя обновлять все программное обеспечение, работающее на веб-сервере. Любое ПО, не относящееся к необходимым компонентам (например, DNS-сервер либо средства удаленного администрирования наподобие VNC или служб удаленных рабочих столов), следует отключить или удалить. Если средства удаленного администрирования все же необходимы, следите за тем, чтобы не использовались пароли по умолчанию или пароли, которые можно легко угадать. Это замечание относится не только к средствам удаленного администри­рования, но и к учетным записям пользователей, маршрутизаторам и коммутаторам.

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

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

Исходя из параметров операционной системы и функционала веб-сервера, можно привести следующие общие приемы защиты от кибератак:

  • Не устанавливайте ненужные компоненты. Любой компонент несет с собой отдельную угрозу; чем их больше, тем выше суммарный риск.
  • Своевременно устанавливайте обновления системы безопасности для операционной системы и приложений.
  • Используйте антивирус, включите автоматическую установку обновлений и регулярно проверяйте правильность их установки.

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

По степени критичности уязвимости, как правило, выделяют 5 уровней, которые определяют, в каком состоянии на данный момент находится веб-ресурс (таблица 1). Обычно злоумышленники, исходя из своих целей и квалификации, стараются закрепиться на взломанном ресурсе и замаскировать свое присутствие.

Взлом сайта не всегда можно распознать по внешним признакам (мобильный редирект, спам-ссылки на страницах, чужие баннеры, дефейс и пр.). При компрометации сайта этих внешних признаков может и не быть. Ресурс может работать в штатном режиме, без перебоев, ошибок и попадания в «черные» списки антивирусов. Но это отнюдь не означает, что сайт в безопасности. Проблема в том, что заметить факт взлома и загрузки хакер­ских скриптов без проведения аудита безопасности - сложно, а сами веб-шеллы, бэкдоры и другие инструменты хакера могут достаточно долго находиться на хостинге и не использоваться по назначению. Но однажды наступает момент, и они начинают сурово эксплуатироваться злоумышленником, в результате чего у владельца сайта возникают проблемы. За спам, размещение фишинговых страниц сайт блокируют на хостинге (или отключают часть функционала), а появление редиректов или вирусов на страницах чревато баном со стороны антивирусов и санкциями со стороны поисковых систем. В подобном случае необходимо в срочном порядке «лечить» сайт, а затем ставить защиту от взлома, чтобы сюжет не повторялся. Зачастую штатные антивирусы не опознают некоторые виды троянов и веб-шеллов, причиной тому может быть несвоевременное обновление либо устаревшее программное обеспечение. При проверке веб-ресурса на вирусы и скрипты следует пользоваться антивирусными программами различной специализации, в этом случае не найденный одной антивирусной программой троян может быть обнаружен другой. На рисунке 1 приведен пример отчета проверки антивирусного программного обеспечения, здесь важно отметить тот факт, что другие антивирусные программы не смогли обнаружить вредоносное программное обеспечение.

Такие троянские программы, как «PHP/Phishing.Agent.B», «Linux/Roopre.E.Gen», «PHP/Kryptik.AE», используются злоумышленниками для удаленного управления компьютером. Такие программы часто проникают на веб-сайт через электронную почту, бесплатное программное обеспечение, другие веб-сайты или чат-комнату. Большую часть времени такая программа выступает в качестве полезного файла. Тем не менее, это вредоносная троян­ская программа, которая собирает личную информацию пользователей и передает ее злоумышленникам. Кроме того, она может автоматически подключаться к определенным веб-сайтам и загружать другие виды вредоносного ПО в систему. Чтобы избежать обнаружения и удаления, «Linux/Roopre.E.Gen» может отключать средства безопасности. Данная троянская программа разработана с применением технологии руткит, которая позволяет ей скрываться внутри системы.

  • «PHP/WebShell.NCL» является тро­янской программой, которая может выполнять различные функции, например, удаление системных файлов, загрузку вредоносных программ, скрывать существующие компоненты или загруженную личную информацию и другие данные. Эта программа может обойти общую антивирусную проверку и проникнуть в систему без ведома пользователя. Данная программа способна установить бэкдор для удаленных пользователей, чтобы взять контроль над зараженным веб-сайтом. С помощью этой программы злоумышленник может шпионить за пользователем, управлять файлами, устанавливать дополнительное программное обеспечение, а также контролировать всю систему.
  • «JS/TrojanDownloader.FakejQuery. A» - троянская программа, основными целями атак которой являются сайты, разработанные с использованием CMS «WordPress» и «Joomla». Когда злоумышленник взламывает веб-сайт, он запускает скрипт, который имитирует инсталляцию плагинов «WordPress» или «Joomla», а затем внедряет вредоносный JavaScript-код в файл «header.php».
  • «PHP/small.NBK» - является вредоносным приложением, которое позволяет хакерам получить удаленный доступ к компьютерной системе, позволяя им изменять файлы, красть личную информацию и устанавливать более вредоносное программное обеспечение. Эти виды угроз, которые называются Троянский конь, обычно загружаются злоумышленником или же загрузка осуществляется другой программой. Они могут также появляться в связи с установкой зараженных приложений или онлайн-игр, а также при переходе на зараженные сайты.

К сожалению, хакерские скрипты по внешним признакам или внешними сканерами не обнаруживаются. Поэтому ни антивирусы поисковых систем, ни антивирусное программное обеспечение, установленное у веб-мастера на компьютере, не сообщит о проблемах безопасности сайта. Если скрипты размещены где-нибудь в системных каталогах сайта (не в корневом и не в images) или инжектированы в существующие скрипты, случайно заметить их также не удастся.

Рисунок 1. Пример отчета проверки антивирусного ПО

Поэтому необходимыми мерами для защиты веб-ресурсов могут быть следующие рекомендации:

  1. Регулярное резервное копирование всего содержимого файловой системы, баз данных и журналов событий (лог-файлов).
  2. Регулярное обновление системы управления контентом до последней стабильной версии CMS (системы управления контентом).
  3. Использование сложных паролей. Требования к паролю: пароль должен содержать не менее восьми символов, при создании пароля должны быть использованы символы верхнего и нижнего регистра, а также специальные символы.
  4. Обязательное использование дополнений или плагинов безопасности для предотвращения атак типа XSS-атака или SQL-инъекции.
  5. Использование и установка дополнений (плагинов, шаблонов или расширений) должны осуществляться только с проверенных источников или официальных веб-сайтов разработчиков.
  6. Сканирование файловой системы не менее 1 раза в неделю антивирусными программами и с использованием актуальных сигнатур баз данных.
  7. Предусмотреть использование механизма «CAPTCHA» для защиты веб-сайта от взлома методом перебора паролей при авторизации и ввода данных в любую форму запросов (форма обратной связи, поиск и др.).
  8. Ограничить возможность входа в административную панель управления веб-сайта после определенного количества неудачных попыток.
  9. Корректно настроить политику безопасности веб-сайта через файл конфигурации веб-сервера с учетом таких параметров, как:
  • ограничить количество IP-адресов, используемых администратором для доступа в административную панель управления веб-сайтом в целях предотвращения доступа к ней с посторонних IP-адресов;
  • запретить передачу любых тегов любыми способами, кроме оформления текста (например, p b i u) для предотвращения XSS-атак.
  1. Перемещение файлов, содержащих информацию о доступе к базе данных, FTP-доступу и т.д., из директорий по умолчанию в другие с последующим переименованием данных файлов.

Даже не совсем опытному хакеру взломать сайт на «Joomla» достаточно просто, если вы не предусмотрели защиты. Но, к сожалению, часто веб-мастера откладывают защиту от взлома сайта на потом, считая это делом не первой необходимости. На восстановление доступа к своему сайту уйдет значительно больше времени и усилий, чем на принятие мер по его защите. Без­опасность веб-ресурса - задача не только разработчика и хостера, который обязан обеспечить максимальную защищенность серверов, но и администратора сайта.

Вариантов атак на веб-ресурс, как и последствий этих атак, великое множество. А целей как всегда только две - слава с банальной радостью от показа собственных возможностей, и вездесущая выгода, проявляющаяся в виде прямой или косвенной материальной наживы, проще говоря денег. Итак, что же грозит? Вот пример наиболее распространенных атак на веб-сайты:

  • Подмена главной страницы сайта - одна из самых частых форм взлома. Заместо привычного содержимого на обложке сайта будет красоваться все что угодно - от имени злостного хакера до банальных оскорблений.
  • Удаление файловой системы - вся информация попросту пропадает, что становится провальным в случае отсутствия сохраненной копии ресурса. Стоит отметить, что пропасть может и база клиентских паролей, а также прочие данные, имеющие критичную ценность.
  • Подмена информации - злоумышленники могут подменить телефон или другие данные организации. В этом случае ваши клиенты автоматически становятся клиентами злоумышленников.
  • Размещение троянских программ - в этом случае скорее всего вы не заметите визит хакера, по крайней мере все будет на это нацелено. Вредоносные программы могут выполнять разнообразные функции - осуществлять переадресацию на сайт злоумышленников, воровать персональные данные клиентов, заражать посетителей вирусами и так далее.
  • Рассылка спама - ваш сайт могут использовать для рассылки спама, в этом случае ваша «настоящая» корреспонденция не будет доходить до адресата, так как домен вашей организации практически сразу будет внесен в централизованную базу данных спамеров.
  • Создание высокой нагрузки - отправление в адрес веб-сервера заведомо некорректных запросов или иные действия извне, результатом которых будет затруднение доступа к сайту или падение операционной системы сервера. Такой вид атаки очень широко распространен в интернете.

Следствием всех перечисленных разновидностей атак является не только временное прекращение работоспособности ресурса, но и потеря доверия к веб-сайту в глазах клиентов. Пользователь, заразившийся вредоносным кодом на вашем ресурсе, или перенаправленный с вашего сайта на сайт сомнительного содержания, вряд ли когда-либо снова отважится набрать ваш адрес в строке браузера.

Что делать?

Вопросом безопасности веб-сайта можно задаться уже на этапе разработки. Существует множество CMS-систем (Content Management System - система управления содержимым), представляющих собой некий шаблон, упрощающий управление и разработку сайта. Весь спектр CSM систем можно подразделить на открытые (бесплатные) и проприетарные. Среди открытых можно выделить Drupal, Mambo, Joomla и Typo3, среди платных - 1С-Битрикс, NetCat, Amiro.CMS. Все они являются в той или иной мере безопасными, обладают рядом преимуществ и недостатков. Так какую CMS стоит выбрать? Безусловно этот вопрос остается на рассмотрении в каждом конкретном случае, однако статистика говорит о том, что в России подавляющее большинство веб-студий, использующих сторонние разработки для создания сайтов, пользуются продуктом 1С-Битрикс. За это говорит ряд факторов:

  • Объединившись с фирмой 1C, Битрикс внегласно превратился в национальный стандарт веб-разработки на основе CMS.
  • 1С-Битрикс имеет сертификат безопасности от компании Positive Technologies (речь о которой пойдет далее), подтверждающий неуязвимость системы ко всем видам известных атак на веб-приложения.
  • 1С-Битрикс на данный момен является самой перспективной на российском рынке CMS-системой, показывая наилучший темп роста.
  • Функционала продукта вполне достаточно для создания сложных корпоративных сайтов, информационных и справочных порталов, интернет-магазинов, сайтов СМИ, а также для создания практически любых других видов веб-ресурсов.

Создание сайтов на основе 1С-Битрикс, а также перевод уже имеющихся ресурсов на движок продукта - один из вариантов решения целого ряда проблем безопасности, в первую очередь вопросов уязвимости, речь о которых и пойдет далее.

Сайт уже создан - уязвим ли он?

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

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

  • Локальные - устанавливаются непосредственно на проверяемом узле и обеспесивают высокую достоверность. Работают от имени учетной записи с максимальными привелегиями и используют только один метод поиска уязвимостей - сравнение атрибутов файлов.
  • Пассивные - в качестве источника данных используют сетевой трафик, однако, в отличие от сетевых, позволяют минимизировать влияние сканера на уязвимости. В настоящее время слабо распространены, но выглядят весьма перспективно.
  • Сетевые - самые популярные на сегодняшний день. Выполняют проверки дистанционно, подключаясь через сетевые сервисы.

Производителей сканеров уязвимостей много, существует масса обзоров и тестирований, выделяющих продукт той или иной фирмы. Перечислим несколько наиболее распространенных сканеров: Nessus, XSpider, IBM Internet Scanner, Retina, Shadow Security Scanner, Acunetix, N-Stealth.

XSpider (на смену которого приходит MaxPatrol) - сканер от российского производителя Positive Technologies. Он обладает поистине обширным списком возможностей - эвристический анализ и определение типа серверов, полное сканирование портов и отображение сервисов, проверка на стандартные пароли, анализ на SQL инъекции, XSS атаки, и практически ежедневный апдейт уязвимостей. В сравнении с конкурентами, сканер демонстрирует более качественную идентификацию сервисов и приложений, обеспечивая как следствие большее и более точное определение уязвимостей при минимальном проценте ложных оповещений. Продукт является одним из лучших решений не только на российской, но и на мировой сцене, поэтому мы решили выделить именно его.

Что нужно менять?

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

показано, что более 70% отсканированных веб-сайтов были заражены одной или несколькими уязвимостями.

Как владелец веб-приложения, как вы гарантируете, что ваш сайт защищен от онлайн-угроз? Или от утечки конфиденциальной информации?

Если вы используете облачное решение для обеспечения безопасности, то, скорее всего, регулярное сканирование уязвимостей является частью плана защиты.

Однако, если нет, вам нужно выполнить рутинное сканирование и предпринять необходимые действия для смягчения рисков.

Существует два типа сканера.

1.Коммерческий — дает вам возможность автоматизировать сканирование для обеспечения непрерывной безопасности, отчетности, оповещений, подробных инструкций по смягчению рисков и т. д. Некоторые из известных имен в этой отрасли:

Acunetix
Detectify
Qualys

Open Source / Бесплатные — вы можете загружать и выполнять проверку безопасности по требованию.

Не все из них смогут охватить широкий спектр уязвимостей, таких как коммерческий.

Давайте посмотрим на следующие сканеры уязвимостей с открытым исходным кодом.

1. Arachni

Arachni — высокопроизводительный сканер безопасности, построенный на основе Ruby для современных веб-приложений.

Он доступен в двоичном формате для Mac, Windows и Linux.

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

Он выполняет активные и пассивные проверки.

Windows, Solaris, Linux, BSD, Unix
Nginx, Apache, Tomcat, IIS, Jetty
Java, Ruby, Python, ASP, PHP
Django, Rails, CherryPy, CakePHP, ASP.NET MVC, Symfony

Некоторые из обнаруженных уязвимостей:

NoSQL / Blind / SQL / Code / LDAP / Command / XPath injection
Подделка запросов межсайтовый скриптинг
Обход пути
Включение локального / удаленного файла
Разделение ответа
Межсайтовый скриптинг
Неопределенные перенаправления DOM
Раскрытие исходного кода

2. XssPy

Сканер уязвимостей XSS (межсайтовый скриптинг) на основе python используется многими организациями, включая Microsoft, Stanford, Motorola, Informatica и т.д.

XssPy by Faizan Ahmad — умный инструмент. Вместо того, чтобы просто проверять домашнюю страницу или страницу, она проверяет всю ссылку на веб-сайтах.

XssPy также проверяет субдомен.

3. w3af

w3af, проект с открытым исходным кодом, начатый еще в конце 2006 года, основан на Python и доступен для Linux и ОС Windows. w3af способен обнаруживать более 200 уязвимостей, включая OWASP top 10.

Он поддерживает различные методы ведения журнала для отчетности. Пример:

CSV
HTML
Консоль
Текст
XML
Эл. адрес

Он построен на архитектуре плагина, и вы можете проверить все доступные плагины.

4. Nikto

Проект с открытым исходным кодом, спонсируемый Netsparker, направлен на поиск неправильной конфигурации веб-сервера, плагинов и уязвимостей в Интернете.

5. Wfuzz

Wfuzz (Web Fuzzer) — это инструмент оценки приложений для тестирования на проникновение.

Вы можете заглушить данные в HTTP-запросе для любого поля, чтобы использовать веб-приложение и проверять его.

Wfuzz требует наличия Python на компьютере, на котором вы хотите запустить сканирование.

6. OWASP ZAP

ZAP (Zet Attack Proxy) — один из известных инструментов тестирования на проникновение, который активно обновляется сотнями добровольцев во всем мире.

Это кросс-платформенный Java-инструмент, который может работать даже на Raspberry Pi.

ZIP находится между браузером и веб-приложением для перехвата и проверки сообщений.

Некоторым из следующих функций ZAP, которые следует упомянуть.

Fuzzer
Автоматический и пассивный сканер
Поддержка нескольких языков сценариев
Принудительный просмотр

7. Wapiti

Wapiti просматривает веб-страницы заданной цели и ищет сценарии и форму для ввода данных, чтобы узнать, является ли оно уязвимым.

Это не проверка безопасности исходного кода, а скорее проверка блэк боксов.

Он поддерживает методы GET и POST HTTP, прокси HTTP и HTTPS, несколько аутентификаций и т. д.

8. Vega

Vega разработан Subgraph, многоплатформенное программное обеспечение, написанное на Java, для поиска XSS, SQLi, RFI и многих других уязвимостей.

Vega получил удобный графический интерфейс и способен выполнять автоматическое сканирование, войдя в приложение с заданными учетными данными.

Если вы разработчик, вы можете использовать vega API для создания новых модулей атаки.

9. SQLmap

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

Он работает с Python 2.6 или 2.7 на любой ОС. Если вы хотите , то sqlmap будет полезен как никогда.

10. Grabber

Это небольшой инструмент, основанный на Python, делает несколько вещей достаточно хорошо.

Некоторые из функций Grabber:

Анализатор исходного кода JavaScript
Межсайтовый скриптинг, SQL-инъекция, слепое внедрение SQL
Тестирование PHP-приложений с использованием PHP-SAT

11. Golismero

Фреймворк для управления и запуска некоторых популярных инструментов безопасности, таких как Wfuzz, DNS recon, sqlmap, OpenVas, анализатор роботов и т. д.).

Golismero может консолидировать отзывы от других инструментов и показать один результат.

12. OWASP Xenotix XSS

Xenotix XSS OWASP — это расширенная инфраструктура для поиска и использования межсайтовых скриптов.

Он имеет встроенные три интеллектуальных фьюзера для быстрого сканирования и улучшения результатов.

13. Metascan

Сканер по поиску уязвимостей веб-приложений от отечественных разработчиков

Проблема безопасности вебсайтов ещё никогда не стояла так остро, как в 21 веке. Конечно, это связано со всеобъемлющим распространением сети Интернет практически во всех отраслях и сферах. Каждый день хакеры и специалисты по безопасности находят по нескольку новых уязвимостей сайтов. Многие из них тут же закрываются владельцами и разработчиками, а какие-то остаются как есть. Чем и пользуются злоумышленники. А ведь с помощью взломанного сайта можно нанести большой вред как его пользователям, так и серверам, на которых он размещён.

Типы уязвимостей сайтов

Вам будет интересно:

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

  • XSS. Каждый сайт обладает небольшими формами. С их помощью пользователи вводят данные и получают какой-либо результат, проводят регистрации или отправляют сообщения. Подстановкой в эти формы специальных значений можно спровоцировать выполнение определённого скрипта, что может вызвать нарушение целостности сайта и компрометирование данных.
  • SQL-инъекция. Очень распространённый и эффективный способ получить доступ к конфиденциальным данным. Происходить это может либо через адресную строку, либо через формы. Процесс проводится путем подстановки значений, которые могут не отфильтровываться скриптами и выполнять запросы в базу данных. А при должных знаниях это может вызвать нарушение безопасности.

Рисунок 2. Внешний вид веб-приложения Mutillidae

Методика тестирования

Теперь, когда мы подготовили тестовый стенд, можно рассмотреть процесс тестирования, который будет представлять собой следующую последовательность действий:

  1. Подготовка тестового приложения к сканированию
  2. Настройка сканера безопасности
  3. Запуск процесса сканирования с выбранными настройками
  4. Анализ результатов и занесение их в таблицу
Тип уязвимости Найдено Ложно найдено Время

Таблица 1. Результаты сканирования

После того как будут проведены все серии тестирования для всех сканеров, мы занесем полученные результаты в сводную таблицу.

The Path Traversal / Local File Inclusion

Sensitive Data Exposure

Затраченное время

Ложно обнару-

Ложно обнару-жено

Ложно обнару-

Ложно обнару-

Ложно обнару-

Таблица 2. Итоговая таблица результатов

В процессе проведения тестов мы столкнемся с несколькими проблемами:

  1. Сканеры безопасности отличаются своей настройкой и функционалом. Для того чтобы отразить в нашем тестировании специфические особенности сканеров, мы будем проводить по несколько серий сканирования с различными конфигурациями настроек для получения более качественного результата (если это возможно).
  2. Сканеры безопасности бывают специализированы на определенном типе уязвимости либо могут определять широкий спектр уязвимостей. Если сканер специализирован на определенном типе уязвимости, следовательно, он должен более качественно определять их, в противном случае мы будем акцентирование особое внимания на не идентифицированной или ложно идентифицированной уязвимости специализированным сканером.
  3. Типы уязвимостей. Так как существует большое множество типов уязвимостей, нам надо определиться с теми типами, которые мы будем отражать в итоговом отчете. В данном вопросе мы будем руководствоваться классификацией OWASP Top 10 2013 и выберем из этого списка пять типов уязвимостей.
  4. Количество уязвимостей в веб-приложении. Заранее знать о том, какое количество уязвимостей содержится в тестовом Web приложении, мы не можем, поэтому за общее число мы возьмем сумму найденных уязвимостей всеми сканерами.

Настройка сканеров и начало тестирования

SkipFish

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

  1. skipfish -W /dev/null -LV […other options…] – в данном режиме запуска сканер выполняет упорядоченный обход цели и в принципе работает также как другие сканеры. Не рекомендуется вследствие ограниченного охвата ресурсов цели, но зато процесс сканирования занимает значительно меньше времени по сравнению с остальными режимами;
  2. skipfish -W dictionary.wl -Y […other options…] – в данном режиме сканер использует фаззинг только имен файлов или расширений. Этот режим предпочтителен, если есть ограничение по времени и при этом требуется получить приемлемый результат;
  3. skipfish -W dictionary.wl […other options…] – в данном режиме сканер перебирает все возможные пары имя и расширение. Этот режим значительно медленнее предыдущих, но при этом он проводит более детальный анализ веб-приложения. Разработчик сканера рекомендует использовать данный вариант по умолчанию.

Skipfish -W dictionary.wl -o ~/report/ http://target/

W – указываем путь к словарю, который мы будем использовать;

O – указываем директорию, в которую будем сохранять отчет.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 6 5 3ч18м
XSS 11 2
CSRF 1 1
3 2
Sensitive Data Exposure 128 0

Таблица 3. Результаты сканирования SkipFish

Рисунок 3. Окончание процесса сканирования SkipFish

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

SQLMap

Основной целью данного сканера является автоматический поиск и эксплуатация SQL уязвимостей. Он обладает огромным количеством настроек, позволяющих оптимизировать процесс поиска и эксплуатации уязвимостей. Для запуска сканирования можно воспользоваться визардом: sqlmap —wizard или простейшей командой: sqlmap -u «http://www.target.com/vuln.php?id=1». Мы же постараемся полностью автоматизировать процесс поиска и максимизировать результат. Запускать процесс сканирования мы будем двумя способами:

Sqlmap –u "http://target/" -o –v 4 --crawl=4 --level=3 --risk=2 --forms --batch --dbms=mysql sqlmap –l ~/burplog.log -o –v 4 --batch --level=3 --risk=2 --dbms=mysql

В первом способе мы используем встроенный в SQLMap краулер, а во втором – файл логов Burp Suite. А теперь прокомментируем параметры, которые мы использовали:

U – после данного параметра указываем адрес цели сканирования;

L – после данного параметра указываем путь к файлу с логами Burp Suite (или WebScarab);

O – включаем оптимизацию;

V – устанавливаем уровень подробности выводимой информации;

—dbms – устанавливаем СУБД, которую использует наша цель;

—forms – включаем парсинг и анализ форм, содержащихся в тестовом приложении;

—crawl – включаем встроенный краулер, который будет сканировать нашу цель;

—batch – так как мы решили полностью автоматизировать процесс поиска и эксплуатации, мы воспользуемся этим параметром, он заставляет SQLMap выполнять все действия по умолчанию, а не запрашивать решение у пользователя;

—level, —risk – увеличиваем количество используемых тестов, при этом значительно увеличивается время сканирования.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 14 0 4ч27м
XSS - -
CSRF - -
The Path Traversal / Local File Inclusion - -
Sensitive Data Exposure - -

Таблица 4. Результаты сканирования SQLMap

Рисунок 4. Эксплуатация обнаруженной SQL уязвимости

Как мы писали выше, SQLMap является специализированным инструментов для поиска и эксплуатации SQL уязвимостей, он справился с этой задачей на отлично, хотя полная автоматизация не дала такого результата. Добиться такого результата нам удалось благодаря ручному анализу. Стоит отметить, что время тестирования достаточно продолжительное, учитывая то, что мы занимались поиском только одного типа уязвимостей. Настройка данного сканера без подробного ознакомления с богатым перечнем опций является наиболее сложной из всех представленных в этой статье сканеров.

Acunetix Web Vulnerability Scanner (Acunetix WVS)

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

Итак, приступим к настройке сканера:

  1. На первом шаге нам предлагают ввести адрес цели, либо выбрать файл со структурой сайта, который был получен с помощью инструмента «Site Crawler», мы выберем первый вариант
  2. На втором шаге нам предстоит выбрать профиль сканирования, их достаточно много, мы выберем профиль «Default», так как он содержит в себе тесты для поиска всех доступных типов уязвимостей и настройки сканирования, которые мы оставим дефолтными
  3. На третьем шаге сканер пытается определить технологии, которые использует цель, и отображает полученные значения, при этом их можно выбрать самому либо выставить значение «Unknown». В нашем случае все значения были определены верно, и мы их оставим без изменения
  4. Следующим шагом предлагается выбрать способ аутентификации, так как нам она не потребуется, мы пропустим этот шаг
  5. На последнем шаге предлагается сохранить настройки и после нажатия «Finish» начинается процесс сканирования
Тип уязвимости Найдено Ложно найдено Время
SQL injection 1 0 2ч 13м
XSS 31 0
CSRF 19 0
The Path Traversal / Local File Inclusion 4 3
Sensitive Data Exposure 231 0

Таблица 5. Результаты сканирования Acunetix WVS

Рисунок 5. Окончание процесса сканирования Acunetix WVS

Простота настройки и минимум ложных срабатываний вот — что можно сказать про данный инструмент. Помимо результатов, занесенных в таблицу, Acunetix WVS собрал много информации, касающейся структуры веб-приложения и конфиденциальных данных пользователей. Одной из полезных фич сканера можно выделить предоставление подробной информации об уязвимости и методах её устранения, а также ссылки на ресурсы, содержащие исчерпывающую информацию.

Web Application Attack and Audit Framework (w3af)

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

При настройке сканера мы будем базироваться на шаблонах «full_audit» и «full_audit_spider_man», их отличие заключается в том, что в первом шаблоне в качестве плагина краулера используется web_spider – классический web-паук, а во втором spider_man – локальный прокси. Для наших целей нам не понадобятся плагины из группы «bruteforce», включенные по умолчанию в выбранных шаблонах, поэтому мы их выключим. Осталось настроить плагины из группы «output». По умолчанию вывод собранной информации производится только в консоль, что для анализа результатов не очень удобно, поэтому мы включим плагин «html_file», который позволяет сохранять всю полученную информацию в HTML-файл.

Теперь можно ввести адрес цели и начать сканирование.

Тип уязвимости Найдено Ложно найдено Время
SQL injection 4 2 2ч57м
XSS 3 1
CSRF 25 0
The Path Traversal / Local File Inclusion 4 3
Sensitive Data Exposure 17 0

Таблица 6. Результаты сканирования w3af

Рисунок 6. Детали запроса, содержащего SQL уязвимость

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

Итоги тестирования

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

SQL injection