Вы находитесь на странице: 1из 57

СОДЕРЖАНИЕ

Часть 1 Основные методы обеспечения качества функционирования……………………4


Тема 1.1 Многоуровневая модель качества ПО..............................................................................4
Тема 1.2 Объекты уязвимости...........................................................................................................7
Тема 1.3 Дестабилизирующие факторы и угрозы надежности....................................................11
Тема 1.4 Методы предотвращения угроз надежности..................................................................13
Тема 1.5 Оперативные методы повышения надежности ............................................................ 14
Тема 1.6 Первичные ошибки, вторичные ошибки и их проявление...........................................15
Тема 1.7 Математические модели описания статистических характеристик ошибок..............16
Тема 1.8 Анализ рисков и характеристик качества программного обеспечения ….…………19
Тема 1.9 Целесообразность разработки модулей адаптации ......................................................23
Часть 2. Методы и средства защиты компьютерных систем……………………………...28
Тема 2.1 Вредоносные программы: классификация, методы обнаружения…………………..28
Тема 2.2 Антивирусные программы: классификация, сравнительный анализ .........................31
Тема 2.3 Файрвол: задачи, сравнительный анализ, настройка....................................................34
Тема 2.4 Групповые политики. Аутентификация. Учетные записи...........................................39
Тема 2.5 Тестирование защиты программного обеспечения......................................................43
Тема 2.6 Средства и протоколы шифрования сообщений..........................................................45
Тема 2.7 Криптографические механизмы конфиденциальности, целостности и
аутентичности информации....................................................................................................... 52
Тема 2.8 Криптографические алгоритмы DES и ГОСТ 28147-89..............................................54
Перечень используемых источников……………………………………………………………58

1
Часть 1. Основные методы обеспечения качества функционирования
Тема 1.1 Многоуровневая модель качества ПО

Технология программирования – совокупность принципов разработки, обеспечивающих


массовое производство ПО требуемого качества в установленные сроки.
Методами технологии программирования называются способы и приемы организации
производственных процессов при разработке программных средств.
Методы ТП определяют организационную структуру коллектива разработчиков, способы
разбиения процесса разработки на отдельные этапы, последовательность этих этапов и т.д.
Средствами технологии программирования называются утилиты, обеспечивающие
автоматизированную или автоматическую поддержку методов.
Совместно используемые утилиты объединяются в системы автоматизированной
разработки ПО. Такие системы принято называть CASE-средствами (Computer Aided Software
Engineering)
Свойство программы, характеризующееся отсутствием в ней ошибок по отношению к
целям разработки, называется правильностью программы. Даже для «малых» программ
обеспечение их правильности является чрезвычайно сложной задачей, а для «больших» программ
оно становится практически бессмысленным.
Качество ПО – это вся совокупность его характеристик, относящихся к возможности
удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц
(стандарт ISO 9126).
Основными критериями качества ПО (criteria of software quality) являются:
 функциональность (Способность ПО выполнять набор функций (действий),
удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор
указанных функций определяется во внешнем описании ПО);
 надежность (это его способность с достаточно большой вероятностью безотказно
выполнять определенные функции при заданных условиях и в течение заданного периода
времени);
 эффективность (Соотношение уровня услуг, предоставляемых ПО пользователю при
заданных условиях, и объема используемых для этого ресурсов. К числу таких ресурсов могут
относиться требуемые аппаратные средства, время выполнения программ, затраты на подготовку
данных и интерпретацию результатов);
 эргономичность (Характеристики ПО, которые позволяют минимизировать усилия
пользователя по подготовке исходных данных, применению ПО и оценке полученных

2
результатов, а также вызывать положительные эмоции определенного или подразумеваемого
пользователя);
 модифицируемость (Характеристики ПО, которые позволяют минимизировать усилия
по внесению изменений для устранения ошибок и по его модификации в соответствии с
изменяющимися потребностями пользователей. Модифицируемость ПО существенно зависит от
степени и качества его документированности);
 мобильность (Способность ПО быть перенесенным из одной среды (окружения) в
другую, в частности, с одной аппаратной платформы на другую).
Стандарт ISO 9126 - Международный стандарт, определяющий оценочные характеристики
качества программного обеспечения. Разделяется на 4 части, описывающие следующие вопросы:
 модель качества;
 внешние метрики качества;
 внутренние метрики качества;
 метрики качества в использовании.
Качество определяется в стандарте ISO 9126 как вся совокупность его характеристик,
относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех
заинтересованных лиц.
Различаются понятия:
 внутреннего качества,
 внешнего качества,
 качества ПО при использовании.

Рисунок 1. Многоуровневая модель качества ПО в стандарте ISO 9126

Три аспекта качества ПО


 Внутреннее качество связано с характеристиками ПО самого по себе, без учета его
поведения;

3
 Внешнее качество характеризующего ПО с точки зрения его поведения;
 Качества ПО при использовании – это то качество, которое ощущается пользователями
при конкретных сценариях работы ПО.
Качество определяется в стандарте ISO 9126 как вся совокупность его характеристик,
относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех
заинтересованных лиц.
Стандарт ISO 9126 предлагает использовать для описания внутреннего и внешнего качества
ПО многоуровневую модель.
На верхнем уровне выделено 6 основных характеристик качества ПО. Каждая
характеристика описывается при помощи нескольких входящих в нее атрибутов. Для каждого
атрибута определяется набор метрик, позволяющих его оценить.

Рисунок 2. Характеристики и атрибуты качества ПО по ISO 9126

Стратегии и модели процесса разработки программных средств? Модель жизненного


цикла программных средств. Фазы жизненного цикла.
Стратегии разработки ПО: Модель процесса разработки ПО выделяет конкретные
наборы видов деятельности, артефактов, ролей и их взаимосвязи, а также дает рекомендации по
организации процесса в целом.
Отдельные модели соответствуют одной из стратегий разработки – линейной,
инкрементной или эволюционной.
Линейная стратегия предполагает однократное прохождение всех этапов разработки ПО.

4
Инкрементная стратегия предполагает, что в начале процесса определяются все
пользовательские и системные требования. Разработка выполняется в виде последовательности
версий с нарастающей функциональностью.
Эволюционная стратегия также основана на выпуске последовательности версий ПО, но
допускает возможность постепенного уточнения требований к нему в процессе разработки на
основе анализа предыдущих версий. Основные проблемы создания сложных программных систем
связаны с нахождением разумного компромисса между затратами на разработку и качеством ее
результата.
Тема 1.2 Объекты уязвимости
Под угрозой безопасности информации в компьютерной системе (КС) понимают событие
или действие, которое может вызвать изменение функционирования КС, связанное с нарушением
защищенности, обрабатываемой в ней информации.
Уязвимость информации — это возможность возникновения на каком-либо этапе
жизненного цикла КС такого ее состояния, при котором создаются условия для реализации угроз
безопасности информации.
Атакой на КС называют действие, предпринимаемое нарушителем, которое заключается в
поиске и использовании той или иной уязвимости. Иначе говоря, атака на КС является
реализацией угрозы безопасности информации в ней.
Угрозы информационной безопасности могут быть разделены на угрозы, не зависящие от
деятельности человека (естественные угрозы физических воздействий на информацию
стихийных природных явлений), и угрозы, вызванные человеческой
деятельностью (искусственные угрозы), которые являются гораздо более опасными.
Искусственные угрозы исходя из их мотивов разделяются на
непреднамеренные (случайные) и преднамеренные (умышленные).
К непреднамеренным угрозам относятся:
 ошибки в проектировании КС;
 ошибки в разработке программных средств КС;
 случайные сбои в работе аппаратных средств КС, линий связи, энергоснабжения;
 ошибки пользователей КС;
 воздействие на аппаратные средства КС физических полей других электронных
устройств (при несоблюдении условий их электромагнитной совместимости) и др.
К умышленным угрозам относятся:
 несанкционированные действия обслуживающего персонала КС (например, ослабление
политики безопасности администратором, отвечающим за безопасность КС);

5
 несанкционированный доступ к ресурсам КС со стороны пользователей КС и
посторонних лиц, ущерб от которого определяется полученными нарушителем полномочиями.
В зависимости от целей преднамеренных угроз безопасности информации в КС угрозы
могут быть разделены на три основные группы:
 угроза нарушения конфиденциальности, т.е. утечки информации ограниченного
доступа, хранящейся в КС или передаваемой от одной КС к другой;
 угроза нарушения целостности, т. е. преднамеренного воздействия на информацию,
хранящуюся в КС или передаваемую между КС (заметим, что целостность информации может
быть также нарушена, если к несанкционированному изменению или уничтожению информации
приводит случайная ошибка в работе программных или аппаратных средств КС;
санкционированным является изменение или уничтожение информации, сделанное
уполномоченным лицом с обоснованной целью);
 угроза нарушения доступности информации, т. е. отказа в обслуживании, вызванного
преднамеренными действиями одного из пользователей КС (нарушителя), при котором
блокируется доступ к некоторому ресурсу КС со стороны других пользователей КС (постоянно
или на большой период времени).
Опосредованной угрозой безопасности информации в КС является угроза раскрытия
параметров подсистемы защиты информации, входящей в состав КС. Реализация этой угрозы дает
возможность реализации перечисленных ранее непосредственных угроз безопасности
информации.
Результатом реализации угроз безопасности информации в КС может быть утечка
(копирование) информации, ее утрата (разрушение) или искажение (подделка), блокирование
информации. Поскольку сложно заранее определить возможную совокупность угроз безопасности
информации и результатов их реализации, модель потенциальных угроз безопасности информации
в КС должна создаваться совместно собственником (владельцем) КС и специалистами по защите
информации на этапе проектирования КС. Созданная модель должна затем уточняться в ходе
эксплуатации КС.
Рассмотрим возможные каналы утечки информации в КС.
Косвенными каналами утечки называют каналы, не связанные с физическим доступом к
элементам КС:
 использование подслушивающих (радиозакладных) устройств;
 дистанционное видеонаблюдение;
 перехват побочных электромагнитных излучений и наводок (ПЭМИН). Побочные
электромагнитные излучения создаются техническими средствами КС при обработке информации,
существуют в диапазоне от единиц герц до 1,5 ГГц и могут распространять обрабатываемую

6
информацию с дальностью до 1 км. Наиболее опасными с точки зрения ПЭМИН являются
дисплеи, кабельные линии связи, накопители на магнитных дисках, матричные принтеры. Для
перехвата ПЭМИН используется специальная портативная аппаратура, включающая в себя
широкополосный автоматизированный супергетеродинный приемник с устройством регистрации
информации на магнитном носителе и (или) дисплеем.
Побочные электромагнитные наводки представляют собой сигналы в цепях электропитания
и заземления аппаратных средств КС и в находящихся в зоне воздействия ПЭМИН работающих
аппаратных средств КС кабелях вспомогательных устройств (звукоусиления, связи, времени,
сигнализации), металлических конструкциях зданий, сантехническом оборудовании. Эти
наведенные сигналы могут выходить за пределы зоны безопасности КС.
Другим классом каналов утечки информации являются непосредственные каналы,
связанные с физическим доступом к элементам КС. К непосредственным каналам утечки, не
требующим изменения элементов КС, относятся:
 хищение носителей информации;
 сбор производственных отходов с информацией (бумажных и магнитных носителей);
 намеренное копирование файлов других пользователей КС;
 чтение остаточной информации после выполнения заданий других пользователей
(областей оперативной памяти, удаленных файлов, ошибочно сохраненных временных файлов);
 копирование носителей информации;
 намеренное использование для несанкционированного доступа к информации
незаблокированных терминалов других пользователей КС;
 маскировка под других пользователей путем похищения их идентифицирующей
информации (паролей, карт и т.п.);
 обход средств разграничения доступа к информационным ресурсам вследствие
недостатков в их программном обеспечении и др.
К непосредственным каналам утечки, предполагающим изменение элементов КС и ее
структуры, относятся:
 незаконное подключение специальной регистрирующей аппаратуры к устройствам или
линиям связи (пассивное для фиксации и сохранения передаваемых данных или активное для их
уничтожения, искажения или подмены);
 злоумышленное изменение программ для выполнения ими несанкционированного
копирования информации при ее обработке;
 злоумышленный вывод из строя средств защиты информации.
Пассивное подключение нарушителя к устройствам или линиям связи легко предотвратить
(например, с помощью шифрования передаваемой информации), но невозможно обнаружить.
7
Активное подключение, напротив, легко обнаружить (например, с помощью хеширования и
шифрования передаваемой информации), но невозможно предотвратить.
Помимо утечки информации в КС возможны также ее несанкционированное уничтожение
или искажение (например, заражение компьютерными вирусами), а также несанкционированное
использование информации при санкционированном доступе к ней
Наличие в КС значительного числа потенциальных каналов утечки информации является
объективным фактором и обусловливает уязвимость информации в подобных системах с точки
зрения ее несанкционированного использования.
Поскольку наиболее опасные угрозы информационной безопасности вызваны
преднамеренными действиями нарушителя, которые в общем случае являются
неформальными, проблема защиты информации относится к формально не определенным
проблемам. Отсюда следуют два основных вывода:
 надежная защита информации в КС не может быть обеспечена только формальными
методами (например, только программными и аппаратными средствами);
 защита информации в КС не может быть абсолютной.
При решении задачи защиты информации в КС необходимо применять так называемый
системно-концептуальный подход. В соответствии с ним решение задачи должно
подразумевать:
 системность целевую, при которой защищенность информации рассматривается как
составная неотъемлемая часть ее качества;
 системность пространственную, предполагающую взаимосвязанность защиты
информации во всех элементах КС;
 системность временную, предполагающую непрерывность защиты информации;
 системность организационную, предполагающую единство организации всех работ по
защите информации в КС и управления ими. Концептуальность подхода к решению задачи
защиты информации в КС предусматривает ее решение на основе единой концепции
(совокупности научно обоснованных решений, необходимых и достаточных для оптимальной
организации защиты информации в КС).
Обеспечение информационной безопасности КС является непрерывным процессом,
целенаправленно проводимым на всех этапах ее жизненного цикла с комплексным применением
всех имеющихся методов и средств.
Существующие методы и средства защиты информации можно подразделить на четыре
основные группы:
 методы и средства организационно-правовой защиты информации;
 методы и средства инженерно-технической защиты информации;

8
 криптографические методы и средства защиты информации;
 программно-аппаратные методы и средства защиты информации.

Тема 1.3 Дестабилизирующие факторы и угрозы надежности

