Проведение анализа успешно реализовавшихся угроз безопасности (атак) с целью их обобщения, классификации и выявления причин и закономерностей их появления и существования позволяет при разработке и создании защищенных систем сконцентрировать основные усилия именно на устранении этих причин путем исправления выявленных в механизмах защиты недостатков, что позволяет эффективно противостоять угрозам безопасности.
Уязвимость защиты (УЗ) — совокупность причин, условий и обстоятельств, наличие которых в конечном итоге может привести к нарушению нормального функционирования ВС и нарушению безопасности (НСД, ознакомление, уничтожение или искажение данных).
В 70-х гг. XX в. были предприняты попытки формального описания и систематизации информации об УЗ. Исследования проводились по проектам RISOS (Исследование безопасности защищенных операционных систем) и РА (Анализ защиты).
Предлагаемые методики поиска ошибок безопасности в ОС достаточно ограничены в практическом применении. Это можно объяснить предпринятой попыткой обеспечить универсальность методик, что отрицательно сказалось на возможности их развития и адаптации для новых ОС. Усилия исследователей слишком рано были перенаправлены от изучения УЗ в сторону разработки универсальной технологии создания защищенных ОС, свободных от подобных ошибок.
С точки зрения технологии создания защищенных систем наибольшее значение имеют следующие вопросы, на которые должна дать ответ таксономия УЗ.
1. Каким образом ошибки, приводящие к появлению УЗ, вносятся в систему защиты?
2. Когда, на каком этапе они вносятся?
3. Где, в каких компонентах системы защиты (или ВС в целом) они возникают и проявляются?
Ошибки в системах защиты, служащие источником появления УЗ, могут быть следующими.
I. Преднамеренные.
1. С наличием деструктивных функций (активные):
а) разрушающие программные средства (РПС) (несамовоспроизводящиеся РПС («троянские кони»), самовоспроизводящиеся РПС (вирусы));
б) черные ходы, люки, скрытые возможности проникновения в систему.
2. Без деструктивных функций (пассивные),
а) скрытые каналы утечки информации:
· с использованием памяти (для кодирования передаваемой информации в этом случае используется либо область памяти, не имеющая важного значения (например, установление характеристик признаков в имени и атрибутах файла), либо вообще неиспользуемая область (например, зарезервированные поля в заголовке сетевого пакета));
· с использованием времени (в этом случае информация кодируется определенной последовательностью и длительностью событий, происходящих в системе (например, с помощью модуляции интервалов обращения к устройствам, введения задержек между приемом и посылкой сетевых пакетов и т.д.));
б) другие (к их появлению обычно приводят расхождения между требованиями безопасности и требованиями к функциональным возможностям ВС).
II. Непреднамеренные.
1. Ошибки контроля допустимых значений параметров.
2. Ошибки определения областей (доменов).
3. Ошибки последовательностей действий и использования нескольких имен для одного объекта.
4. Ошибки идентификации/аутентификации.
5. Ошибки проверки границ объектов.
6. Другие ошибки в логике функционирования.
Этап внедрения ошибки и возникновения УЗ может происходить:
· на стадии разработки (ошибки при проектировании; ошибки при написании программ);
· стадии настройки систем;
· стадии сопровождения;
· стадии эксплуатации.
Классификация УЗ по размещению в системе:
1. Программное обеспечение:
а) операционная система:
· инициализация (загрузка);
· управление выделением памяти;
· управление процессами;
· управление устройствами;
· управление файловой системой;
· средства идентификации и аутентификации;
· другие;
б) сервисные программы и утилиты:
· привилегированные утилиты;
· непривилегированные утилиты;
в) прикладные программы.
2. Аппаратное размещение.
Таксономия причин возникновения УЗ должна дать ответ на имеющий ключевое значение с практической точки зрения вопрос: что явилось причиной успешного осуществления нарушения безопасности в том или ином случае?
Для ответа на этот вопрос необходимо выявить те свойства и особенности архитектуры ВС, которые привели к возможности успешного осуществления соответствующих атак. Только знание природы этих причин позволит оценить способность системы противостоять атакам на ее безопасность, а также понять природу недостатков, присущих существующим средствам обеспечения безопасности, которые привели к соответствующим нарушениям, и построить защищенную систему, лишенную этих недостатков. К причинам нарушения безопасности ВС относятся:
1) предопределенный на стадии разработки требований выбор модели безопасности, не соответствующей назначению или архитектуре ВС;
2) причины, обусловленные принципами организации системы обеспечения безопасности:
· неправильное внедрение модели безопасности;
· отсутствие идентификации и/или аутентификации субъектов и объектов;
· отсутствие контроля целостности средств обеспечения безопасности;
3) причины, обусловленные реализацией:
· ошибки, допущенные в ходе программной реализации средств обеспечения безопасности;
· наличие средств отладки и тестирования в конечных продуктах;
4) ошибки администрирования.
Предложенный подход к классификации причин нарушения безопасности в отличие от существующих подходов позволяет определить полное множество независимых первопричин нарушений безопасности, образующих ортогональное пространство факторов, определяющих реальную степень безопасности системы.
Сопоставление таксономии причин нарушений безопасности и классификации источников появления УЗ демонстрирует тот факт, что источником появления наибольшего количества категорий УЗ является неправильное внедрение модели безопасности и ошибки в ходе программной реализации. Это означает, что эти причины являются более значимыми и должны быть устранены в первую очередь.
Сопоставление между причинами нарушений безопасности и классификацией УЗ по этапу внесения показывает, что появление основных причин нарушения безопасности закладывается на этапе разработки, причем в основном на стадии задания спецификаций. Это вполне ожидаемый результат, так как именно этап составления спецификаций является одним из самых трудоемких, а последствия ошибок в спецификациях сказываются на всех последующих этапах разработки и распространяются на все взаимосвязанные компоненты системы.
Перекрестный анализ таксономии причин нарушений безопасности и классификация УЗ по источнику появления и этапу внесения показывают, что наиболее значимые причины (неправильное внедрение модели безопасности и ошибки программной реализации) действуют в ходе процесса разработки и реализации.
Следовательно, именно на этих этапах должны быть сосредоточены основные усилия при создании защищенных систем.