Тестирование сканеров безопасности веб-приложений: подходы и критерии.

30.06.2019

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

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

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

При обнаружении нескольких тысяч вредоносных приложений, которые были собраны за 24 часа до каждого тестового дня, наилучшие результаты показали следующие решения: Emsisoft Emergency Kit, Trend Micro HouseCall, Dr.Web CureIt!, Kaspersky Virus Removal Tool, ESET Online Scanner и Comodo Cleaning Essentials. Ни один из тестируемых продуктов не превысил порог обнаружения в 95%, но с учетом свежести зараженных файлов (с использованием локальных сигнатур или облака) статический уровень обнаружения около 90% можно считать удовлетворительным.

Серьезным недостатком тестов сканирования по требованию является их длительность. Теоретически сканирование нескольких тысяч зараженных файлов не должно занять слишком много времени. Опыт показывает, что он может занять весь рабочий день: время сканирования всех файлов по отдельным приложениям варьировалось от нескольких минут (Emsisoft Emergency Kit, ClamAV Free Antivirus, Dr.Web CureIt!) до десятков минут (ESET Online Scanner). В течение первых двух дней тестирования рекордная задержка в несколько часов принадлежала Arcabit Online Scanner. К сожалению, на третий день разработчик внедрил автоматическое обновление, которое не позволило возобновить проверку - сканер был обновлен до новой версии, что позволяет сканировать только системные области. Изменение способов сканирования Arcabit Online Scanner во время теста исключает приложение из теста.

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

Чтобы проверить уровень обнаружения самых популярных антивирусных сканеров, был подготовлен виртуальный образ Windows 10 Professional x64 с последними обновлениями. В первой части испытания тестовая коллекция состояла из 18562 образцов, полученных от независимых исследователей. При выборе образцов для тестирования AVLab не сотрудничает с разработчиками антивирусного программного обеспечения. Таким образом, нет никаких подозрений, что тестируемое приложение искусственно обнаруживает угрозы, предоставляемые его разработчиком.

Во время тестирования каждое приложение было установлено с настройками по умолчанию. Для Dr.Web Cureit и Kaspersky Virus Removal Tool автоматическое обновление сигнатур не было доступно, поэтому тестировщик загружал новую версию сканера каждый день.

Сканирование коллекции угроз:

  1. Образ операционной системы был восстановлен до исходного состояния для каждого тестируемого приложения.
  2. Образцы угроз были отобраны за один день до каждого испытания.
  3. Прежде чем выбирать папку с зараженными файлами для сканирования, сигнатуры обновлялись до последней версии или загружались новые версии сканеров (если это было необходимо).

Результаты тестирования

День 1 День 2 День 3 День 4 День 5 День 6 Всего Результат
Кол-во угроз 3281 3181 1395 2581 3294 4920 18652 в процентах (%)
Обнаружено
Emsisoft Emergency Kit 3087 3036 1315 2516 2760 4769 17483 93,73
Trend Micro HouseCall 2969 2982 1295 2485 2680 4724 17135 91,86
Dr.Web CureIt! 2977 2985 1265 2462 2606 4677 16972 90,99
Kaspersky Virus Removal Tool 2833 2974 1254 2465 2632 4681 16839 90,27

Сканеры информационной безопасности (сканеры уязвимостей) - это средства мониторинга и контроля, с помощью которых можно проверять компьютерные сети, отдельные компьютеры и установленные на них приложения на наличие проблем защищенности. Большинство сканеров позволяют детектировать уязвимости, описанные классификатором WASC Threat Classifcation . В сегодняшнем хабратопике мы рассмотрим некоторые вопросы, связанные с тестированием сканеров информационной безопасности веб-приложений как программных продуктов.

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

Тестовая процедура

В статье «Building a Test Suite for Web Application Scanners » изложены общие принципы тестирования сканеров, на которые мы будем опираться далее. Одним из таких принципов является Тестовая процедура для сравнения работы различных сканеров веб-приложений. В немного модифицированном виде эта процедура выглядит следующим образом:
  1. Подготовить необходимый тестовый контент для функциональной проверки всех технических требований и развернуть тестовые стенды.
  2. Инициализировать тесты, получить все необходимые настройки для тестов.
  3. Сконфигурировать сканируемое веб-приложение и выбрать для него тип уязвимости и уровень защиты.
  4. Запустить сканер с выбранными настройками на тестируемом веб-приложении и пройти набор функциональных тестов.
  5. Подсчитать и классифицировать найденные сканером веб-объекты (уникальные ссылки, уязвимости, векторы атаки и т. п.).
  6. Повторить шаги 2-5 для каждого типа уязвимостей и уровней защиты.