Анализ надежности ПС базируется на модели взаимодействия следующих компонент:


 объектов уязвимости;
 дестабилизирующих факторов и угроз надежности;
 методов предотвращения угроз надежности;
 методов повышения надежности.
Объектами уязвимости, влияющими на надежность ПС являются:
 вычислительный процесс;
 объектный код программ;
 информация БД;
 информация, выдаваемая потребителям.
На эти объекты воздействуют различные дестабилизирующие факторы, которые делятся на
внутренние и внешние.
Внутренние источники угроз надежности функционирования сложных ПС присущи самим
объектам уязвимости:
 ошибки проектирования при постановке задачи;
 алгоритмические ошибки разработки при спецификации функций ПС, при определении
структуры и взаимодействия компонент комплексов программы, а также при использовании
информации БД.
 ошибки программирования в текстах программ и ошибки в документации на ПС.
 недостаточное качество средств защиты.
Внешние дестабилизирующие факторы обусловлены средой, в которой функционируют
объекты уязвимости. Ими являются:
 ошибки персонала при эксплуатации;
 искажение информации в каналах связи;
 сбои и отказы аппаратуры;
 изменение конфигурации аппаратуры информационной системы.
Полностью исключить все эти факторы невозможно. Поэтому необходимо разрабатывать
средства и методы уменьшения их влияния на надежность ПС. Степень влияния всех внутренних
дестабилизирующих факторов и некоторых внешних на надежность ПС в наибольшей степени

9
определяется качеством технологий проектирования, разработки, сопровождения и
документирования ПС.
Методы предотвращения угроз надежности:
 предотвращение ошибок проектирования;
 систематическое тестирование;
 обязательная сертификация.
Методы повышения надежности:
 временная избыточность;
 информационная избыточность;
 программная избыточность.
Последствия нарушения надежности:
 разрушение вычислительного процесса;
 разрушение информации БД;
 разрушение текста программы;
 разрушение информации для потребителей.
Методы обеспечения НПО: в современных автоматических технологиях создания ПО есть
методы, позволяющие:
 создавать программные модули и функциональные компоненты высокого качества;
 предотвращать дефекты проектирования за счет эффективных технологий;
 обнаруживать и устранять различные ошибки и дефекты проектирования, разработки и
сопровождения программы путем систем тестирования на всех этапах ЖЦ ПС.
 удостоверять достигнутого качества и надежности ПС в процессе их испытаний и
сертификации;
 оперативно выявлять последствия дефектов программ и данных и восстанавливать
надежное функционирование программ.
Комплексное применение этих методов позволяет значительно уменьшить влияние угроз.
Т.е. уровень достигаемой надежности зависит от ресурсов, выделяемых на его достижение, и от
качества технологии, используемой на всех этапах ЖЦ ПС. Предотвращение ошибок и улучшение
технико-экономических показателей ПС обеспечивается применением современных технологий и
САПР, которые объединяются понятием CASE-технологии и языки IV поколения. CASE-
технологии – это высокопроизводительные ресурсосберегающие технологии создания комплексов
программ. Они позволяют значительно снизить уровень системных, алгоритмических и
программных ошибок. Для обнаружения и устранения ошибок проектирования все этапы
разработки и сопровождения ПС д.б. поддержаны методами и средствами системного
автоматизированного тестирования.
10
Тестирование – это основной метод измерения качества, определения корректности и
реальной надежности функционирования программ на любых этапах разработки. Результаты
тестирования должны сравниваться с требованием технического задания или спецификации.
Кроме вышеперечисленных методов предотвращения угроз надежности существуют
оперативные методы повышения надежности: временная, информационная и программная
избыточности.

Тема 1.4 Методы предотвращения угроз надежности


В современных автоматизированных технологиях создания сложных ПС с позиции
обеспечения их необходимой и заданной надежности можно выделить методы и средства
позволяющие:
 создавать программные модули и функциональные компоненты высокого,
гарантированного качества;
 предотвращать дефекты проектирования за счет эффективных технологий и средств
автоматизации обеспечения всего жизненного цикла комплексов программ и баз данных;
 обнаруживать и устранять различные дефекты и ошибки проектирования, разработки и
сопровождения программ путем систематического тестирования на всех этапах жизненного цикла
ПС;
 удостоверять достигнутые качество и надежность функционирования ПС в процессе их
испытаний и сертификации перед передачей в регулярную эксплуатацию;
 оперативно выявлять последствия дефектов программ и данных и восстанавливать
нормальное, надежное функционирование комплексов программ.
Внешние дестабилизирующие факторы имеют различную природу. Современные
достижения микроэлектроники значительно снизили влияние сбоев и отказов вычислительных
средств на надежность функционирования программных средств. Однако ошибки персонала,
искажения данных в каналах телекоммуникации, а также случайные (при отказах части
аппаратуры) и необходимые изменения конфигурации вычислительных средств остаются
существенными внешними угрозами надежности ПС. Негативное влияние этих факторов может
быть значительно снижено соответствующими методами и средствами защиты и восстановления
программ и данных. Степень влияния всех внутренних дестабилизирующих факторов и некоторых
внешних угроз на надежность ПС в наибольшей степени определяется качеством технологий
проектирования, разработки, сопровождения и документирования ПС и их основных компонент.
При ограниченных ресурсах на разработку ПС для достижения заданных требований по
надежности необходимо управление обеспечением качества в течение всего цикла создания
программ и данных. Для обнаружения и устранения ошибок проектирования все этапы разработки

11
и сопровождения программных средств должны быть поддержаны методами и средствами
систематического тестирования.
Тестирование – это основной метод измерения качества, определения корректности и
реальной надежности функционирования программ на каждом этапе разработки. Результаты
тестирования должны сравниваться с требованиями технического задания или спецификацией.
Кроме того, обеспечение качества ПС предполагает формализацию и сертификацию технологии
их разработки, а также выделение в специальный процесс поэтапное измерение и анализ текущего
качества создаваемых и применяемых компонент.
Итак, основные методы предотвращения угроз надежности:
 предотвращение ошибок проектирования в CАSE-технологиях;
 систематическое тестирование;
 обязательная сертификация.
Комплексное применение этих методов позволяет значительно ослаблять влияние угроз.
Таким образом, уровень достигнутой надежности зависит от ресурсов, выделяемых на его
достижение и от качества технологий, используемых на всех этапах жизненного цикла
программного средства.

Тема 1.5 Оперативные методы повышения надежности: временная,


информационная, программная избыточность
Чтобы обеспечить высокую надежность функционирования ПС, необходимы
вычислительные ресурсы для максимально быстрого обнаружения проявления дефектов и
выполнения автоматических мероприятий, обеспечивающих быстрое восстановления нормального
функционирования ПС.
Для этих целей используются следующие оперативные методы повышения надежности:
временная избыточность, информационная избыточность, программная избыточность.
Временная избыточность состоит в использовании некоторой части производительности
компьютера для контроля исполнения программ и восстановления вычислительного процесса. Для
этого при проектировании информационной системы должен предусматриваться запас
производительности, который будет затем использоваться на контроль и оперативное повышение
надежности функционирования. Величина временной избыточности зависит от требований к
надежности и находится в пределах от 5-10% производительности компьютера до 3-4-кратного
дублирования производительности отдельной машины в многопроцессорных вычислительных
системах. Временная избыточность используется для контроля и обнаружения искажений, на их
диагностику и выработку решений по восстановлению вычислительного процесса или
информации, а также на реализацию операций восстановления.

12
Информационная избыточность состоит в дублировании накопленных исходных и
промежуточных данных, обрабатываемых программами. Избыточность используется для
сохранения достоверности данных, которые в наибольшей степени влияют на нормальное
функционирование ПС и требуют значительного времени для восстановления. Их защищают 2-3
кратным дублированием с периодичным обновлением.
Программная избыточность используется для контроля и обеспечения достоверности
наиболее важных решений по обработке информации. Она заключается в сопоставлении
результатов обработки одинаковых исходных данных программами, различающимися
используемыми алгоритмами, и в исключении искажений при несовпадении результатов.
Программная избыточность необходима также для реализации программ автоматического
контроля и восстановления данных с использованием информационной избыточности и для
функционирования всех средств обеспечения надежности, использующих временную
избыточность.
Средства оперативного программного контроля включаются после использования
прикладных и сервисных программ, поэтому средства программного контроля обычно не могут
обнаружить непосредственно причину возникновения искажения вычислительного процесса или
данных и фиксирует только последствия первичного искажения, т.е. вторичную ошибку.
Результаты первичного искажения могут приобрести катастрофический характер при
запаздывании их обнаружения и локализации.
Для обеспечения надежности дефекты нужно обнаружить с минимальным запаздыванием,
при этом желательны минимальные затраты аппаратных ресурсов, поэтому используются
иерархические схемы контроля, при которых последовательно используется несколько методов в
порядке углубления контроля и увеличения затрат до выявления источника искажения.
Целесообразно акцентировать ресурсы на потенциально наиболее опасных дефектах и
достаточно частых режимов восстановления: при искажениях программ и данных, при
перегрузках по производительности и при параллельном использовании программ.

Тема 1.6 Первичные ошибки, вторичные ошибки и их проявление


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

13
 сбои, которые не отражаются на работоспособности программ, ущербом от которым
можно пренебречь,
 ординарные отказы, ущерб от которых находится в некоторых допустимых пределах,
 катастрофические отказы, ущерб от которых так велик, что определяет безопасность
применения данного ПС.
Характеристики и конкретные реализации первичных ошибок не позволяют однозначно
предсказать типы и степень проявления вторичных ошибок. На практике простейшие ошибки
программ и данных могут привести к катастрофическим последствиям. В то же время системные
дефекты могут только немного ухудшать эксплуатационные характеристики и не отражаются на
безопасности функционирования ПС.
Статистика ошибок в программных комплексах и их характеристики могут служить
ориентиром для разработчиков при распределении усилий на отладку. Однако регистрация, сбор и
анализ характеристик ошибок в программах – это сложный и трудоемкий процесс. Кроме того,
разработчики программ не афишируют свои ошибки. Все это препятствует получению
объективных данных об ошибках.
Первичные ошибки в порядке усложнения их обнаружения можно разделить на
следующие виды:
 технологические ошибки подготовки данных и документации,
 программные ошибки из-за неправильной записи текста программ на языке
программирования и ошибок трансляции программы в объектный код,
 алгоритмические ошибки, связанные с неполным формулированием необходимых
условий решения и некорректной постановкой задач,
 системные ошибки, обусловленные отклонением функционирования ПС в реальной
системе и отклонением характеристик внешних объектов от предполагаемых при проектировании.
Перечисленные ошибки различаются по частоте и методам их обнаружения на разных этапах
проектирования. При автономной и в начале комплексной отладки доля системных ошибок
составляет около 10%. На завершающих этапах комплексной отладки она возрастает до 35-40%. В
процессе сопровождения системные ошибки являются преобладающими и составляют около 80%
от всех ошибок. Частота появления вторичных ошибок при функционировании программ и
частота их обнаружения при отладке зависит от общего количества первичных ошибок в
программе. Наиболее доступно для измерения число вторичных ошибок в программе, выявленных
в единицу времени в процессе тестирования. Возможна также регистрация отказов и искажение
результатов при эксплуатировании программ.

Тема 1.7 Математические модели описания статистических характеристик

14
ошибок в программах
Путем анализа и обобщения экспериментальных данных в реальных разработках было
предложено несколько математических моделей, описывающих основные закономерности
изменения суммарного количества вторичных ошибок в программах.
Модели имеют вероятностный характер, и достоверность прогнозов в значительной
степени зависит от точности исходных данных.
Модели дают удовлетворительные результаты при относительно высоких уровнях
интенсивности проявления ошибок, т.е. при невысокой надежности ПС.
В этих условиях математические модели предназначены для приближенной оценки:
 потенциально возможной надежности функционирования программ в процессе
испытаний и эксплуатации;
 числа ошибок, оставшихся не выявленными в анализируемых программах;
 времени тестирования, требующегося для обнаружения следующей ошибки в
функционирующей программе;
 времени, необходимого для выявления всех имеющихся ошибок с заданной
вероятностью.
Построение математических моделей базируются на предположении о жесткой связи
между следующими тремя параметрами: суммарным количеством первичных ошибок в
программе, числом ошибок, выявленных в единицу времени в процессе тестирования и отладки,
интенсивностью искажения результатов в единицу времени на выходе комплекса программ при
нормальном его функционировании из-за невыявленных первичных ошибок. Предполагается, что
все три показателя связаны коэффициентом пропорциональности (рис.1).

Рисунок 3 – Суммарное число первичных ошибок (сплошная кривая), число ошибок,


выявляемых в единицу времени (пунктир), интенсивность искажения результатов в единицу
времени (штрих-пунктир) в зависимости от времени отладки

15
В настоящее время описаны несколько математических моделей, основой которых
являются различные гипотезы о характере проявления вторичных ошибок в программах.
Экспоненциальная математическая модель распределения ошибок в программах
основана на следующих предположениях:
1. Интервалы времени между обнаруживаемыми искажениями результатов
предполагаются статистически независимыми.
2. Интенсивность проявления ошибок остается постоянной пока не произведено
исправление первичной ошибки или не изменена программа по другой причине. Если каждая
обнаруженная ошибка исправляется, то значения интервалов времени между их проявлениями
изменяются по экспоненциальному закону.
3. Интенсивность обнаружения вторичных ошибок пропорциональна суммарному числу
первичных ошибок, имеющихся в данный момент в комплексе программ.
Приведенные предположения позволяют построить экспоненциальную математическую
модель распределения ошибок в программах и установить связь между интенсивностью
обнаружения ошибок при отладке dn/dt, интенсивностью проявления ошибок при нормальном
функционировании комплекса программ и числом первичных ошибок.
Предположим, что в начале отладки комплекса программ при t=0 в нем
содержалось N первичных ошибок. После отладки в течение времени t осталось по первичных
ошибок и устранено п ошибок (n0+n = N ). При этом время t соответствует длительности
исполнения программ на компьютере для обнаружения ошибок и не учитывает время,
необходимое для анализа результатов и проведения корректировок. Календарное время
отладочных и испытательных работ с реальным комплексом программ больше, так как после
тестирования программ, на которое затрачивается машинное время t, необходимо время на анализ
результатов, на обнаружение и локализацию ошибок, а также на их устранение.
Однако для определения характеристик проявления ошибок играет роль только
длительность непосредственного функционирования программ на компьютере. При постоянных
усилиях на тестирование и отладку интенсивность обнаружения искажений вычислительного
процесса, программ или данных вследствие еще невыявленных ошибок пропорциональна
количеству оставшихся первичных ошибок в комплексе программ.
Как уже отмечалось, предположение о сильной корреляции между
значениями n и dn/dt достаточно естественно и проверено анализом реальных характеристик
процесса обнаружения ошибок. Тогда dn/dt=K1k=Kn0=K(N0-n), где
коэффициенты К и К1 учитывают: масштаб времени, используемого для описания процесса
обнаружения ошибок, быстродействие компьютера, распределение тестовых значений на входе
проверяемого комплекса и другие параметры. Значение коэффициента К можно определить, как

