Анализ и тестирование безопасности

обзор

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

Функциональное тестирование безопасности

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

Анализ и тестирование безопасности

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

Статический анализ

Статический анализ защищенности исходного кода представляет собой начальную линию обороны в цикле разработки продукта. Oracle использует статический анализатор кода от Fortify Software, компании в составе корпорации HP, а также различные инструменты собственной разработки для выявления проблем в процессе написания кода. Продукты, разработанные с использованием самых современных языков программирования (таких как C/C++, Java, C#) и платформ (J2EE, .NET), сканируются на наличие возможных проблем безопасности. Этот тип проверок очень эффективен для обнаружения таких проблем, как переполнение буфера и утечки памяти в коде C/C++, ошибки обработки ресурсов в J2EE и .NET, неправильная обработка учетных данных, различные виды внедренного кода, неправильные конфигурации системы и т. д. Одним из недостатков этого типа анализа является большое число ложных срабатываний. То есть значительная часть обнаруженных проблем в отчетах, по сути, не являются проблемами. Как правило, в анализе отчетов сканирования участвуют старшие специалисты из команды разработчиков, которые хорошо знают код продукта, могут отделить ложные срабатывания от реальных проблем и способны уменьшить количество ложных срабатываний.

Динамический анализ

Динамический анализ всегда проводится на поздних этапах разработки продукта, когда продукт или компонент уже как минимум можно запустить. Детали могут отличаться в разных подразделениях Oracle, но обычно анализом занимается группа контроля качества (или аналогичная выделенная группа), которая может работать с несколькими группами разработки продуктов. Динамический анализ направлен на внешние видимые интерфейсы и API продукта и часто предполагает использование специализированных инструментов тестирования. В Oracle для тестирования используются как ручные, так и автоматические инструменты. В автоматических инструментах применяется техника фаззинга для тестирования сетевых протоколов и интерфейсов продукта, а ручные инструменты требуют внесения изменений специалистом, но позволяют получить гораздо более точные результаты.