Тестирование на основе спецификаций
Тестировании на основе спецификаций Принцип - тестовые последовательности создаются из абстрактной спецификации системы, и затем используются для верификации реализации. Особенности тестирования - для критических с точки зрения безопасности систем создание тестов, которые с большой вероятностью обнаруживают возможные уязвимости, особенно трудно, поскольку это обычно требует создания тонких и сложных сценариев выполнения и рассмотрение специфичных для этой области понятий, таких как криптография и случайные числа.
Метод тестирования, основанный на свойствах. G. Fink and M. Bishop. Property Based Testing: A New Approach to Testing for Assurance. ACM SIGSOFT Software Engineering Notes, 22(4) (July 1997). Основной принцип тестирования – тестируется только код, который отвечает за функционирование безопасности (программа целиком не тестируется). В процессе тестирования используется модель безопасности системы, а также библиотеки основных дефектов. Подход обеспечивает методологию для тестирования тонких свойств исходного кода, дает специфическую и абсолютную метрику для успешного тестирования этих свойств. Результат тестирования - успешный тест подтверждает, что свойство не нарушено; и если эти свойства формируют политику безопасности системы, тогда система безопасна. После тестирования считается что, в целевой программе отсутствуют дефекты, содержащиеся в библиотеках.
Обнаружения вторжения на основе спецификаций P. Uppuluri and R. Sekar. Experiences with Specification-Based Intrusion Detection. Recent Advances in Intrusion Detection (RAID), Основной принцип - спецификации используются как базис для обнаружения атак. Центральным понятием метода является наблюдение событий, которые отклоняются от нормы. В качестве спецификационного языка используется разработанный авторами язык спецификации поведенческого мониторинга BMSL Назначение - альтернативный подход для тестирования безопасности, которая комбинируют сильные стороны обнаружения неправильного употребления (точное обнаружение известных атак) и обнаружения аномалии (способность обнаруживать новые атаки). Достоинства метода: эффективная система обнаружения вторжения на основе спецификаций с умеренными затратами; хорошо справляется как с обнаружением известных, так и неизвестных атак, показывая при этом очень низкий процент ложных срабатываний.
Генерация тестовых последовательностей для систем транзакций из формальной модели безопасности G. Wimmel, J. Jurjens. Specification-based Test Generation for Security-Critical Systems Using Mutations. In 4th International Conference on Formal Engineering Methods (ICFEM), © Springer Verlag. Принцип - исследование проводится с поддержкой CASE-инструмента AUTOFOCUS. Этапы тестирования: Определяются тестовые последовательности по отношению к требуемым свойствам безопасности системы, с применением мутации системной спецификации и сценариев атак. Абстрактные тестовые последовательности конкретизируются, для того чтобы их можно было применять к существующим реализациям. Построения таких тестовых последовательностей из модели безопасности, которые покрывают возможные нарушения требований безопасности. Используют структурные критерии покрытия, такие как покрытие состояний или покрытие переходов модели, и ограничиться только теми, которые помечены как "критические", но при этом не принимаются во внимание требования безопасности. Недостатки - трудность с определением критериев покрытия, связанных с универсальными свойствами требований безопасности (требование безопасности Φi можно использовать только для проверки модели, но не реализации. Если находится трасса, удовлетворяющая ¬ Φi, тогда модель нарушает требование, и должна быть откорректирована. Иначе, Φi не может использоваться для выборки подходящих трасс, поскольку все трассы удовлетворяют Φi).
Мутационное тестирование это методика внесения неисправностей (fault injection) Основной принцип - ошибки вводятся в программу (приводя к ряду мутантов), и качество тестового набора измеряется его способностью отличить мутантов от оригинальной программы (чтобы "уничтожить" мутанты). Введенные ошибки могут соответствовать ошибкам в реализации или атакам, приводящим к таким ошибкам. Для некоторого перехода t функция мутации применяется к его предусловию, или к одному из его результирующих выражений, или к его постусловию, что приводит к множеству мутированных переходов tj. Особенности применения – для тестирование безопасности функция мутации должна быть основана на общих программных ошибках, с большой вероятностью приводящих к уязвимостям, таких как опущение правдоподобных проверок или неправильное использование идентичности. Кроме того, в модели должна приниматься во внимание криптография, приводящая к мутациям, соответствующим путанице ключей или секретов, или опущение, или неправильно реализованной верификации аутентификационных кодов. Мутационное тестирование J. Voas and G. McGraw. Software Fault Injection: Incoculating Programs Against Errors. John Wiley & Sons, Inc., 1998.
Комбинированный подход Model&Interface-driven R. Chandramouli, M. R. Blackburn. Automated Testing of Security Functions Using a Combined Model and Interface- Driven Approach. Proc. of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04), January , Назначение - подход (и инструментальные средства) для автоматизированного тестирования функций безопасности, который использует формальную модель поведения, расширенную спецификациями интерфейса. Разработка инструмента TAF-SFT и его применение к тестированию функций безопасности сложной коммерческой СУБД (системы управления базами данных) показало, что и модель, и процесс генерации тестов являются масштабируемыми. Этапы тестирования: разработку функциональной модели, анализ модели, автоматизированная генерация тестового кода, автоматизированное выполнение тестов анализ результатов. Основной принцип - Для написания спецификаций используется формальный язык SCR (Software Cost Reduction). Инструмент TAF-SFT применяет TAF к тестированию функций безопасности. На основе результирующей поведенческой спецификационной модели TAF-SFT генерирует тестовые векторы. Затем поведенческая модель и тестовые векторы комбинируются со спецификациями интерфейсов продукта для того, чтобы автоматически сгенерировать тестовые драйверы (код выполнения тестов). Тестовый код выполняется над тестируемым продуктом, результаты прогона тестов сравниваются с ожидаемыми результатами, после чего генерируется тестовый отчет.
Особенности применения - качество системы генерации тестов основано на том, насколько хорошо сгенерированные тесты удовлетворяют выбранному критерию покрытия. Для инструмента TAF-SFT в качестве критерия покрытия был выбран критерий покрытия модели, т.е. генератор тестовых векторов будет генерировать, по крайней мере, один тестовый вектор для каждого маршрута модели. Применяется для : тестирования безопасности коммерческой СУБД (функции контроля доступа); моделирования и генерации тестов также и для таких функций безопасности, как генерация аудита, управление безопасностью, идентификация и аутентификация, управление сеансами возможно применение для тестирования других функций безопасности, которые могут быть смоделированы на основе опубликованных интерфейсов продукта. Недостаток - от разработчика модели требуется детальное знание семантики функций безопасности, и сложность отображения информации, которая может возникнуть, если тестируемый продукт имеет сложные интерфейсы. Основополагающей рамочной концепцией служит TAF (Test Automation Framework), которая автоматизирует процесс тестирования системы. Комбинированный подход Model&Interface-driven
Методология использования мобильных агентов T. Karygiannis. Network Security Testing Using Mobile Agents, The Third International Conference and Exhibition on The Practical Application of Intelligent Agents and Multi-Agent Technology, London, UK, March Назначение - тестирование безопасности распределенных сетей. Принцип- основан на способности мобильных агентов автономно перемещаться по сети, что дает новый уровень отказоустойчивости для тестирования безопасности. Агенты конструируются в виде легковесных процессов так, что каждый процесс тестирует единственную уязвимость. Когда обнаруживается новая уязвимость, и тесты для этой уязвимости разработаны, новые агенты добавляются к набору тестов. Наборы тестов настраиваются для каждого отдельного узла в зависимости от его конфигурации. Легковесная архитектура агента делает набор тестов хорошо реконфигурируемым, особенно для гетерогенных сред. Особенности применения - многие качества агентов делают их идеальным механизмом атаки. Хосты должны быть защищены от злонамеренных агентов, агенты должны быть защищены от злонамеренных хостов, и агенты должны также быть защищены от других злонамеренных агентов. Атаки агентов могут включать рассылку не по адресу (spamming), получение доступа путем обмана (spoofing) и атаки отказа в обслуживании.
Достоинства: Дает возможность скрыть данные, код, и информацию, относящуюся к безопасности, от потенциальных злоумышленников. Тестирование безопасности сети становится неуязвимым относительно единственной точки отказа, т.е. оно может продолжаться, даже если происходит сбой отдельных узлов или они становятся недоступными. Злоумышленнику труднее блокировать тесты безопасности, если они распределены в сети. Легко масштабируются тестирование безопасности, т.к. при добавлении новых компонентов к сети достаточно диспетчеризации или клонирования новых агентов для разделения рабочей нагрузки. Можно использовать параллелизм, присущий большим сетям, для того, чтобы улучшить производительность централизованного мониторинга безопасности с помощью распределения рабочей нагрузки тестирования безопасности в сети. Возможность осуществлять адаптивное тестирование. Недостатком тестирования с помощью мобильных агентов является то, что наборы тестов получаются довольно больших размеров, а манипулирование многочисленными легковесными процессами требует дополнительных взаимодействий, повышая накладные расходы. Среда управления агентами должна быть установлена на каждом хосте. Методология использования мобильных агентов
Метод адаптивного анализа уязвимостей AVA - Adaptive Vulnerability Analysis J. Voas and G. McGraw. Software Fault Injection: Incoculating Programs Against Errors. John Wiley & Sons, Inc., Назначение - для количественной оценки информационной безопасности и живучести системы. Относиться к методике внесения неисправностей. Основной принцип - предполагает выполнение программного обеспечения в условиях имитации злонамеренных и неумышленных атак, которые принадлежат различным классам угроз. Неисправности вносятся во внутреннее состояние выполняющегося приложения с помощью искажения потока данных и внутренних состояний переменных приложения. Недостатки AVA: невозможно имитировать атаки, которые не затрагивают внутренние состояния приложения; семантический разрыв между атаками во время использования приложения и отклонениями, которые вызываются во время тестирования, что затрудняет оценку обоснованности отклонения.
Метод анализ уязвимостей с помощью синтаксического тестирования R. Kaksonen, M. Laakso, A. Takanen. Vulnerability Analysis of Software through Syntax Testing. Technical Research Centre of Finland, Назначение – тестирование только уязвимостей. Принцип- основан на анализе уязвимости с помощью синтаксического тестирования. Тестирование проводится путем подачи исключительных входных воздействий на программное обеспечение и наблюдения за аспектами безопасности в результирующем поведении. Достоинства: Эффективен для выявления дефектов, которые появились при реализации программного обеспечения, и имеет много приложений. Могут быть найдены некоторые уязвимости программных компонентов без их тестирования на корректность. Требует меньше затрат по сравнению с исчерпывающим тестированием.