16
изменение темпа проявления искажений при переходе от функционирования программ на
специальных тестах к функционированию на нормальных типовых исходных данных. В начале
отладки — это различие может быть значительным, однако, при завершении отладки и при
испытаниях тестовые данные практически совпадают с исходными данными нормальной
эксплуатации. Поэтому ниже К1 полагается равным единице (К1 =1). Таким образом,
интенсивность обнаружения ошибок в программе и абсолютное число устраненных первичных
ошибок связываются уравнением: dn/dt + Kn = KN0 Так как выше предполагалось, что в начале
отладки при t =0 отсутствуют обнаруженные ошибки, то решение уравнения имеет вид: n=N0 [1-
exp(-Kt)]. Число оставшихся первичных ошибок в комплексе программ n0 = N0 exp(-Kt)
пропорционально интенсивности обнаружения dn/dt с точностью до коэффициента К. Наработка
между проявлениями ошибок, которые рассматриваются как обнаруживаемые искажения
программ, данных или вычислительного процесса, равна величине, обратной интенсивности
обнаружения ошибок T = 1 / (dndt) = 1/KN0 * exp (Kt)
Следует подчеркнуть статистический характер приведенных соотношений. Дальнейшая
детализация модели описания характеристик программных ошибок связана с уточнением
содержания и значения коэффициента пропорциональности К и с учетом затрат на отладку.
При исследовании ошибок в программах различными авторами был сформулирован ряд
уточнений и допущений, отличных от приведенных выше. Эти допущения, а также специфические
методы построения послужили основой создания нескольких более сложных математических
моделей, отличающихся от простейшей экспоненциальной.
Однако ни одна из этих моделей не имеет явных преимуществ по точности аппроксимации
распределений и прогнозирования числа программных ошибок по сравнению с
простейшей_экспоненциальной_моделью.

Тема 1.8 Анализ рисков и характеристик качества программного обеспечения


при внедрении
Под качеством программного обеспечения будем понимать совокупность свойств ПО,
обусловливающих его пригодность удовлетворять определенные потребности пользователей и
специалистов, участвующих в создании и сопровождении ПО. Из приведенной формулировки
следует, что не все свойства ПО входят в его качество, а только та их совокупность, которая
определяется потребностью в этом ПО. Качество программного продукта можно определить как
«пригодность к использованию». Качество должно гарантироваться процессом разработки.
Контроль качества программного продукта — это систематические действия, подтверждающие
пригодность к использованию программного продукта в целом. Цель контроля качества — дать
количественные меры качества программной системы.

17
Под свойством (характеристикой) ПО будем понимать объективную особенность ПО
(программ и документации), проявляющуюся при его разработке, эксплуатации и сопровождении.
Свойства ПО можно условно разделить на функциональные и конструктивные. Функциональные
свойства отражают возможности и специфику применения программы и обусловливают степень
ее соответствия своему целевому назначению. Они характеризуют программу с точки зрения того,
как в действительности она выполняется. Конструктивные свойства программы более или менее
не зависят от ее функциональных возможностей и назначения. Они характеризуют программу с
точки зрения того, как в действительности она сконструирована.
Для объективной оценки качества ПО его свойства необходимо охарактеризовать
количественно. Показатель качества ПО — количественная характеристика свойства ПО,
входящая в состав его качества и рассматриваемая применительно к определенным условиям его
создания, эксплуатации и сопровождения. Наряду с показателями качества могут использоваться
качественные (словесные) оценки, называемые признаками.
Показатели качества по количеству характеризуемых свойств могут
быть единичными и комплексными(групповыми). Единичный показатель относится только к
одному из свойств, тогда как комплексный характеризует несколько свойств ПО.
Методы определения показателей качества ПО различаются:
 по способам получения информации о ПО — измерительный, регистрационный,
органолептический, расчетный;
 по источникам получения информации — традиционный, экспертный,
социологический.
Измерительный метод основан на получении информации о свойствах и характеристиках
ПО с использованием инструментальных средств. Например, с использованием этого метода
определяется объем ПО — число строк исходного текста программ и число строк —
комментариев, число операторов и операндов, число исполненных операторов, число ветвей в
программе, число точек входа (выхода), время выполнения ветви программы, время реакции и
другие показатели.
Регистрационный метод основан на получении информации во время испытаний или
функционирования ПО, когда регистрируются и подсчитываются определенные события,
например, время и число сбоев и отказов, время передачи управления другим модулям, время
начала и окончания работы.
Органолептический метод основан на использовании информации, получаемой в
результате анализа восприятия органов чувств (зрения, слуха), и применяется для определения
таких показателей как удобство применения, эффективность и т. п.

18
Расчетный метод основан на использовании теоретических и эмпирических зависимостей
(на ранних этапах разработки), статистических данных, накапливаемых при испытаниях,
эксплуатации и сопровождении ПО. При помощи расчетного метода определяются длительность и
точность вычислений, время реакции, необходимые ресурсы.
Экспертный метод применяется в случаях, когда задача не может быть решена никаким
другим из существующих способов, или другие способы являются значительно более
трудоемкими. Экспертный метод рекомендуется применять при определении показателей
наглядности, полноты и доступности программной документации, легкости освоения,
структурности. Определение значений показателей качества ПО экспертному методу
осуществляется группой экспертов-специалистов, компетентных в решении данной задачи, на базе
их опыта и интуиции.
Социологические методы основаны на обработке специальных анкет-вопросников.
Оценка качества ПО проводится на фазах жизненного цикла и включает выбор
номенклатуры показателей, их оценку и сопоставление значений показателей, полученных в
результате сравнения, с базовыми значениями.
Показатели качества объединены в систему из четырех уровней. Каждый вышестоящий
уровень содержит в качестве составляющих показатели нижестоящих уровней. Допускается
вводить дополнительные показатели на каждом из уровней.
Для обеспечения возможности получения интегральной оценки по группам показателей
качества используют факторы качества (1-й уровень): надежность ПО, сопровождаемость,
удобство применения, эффективность, универсальность (гибкость) и корректность. Каждому
фактору качества соответствует определенный набор критериев качества (комплексные
показатели — 2-й уровень), приведенные ниже. Критерии качества определяют одной или
несколькими метриками (3-й уровень). Если критерий качества определяется одной метрикой, то
уровень метрики опускается. Метрики составляются из оценочных элементов (единичных
показателей — 4-й уровень), определяющих заданное в метрике свойство. Число оценочных
элементов, входящих в метрику, не ограничено.
Для показателей качества на всех уровнях (факторы, критерии, метрики, оценочные
элементы) принимается единая шкала оценки от 0 до 1.
Показатели качества на каждом вышестоящем уровне (кроме уровня оценочных элементов)
определяются показателями качества нижестоящего уровня.
Рассмотрим основные показатели качества ПО:
1. Показатели надежности. Характеризуют способность ПО в конкретных областях
применения выполнять заданные функции в соответствии с программными документами в
условиях возникновения отклонений в среде функционирования, вызванных сбоями технических

19
средств, ошибками во входных данных, ошибками обслуживания и другими дестабилизирующими
воздействиями:
a) Устойчивость функционирования. Способность обеспечивать продолжение работы
программы после возникновения отклонений, вызванных сбоями технических средств, ошибками
во входных данных и ошибками обслуживания;
b) Работоспособность. Способность программы функционировать в заданных режимах и
объемах обрабатываемой информации в соответствии с программными документами при
отсутствии сбоев технических средств.
2. Показатели сопровождения. Характеризуют технологические аспекты, обеспечивающие
простоту устранения ошибок в программе и программных документах и поддержания ПО в
актуальном состоянии:
a) Структурность. Организация всех взаимосвязанных частей программы в единое целое с
использованием логических структур «последовательность», «выбор», «повторение»;
b) Простота конструкции. Построение модульной структуры-программы наиболее
рациональным с точки зрения восприятия и понимания образом;
c) Наглядность. Наличие и представление в наиболее легко воспринимаемом виде исходных
модулей, полное их описание в соответствующих программных документах;
d) Повторяемость. Степень использования типовых проектных решений или компонентов,
входящих в ПО.
3. Показатели удобства применения. Характеризуют свойства ПО, способствующие
быстрому освоению, применению и эксплуатации ПО с минимальными трудозатратами с учетом
характера решаемых задач и требованиями к квалификации обслуживающего персонала:
a) Легкость освоения. Представление программных документов и программы в виде,
способствующем пониманию логики функционирования программы в целом и ее частей;
b) Доступность эксплуатационных программных документов. Понятность, наглядность и
полнота описания взаимодействия пользователя с программой в эксплуатационных программных
документах;
c) Удобство эксплуатации и обслуживания. Соответствие процесса обработки данных и
форм представления результатов характеру решаемых задач.
4. Показатели эффективности. Характеризуют степень удовлетворения потребности
пользователя в обработке данных с учетом экономических, вычислительных и людских ресурсов:
a) Уровень автоматизации. Уровень автоматизации функций процесса обработки данных с
учетом рациональности функциональной структуры программы с точки зрения взаимодействия с
ней пользователя и использования вычислительных ресурсов;

20
b) Временная эффективность. Способность программы выполнять заданные действия в
интервал времени, отвечающий определенным требованиям;
c) Ресурсоемкость. Минимально необходимые вычислительные ресурсы и число
обслуживающего персонала для эксплуатации ПО.
5. Показатели универсальности. Характеризуют адаптируемость ПО к новым
функциональным требованиям, возникающим вследствие изменения области применения или
других условий функционирования:
a) Гибкость. Возможность использования ПО в различных областях применения;
b) Мобильность. Возможность применения ПО без существенных дополнительных
трудозатрат на ЭВМ аналогичного класса;
c) Модифицируемость. Обеспечение простоты внесения необходимых изменений и
доработок в программу в процессе эксплуатации.
6. ПОКАЗАТЕЛИ КОРРЕКТНОСТИ. Характеризуют степень соответствия ПО требованиям,
установленным в ТЗ, требованиям к обработке данных и общесистемным требов-ям:
a) Полнота реализации. Полнота реализации заданных функций ПО и достаточность их
описания в программной документации;
b) Согласованность. Однозначное, непротиворечивое описание и использование
тождественных объектов, функций, терминов, определений, идентификаторов и т. д. в различных
частях программных документов и текста программы;
c) Логическая корректность. Функциональное и программное соответствие процесса
обработки данных при выполнении задания общесистемным требованиям;
d) Проверенность. Полнота проверки возможных маршрутов выполнения программы в
процессе тестирования.

Тема 1.9 Целесообразность разработки модулей адаптации


Рассмотрим поколения ПО в зависимости от средств их модификации и адаптации к
требованиям пользователей на этапе установки и эксплуатации.
1. ПО «под ключ»
Первое ПО представляло собой достаточно простые автономные программы для решения
отдельных задач в определенной прикладной области, функционирующие на компьютерах жестко
определенной конфигурации. В качестве системного обеспечения обычно использовались
штатные компоненты программного обеспечения компьютеров: компиляторы с алгоритмических
языков, редакторы текстов, средства организации библиотек программ, архивные системы и т. д.
ПО «под ключ» не требовало развитой системной поддержки и для их функционирования
было достаточно указанных системных средств.

21
Разработчиками ПО «под ключ» являлись прикладные программисты, которые писали
программы на универсальных языках программирования.
2. ПО с установкой и инсталляцией
Началом этапа создания ПО данного типа можно считать появление инсталлируемых
операционных систем (MS DOS, Windows 3.1. и др.).
В отличие от ПО «под ключ», инсталлируемое ПО имело возможность устанавливаться на
компьютерах с различной конфигурацией, задаваемой в момент установки ПО. Это дало мощный
толчок к развитию аппаратных средств компьютерной техники (появились линейки компьютеров:
IBM-совместимые, MAC и др.), а быстрое увеличение ресурсов технических средств позволило
реализовать на уровне программного обеспечения новые функции: графический интерфейс,
многозадачность, универсальность устройств и др.
Постепенно инсталлируемость стала использоваться и при разработке прикладного ПО. Это
позволило разрабатывать ПО для решения целых классов близких задач, устранило дублирование
разработки ПО для компьютеров из одной линейки и снизило цены на ПО. Таким образом,
программирование стало преобразовываться из области искусства в профессиональную отрасль.
3. ПО со встроенными средствами доработки
По пути поддержки специализированных языков программирования пошли также
разработчики и СУБД, например, поддержка языка PL-SQL в СУБД ORACLE.
Не отстают от СУБД и развитые прикладные системы, наиболее ярким представителем которых
является система 1С:Предприятие. Система 1С:Предприятие может дорабатываться и
устанавливаться на малых и больших предприятиях, на предприятиях разных форм собственности
и др.
Таким образом, именно наличие встроенных средств программирования, позволяющих
существенно расширять и модифицировать функции базовой системы, позволяют системам
данного класса получить достаточно широкое распространение и увеличить срок их эксплуатации.
Однако создание и сопровождение прикладных систем на базе систем со встроенными средствами
доработки являются очень трудоемкими.
На понижение этой трудоемкости ориентированы системы следующего класса.
4. ПО, создаваемое на основе проектирования, и самонастраивающееся ПО
Снижение трудоемкости на этапе проектирования и создания ПО осуществляется путем
использования Case-систем моделирования и разработки ПО. Case-системы хорошо
документируют процесс создания и сопровождения ПО, но они ориентированы на
профессиональных разработчиков ПО и создают плохо оптимизированный программный код.
Самонастраивающееся ПО призвано снизить трудоемкость при установке и инсталляции
систем, а также поддерживать качество своего функционирования в процессе эксплуатации.