Изменения после каждой итерации необходимо заносить в сводную таблицу результатов детектирования объектов. Выглядеть это должно приблизительно так:

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

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

  1. В качестве одной уязвимости рассматривать класс эквивалентных уязвимостей, которые могут быть найдены в тестовом веб-приложении. Например, для SQL-инъекций классом эквивалентных уязвимостей можно считать все уязвимости, найденные для одного и того же параметра GET-запроса к приложению. Другим словами, если имеется некий уязвимый параметр id, изменение которого вызывает сбой веб-сервера или базы данных, то все векторы атаки, использующие этот параметр, можно считать эквивалентными с точностью до перестановки параметров: example.com/page.php?id=blabla ~ example.com/page.php?a=1&id=bla&b=2 .
  2. Разработать простейшие тестовые приложения, реализующие или моделирующие некоторую уязвимость, но используя различные фреймворки и разворачивая их на множестве вариантов операционных систем, различных веб-серверах, с использованием различных баз данных, с доступом по различным видам сетевых протоколов, а также через различные цепочки прокси.
  3. Развернуть на тестовых стендах множество различных CMS, уязвимых приложений (DVWA, Gruyere, OWASP Site Generator и т. п.) и сканировать их различными сканерами безопасности. Общее число уязвимостей, найденных всеми сканерами, взять за эталон и использовать в дальнейших тестах.
Конфигурировать тестовое приложение и управлять им, устанавливая требуемый уровень защиты, можно, к примеру, с помощью инструмента OWASP Site Generator , конфигурацию которого можно хранить и редактировать в обычном XML-файле. К сожалению, на данный момент этот инструмент считается устаревшим и для эмуляции современных уязвимостей рекомендуется создавать приложения собственной разработки.

Типы уязвимостей для реализации в тестовом контенте для проверки сканера можно взять из классификатора WASC Threat Classification .

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

По результатам сканирования получаем числовые векторы вида

(уровень защиты, кол-во обнаруженных объектов, False Positive, False Negative, всего объектов, время сканирования)

Затем необходимо ввести метрику качества сканирования , которою можно будет использовать для сравнения показателей и сканеров между собой. В качестве подобной метрики достаточно использовать простейшую евклидову метрику.

Виды тестовых испытаний

Еще одна статья, на которую можно опираться при тестировании сканеров веб-приложений, называется «Analyzing the Accuracy and Time Costs of Web Application Security Scanners ». В этом материале описывается проведение испытаний различных сканеров (BurpSuitePro, Qualys, WebInspect, NTOSpider, Appscan, Hailstorm, Acunetix) и для каждого конкретного инструмента предлагается проводить четыре типа испытаний:
  1. Выполнить сканирование веб-приложения в режиме Point and Shoot (PaS) и определить число найденных и подтвержденных уязвимостей.
  2. Выполнить повторное сканирование после предварительного «обучения» и настройки сканера на работу с данным типом приложений, определить число найденных и подтвержденных уязвимостей в этом случае.
  3. Оценить точность и полноту описания найденных уязвимостей.
  4. Оценить общее время, потраченное специалистами на подготовку и проведение тестирования, анализ и обеспечение качества результатов сканирования.
Режим PaS - это запуск сканирования со стандартными параметрами сканера. Проходит по схеме «установка цели - сканирование - получение результата».

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

Для определения количества времени, которое специалистам необходимо затратить для получения качественного результата, в статье предлагается пользоваться простой формулой:

Общее время = Время обучения + #False Positive * 15 мин. + #False Negative * 15 мин.

В ходе каждого испытания нужно применять тестовую процедуру, которую мы описывали выше.

Критерии оценки для сканеров веб-приложений

