- •П.Н. Девянин, о.О. Михальский, д.И. Правиков, а.Ю. Щербаков Теоретические основы компьютерной безопасности
- •Глава 1 структура теории компьютерной безопасности 8
- •Глава 2 методология построения систем защиты информации в ас 22
- •Глава 3 политика безопасности 72
- •Глава 4 модели безопасности 95
- •Глава 5 основные критерии защищенности ас. Классификация систем защиты ас 123
- •Введение
- •Глава 1структура теории компьютерной безопасности
- •1.1Основные понятия и определения
- •1.2 Анализ угроз информационной безопасности
- •1.3 Структуризация методов обеспечения информационной безопасности
- •1.4 Основные методы реализации угроз информационной безопасности
- •1.5Основные принципы обеспечения информационной безопасности в ас
- •1.6Причины, виды и каналы утечки информации
- •Глава 2методология построения систем защиты информации в ас
- •2.1 Построение систем защиты от угрозы нарушения конфиденциальности информации Организационно-режимные меры защиты носителей информации в ас
- •Передача пароля по сети
- •Криптографические методы защиты
- •Утечки информации по техническим каналам:
- •Требования к скзи
- •Требования надежности
- •Требования к средам разработки, изготовления и функционирования скзи.
- •Криптографическая защита транспортного уровня ас
- •Криптографическая защита на прикладном уровне ас
- •Особенности сертификации и стандартизации криптографических средств
- •Защита от угрозы нарушения конфиденциальности на уровне содержания информации
- •2.2Построение систем защиты от угрозы нарушения целостности информации Организационно-технологические меры защиты целостности информации на машинных носителях
- •Модель контроля целостности Кларка-Вилсона
- •Защита памяти
- •Барьерные адреса
- •Динамические области памяти
- •Адресные регистры
- •Страницы и сегменты памяти
- •Цифровая подпись
- •Защита от угрозы нарушения целостности информации на уровне содержания
- •2.3 Построение систем защиты от угрозы отказа доступа к информации
- •Защита от сбоев программно-аппаратной среды
- •Обеспечение отказоустойчивости по ас
- •Предотвращение неисправностей в по ac
- •Защита семантического анализа и актуальности информации
- •2.4 Построение систем защиты от угрозы раскрытия параметров информационной системы
- •2.5 Методология построения защищенных ас
- •Иерархический метод разработки по ас
- •Исследование корректности реализации и верификация ас
- •Теория безопасных систем (тсв)
- •Список литературы к главе 2
- •Глава 3политика безопасности
- •3.1 Понятие политики безопасности
- •3.2 Понятия доступа и монитора безопасности
- •3.3 Основные типы политики безопасности
- •3.4 Разработка и реализация политики безопасности
- •3.5Домены безопасности
- •Список литературы к главе 3
- •Глава 4модели безопасности
- •4.1 Модель матрицы доступов hru Основные положения модели
- •Безопасность системы
- •4.2 Модель распространения прав доступа take-grant Основные положения модели
- •Возможность похищения прав доступа
- •Расширенная модель Take-Grant
- •4.3 Модель системы безопасности белла-лападула Основные положения модели
- •Пример некорректного определения безопасности в модели бл
- •Эквивалентные подходы к определению безопасности в модели бл
- •Подход Read-Write (rw)
- •Подход Transaction (т)
- •Проблемы использования модели бл
- •Модель Low-Water-Mark
- •4.4Модель безопасности информационных потоков
- •Пример автоматной модели системы защиты gm
- •Список литературы к главе 4
- •Глава 5основные критерии защищенности ас. Классификация систем защиты ас
- •5.1Руководящие документы государственной технической комиссии россии
- •5.2 Критерии оценки безопасности компьютерных систем министерства обороны сша ("оранжевая книга")
- •Глава 5 Основные критерии защищенности ас. Классификация систем
- •Демонстрационный материал к учебной теме “Криптосистема rsa” Введение
- •Системные требования
- •Описание программы
Предотвращение неисправностей в по ac
За два последних десятилетия в разных странах и фирмах отработаны процессы создания, развития и применения программ для компьютеров. Эти процессы принято описывать моделями жизненного цикла программ различных классов и назначения. В модели жизненный цикл структурируется рядом крупных фаз или этапов, каждый из которых характеризуется достаточно определенными целями и результатами. Так как основные промежуточные и конечные цели создания и применения программ одного класса достаточно близки, то и модели жизненного цикл для аналогичных типов программных средств в значительной степени подобны. Главные различия заключаются в выделении наиболее важных - процессов, а также способов их группирования и отображения. При этом важную роль играют классы и параметры программ, которые (иногда неявно) определяют первоначальное формирование моделей жизненного цикла.
В настоящее время за рубежом модели жизненного цикла реализуются в виде стандартов. Анализ современных отечественных и зарубежных стандартов позволяет сделать вывод о том, что основными фазам создания ПО являются:
• анализ и спецификация требований;
• проектирование;
• исполнение.
Рассмотрим содержание каждой из фаз, в контексте решения задача-предотвращения неисправностей ПО.
1. Фаза анализа и спецификации требований. Стремление к достижению большей надёжности ПО привлекает особое внимание к самым ранним фазам цикла создания программ. Новейшая и наименее разработанная область обеспечения программной надежности - область спецификаций требований. Анализ всей совокупности требований к системе - технического задания (ТЗ) выполняется на начальной фазе создания программ. ТЗ составляется на основании перечня требований, предъявленных к системе заказчиком (классы решаемых задач, их характеристики и особенности, режим работы АС, сопряжение с внешними объектами, про пускная способность, время ответа и т.п. при заданных ограничениях на стоимость, длительность разработки и др.). Цель создания ТЗ-уточнить и сформулировать задачи, возлагаемые на систему, согласовать требования заказчика и возможности исполнителя, составить техническое задание на ПО. Это делается для того, чтобы удостовериться, что от программ требуются только те системные требования, которые могут быть достигнуты.
В общем случае информации, содержащейся в ТЗ, может быть не достаточно для разработки полноценных детальных спецификаций. Поэтому анализ требований к ОС и дополнение ТЗ недостающими данными является необходимым шагом при разработке. Полученное таким образом описание ОС принято называть эскизным проектом, и именно эскизный проект будет рассматриваться разработчиками в дальнейшем в качестве основы для фазы проектирования.
Успехи в теории программирования и вычислений обеспечили использование формальных методов при разработке ПО. Формальный метод разработки систем состоит из трёх основных компонентов:
• формальной записи спецификаций и описаний проектов;
• методики получения реализаций из спецификаций;
• составления правил вывода (или доказательства) того, что реализации отвечают этим спецификациям.
Достоинство формальных методов заключается в том, что системы. разработанные с использованием подобного подхода, имеют принципиально высокое качество. При этом повышение качества достигается двумя путями:
• построением спецификаций в виде ясного, исчерпывающего, недвусмысленного и лёгкого для проверки математического утверждения;
• осуществлением верификации во время разработки ПО.
Термин "верификация" используется для обозначения процедур, показывающих, что каждый шаг разработки является адекватной реализацией описания системы, полученного на предыдущем шаге, и что окончательная программа является следствием своей спецификации.
Разработка формальной спецификации требует значительных усилий. Однако, как показывает практика, большинство ошибок, обнаруживаемых в конце жизненного цикла программ, и, следовательно, наиболее дорогих и сложных для исправления, возникает из-за ошибок в спецификации. Таким образом, для предотвращения неисправностей ПО рассмотренной фазе создания необходимо уделять особое внимание.
2. Фаза проектирования. Главная задача системного проектирования ПО заключается в том, чтобы на основании эскизного проекта разработать совокупность основных характеристик проектируемого ПО, его архитектуру, т.е. состав и интерфейс модулей. Последующие шаги проектирования связаны с уточнением эскизного проекта, т.е. с разработкой формализованных описаний, представляющих в совокупности внутренние задания на проектирование компонентов (отдельных процедур) ПО, и их алгоритмической реализацией.
Теории и общей методологии проектирования АС пока не существует. Это объясняется широким кругом проблем системного проектирования, их сложностью и трудностью формализации, Вместе с тем, существуют некоторые базовые принципы проектирования, применимые не только к АС, но и ко всему ПО в целом. Кроме того, вопрос проектирования АС следует рассматривать не только в контексте обеспечения защиты от угрозы доступности информации, но и как элемент общей методологии по строения защищенных АС (см. далее § 2,4)
3. Фаза исполнения. Фаза исполнения включает в себя кодирование. интегрирование, а также тестирование и отгадку. Примем подход, согласно которому тестирование служит инструментом измерения, но не обеспечения надёжности программ. Поэтому тестирование исключается из дальнейшего рассмотрена:
С каждой из фаз создания ПО связаны специфические ошибки. С фазой анализа и спецификацией требований-системные ошибки, с фазой проектирования-алгоритмические и с фазой кодирования - программные.
Системные ошибки определяются прежде всего, неполной информацией о реальных процессах, происходящих в источниках и потребителях информации. Во время анализа требований не всегда удаётся точно сформулировать целевую задачу всей системы, а также- задачи основных групп программ, и эти задачи уточняются в процессе проектирования. В соответствии с этим локализуются и выявляются отклонения от уточнённого задания, которые могут квалифицироваться как системные ошибки.
К алгоритмическим прежде всего относят ошибки, обусловленные некорректной постановкой задач, решаемых отдельными частями ПО. К ним также относят ошибки связей модулей и функциональных групп программ. В большинстве случаев их также можно свести к ошибкам в спецификациях.
Программные ошибки по количеству и типам определяются, в первую очередь, степенью автоматизации программирования и глубиной формализованного контроля текстов программ. Программные ошибки сильно зависят от выбранного языка программирования. Имеющаяся статистика показывает, что наибольший вес имеют ошибки неполной программной реализации функций алгоритма или неверный порядок реализации функций.
Таким образом, на основании анализа фаз создания ПО и допускаемых на них ошибок можно сделать вывод о том, что двумя основными разновидностями ошибок являются:
• неверное специфицирование как всего программного комплекса, так и отдельных его составляющих;
• функциональное несоответствие программы алгоритму.
Предотвращение данных ошибок-путь к обеспечению защиты от сбоев и неисправностей ПО.