22
Такими свойствами обладает современная операционная система (ОС) Windows, автоматически
определяющая конфигурацию технических средств компьютера при инсталляции и каждом
запуске системы, а также автоматически определяющая изменения конфигурации технических
средств и устанавливаемое ПО в процессе своего функционирования.
Существенно повысить качество и срок эксплуатации с принципиальным снижением
трудоемкости и затрат на создание и сопровождение систем позволяет только
самоорганизующееся ПО.
5. Самоорганизующееся ПО
Самоорганизующимся является ПО, способное длительное (потенциально бесконечное)
время быть адекватным внешней среде на основе адаптации к изменениям внешней среды
(решаемым задачам, объектам взаимодействия) и внутренней организации системы (объему
данных, их размещению и т. д.). Для обеспечения таких возможностей самоорганизующееся ПО
должно обладать рядом принципиально новых свойств, отличающих его от пассивных систем:
являться автономной активной интенсивной системой, способной самостоятельно
функционировать в определенной изменяющейся среде;
 быть открытой системой на всех уровнях организации: структурном, функциональном,
интерфейсном, организации данных и др.;
 функционировать преимущественно на основе собственной цели и внутренних
потребностей с учетом неспецифических воздействий внешней среды;
 обеспечивать корректность и высокий уровень надежности и эффективности
функционирования в изменяющейся среде;
 обеспечивать взаимодействие с внешней средой на семантическом уровне и
предоставлять простой интерфейс взаимодействия, скрывающий от внешней среды высокую
внутреннюю сложность системы;
 способность системы с течением времени предоставлять внешней среде
(пользователям) все более широкие возможности по решению задач, организации и обработке
данных;
способность системы возникать и формироваться естественным путем (без участия
программистов, разработчиков) и др.
В настоящее время практически нет программных систем, у которых достаточно четко
проявлялись бы указанные свойства.
Простейшими представителями данного класса систем можно считать генетические
алгоритмы, самообучаемые перестраивающиеся нейронные сети и компьютерные вирусы.
Таким образом, создание программных систем данного класса является делом будущего и,
возможно, ознаменует собой третью революцию в области ПО.

23
Рассмотренные поколения ПО позволяют выявить ряд методов, используемых для адаптации
программных систем к изменениям внешней среды и внутренней организации системы:
1. Параметрическая адаптация - настройка параметров ПО.
Параметрическая адаптация является простейшим видом адаптации и предполагает
изменение значений переменных (параметров), определяющих поведение и функционирование
программы. При таком подходе можно настраивать функции и компоненты ПО, а также выбирать
определенные стратегии поведения из допустимого набора стратегий.
2. Функциональная адаптация - изменение функций ПО в допустимых пределах.
Функциональная адаптация обеспечивает изменение функций ПО, в пределах имеющейся
структуры и организации системы. При этом допустима параметрическая настройка всего ПО,
сохраняющая неизменной ее структуру и организацию для выполнения задач, первоначально
заложенных в систему.
3. Организационная адаптация - изменение организации (процессов) в системе.
Организационная адаптация предполагает изменение потоков и процессов, протекающих
внутри системы, с возможностью изменения функций и параметрической настройки. При данной
адаптации происходит перераспределение внутренних ресурсов системы без изменения ее
структуры для достижения более высокой производительности и качественного
исполнения_решаемых_задач.
4. Структурная адаптация - изменение структуры системы.
Структурная адаптация предполагает модификацию или замену одних структурных
компонентов (алгоритмических модулей) системы другими компонентами, позволяющими
программе становиться более адекватной решаемым задачам и условиям функционирования.
При этом возможно использование организационной, функциональной и параметрической
адаптации системы.
5. Размножение - порождение себе подобных потомков.
Размножение, как способ адаптации, является невероятно сложным, но и необычайно
эффективным методом адаптации. Оно позволяет системе порождать потомки, со свойствами
подобными родительским, но обладающими большими возможностями (наличием свободных
ресурсов и способностью к изменениям), что позволяет им более эффективно адаптироваться к
существенным изменениям внешней среды.
6. Развитие - направленный процесс эволюции систем.
Развитие предполагает, как направленный процесс эволюции (изменений) конкретной
системы, включающий 4 этапа: зарождение системы, становление системы определенного
качества, устойчивое функционирование системы, деградацию и гибель системы, так и
популяционно-видовой способ существования и эволюции множеств подобных систем.

24
Таким образом, конкретные системы, порождаясь достаточно простыми, в процессе
существования (функционирования) накапливают информацию о себе, о внешней среде и о
решаемых задачах и становятся более приспособленными для решения задач, изменяющихся во
времени. С другой стороны, параллельное существование систем с разным уровнем развития
позволяет более совершенным системам осуществлять обучение менее развитых систем, что
порождает процесс коэволюции систем и существенно ускоряет прогресс совершенствования и
развития всей популяции систем. Кроме этого, при определенных условиях краткосрочно могут
возникать новые виды развивающихся систем, которые будут существенно более адекватны
внешней среде и решаемым задачам.
Решение проблемы адаптивности программного обеспечения, возможно, является
центральным звеном в создании программных продуктов нового поколения. Адаптивные
программные системы (adaptive software) могут открыть новую страницу в развитии
информационных технологий. Многие компании, прежде всего IBM, Hewlett-Packard и Microsoft,
уже осознали необходимость в системах с элементами саморегулирования и объявили о своих
программах по созданию адаптируемых и адаптивных систем. Это индуцирует развитие
теоретической базы методологий поддержки жизненного цикла программных продуктов.
В настоящее время применяется ряд методов рекомпозиционной адаптации программных
систем. Однако целостная методология проектирования таких систем отсутствует.

25
Часть 2. Методы и средства защиты компьютерных систем
Тема 2.1 Вредоносные программы: классификация, методы обнаружения

К вредоносным программам (иначе называемым разрушающими программными


воздействиями, malware) относятся компьютерные вирусы и программные закладки.
Компьютерный вирус - автономно функционирующая программа, обладающая
одновременно тремя свойствами:
 способностью к включению своего кода в тела других файлов и системных областей
памяти компьютера;
 по следующему самостоятельному выполнению;
 самостоятельному распространению в компьютерных системах.
Программная закладка - внешняя или внутренняя по отношению к атакуемой
компьютерной системе программа, обладающая определенными разрушительными функциями по
отношению к этой системе.
Классификация компьютерных вирусов:
1. По способу распространения в компьютерной системе:
- n файловые вирусы, заражающие файлы одного или нескольких типов;
- n загрузочные вирусы, заражающие загрузочные сектора жестких дисков и дискет;
- n комбинированные вирусы, способные заражать и файлы, и загрузочные сектора дисков.
2. По способу заражения других объектов компьютерной системы:
- n резидентные вирусы, часть кода которых постоянно находится в оперативной памяти
компьютера и заражает другие объекты;
- n нерезидентные вирусы, которые заражают другие объекты в момент открытия уже
зараженных ими объектов.
3. По деструктивным возможностям:
- n безвредные вирусы, созданные в целях «обучения», однако снижающие эффективность
работы компьютерной системы за счет потребления ее ресурсов;
- n неопасные вирусы, создающие различные звуковые и видеоэффекты;
- n опасные и очень опасные вирусы, вызывающие сбои в работе программного и (или)
аппаратного обеспечения компьютера, потерю программ и данных, а потенциально – вывод из
строя аппаратуры КС и нанесение вреда здоровью пользователей.
4. По особенностям реализуемого алгоритма:
- n вирусы-спутники, создающие для заражаемых файлов одноименные файлы с кодом
вируса и переименовывающие исходные файлы (при открытии зараженного файла фактически

26
открывается файл с кодом вируса, в котором после выполнения предусмотренных автором
действий открывается исходный файл);
- n паразитические вирусы, которые обязательно изменяют содержимое заражаемых
объектов;
- n вирусы-невидимки («стелс»-вирусы), в которых путем перехвата обращений
операционной системы к зараженным объектам скрывается факт присутствия вируса в
компьютерной системе (при собственном обращении к дисковой памяти вирусы-невидимки также
используют нестандартные средства для обхода средств антивирусной защиты);
- n вирусы-призраки (полиморфные вирусы), каждая следующая копия которых в
зараженных объектах отличается от предыдущих (не содержит одинаковых цепочек команд за
счет применения шифрования на различных ключах базового кода вируса).
Защита от руткитов:
- Существующие специализированные программы, предназначенные для обнаружения
руткитов, и традиционные антивирусы не дают стопроцентной гарантии безопасности.
- Обладая исходным кодом этих программ, можно создать любые модификации руткитов
или включить часть кода в любую шпионскую программу.
- Главная цель руткитов не прочно закрепиться в системе, а проникнуть в нее.
Предотвращение внедрения программных закладок
Организационные меры:
- Минимизация времени работы в системе с полномочиями администратора.
- Создание отдельной учетной записи для работы в Интернете.
- Осмотрительная работа с почтовыми и офисными программами и др.
Методы предупреждения вирусного заражения:
- физическое или логическое (для отдельных учетных записей) отключение накопителей
для съемных дисков;
- разграничение прав отдельных пользователей и групп на доступ к папкам и файлам
операционной системы и других пользователей;
- ограничение времени работы в компьютерной системе привилегированных
пользователей;
- использование, как правило, только лицензионного программного обеспечения,
приобретенного у официальных представителей фирм-правообладателей;
- выделение не подсоединенного к локальной сети компьютера для тестирования
полученного из ненадежных источников программного обеспечения.
Методы обнаружения компьютерных вирусов:

27
1. Просмотр (сканирование) проверяемых объектов (системных областей дисковой и
оперативной памяти, а также файлов заданных типов) в поиске сигнатур (уникальных
последовательностей байтов) известных вирусов. Недостатки: необходимость постоянного
обновления баз данных сигнатур известных вирусов, неспособность обнаружить новые
компьютерные вирусы.
2. Инспекция (обнаружение изменений в объектах компьютерной системы) путем
сравнения их вычисленных при проверке хеш-значений с эталонными (или проверки ЭЦП для
этих объектов). Недостатки: не все изменения проверяемых объектов вызываются вирусным
заражением, не может помочь при записи на жесткий диск компьютера пользователя уже
зараженного файла.
3. Эвристический анализ – проверка системных областей памяти и файлов с целью
обнаружения фрагментов исполнимого кода, характерного для компьютерных вирусов.
Анализируются тысячи различных характеристик каждого файла. Недостатки: длительность
процедуры проверки, возможность ложных сообщений о найденных вирусах.
4. Мониторинг − постоянное присутствие в оперативной памяти компьютера с целью
сканирования всех открываемых или получаемых извне файлов и контроля всех
«подозрительных» действий других программ (например, обнаружение и блокирование
потенциально опасных результатов web-поиска, ссылок на URL). Недостатки: снижение
эффективности работы системы, возможность выполнения контролируемых действий
незараженными программами.
5. Вакцинирование – присоединение к защищаемому файлу специального модуля
контроля, следящего за целостностью данного файла с помощью вычисления его хеш-значения и
сравнения с эталоном. Недостатки: возможность обхода вирусами-невидимками , неприменимость
для защиты файлов документов.
6. Блокирование потенциально опасных действий пользователя:
a) Установка параметров безопасности и конфиденциальности в обозревателе Интернета.
b) Установка защиты от записи в загрузочные сектора с помощью программы BIOS Setup.
c) Определение недоступных для изменения областей дисковой памяти с помощью драйвера
PCI-контроллера.
Удаление обнаруженных вирусов:
1. Автоматическое − с помощью заранее разработанного алгоритма «лечения» зараженных
известным вирусом объектов.
2. Автоматическое или «ручное» удаление зараженного объекта (с его последующим
восстановлением по сохраненной незараженной резервной копии).

28
3. Полная переустановка системы, включая форматирование дисковой памяти,
восстановление главного загрузочного сектора, установку операционной системы и прикладного
программного обеспечения, восстановление файлов данных с резервных носителей информации.

29
Тема 2.2 Антивирусные программы: классификация, сравнительный анализ

Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько


видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие
программы называются антивирусными.
Различают следующие виды антивирусных программ:
- программы-детекторы;
- программы-доктора или фаги;
- программы-ревизоры;
Программы-доктора или фаги, а также программы-вакцины не только находят
зараженные вирусами файлы, но и «лечат» их, т.е. удаляют из файла тело программы-вируса,
возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной
памяти, уничтожая их, и только затем переходят к «лечению» файлов. Среди фагов выделяют
полифаги, т.е. программы-доктора, предназначенные для поиска и уничтожения большого
количества вирусов. Наиболее известные из них: AVP, Norton AntiVirus, Doctor Web.
Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-
доктора быстро устаревают, и требуется регулярное обновление версий.
Программы-ревизоры относятся к самым надежным средствам защиты от вирусов.
Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска
тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя
сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран
монитора. Как правило, сравнение состояний производят сразу после загрузки операционной
системы. При сравнении проверяются длина файла, код циклического контроля (контрольная
сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют
достаточно развитые алгоритмы, обнаруживают стелсвирусы и могут даже очистить изменения
версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров
относится широко распространенная в России программа Adinf.
Программы-фильтры или «сторожа» представляют собой небольшие резидентные
программы, предназначенные для обнаружения подозрительных действий при работе компьютера,
характерных для вирусов. Такими действиями могут являться:
1. попытки коррекции файлов с расширениями COM, EXE;
2. изменение атрибутов файла;
3. прямая запись на диск по абсолютному адресу;
4. запись в загрузочные сектора диска;
5. загрузка резидентной программы.
30
При попытке какой-либо программы произвести указанные действия «сторож» посылает
пользователю сообщение и предлагает запретить или разрешить соответствующее действие.
Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней
стадии его существования до размножения. Однако, они не «лечат» файлы и диски. Для
уничтожения вирусов требуется применить другие программы, например, фаги.
Вакцины или иммунизаторы - это резидентные программы, предотвращающие заражение
файлов. Вакцины применяют, если отсутствуют программы-доктора, «лечащие» этот вирус.
Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск
таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их
зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют
ограниченное применение.
Своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение
обнаруженных вирусов на каждом компьютере позволяют избежать распространения вирусной
эпидемии на другие компьютеры.
AntiViral Toolkit Pro
AVP имеет удобный пользовательский интерфейс, большое количество настроек,
выбираемых пользователем, а также одну из самых больших в мире антивирусных баз, что
гарантирует надежную защиту от огромного числа самых разнообразных вирусов.
В ходе работы AVP сканирует следующие области:
- Оперативную память.
- Файлы, включая архивные и упакованные.
- Системные сектора, содержащие Master Boot Record, загрузочный сектор (Boot-сектор) и
таблицу разбиения диска (Partition Table).
AntiViral Toolkit Pro имеет ряд особенностей, характеризующих его работу:
- детектирование и удаление огромного числа самых разнообразных вирусов, в том числе
полиморфных или самошифрующихся вирусов; стелс-вирусов или вирусов-невидимок; макро
вирусов, заражающих документы Word и таблицы Excel;
- сканирование внутри упакованных файлов (модуль Unpacking Engine);
- сканирование внутри архивных файлов (модуль Extracting Engine);
- сканирование объектов на гибких, локальных, сетевых и CD-ROM дисках;
- эвристический модуль Code Analyzer, необходимый для детектирования неизвестных
вирусов;
- поиск в режиме избыточного сканирования;
- проверка объектов на наличие в них изменений;

31
- «AVP Monitor» - резидентный модуль, находящийся постоянно в оперативной памяти
компьютера и отслеживающий все файловые операции в системе. Позволяет обнаружить и
удалить вирус до момента реального заражения системы в целом;
- удобный пользовательский интерфейс;
- создание, сохранение и загрузка большого количества различных настроек;
- механизм проверки целостности антивирусной системы;
- мощная система помощи;
- AVP Центр Управления - программа-оболочка, позволяющая организовать эффективную
антивирусную защиту на ПК.
Doctor Web
Программа DoctorWeb предназначена для борьбы с полиморфными вирусами, способна
обнаруживать изменения в собственном теле. С помощью мощного аналитического анализатора
может распознавать заражение файлов неизвестными вирусами, в том числе в упакованных
файлах.
Программой предусматривается возможность проведения эвристического анализа на трех
уровнях. При этом исследуются файлы и системные области дисков с целью обнаружения
неизвестных вирусов по характерным кодовым последовательностям.
Работа с программой может выполняться в режиме полноэкранного интерфейса с
использованием меню и диалоговых окон или в режиме вызова из командной строки. Второй
вариант предпочтителен при многократном регулярном использовании программы для контроля
дискет. При этом для удобства команду запуска программы DoctorWeb действиями, которые могут
означать присутствие неизвестного вируса (автозащита с технологией вирусного датчика).
Перечисленные автоматические функции включены по умолчанию. В зависимости от
степени риска в той среде, где используется компьютер, можно усилить или ослабить меры
защиты путем настройки различных параметров.
Norton AntiVirus
Кроме автоматического поиска вирусов средствами автозащиты, можно в любой момент
начать ручной поиск или назначить его выполнение на определенное время.
NortonAntiVirus выдает сигналы тревоги при обнаружении:
- известного или неизвестного вируса;
- вирусоподобного действия (из числа тех, которые обычно совершаются вирусами при
распространении или порче файлов);
- изменения вакцинации (когда файл либо не вакцинирован, либо подвергся изменению с
момента последней вакцинации).

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

Тема 2.3 Фаервол: задачи, сравнительный анализ, настройка


Фаервол, (firewall - огненная стена) ещё его называют брандмауэр или сетевой экран, это
программа для защиты компьютеров от сетевых атак и от потери конфиденциальных данных.
Основной задачей сетевого экрана является защита компьютера от несанкционированного
доступа. Кроме того, фаерволы часто называют фильтрами, так как их основная задача — не
пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в правилах.
Обычно сетевые экраны запускаются как служба, при загрузке операционной системы и
контролирует сетевую активность компьютера. Фаервол является преградой для внешних сетевых
атак на компьютер пользователя.
Большинство таких программ легко настраиваются и имеют автоматический режим для
неопытных пользователей. Зачастую в хороших фаерволах есть режим автоматического обучения,
программа следит за входящими и исходящими соединениями и добавляет их в список
доверенных или в блокированных.
Outpost Firewall — программа для защиты компьютера от хакерских атак из Интернета.
Кроме этого, Аутпост обеспечивает блокировку загрузки рекламы и активного содержимого веб-
страниц, а тем самым — их более быструю загрузку. От российской компании Agnitum.
Outpost Firewall — выпускается в двух вариантах: Outpost Firewall Pro (лицензия Shareware)
и Outpost Firewall Free (лицензия Freeware)
Возможности программы
 Фильтрация входящих и исходящих сетевых соединений
 Глобальные правила для протоколов и портов
 Создания правил сетевого доступа для известных приложений на основе предустановок

33
 Политики блокировки задают реакцию Outpost на соединение, отсутствующее в
правилах — автоматически отклонить его, разрешить или выдать запрос на создание правила,
кроме того, блокировка/разрешение всех соединений
 Контроль компонентов, контроль скрытых процессов и контроль памяти процессов
позволяют устанавливать ограничения на сетевую активность для отдельных приложений и
процессов, определяя, какие именно — входящие или исходящие — соединения разрешены для
конкретных приложений
 Визуальное оповещение о событиях (например, о блокировании соединения,
попытке сетевой атаки) с помощью всплывающих окон
 Наглядное отображение сетевой активности
 Журнал действий программы, в том числе и подключаемых модулей
 Внутренняя защита (например, от попыток остановить сервис) и возможность задать
пароль на изменение конфигурации.
В состав дистрибутива Outpost Firewall Pro входят следующие плагины (программный
модуль):
 Реклама — позволяет блокировать интернет-рекламу по ключевым словам и
типичным размерам рекламных баннеров
 Интерактивные элементы — контролирует деятельность следующих активных web-
элементов: ActiveX, Java-апплеты, сценарии Java Script и, Cookies, всплывающие окна,
скрытые фреймы, Flash, анимированные GIF
 Детектор атак — обнаруживает и блокирует попытки сетевых атак
 Фильтрация почтовых вложений — обнаруживает и переименовывает потенциально
опасные вложения в электронной почте
 DNS — кэширование наиболее часто используемых записей DNS для ускорения
доступа к ним
 Разное — блокировка сайтов с нежелательным содержимым по ключевым словам
и URL
 Anti-Spyware — блокировка шпионского программного обеспечения и
предотвращение отправки через сеть Интернет конфиденциальной информации
Comodo Internet Security - бесплатный файрвол, разработанный американской компанией.
Это комплексное решение, включающее наряду с файрволом защиту от троянов и вирусов и
другие функции. Программа включает огромное число разнообразных настроек. Платная версия
имеет дополнительные функции по защите, оптимизации и настройке ПК и шифровке данных,
передаваемых по беспроводным соединениям.
Возможности программы

34
1. Проактивная защита.
2. Защита от интернет-атак.
3. Защита от переполнения буфера.
4. Защита от несанкционированного доступа.
5. Защита важных системных файлов и записей реестра от внутренних атак.
6. Обнаружение переполнения буфера, которое происходит в HEAP памяти.
7. Обнаружение нападений ret2libc
Kaspersky Internet Security — пакет программ для комплексной защиты персональных
компьютеров. Программа обеспечивает: антивирусную защиту, защиту от сетевых атак, спама,
неизвестных угроз, интернет-мошенничества и позволяет контролировать доступ пользователей
компьютера к интернету.
Защита компьютера в реальном времени обеспечивается следующими компонентами
защиты:
 Файловый Антивирус: Контролирует файловую систему компьютера. Он проверяет
все открываемые, запускаемые и сохраняемые файлы на вашем компьютере и на всех
присоединенных дисках. Каждое обращение к файлу перехватывается Kaspersky Internet Security,
и файл проверяется на присутствие известных вирусов. Дальнейшая работа с файлом возможна
только в том случае, если файл не заражен или был успешно вылечен программой. Если файл по
каким-либо причинам невозможно вылечить, он будет удален; при этом его копия будет сохранена
в резервном хранилище, или помещён на карантин.
 Почтовый Антивирус: Проверяет все входящие и исходящие почтовые сообщения
вашего компьютера. Он анализирует электронные письма на присутствие вредоносных программ.
Письмо будет доступно адресату только в том случае, если оно не содержит опасных объектов.
Кроме того, компонент анализирует почтовые сообщения на предмет фишинг-мошенничества.
 Веб-антивирус: Перехватывает и блокирует выполнение скрипта, расположенного на
веб-сайте, если он представляет угрозу. Строгому контролю также подвергается весь HTTP-
трафик. Кроме того, компонент анализирует веб-страницы на предмет фишинг-мошенничества.
 IM-антивирус: Обеспечивает безопасность работы с интернет-пейджерами.
Компонент защищает информацию, поступающую на ваш компьютер по протоколам интернет-
пейджеров. IM-антивирус обеспечивает безопасную работу со многими программами,
предназначенными для быстрого обмена сообщениями.
 Контроль программ: Регистрирует действия, совершаемые программами в системе, и
регулирует деятельность программ, исходя из того, к какой группе компонент относит данную
программу. Для каждой группы программ задан набор правил. Эти правила регламентируют
доступ программ к различным ресурсам.

35
 Сетевой экран: Обеспечивает безопасность вашей работы в локальных сетях и
интернете. Компонент производит фильтрацию всей сетевой активности согласно правилам двух
типов: правилам для программ и пакетным правилам.
 Проактивная защита: Позволяет обнаружить новую вредоносную программу ещё до
того, как она успеет нанести вред. Компонент основан на контроле и анализе поведения всех
программ, установленных на вашем компьютере. На основании выполняемых действий Kaspersky
Internet Security принимает решение о том, является программа потенциально опасной или нет.
Таким образом, ваш компьютер защищен не только от уже известных вирусов, но и от новых, ещё
не исследованных.
 Защита от сетевых атак: Запускается при старте операционной системы и
отслеживает во входящем трафике активность, характерную для сетевых атак. Обнаружив
попытку атаки на компьютер, Kaspersky Internet Security блокирует любую сетевую активность
атакующего компьютера в отношении вашего компьютера.
 Анти-спам: Встраивается в установленный на вашем компьютере почтовый клиент и
контролирует все поступающие почтовые сообщения на предмет спама. Все письма, содержащие
спам, помечаются специальным заголовком. Предусмотрена также возможность настройки Анти-
спама на обработку спама (автоматическое удаление, помещение в специальную папку и т. д.).
Также компонент анализирует почтовые сообщения на предмет фишинг-мошенничества.
 Мониторинг сети: Компонент, предназначенный для просмотра информации о сетевой
активности в реальном времени.
 Анти-фишинг: Компонент, встроенный в веб-антивирус, анти-спам и IM-антивирус,
который позволяет проверять веб-адреса на принадлежность к спискам фишинговых и
подозрительных веб-адресов.
 Анти-баннер: Блокирует рекламную информацию, размещенную на специальных
баннерах, встроенных в интерфейс различных программ, установленных на вашем компьютере, и
находящихся в интернете.
 Родительский контроль: Компонент программы, выполняющий функции контроля
доступа пользователей компьютера к веб-ресурсам. Основной задачей Родительского контроля
является ограничение доступа, в первую очередь, к веб-сайтам, предназначенным для взрослой
аудитории, затрагивающим темы порнографии, оружия, наркотиков, провоцирующим жестокость,
насилие и т. д., а также к веб-сайтам, которые являются потенциальной причиной потери времени
(чаты, игровые ресурсы) или денег (интернет-магазины, аукционы).
 Безопасная среда: Позволяет запускать приложения в безопасном для системы
окружении (т. н. песочница). Это может быть использовано для запуска потенциально опасного
ПО или для анонимного веб-серфинга.

36
 Проверка ссылок: Дополнение для браузеров Internet Explorer и Mozilla Firefox,
проверяющее ссылки на просматриваемой веб-странице на предмет заражения веб-страниц, на
которые они ссылаются
 Мониторинг активности: Компонент защиты «Мониторинг активности» отслеживает
активность программ в системе и предоставляет расширенную информацию другим компонентам
защиты. Кроме того, благодаря сохраняемой истории активности программ, компонент может
выполнять откат действий вредоносной программы при обнаружении вредоносной активности
различными компонентами защиты.
 Усовершенствованная функциональность Безопасной среды: Безопасный запуск
программ представляет собой изолированный рабочий стол, на котором вы можете запускать
подозрительные программы без вреда для основной операционной системы.
 Веб-фильтр: Для усиления защиты при работе в интернете добавлены новые модули:
Веб-фильтр — включает в себя модуль проверки ссылок, уже известный с предыдущей версии
программы, а также предоставляет возможность блокировать доступ к небезопасным веб-сайтам,
что позволяет вам оставаться в пределах безопасной зоны интернета.
 Гео-фильтр: Позволяет вам разрешить или запретить доступ к веб-сайтам на основе их
принадлежности к доменам. Это помогает, например, запретить доступ к веб-сайтам,
принадлежащим к региональным доменам с высокой степенью зараженности.
 Контроль программ и Kaspersky Security Network: Позволяет эффективнее
определять статусы программ и настраивать правила для программ, используя данные Kaspersky
Security Network, основанные на статистике работы Контроля программ на компьютерах
множества пользователей.
 Проверка во время простоя компьютера: С помощью проверки во время простоя
компьютера проверка компьютера на вирусы теперь может выполняться в те промежутки времени,
когда вы не работаете за компьютером, и останавливаться, когда вы возвращаетесь к работе за
компьютером. Это позволяет регулярно выполнять проверку и в то же время не снижать
быстродействие компьютера тогда, когда он вам нужен.
 Расширена функциональность Родительского контроля: Теперь можно
контролировать доступ пользователя к компьютеру и интернету, запуск пользователем
компьютерных программ, ограничивать просмотр веб-страниц с нежелательным содержимым и
загрузку файлов из интернета, контролировать общение пользователя в социальных сетях и через
интернет-пейджеры, а также просматривать отчеты о действиях контролируемого пользователя.
Для оптимизации настройки Родительского контроля предусмотрены экспорт и импорт
параметров работы компонента для учетной записи.

37
Тема 2.4 Групповые политики. Аутентификация. Учетные записи
Управление групповыми политиками позволяет администраторам задавать
конфигурацию операционных систем серверов и клиентских компьютеров. Реализуется эта
функциональность с помощью оснастки «Редактор объектов групповой политики».
Для компьютеров, входящих в домен Active Directory, используются групповые политики,
определяющие политики безопасности, используемые в рамках сайта, домена или набора
организационных единиц (OU – organizational units).
Групповые политики и Active Directory позволяют:
 централизованно управлять пользователями и компьютерами в масштабах
предприятия;
 автоматически применять политики информационной безопасности;
 понижать сложность административных задач (например, обновление операционных
систем, установка приложений, управление любыми службами и компонентами на платформе
Windows);
 унифицировать параметры безопасности в масштабах предприятия;
 обеспечить эффективную реализацию стандартных вычислительных средств для групп
пользователей (позволяет создать ИТ-инфраструктуру предприятия, ориентированную на
потребности пользователей, сформированные в строгом соответствии с их должностными
обязанностями и уровнем квалификации).
Применение групповых политик и Active Directory для сайтов, доменов и
организационных единиц необходимо реализовывать с учетом следующих правил:
 объекты групповой политики (GPO) хранятся в каждом домене индивидуально;
 с одним сайтом, доменом или организационной единицей может быть сопоставлено
несколько GPO;
 несколько сайтов, доменов или организационных единиц могут использовать
единственную GPO;
 любому сайту, домену или организационной единице можно сопоставить любую GPO;
 параметры, определяемые GPO, можно фильтровать для конкретных групп
пользователей или компьютеров на основе их членства в группах безопасности или с помощью
WMI-фильтров.
При администрировании ИТ-инфраструктуры предприятия администраторы посредством
механизма групповой политики могут производить настройку приложений, операционных систем,
безопасность рабочей среды пользователей и информационных систем в целом. Для этого
используются следующие возможности:

38
 политика на основе реестра. С помощью редактора объектов групповой политики
можно задать параметры в реестре для приложений, операционной системы и еѐ компонентов;
 параметры безопасности. Администраторы могут указывать параметры локальной,
доменной и сетевой защиты для компьютеров и пользователей в области действия GPO, используя
шаблоны безопасности;
 ограничения на использование программ. Данные ограничения предназначены для
защиты от вирусов, выполнения нежелательных программ и атак на компьютеры;
 распространение и установка программ. Обеспечивается возможность
централизованного управления установкой, обновлением и удалением приложений;
 сценарии для компьютеров и пользователей. Данные средства позволяют
автоматизировать операции, выполняемые при запуске и выключении компьютера, при входе и
выходе пользователя;
 мобильные пользовательские профили и перенаправление папок. Профили
хранятся на сервере и позволяют загружаться на тот компьютер, где пользователь входит в
систему. Перенаправление папок позволяет размещать важные для пользователя папки на сервере;
 автономные папки. Данный механизм позволяет создавать копии сетевых папок,
синхронизировать их с сетью и работать с ними при отключении сети;
 поддержка Internet Explorer. Эта возможность позволяет администраторам проводить
управление конфигурацией Microsoft Internet Explorer на компьютерах с поддержкой групповой
политики.
Для общего контроля применения групповой политики используются механизм WMI –
фильтров (Windows Management Instrumentation). Данное решение позволяет администраторам
создавать и модифицировать WMI – запросы для фильтрации параметров безопасности,
определяемых групповыми политиками. WMI – фильтры позволяют динамически задавать
область действия групповой политики на основе атрибутов целевого компьютера.
Идентификация пользователя – распознавание пользователя компьютерной системы на
основании ранее заданного описания. Идентификация имеет целью определение полномочий
пользователя (права доступа к данным и выбора режима их использования).
Аутентификация пользователя –процедура проверки прав пользователя на доступ к
информации или на выполнение определенных действий.
Идентификация позволяет пользователю назвать себя (сообщить свое имя).
Посредством аутентификации вторая сторона убеждается, что субъект действительно тот, за кого
он себя выдает ("проверка подлинности").
Аутентификация бывает односторонней и двусторонней (взаимной). Пример
односторонней аутентификации – процедура входа пользователя в систему.

39
3 группы способов аутентификации:
1) основанные на том, что пользователь знает некоторую подтверждающую его подлинность
информацию. Это парольная аутентификация и аутентификация на основе модели
«рукопожатия».
2) основанные на том, что пользователь имеет некоторый материальный объект, который
может подтвердить его подлинность (пластиковая карта с идентифицирующей пользователя
информацией и т п) – программно-аппаратные методы
3) основанные на таких данных, которые позволяют однозначно считать, что пользователь и
есть тот самый субъект, за которого себя выдает (биометрические данные, особенности
клавиатурного почерка и росписи мыши и т п)
Парольная аутентификация
При выборе пароля необходимо руководствоваться двумя взаимоисключающими
правилами: пароль должен трудно подбираться и легко запоминаться. Сложность подбора
пароля определяется мощностью множества символов (N) и минимально возможной длиной
пароля (k). Число всех возможных вариантов паролей С=N^k.
Другие параметры политики учетных записей пользователей:
1) max срок действия пароля;
2) несовпадение пароля с логическим именем пользователя;
3) неповторяемость паролей одного пользователя.
Еще один аспект политики учетных записей пользователей – определение
противодействия системы попыткам подбора паролей. Правила:
1) ограничение числа попыток входа в систему;
2) скрытие логического имени последнего работавшего пользователя;
3) учет всех попыток входа в систему.
Реакция системы на неудачную попытку входа:
1) блокировка учетной записи за превышение max возможных попыток
2) нарастающее увеличение временной задержки перед предоставлением пользователю
следующей попытки входа (постоянная блокировка учетной записи нецелесообразна, так как
позволит нарушителю заблокировать работу легального пользователя)
Для первоначального ввода или для смены паролей используются два правила:
1) символы не отображаются на экране;
2) ввод пароля повторяется дважды.
Хранение пароля в базе данных осуществляется, как правило, в зашифрованном виде.
Минусы:

40
 поскольку при шифровании необходимо использовать ключ, необходимо обеспечить
его защищенное хранение
 опасность расшифрования любого пароля и получения его в открытом виде.
Виды парольной аутентификации:
1) с использованием многоразовых паролей;
2) с использованием одноразовых паролей. Пользователь получает список паролей Р1, Р2,
… РN. Каждый из паролей действует только на один сеанс входа. В этом случае знание уже
использовавшегося пароля ничего не даст злоумышленнику.
Недостатки: организация защищенного хранения длинного списка паролей, неясность с
номером следующего пароля, если при вводе предыдущего вход в систему был не осуществлен из-
за сбоя в работе системы. Эти недостатки могут быть устранены, если список паролей
генерировать на основе необратимой функции, например, хеширования. Пусть Р – начальный
пароль пользователя, а F – необратимая функция. Функция F применяется последовательно i раз
для получения Pi : F^i(P) = F(F(…F(P)…)). Тогда список одноразовых паролей создается
следующим образом: P1 = F^n (P), P2 = F^(n-1)(P), … , Pn = F(P). При сбое в процессе входа
пользователя в систему всегда осуществляется выбор последующего пароля из списка, а система
последовательно применяется функцию F к введенному паролю до совпадения с последним
принятым от него паролем или до превышения длины списка.
В любом варианте парольной аутентификации подтверждение подлинности осуществляется
на основе ввода некоторой конфиденциальной информации, которую можно выманить, подобрать
и т п. Аутентификация на основе модели «рукопожатия» во многом свободна от этих
недостатков.
Аутентификация на основе модели «рукопожатия»
Пользователь П и система С согласовывают при регистрации пользователей функцию f,
известную только им. Протокол аутентификации пользователя в этом случае выглядит следующим
образом:
1) С: генерация случайного значения х, вычисление у = f(х), вывод х.
2) П: вычисление у’ = f ‘ (x), ввод y’.
3) C: если y и y’ совпадают, то пользователь допускается к работе в системе, иначе попытка
входа в систему отклоняется.
К функции f предъявляется требование, чтобы по известным x и f(x) нельзя было угадать f.
Преимущества: между пользователем и системой не передается никакой конфиденциальной
информации, каждый последующий сеанс входа отличен от предыдущего. Может использоваться
в случае необходимости взаимного подтверждения пользователей компьютерной сети.
Недостатки: большая длительность этой процедуры по сравнению с парольной.

41
Тема 2.5 Тестирование защиты программного обеспечения
Данный вид услуги позволяет руководителям в полной мере контролировать качество
разработки защиты программного продукта, которое без надлежащего контроля, как правило,
оказывается на очень низком уровне и взламывается за 2-3 минуты. И, разумеется, после
появления взломанной копии данного продукта в сети интернет все огрехи в разработке и
реализации защиты списываются на деяния «всемогущественных хакеров», образ которых прочно
навязан сознанию современным кинематографом.
Результатом данной услуги является подробный отчет о текущем состоянии защитных
механизмов вашего программного продукта и способах их обхода, сложности и затрат
необходимых на реализацию данного способа взлома на современном этапе развития техники и
исследовательского ПО. Из него руководитель может почерпнуть для себя общее качество
разработки защиты программистами компании, качество реализации отдельных модулей, оценить
в целом затраты на взлом защиты. Программисты компании по разработанному отчету увидят
свои огрехи и места в программном коде требующие более пристального внимания. После
ознакомления с подробным отчетом, разработка защитных механизмов может быть продолжена на
основании данных исследования куда более целенаправленно и предметно.
Варианты тестирования защиты программных продуктов:
1. Однократное тестирование
Если Вы уверены в качестве защиты своего программного продукта и хотите лишний раз
удостовериться в ее надежности, или же вы хотите первоначально проверить свой программный
продукт, то этот вариант для вас.
2. Многократное тестирование
Как следствие первоначального тестирования ваш программный продукт будет подвергнут
изменениям и доработке, с целью улучшения качества защитных механизмов, так же скорее всего
ваш программный продукт будет регулярно подвергаться исправлениям и улучшениям.
Соответственно возникает необходимость в повторном и последующих тестированиях. Именно
поэтому, мы предлагаем вам заказать тестирование вашего программного обеспечения сразу на
определенное число раз в течение календарного года.
3. Регулярное тестирование
Если ваш программный продукт регулярно подвергается изменениям и доработке, и вы
хотите всегда содержать уровень защиты на высоком профессиональном уровне, то этот вариант
для вас. Данный вариант предусматривает регулярное тестирование ПО в течение какого-то
календарного периода (месяц, квартал). Вы всегда будете уверены, что ваша защита оценена на
основании последних данных в данной отрасли.

42
В рамках данной услуги осуществляются следующие действия:
 Производится установка и первичный анализ структуры программного продукта, а
также механизма его регистрации.
 Программное обеспечение осматривается на наличие внешних блоков защиты, а также
модификаторов структуры, препятствующих исследованию. В случае их обнаружения,
производится их устранение или обход.
 Производится дизассемблирование программного продукта с оценкой и анализом
внутренней структуры.
 В программном коде ведется поиск потенциально уязвимых мест, проводится их
изучение и анализ.
 Разрабатываются стратегии атаки на защиту программы.
 Программное обеспечение атакуется с использованием найденных недочетов в
реализации защитных механизмов.
 Оценивается успешность проведенных атак по степени их простоты и эффективности.
 Производится атака на приложение без его модификации, если это возможно.
 Создается подробный отчет с указанием всех факторов повлиявших на ход
исследования. Делаются выводы, оценивается качество реализации и взломоустойчивость
защитных механизмов.
Разработка оптимальной стратегии защиты ПО
Абсолютно все фирмы, занимающиеся разработкой программного обеспечения,
сталкиваются с выбором оптимальной стратегии его защиты. У каждого программного продукта
своя специфика, свои методы работы, свои объекты, поэтому говорить об универсальной методике
полностью гарантирующей безопасность коммерческого ПО не приходится.
Разработка оптимальной стратегии защиты программы от взлома разбивается на
несколько этапов:
1. Комплексный анализ программного обеспечения, условий его распространения,
используемых ресурсов и других важных деталей.
2. Оценка материально-технической возможности внедрения, тех или иных элементов
защиты (некоторые виды защиты требуют дополнительной финансово-технической базы)
3. Разработка 2-3 стратегий защиты заданного программного обеспечения на основании
результатов анализа и оценки.
4. Составление подробного отчета с указанием данных, полученных в результате оценки и
анализа программного обеспечения, подробным описанием 2-3 стратегий защиты с указанием
сильных и слабых сторон, а также с указанием нюансов внедрения каждой из стратегий.

43
В рамках данной услуги осуществляются следующие действия:
 Производится первичный анализ внешних факторов: условия распространения,
варианты поставки, используемые компоненты, язык реализации, наличие ключевых ресурсов,
приоритеты развития и другие факторы.
 Оценивается текущее состояние защитных механизмов и делается предположение об
их качестве.
 Разрабатываются ключевые элементы защиты, на основании которых будут построены
основные стратегии.
 Производится дополнительный анализ программного обеспечения, вырабатываются
вторичные методики защиты.
 Оцениваются полученные результаты. На основании полученных оценок
разрабатываются 2-3 стратегии защиты.
 Стратегии подвергаются комплексной оценке, и в случае необходимости производится
их доработка.
 Все данные разработки группируются в сводные отчеты:
1. Отчет для руководителя. В данном отчете группируются все данные, полученные в
результате разработки стратегии защиты, а также выводы и рекомендации по выбору стратегий.
Данный отчет позволяет руководителю в полной мере оценить масштаб разработки защиты
программного обеспечения, на основании представленных данных выбрать основной вариант и
передать его для внедрения
2. Отчет для разработчика. Данный отчет формируется в отдельности для каждой
стратегии защиты и содержит рекомендации для программиста по разработке и внедрению
элементов защиты.

Тема 2.6 Средства и протоколы шифрования сообщений


Практические реализации протоколов обеспечения безопасности с применением
симметричных шифраторов.
Протокол AKEP 2
Один из наиболее простых протоколов использующих ключевую хэш-функцию MAC и
работающий с передачей трех сообщений для аутентификации пользователей на двух общих
секретных ключах (один для поддержки протокола шифрования, другой для прокола
аутентификации).
1) А генерирует и передает В случайное число rai.