В еще одной полезной статье «Top 10: The Web Application Vulnerability Scanners Benchmark » авторы предлагают общий поход к сравнению характеристик сканеров, а также набор таких характеристик с примерами. Оценку возможностей сканеров веб-приложений в этой статье предлагается задавать в табличном виде, используя следующие критерии:
  1. Сравнение цены продукта по отношению к оценкам критериев . (A Price Comparison - in Relation to the Rest of the Benchmark Results). Пример сравнения можно посмотреть в сводной таблице .
  2. Универсальность применения сканера - это число поддерживаемых протоколов и векторов доставки - методов доставки данных к серверу (Scanner Versatility - A Measure for the Scanner"s Support of Protocols & Input Delivery Vectors). Векторы доставки включают в себя такие методы доставки данных к серверу, как HTTP-параметры строк запроса, параметры HTTP-body, JSON, XML, двоичные методы для конкретных технологий - таких как AMF, Java-сериализованные объекты и WCF. Пример сравнения можно посмотреть в сводной таблице .
  3. Количество поддерживаемых векторов атаки : количество и тип активных плагинов сканера (Attack Vector Support - The Amount & Type of Active Scan Plugins (Vulnerability Detection)). Пример сравнения можно посмотреть в сводной таблице .
  4. Точность обнаружения CSS (Reflected Cross Site Scripting Detection Accuracy). Пример сравнения можно посмотреть в сводной таблице .
  5. Точность обнаружения SQL-инъекций (SQL Injection Detection Accuracy). Пример сравнения можно посмотреть в сводной таблице .
  6. Точность обхода структуры веб-приложения и обнаружения локальных файлов . (Path Traversal / Local File Inclusion Detection Accuracy). Пример сравнения можно посмотреть в сводной таблице .
  7. Удаленное использование файлов, XSS, фишинг через RFI . (Remote File Inclusion Detection Accuracy (XSS / Phishing via RFI)). Пример сравнения можно посмотреть в сводной таблице . Пример тест-кейсов RFI приведен на схеме .
  8. WIVET-сравнение : автоматизированный краулинг и получение входных векторов для атаки (WIVET (Web Input Vector Extractor Teaser) Score Comparison - Automated Crawling / Input Vector Extraction). Пример сравнения можно посмотреть в сводной таблице .
  9. Адаптивность сканера : количество дополнительных возможностей сканера для преодоления защитных барьеров (Scanner Adaptability - Complementary Coverage Features and Scan Barrier Support). Пример сравнения можно посмотреть в сводной таблице .
  10. Сравнение особенностей аутентификации : количество и тип поддерживаемых способов авторизации и аутентификации (Authentication Features Comparison). Пример сравнения можно посмотреть в сводной таблице .
  11. Количество дополнительных возможностей сканирования и встроенных механизмов. (Complementary Scan Features and Embedded Products). Пример сравнения можно посмотреть в сводной таблице .
  12. Общее впечатление о работе основной функции сканирования (General Scanning Features and Overall Impression). Пример сравнения можно посмотреть в сводной таблице .
  13. Сравнение лицензий и технологий (License Comparison and General Information). Пример сравнения можно посмотреть в сводной таблице .
Некоторые из перечисленных пунктов входят в сводную таблицу детектирования объектов. Кроме того, можно заметить, что для большинства критериев требуются экспертные оценки, а это затрудняет автоматизированное тестирование и сравнение сканеров. В результате предложенные критерии оценок можно использовать, к примеру, в качестве разделов для более общего отчета по исследованию характеристик сканера, в котором содержатся все итоги тестирования и сравнения конкретного сканера с конкурентами.

Типы тестов для сканеров веб-приложений

Опираясь на материалы представленных выше статей, мы разработали классификацию типов тестов, которые можно использовать в тестовой процедуре.
  • Базовые функциональные (smoke) тесты должны проверять работоспособность основных низкоуровневых узлов сканера: работу транспортной подсистемы, подсистемы конфигурации, подсистемы логирования и т. п. При сканировании простейших тестовых целей не должно быть сообщений об ошибках, exceptions и traceback в логах, сканер не должен зависать при использовании различных транспортов, редиректов, прокси-серверов и т. п.
  • Функциональные (functional) тесты должны реализовать проверку основных сценариев для проверки технических требований. Необходимо проверять работоспособность каждого сканирующего модуля по порядку при различных настройках модуля и тестового окружения. Выполняются позитивные и негативные тестовые сценарии, различные стресс-тесты с использованием больших массивов корректных и некорректных данных, оправляемых сканеру в ответ от веб-приложения.
  • Тесты на сравнение (compare) функциональности , в ходе которых выполняется сравнение качества и средней скорости поиска объектов выбранным модулем сканера с аналогичными по функционалу модулями в продуктах-конкурентах. Для каждого конкретного сканирующего модуля должны даваться определения, что подразумевать под объектами для него и качеством их поиска.
  • Тесты на сравнение показателей оценочных критериев (criteria) , в ходе которых проверяется, что скорость и качество поиска объектов каждым сканирующим модулем в каждой новой версии тестируемого сканера - не ухудшились по сравнению с предыдущей версией. Определения скорости и качества должны задаваться так же, как для тестов на сравнение функциональности: за тем исключением, что в данном типе тестов в качестве конкурента для тестируемого сканера выступает его предыдущая версия.
Использовать описанную в топике тестовую процедуру можно для любых сканеров безопасности веб-приложений, а применяя метрику качества сканирования, мы получаем инструмент для качественного сравнения сканеров через сопоставление их метрик. В развитие этой идеи можно использовать нечеткие показатели, шкалы и метрики - для упрощения работ по сравнению сканеров.

Спасибо за внимание, будем рады ответить на вопросы в комментариях.

Теги: Добавить метки

Тест по теме «Сканер»

1 вариант

1.1. Количество точек изображения объекта, «оцифрованных» сканером, называется:

1.2. Если картинка не подлежит увеличению, то для вывода на монитор достаточно иметь сканер с оптическим разрешением:

А. 300 точек на дюйм

Б. 50-200 точек на дюйм

В. 96 точек на дюйм

1.3. Вставьте пропущенные слова: «Во сколько раз увеличивается масштаб картинки, во столько же раз нужно … … сканирования»

1.4. Для непрозрачных объектов плотность (динамический диапазон) сканера должна быть:

А. 22 D

Б. 2,2 D

В. 22,2 D

1.5. Сканер - это устройство, которое

А. создаёт цифровую копию изображения объекта

Б. печатает копию объекта

В. принимает / передаёт световой сигнал от объекта

Г. отражает световой сигнал от объекта на преобразователь света

1.6. Перечислите виды сканеров по архитектуре:

А. планшетные сканеры

Б. медицинские сканеры

В. барабанные сканеры

Г. оптические сканеры

Тест по теме «Сканер»

2 вариант

2.1. Плотность сканирования изображения объекта (для высококачественного сканирования) называется:

А. оптическим разрешением сканера

Б. динамическим диапазоном сканера

В. оптической плотностью сканера

2.2. Если картинка не подлежит увеличению, то для печати на лазерном и струйном принтере достаточно иметь сканер с оптическим разрешением:

А. 96 точек на дюйм

Б. 50-200 точек на дюйм

В. 300 точек на дюйм

2.3. Вставьте пропущенные слова: «Во сколько раз увеличивается масштаб картинки, во столько же раз нужно … … сканирования»

2.4. Для слайдов и плёнок плотность (динамический диапазон) сканера должна быть:

А. 3,2 D

Б. 32 D

В. 0,32 D

2.5. Процесс получения цифровой копии объекта называется

А. сканированием

Б. копированием

В. редактированием

Г. форматированием

2.6. Перечислите виды сканеров по объектам обработки:

А. планетарные сканеры

Б. оптические сканеры

В. медицинские сканеры

Г. слайд-сканеры

Тест по теме «Сканер»

3 вариант

3.1. Свойство сканера различать те или иные градации яркости оригинального изображения называется:

А. оптическим разрешением сканера

Б. динамическим диапазоном сканера

В. оптической плотностью сканера

3.2. Если картинка не подлежит увеличению, то для офсетной печати достаточно иметь сканер с оптическим разрешением:

А. 96 точек на дюйм

Б. 50-200 точек на дюйм

В. 300 точек на дюйм

3.3. Вставьте пропущенные слова: «Во сколько раз увеличивается масштаб картинки, во столько же раз нужно … … сканирования»

3.4. Для непрозрачных объектов плотность (динамический диапазон) сканера должна быть:

А. 2,2 D

Б. 22 D

В. 22,2 D

3.5. Сканер - это устройство, которое создаёт копии

А. прозрачных объектов

Б. непрозрачных объектов

В. изображения плоских объектов

Г. объектов с бумажных носителей

3.6. Перечислите виды сканеров по архитектуре:

А. широкоформатные сканеры

Б. сканеры сетчатки глаза

В. сканеры штрих-кода

Г. ручные сканеры

Тест по теме «Сканер»

4 вариант

4.1.Плотность сканирования изображения объекта (для высококачественного сканирования) называется:

А. динамическим диапазоном сканера

Б. оптической плотностью сканера

В. оптическим разрешением сканера

4.2. Если картинка не подлежит увеличению, то для печати на лазерном и струйном принтере достаточно иметь сканер с оптическим разрешением:

А. 50-200 точек на дюйм

Б. 96 точек на дюйм

В. 300 точек на дюйм

4.3. Вставьте пропущенные слова: «Во сколько раз увеличивается масштаб картинки, во столько же раз нужно … … сканирования»

4.4. Для слайдов и плёнок плотность (динамический диапазон) сканера должна быть:

А. 0,32 D

Б. 32 D

В. 3,2 D

4.5. Процесс получения цифровой копии объекта называется

А. копированием

Б. редактированием

В. сканированием

Г. форматированием

4.6. Перечислите виды сканеров по объектам обработки:

А. сканеры сетчатки глаза

Б. сканеры штрих-кода

В. листопротяжные сканеры

Г. книжные сканеры