44
2) В получает то А сообщение, добавляет к нему свое случайное число rbi и имя В и А.
Вычисляет хэш-функцию на секретном ключе K, Hk(rbi, rai, A, B)=hk. Передает его вместе с
{rbi, rai, A, B} корреспонденту А.
3) А принимает сообщение {rb’i, ra’i, A’, B’},h’k вычисляет Hk(rb’i, ra’i, A’, B’)
сравнивает h’k = hk и rb’i= rbi, проверяя подлинность сообщения и случайного числа.
4) Оба корреспондента вычисляют Hk(rbi)= hbk, на втором секретном ключе K2 и
принимают hbk за сеансовый ключ.
Протокол SKID
В данном протоколе корреспонденты также используют ключевую хэш-функцию MAC для
обеспечения безопасной передачи данных и предполагают, что А и В используют общий
секретный ключ, K. Одна из модификаций протокола позволяет обеспечить аутентификацию
корреспондентов:
1) А генерирует случайное число ra(согласно требованиям протокола SKID-2 64-битовое
число) и посылает это число В.
2) В генерирует случайное число rb (согласно требованиям протокола SKID-2 64-битовое
число), вычисляет ОНФ на ключе K следующее преобразование: Hk(rb, ra, B)=hbk , где В это ID
корреспондента В, и посылает А: hbk, rb
3) А вычисляет от полученных данных Hk(rb’, ra’, B)=hb’k и сравнивает результат со
значением hbk , полученным от В. Если гипотеза , hb’k = hbk подтверждается, то корреспондент В
аутентифицирован.
Протокол SKID3 обеспечивает двустороннюю обоюдную аутентификацию корреспондентов
А и В. Итерации (1) - (3) протоколов SKID2 и SKID3 совпадают, а затем в данном протоколе, для
последующей аутентификации А выполняются следующие действия:
1) А, вычисляет ОНФ Hk(rb, A)=hak посылает В hak, где А, это ID корреспондента А.
2) В рассчитывает Hk(rb, A)=ha’k и сравнивает результат со значением, полученным от А. Если
гипотеза hak =ha’k подтверждается, то корреспондент А аутентифицирован.
Hk, это обозначение ОНФ на ключе K, являющееся алгоритмом вычисления ключевой хэш-
функции, принятым в протоколах SKID. Но так как протокол инвариантен к процедуре
вычисления ОНФ, то возможно применение любых других функций. Следовательно имеется
возможность оптимизации ВВХ протокола по предъявленным требованиям стойкости.
Один из вариантов подтверждения подлинности рассматривается выше при описании
протоколов распределения ключа и заключается в выполнении ЭЦП под сообщением. Эти
протоколы гарантируют аутентификацию легитимных пользователей со стойкостью КС, на
которой выполнялась ЭЦП, при условии достоверности установленных сертификатов.

45
С применением симметричных алгоритмов возможна ситуация в которой аутентификация
косвенно является частью протокола организации шифрованной связи (что, отчасти, было
реализовано протоколе запрос-ответ). Определяется это следующим образом, при передаче
зашифрованной информации противник, не обладающий секретным ключом, не может прочитать
передаваемые сообщения, но если у него появляется секретный ключ, он автоматически является
легитимным пользователем. В случае сетевой аутентификации, с применением разветвленной
топологии организации связи, возникает необходимость в ЦРК создания матриц ключевых
наборов, что также решает задачу аутентификации на общем секретном ключе шифрования.
Этот класс протоколов определен разделением процедур аутентификации и распределения
ключа на подпротоколы удостоверения подлинности корреспондентов и обмена ключевым
материалом для решения задачи обеспечения безопасной связи. Данные шифруются на сеансовом
ключе, динамически сменяемом либо во времени, либо статичном, индивидуально ассоциируемом
с каждым сеансом связи.
В большей части протоколов предполагается, что каждый абонент сети обладает некоторым
секретным долгосрочным ключом, выделенным ему ЦРК по гарантировано безопасному каналу.
Практические реализации протоколов обеспечения безопасности с применением
гибридных криптографических алгоритмов.
Протокол Wide-Mouth Frog
Протокол Wide-Mouth Frog [M. Burrows, M. Abadi, R. Nidham “A Logic Autentification”, M.
Burrows, M. Abadi, R. Nidham “Rejoiner to Nessett”], является самым простым и наиболее
прозрачным протоколом поддержки протокола шифрованной связи. Корреспондент А и ЦА,
совмещенный с ЦРК, имеют общий долгосрочный секретный ключ, используемый только для
распределения сеансового ключа. Алгоритм работы протокола приведен ниже:
А генерирует сеансовый ключ, объединяет метку времени, имя вызываемого
корреспондента В и сеансовый ключ, затем шифрует созданное сообщение общим с ЦА ключом и
посылает его ЦА вместе со своим именем.
ЦА дешифрует сообщение А. Затем он добавляет новую метку времени, имя А и сеансовый
ключ, далее шифрует полученное сообщение общим с В ключом. ЦА посылает криптограмму В.
Наибольшим допущением, сделанным в этом протоколе, является то, что А обладает
достаточной компетентностью для генерации хороших сеансовых ключей . Необходимо помнить,
случайные числа генерировать не является простой задачей.
Практические реализации протоколов обеспечения безопасности с применением
симметричных шифраторов
Протокол Wide-Mouth Frog

46
Один из наиболее простых протоколов использующих ключевую хэш-функцию MAC и
работающий с передачей трех сообщений для аутентификации пользователей на двух общих
секретных ключах (один для поддержки протокола шифрования, другой для прокола
аутентификации).
1) А генерирует сеансовый ключ ki, свою метку времени tai, и выполняет шифрование на
долгосрочном ключе Ka, Ea(ki, B, Ka ,tai)= cai.
Активная часть протокола:
1) А передает ЦА криптограмму Ea .
2) ЦА дешифрует принятое сообщение cai, на ключе Ka, Da(cai)= {ki, B, tai }и шифрует его на
ключе Kb, добавляя к нему свою метку времени tsi , Eb(ki, B, Kb ,tsi)= cbi и передает его В.
Таким образом корреспондент В имеет зашифрованный сеансовый ключ ему останется
только дешифровать принятое от ЦРК сообщение и установить его. Однако в данной схеме
имеется существенный недостаток, заключающийся в повышенной ответственности за выработку
ключа у корреспондента – инициатора соединения. Если ключ окажется слабым, то сеанс
зашифрованной связи окажется бесполезной тратой временного и вычислительного ресурса.
Но по причине простоты эта схема дает хороший запас по ВВХ к экстенсивному усилению
шифрования стойкости за счет длины ключа и является стойкой к атаке “внедрение в середину”.
Протокол Yahalom
В этом протоколе также абоненты А и В имеют с ЦА общий секретный ключ [M. Burrows,
M. Abadi, R. Nidham “A Logic Autentification”, M. Burrows, M. Abadi, R. Nidham “Rejoiner to
Nessett”]. Схема организации связи соответствует предыдущему протоколу, но в данной ситуации
сеансовый ключ вырабатывает не корреспондент, а ЦРК.
Алгоритм работы протокола приведен ниже:
А объединяет свое имя и случайное число, и отправляет созданное сообщение В. А
корреспондент В объединяет имя А, его случайное число, свое случайное число, далее шифрует
созданное сообщение на общем с ЦРК секретном ключе и посылает его ЦРК, добавляя свое имя
потом ЦРК создает два сообщения. Первое включает имя В, сеансовый ключ, случайные числа В и
А и шифруется секретным ключом А. Второе состоит из имени А, сеансового ключа и шифруется
секретным ключом В. ЦРК посылает оба сообщения А. А дешифрует первое сообщение, извлекает
сеансовый ключ и убеждается, что случайное число соответствует переданному ранее на этапе (1).
А посылает В два сообщения. Одним является сообщение от ЦРК, зашифрованное на ключе В.
Вторым является это ПСП корреспондента В, зашифрованная на сеансовом ключе. В дешифрует
первое сообщение, извлекает сеансовый ключ и убеждается, что случайное число совпадает.
1) А генерирует случайное число rai передает В вместе со своим именем, {B,rai}.

47
2) В вырабатывает rbi случайное число выполняет шифрование Eb(A, B, Kb , rbi , rai )= cbi и
передает cbi ЦРК.
3) ЦРК генерирует сеансовый ключ ki и выполняет шифрование двух сообщений:
1. Eb(ki, A, Kb)= cs1i
2. Ea(ki, B, Ka , rbi , rai )= cs2i
1) ЦРК передает {cs2i , cs1i } корреспонденту A.
2) А дешифрует cs2i , Da(Ka , cs2i)={ki, B,Ka , rb’i , ra’i } проверяет ra’i = ra’, в случае совпадения
устанавливает сеансовый ключ ki , выполняет шифрование Ek(ki , rb’i)= cabi и передает В {cabi , cs1i }
3) В дешифрует cs1i , Db(cs1i)={ki, A}устанавливает сеансовый ключ ki и
дешифрует cabi, Dk(cabi)= rb’i после чего проверяет равенство rb’i =rb’i.
В результате работы данного протокола корреспонденты А и В убеждены в авторстве
сообщений получаемых от других корреспондентов и ЦРК. Также теперь ответственность за
выработку сеансового ключа несет корреспондент с заведомо большим вычислительным ресурсом
и возможностью централизованного упрощенного контроля и распределения ключевого
материала.
В данной схеме имеется существенный недостаток, заключающийся в повышенной
ответственности за выработку ключа у корреспондента – инициатора соединения. Если ключ
окажется слабым, то сеанс зашифрованной связи окажется бесполезной тратой временного и
вычислительного ресурса.
Но по причине простоты эта схема дает хороший запас по ВВХ к экстенсивному усилению
шифрования стойкости за счет длины ключа и является стойкой к атаке “внедрение в середину”.
Протокол Needham-Schroeder
В протоколе, разработанном Роджером Нидхэмом и Майклом Шредером [R. M. Needham, M.
D. Schroeder “Using Encryption of Autentifications in Large Networks of Computers”], используются
симметричная криптография и ДЦ.
А посылает ЦРК сообщение, содержащее его имя, имя корреспондента В и случайное число.
ЦРК генерирует сеансовый ключ и шифрует сообщение, содержащее сеансовый ключ и имя А,
секретным ключом В. Затем он шифрует случайное число А, имя В, сеансовый ключ и
зашифрованное сообщение секретным ключом А. После чего, он отправляет шифрованное
сообщение А. А дешифрует сообщение и извлекает сеансовый ключ. Он Затем он посылает это
сообщение обратно В. В дешифрует принятое сообщение на сеансовом ключе и проверяет
значение rB-1.
1) А создает сообщение {A,B, ra} и посылает его ЦРК.
2) ЦРК генерирует ki, шифрует на kb пару Ek(kb, ki, A)= cbi и добавляет {ra,B, ki, , cbi}. Передает В
сообщение зашифрованное на kaEk(kb , ra,B, ki, cbi)= cai .

48
3) А принимает cai дешифрует Dk(cai )={ ra’,B, ki, cbi} проверяет ra=ra’. И переедет В
сообщение cbi.
4) В принимает cbi и дешифрует на своем ключе kbDk(cbi )={ki, A} . Он генерирует случайное
число rb и шифрует его на сеансовом ключе ki , Ek(ki, rb)= cb2i и передает его А.
5) А дешифрует Dk(cb2i)= {ki, rb}, и вычисляет (rb-1) и шифрует его на ключе ki , Ek(rb-1)= cb3i,
передает cb3i корреспонденту В.
6) В принимает сообщение cb3i, дешифрует его Ek(cb3i)= (rb’-1) сравнивает с rb-1.
Все эти операции с выработкой случайных чисел необходимы для защиты от атаки,
основанной на повторной передаче. Злоумышленник, предпринимая попытку вскрытия повторной
передачей, записывает сообщения от корреспондентов с целью дальнейшего их использования.
Однако случайное число на этапе (2) и является подтверждает А подлинность сообщения от ЦРК и
не является повторной передачей ответа от одной из пошлых итераций протокола. Аналогично
обстоит и с проверкой достоверности сообщений подтверждения подлинности сообщений
корреспондента В.
Таким образом применение рандомизации в данном протоколе защищает его от повторной
работу на старых или заведомо подложных ключах.
Протокол Otway-Rees
Этот протокол также использует симметричную криптографию [D. Otway O. Rees “Efficient
and Timely Manual Autentification”], и работает по следующей схеме:
Корреспондент А создает сообщение, состоящее из порядкового номера I, его имени, имени
корреспондента В и случайного числа. Это сообщение шифруется ключом, общим для А и ЦРК.
Корреспондент А посылает это сообщение В вместе с порядковым номером и их именами:
{I, A, B Ek(kat, RA, I, A, B)}
Корреспондент В создает сообщение, состоящее из нового случайного числа, порядкового
номера, имени А и имени В. Сообщение шифруется ключом, общим для А и В. Корреспондент В
посылает это сообщение ЦРК
вместе зашифрованным сообщением А, порядковым номером, их именами: {I, A, B, Ek(kat, RA, I, A,
B), Ek(kab, RB, I, A, B)}
ЦРК генерирует сеансовый ключ ki,. Затем он создает два сообщения. Одно, состоящее из
случайного числа корреспондента А и сеансового ключа, зашифрованного на общем секретном
ключе, для ЦРК и А. Другое сообщение, состоящее из случайного числа корреспондента В и
сеансового ключа, зашифрованное на секретном ключе, общем для ЦРК и корреспондента В. ЦРК
отправляет оба сообщения вместе с порядковым номером корреспонденту В: {I, Ek(kat , RA, ki),
EB(kbt ,RB, ki)}

49
Корреспондент В отправляет А сообщение, зашифрованное его секретным ключом, и
порядковый номер: {I, Ek(kab, ki , RA)}.
Корреспондент А дешифрует сообщение, получая свой ключ и случайное число. А
убеждается, что входе протокола они не изменились.
Предварительные вычисления:
1) А выполняет шифрование Ek(kat, RA, I, A, B)= cai .
2) В выполняет шифрование Ek(kbt, RB, I, A, B) =cbi
3) ЦРК генерирует сеансовый ключ .
Активная часть протокола:
1) А создает сообщение {I, A, B, cai } и передает его корреспонденту В.
2) В принимает сообщение и добавляет к нему cbi и передает {I, A, B, cbi} ЦРК.
3) ЦРК принимает сообщения, дешифрует Dk(kat, cai) = {RA, I, A, B} , Dk(kbt, cbi) = {RB, I, A, B} ,
выполняет шифрование Ek(kbt, RB, ki) =sbi , Ek(kat, RA, ki) =sai создает два сообщения {sai,I}, {sbi,I} и
передает их корреспонденту В.
4) В принимает оба сообщения, дешифрует на своем секретном ключе Dk(sbi) ={R’B, ki },
проверяет подлинность R’B как равенство R’B = RB и передает сообщение {sai,I}, корреспонденту А.
5) А принимает сообщение {sai,I}, дешифрует на своем секретном ключе Dk(sai) ={R’A, ki },
проверяет равенство R’А = RА.
Если проверка всех случайных чисел прошла успешно, и порядковый номер не изменился
входе протокола, корреспонденты А и В убеждаются в подлинности друг друга и получают
сеансовый ключ для организации работы протокола шифрования.
Протокол Neuman-Stubblebine
Этот протокол, является модификацией протокола Yahalom, в нем также имеется
противодействие атаке на повторной передачей с подавлениям [A. Kehne, J.Schonwalder, H.
Langendofer “A Nonce-Based Protocol for Multiple Autentifications” ] и позднее в [B.C. Ncuman S.
Stubblebine “A Note on the Use Timestamps as Nonces”].
Корреспондент А генерирует случайное число и объединяет свое имя с ним, и отправляет
созданное сообщение корреспонденту В. В объединяет имя А, его случайное число и метку
времени, шифрует созданное сообщение общим с ЦРК секретным ключом и посылает его ЦРК,
добавляя свое имя и новое выработанное случайное число. ЦРК принимает сообщение, генерирует
сеансовый ключ. Затем он создает два сообщения. Первое включает имя В, случайное число А,
сеансовый ключ, метку времени и шифруется на секретном ключе, А. Второе сообщение состоит
из имени А, сеансового ключа, метки времени и шифруется на секретном ключе, В. ЦРК посылает
оба сообщения А вместе со случайным числом корреспондента В. А дешифрует сообщение,
зашифрованное на его ключе, извлекает сеансовый ключ и убеждается, что случайное число

50
совпадает со значением, отправленным на этапе (1). А посылает В два сообщения. Одним является
сообщение ЦРК, зашифрованное на секретном ключе В. Второе - это случайное число
корреспондента В, зашифрованное на сеансовом ключе. В дешифрует принятое сообщение,
зашифрованное на его ключе, извлекает сеансовый ключ и убеждается, что значения метки
времени и случайное число те же что и на этапе.
1) А генерирует RA и посылает свое имя и RA корреспонденту В.
2) В формирует метку времени ti, случайное число RB, выполняет шифрование Ek(kbt, RA, ti )=
cbi на своем секретном ключе. После чего передает {cbi, B,RB}, ЦРК.
3) ЦРК принимает сообщение В, генерирует ki, выполняет шифрование Ek(kat, A, ki, ti )=
cb2i , Ek(kbt, B, ki,, RA, ti )= ca2i . Передает сообщение {ca2i, cb2i,B} корреспонденту А.
4) А дешифрует принятое сообщение на своем ключе Dk(kat, ca2i )= {B, R’A, ti ki},
устанавливает сеансовый ключ ki, проверяет равенство R’A = RA . Выполняет шифрование Ek(ki,
ti,RB)= ca3i . Передает корреспонденту В {ca3i, cb2i}
5) В принимает {ca3i, cb2i}, дешифрует Dk(cb2i )= {A, ki, RA, ti} устанавливает сеансовый ключ ki,
на нем выполняет дешифрование Dk(ca3i ) = {t’ia,R’B} и проверяет метку времени и
равенство RB=R’B.
Если оба случайных числа и метка времени совпадают, А и В убеждаются в подлинности
дуг друга и получают сеансовый ключ. Синхронизация часов всех участников протокола не
требуется, так как метка времени формируется и определяется только по часам корреспондента В
и, соответственно, проверяется только им же, убеждается, что случайное число совпадает со
значением, отправленным ЦРК на этапе 1. Затем он посылает В сообщение, зашифрованное ЦРК
секретным ключом В. В дешифрует принятое сообщение и извлекает сеансовый ключ. Затем В
генерирует другое случайное число, шифрует это число сеансовым ключом и отправляет его А. А
дешифрует сообщение на сеансовом ключе. Он создает число rB-1 и шифрует это число на
сеансовом ключе.
Тема 2.7 Криптографические механизмы конфиденциальности, целостности и
аутентичности информации
Криптографический механизморганизации конфиденциальности информации: должно
осуществляться шифрование всей конфиденциальной информации, записываемой на совместно
используемые различными субъектами доступа (разделяемые) носители данных, в каналах связи, а
также на любые съемные носители данных (дискеты, микрокассеты и т.п.) долговременной
внешней памяти для хранения за пределами сеансов работы санкционированных субъектов
доступа. При этом должна выполняться автоматическая очистка областей внешней памяти,
содержавших ранее незашифрованную информацию

51
Криптографический механизм аутентичности информации: должны использоваться
разные криптографические ключи для шифрования информации, принадлежащей различным
субъектам доступа (группам субъектов); доступ субъектов к операциям шифрования и к
соответствующим криптографическим ключам должен дополнительно контролироваться
посредством подсистемы управления доступом; должны использоваться сертифицированные
средства криптографической защиты. Их сертификация проводится специальными
сертификационными центрами или специализированными предприятиями, имеющими лицензию
на проведение сертификации криптографических средств защиты.
Подсистема обеспечения целостности: должна быть обеспечена целостность
программных средств, а также неизменность программной среды , при этом: целостность
проверяется по имитовставкам алгоритма ГОСТ 28147–89 или по контрольным суммам другого
аттестованного алгоритма всех компонент как в процессе загрузки, так и динамически в процессе
функционирования, целостность программной среды обеспечивается качеством приемки любых
программных средств.
Электро́ нная цифрова́ я по́ дпись (ЭЦП)- реквизитэлектронного документа, позволяющий
установить отсутствие искажения информации в электронном документе с момента формирования
ЭЦП и проверить принадлежность подписи владельцу сертификата ключа ЭЦП. Значение
реквизита получается в результате криптографического преобразования информации с
использованием закрытого ключа ЭЦП.
Криптография — область прикладной математики, занимающаяся проблемами
преобразования данных для обеспечения информационной безопасности. С помощью
криптографии отправитель преобразует незащищенную информацию (открытый текст) в
непонятный для стороннего наблюдателя, закодированный вид (шифртекст). Получатель
использует криптографические средства, чтобы преобразовать шифртекст в открытый текст, т.е.
расшифровать его, проверить подлинность отправителя, целостность данных или реализовать
некоторые комбинации перечисленного.
Использование симметричных криптографических алгоритмов предполагает наличие
взаимного доверия сторон, участвующих в обмене электронными документами или сообщениями,
так как для шифрования и расшифрования применяется известный им один и тот же общий ключ.
Симметричные алгоритмы могут ограниченно использоваться для поддержания сервисов
аутентификации и целостности, но в первую очередь применяются для обеспечения
конфиденциальности. Для проверки целостности сообщения и аутентификации источника данных
отправитель может сгенерировать шифртекст на базе всего открытого текста, как излагалось
выше. После этого он отправляет открытый текст и часть шифртекста получателю сообщения. Эта
часть шифртекста известна как код аутентификации сообщения или MAC (Message Authentication

52
Checksum). Функция MAC на основе входа переменной длины и ключа формирует выход
фиксированной длины. Получатель использует свою копию секретного ключа отправителя
сообщения для генерации шифртекста, выбирает ту же часть шифртекста и сравнивает ее с
полученным значением MAC. Их совпадение подтверждает подлинность отправителя.
Преимуществами симметричных криптографических алгоритмов признаны их высокая
производительность и стойкость, которая делает практически невозможным процесс
расшифрования.
Симметричные алгоритмы: DES (Data Encryption Standard), Triple DES, RC2, RC5, Rijndael.
Тема 2.8 Криптографические алгоритмы DES и ГОСТ 28147-89
Криптографический стандарт DES.
Рассмотрим кратко широко известные алгоритмы блочного шифрования, принятые в
качестве государственных стандартов шифрования данных в США и России.
В 1973 г. Национальное бюро стандартов США начало разработку программы по созданию
стандарта шифрования данных на ЭВМ. Был объявлен конкурс среди фирм-разработчиков США,
который выиграла фирма IBM, представившая в 1974 году алгоритм шифрования, известный под
названием DES (Data Encryption Standart).
В этом алгоритме входные 64-битовые векторы, называемые блоками открытого текста,
преобразуются в выходные 64-битовые векторы, называемые блоками шифротекста, с помощью
двоичного 56-битового ключа К. Число различных ключей DES-алгоритма равно 256 > 7 • 1016.
Алгоритм обеспечивает высокую стойкость, однако недавние результаты показали, что
современная технология позволяет создать вычислительное устройство стоимостью около 1 млн
долларов США, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5
часа.
Из-за небольшого размера ключа было принято решение использовать DES-алгоритм для
закрытия коммерческой (несекретной) информации. Практическая реализация перебора всех
ключей в данных условиях экономически нецелесообразна, так как затраты на реализацию
перебора не соответствуют ценности информации, закрываемой шифром.
DES-алгоритм явился первым примером широкого производства и внедрения технических
средств в области защиты информации. Национальное бюро стандартов США проводит проверку
аппаратных реализаций DES-алгоритма, предложенных фирмами-разработчиками, на
специальном тестирующем стенде. Только после положительных результатов проверки
производитель получает от Национального бюро стандартов сертификат на право реализации
своего продукта. К настоящему времени аттестовано несколько десятков изделий, выполненных
на различной элементной базе.

53
Достигнута высокая скорость шифрования. По некоторым сообщениям, имеется
микросхема, реализующая DES-алгоритм со скоростью 45 Мбит/с. Велика доступность этих
изделий: стоимость некоторых аппаратных реализаций ниже 100 долларов США.
Основные области применения DES-алгоритма:
1) хранение данных в ЭВМ (шифрование файлов, паролей);
2) аутентификация сообщений (имея сообщение и контрольную группу, несложно
убедиться в подлинности сообщения);
3) электронная система платежей (при операциях с широкой клиентурой и между банками);
4) электронный обмен коммерческой информацией (обмен данными между покупателем,
продавцом и банкиром защищен от изменений и перехвата).
ГОСТ 28147-89
В 1989 году в СССР был разработан блочный шифр для использования в качестве
государственного стандарта шифрования данных. Разработка была принята и
зарегистрирована как ГОСТ 28147—89. И хотя масштабы применения этого алгоритма
шифрования до сих пор уточняются, начало его внедрению, в частности в банковской системе,
уже положено. Алгоритм, судя по публикациям, несколько медлителен, но обладает весьма
высокой стойкостью.
Блок-схема алгоритма ГОСТ отличается от блок-схемы DES-алгоритма лишь отсутствием
начальной перестановки и числом циклов шифрования (32 в ГОСТе против 16 в DES-алгоритме).
В шифре ГОСТ используется 256-битовый ключ и объем ключевого пространства
составляет 2256. Ни на одной из существующих в настоящее время или предполагаемых к
реализации в недалеком будущем ЭВМ общего применения нельзя подобрать ключ за время,
меньшее многих сотен лет. Российский стандарт проектировался с большим запасом, по стойкости
он на много порядков превосходит американский стандарт DES с его реальным размером ключа в
56 бит и объемом ключевого пространства всего 2 56. В свете прогресса современных
вычислительных средств этого явно недостаточно. В этой связи DES может представлять скорее
исследовательский или научный, чем практический интерес.
Алгоритм расшифровки отличается от алгоритма зашифровки тем, что последовательность
ключевых векторов используется в обратном порядке.
Расшифровка данных возможна только при наличии синхропосылки, которая в скрытом
виде хранится в памяти ЭВМ или передается по каналам связи вместе с зашифрованными
данными.
Важной составной частью шифросистемы является ключевая система шифра. Под ней
обычно понимается описание всех видов ключей (долговременные, суточные, сеансовые и др.),
используемых шифром, и алгоритмы их использования (протоколы шифрованной связи).

54
В электронных шифраторах в качестве ключей могут использоваться начальные состояния
элементов памяти в схемах, реализующих алгоритм шифрования, функциональные элементы
алгоритма шифрования. Ключ может состоять из нескольких ключевых составляющих различных
типов: долговременных, сеансовых и т. д.
Одной из основных характеристик ключа является его размер, определяющий число
всевозможных ключевых установок шифра. Если размер ключа недостаточно велик, то шифр
может быль вскрыт простым перебором всех вариантов ключей. Если размер ключа чрезмерно
велик, то это приводит к удорожанию изготовления ключей, усложнению процедуры установки
ключа, понижению надежности работы шифрующего устройства и т. д. Таким образом,
выбранный криптографом размер ключа — это всегда некий компромисс.
Заметим, что DES-алгоритм подвергался критике именно в связи с небольшим размером
ключа, из-за чего многие криптологи пришли к мнению, что необходимым «запасом прочности»
DES-алгоритм не обладает.
Другой важной характеристикой ключа является его случайность.
Наличие закономерностей в ключе приводит к неявному уменьшению его размера и,
следовательно, к понижению криптографической стойкости шифра. Такого рода ослабление
криптографических свойств шифра происходит, например, когда ключевое слово устанавливается
по ассоциации с какими-либо именами, датами, терминами. Всякая логика в выборе ключа
наносит ущерб криптографическим свойствам шифра.
Таким образом, требование случайности ключей выступает как одно из основных при их
изготовлении.
Для изготовления ключей могут использоваться физические датчики и псевдослучайные
генераторы со сложным законом образования ключа. Использование хорошего физического
датчика более привлекательно с точки зрения обеспечения случайности ключей, но является, как
правило, более дорогим и менее производительным способом. Псевдослучайные генераторы более
дешевы и производительны, но привносят некоторые зависимости если не в отдельные ключи, то в
совокупности ключей, что также нежелательно.
Важной частью практической работы с ключами является обеспечение секретности ключа.
К основным мерам по защите ключей относятся следующие:
1) ограничение круга лиц, допущенных к работе с ключами;
2) регламентация рассылки, хранения и уничтожения ключей;
3) регламентация порядка смены ключей;
4) применение технических мер защиты ключевой информации от несанкционированного
доступа.

55
Важной составляющей защиты информации являются протоколы связи, определяющие
порядок вхождения в связь, зашифровки и передачи информации. Протокол связи должен быть
построен с учетом следующих обстоятельств:
1) протокол должен защищать открытый текст и ключ от несанкционированного доступа на
всех этапах передачи информации от источника к получателю сообщений;
2) протокол не должен допускать выхода в линии связи «лишней» информации,
предоставляющей криптоаналитику противника дополнительные возможности дешифрования
криптограмм.
Нетрудно видеть, что использование криптосистем с секретным ключом предполагает
заблаговременные до сеансов связи договоренности между абонентами о сеансовых секретных
ключах или их предварительную пересылку по защищенному каналу связи. К настоящему
времени разработаны принципы так называемого открытого распределения ключей (ОРК) и
открытого шифрования (ОШ), которые явились «новыми направлениями в криптографии»,
давшими начало криптографии с открытым ключом.

56
57

Вам также может понравиться