1.      СРЕДСТВА ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ В КОМПЬЮТЕРНЫХ СИСТЕМАХ

 

            Устройства обработки и хранения информации на базе современных ИТ породили массу способов несанкционированного получения информации или воздействия на нее и, как следствие, способов защиты от этого. Наиболее эффективных результатов в защите информации можно достичь путем создания систем обеспечения информационной безопасности. Эти системы могут включать два комплекса мер (пассивную защиту и активное противодействие), создающих своего рода оболочку вокруг защищаемой информации, состоящую из ряда административно-режимных, правовых, физических, аппаратно-технических, программных и других мер по обнаружению и нейтрализации попыток несанкционированного воздействия на информацию.

 

            1.1.ОБЩИЕ ЭТАПЫ РАЗРАБОТКИ СРЕДСТВ ЗАЩИТЫ ИНФОРМАЦИИ

 

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

            1) детализация предметной области — это в основном определение целевой функции разрабатываемой системы (например, система защиты от копирования (СЗК), система аутентификации, система разграничения доступа и т. д.). На этом этапе должна учитываться дополнительная априорио заданная информация, сужающая предметную область (например, аутентификация без аппаратного носителя или защита от копирования, базирующаяся на электронных ключах);

            2) описание модели злоумышленника и модель защиты. Модель злоумышленника включает собственно определение злоумышленника (как субъекта) и его целевой функции (например, злоумышленником для систем защиты от копирования является легальный пользователь программного продукта, имеющий целевой функцией получение нормально работающих дополнительных копий). Затем уточняются возможности и характер действий злоумышленника, определяются конкретные условия, в которых будет эксплуатироваться разрабатываемая система защиты информации.

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

            Первый уровень определяет самый низкий уровень возможностей ведения диалога в АС — запуск задач (программ) из фиксированного набора, реализующих заранее предусмотренные функции по обработке информации.

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

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

            Четвертый уровень определяется всем объемом возможностей лиц, осуществляющих проектирование, реализацию и ремонт технических средств АС, вплоть до включения в состав вычислительной техники собственных технических средств с новыми функциями по обработке информации;

            3) определение основных компонентов (подсистем), составляющих данную систему. Перечень компонентов программно-технических средств защиты информации определяется как результат первого и второго этапов. Компоненты могут разделяться на необходимые и дополнительные. Например, необходимыми компонентами системы защиты от копирования являются механизм создания и чтения не дублируемых признаков (не копируемых меток), механизм проверки не дублируемых признаков, механизм защиты от изучения и редуцирования механизмов проверки (анти отладочный и анти трассировочный механизмы), а дополнительным компонентом — механизм реализации реакции на нелегальное копирование;

            4) определение свойств компонентов системы (качественных или количественных). Свойства компонентов защиты могут быть описаны указанием противодействия либо конкретному средству нападения, либо целому их классу (по принцип у работы или стоимостному критерию). Очевидно, что заказные средства нападения (например, для СЗК — специализированные отладчики и др.) имеют существенно более высокую стоимость, чем стандартные средства.

            После выполнения вышеперечисленных этапов формулируются средства реализации и гарантирования некоторой политики безопасности для разрабатываемого программно-аппаратного средства защиты. Так, механизм чтения не дублируемого признака для СЗК является механизмом реализации политики безопасности (которая предусматривает невозможность дублирования носителя), а механизмы защиты от исследования — механизмами обеспечения гарантий политики безопасности.

            Процесс разработки СЗИ может реализовываться в рамках методологии необходимых или достаточных условий.

            Методология необходимых условий указывает необходимые компоненты защиты, присутствие которых обязательно, но при этом, как правило, не определяет их свойства. Документально методологические требования в рамках указания необходимых условий представляют собой различные руководящие документы, рабочие технические материалы и т. д. По такому образцу выполнены документы Государственной технической комиссии при Президенте РФ (Гостехкомиссии России) и Министерства обороны США. В данном случае конкретные исследования этапов 1 — 3 остаются за кадром и как рекомендации выносятся только компоненты или группы компонентов, а также их свойства.

            Методология достаточных условий ориентируется на доказательства надежности программно-технических решений защиты, поэтому защитные механизмы часто разрабатываются с заведомым превышением необходимого уровня защиты.

 

            1.2. СТРУКТУРА СИНТЕЗА СРЕДСТВ ЗАЩИТЫ ИНФОРМАЦИИ

 

            С учетом основных этапов разработки СЗИ, сформулированных в предыдущем разделе, общую структуру синтеза СЗИ можно представить в виде определенной последовательности действий.

            1. Исходя из общей архитектуры и назначения компьютерной системы определяются существенно важные элементы, связанные с распределенностью системы, составом аппаратных средств, составом и свойствами программного обеспечения (в первую очередь со свойствами операционных сред компьютерных систем).

            2. Определяются объекты защиты и модели злоумышленника, на основании которых формулируется политика безопасности (ПБ), реализуемая в компьютерной системе. Затем политика безопасности корректируется

с учетом распределенности системы и дополнительной априорно известной информации.

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

            4. Формулируются требования по разработке защитных механизмов (например, в виде классов их свойств).

            5. Разрабатывается технология управления безопасностью в компьютерной системе и реализуются процедуры управления с заданными свойствами.

            6. Как правило, необходимым является этап опытной эксплуатации компьютерной системы (к этому моменту система содержит базовую программную среду и прикладное наполнение). Цель этапа опытной эксплуатации— убедиться в выполнении целевой функции системы (т. е. решает ли она те задачи, для которых была спроектирована). По результатам опытной эксплуатации делается вывод о запасе по ресурсам для реализации СЗИ, поскольку работа защитных механизмов связана с уменьшением ресурсов прикладного наполнения (например, контроль целостности объектов компьютерной системы для защиты от закладок занимает, как правило, значительное время). В системах, критичных к уменьшению ресурсов, возможно изменение некоторых свойств СЗИ.

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

            Для формулирования требований к СЗИ необходимо учитывать следующие существенно важные моменты:

            1) СЗИ обменивается информацией с внешней средой;

            2) СЗИ в случае аппаратной реализации использует элементную базу ограниченной надежности;

            3) СЗИ в случае программной реализации выполняется на процессоре ограниченной надежности и в программной среде, содержащей посторонние программы, которые могут повлиять на различные этапы его работы;

            4) СЗИ хранится на материальном носителе (в случае программной реализации) и может быть при хранении преднамеренно или случайно искажена (повреждена);

            5) СЗИ взаимодействует с внешней средой косвенным образом (питается от электросети, излучает электромагнитные поля и т. д.);

            6) СЗИ изготавливает и (или) использует человек, который может допустить ошибки (преднамеренные или случайные) при разработке и эксплуатации.

            Требования, регламентирующие проектирование, разработку и сертификацию СЗИ и защищенных компьютерных систем, изложены в различных нормативных документах, к которым относятся руководящие документы Гостехкомиссии России, «Оранжевая книга» Министерства обороны США, Европейские критерии безопасности, Федеральные критерии США, Стандарт ISO 15408 «Общие критерии оценки безопасности ИТ».

 

1.3.  РУКОВОДЯЩИЕ ДОКУМЕНТЫ ГОСТЕХКОМИССИИ РФ

 

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

            Согласно РД «Классификация автоматизированных систем и требования по защите информации» устанавливается девять классов защищенности АС от НСД к информации. Каждый класс характеризуется определенной минимальной совокупностью требований по защите. Классы подразделяются на три группы, отличающиеся особенностями обработки информации в АС. В пределах каждой группы соблюдается иерархия требований по защите в зависимости от ценности (конфиденциальности) информации и, следовательно, иерархия классов защищенности АС. Класс, соответствующий высшей степени защищенности для данной группы, обозначается индексом NA, где N — номер группы от 1 до 3. Следующий класс обозначается МБ и т. д.

            Третья группа включает АС, в которых работает один пользователь, имеющий доступ ко всей информации АС, размещенной на носителях одного уровня конфиденциальности. Группа содержит два класса — ЗБ и ЗА.

            Вторая группа включает АС, в которых пользователи имеют одинаковые права доступа (полномочия) ко всей информации АС, обрабатываемой и (или) хранящейся на носителях различного уровня конфиденциальности. Группа содержит два класса — 2Б и 2А.

            Первая группа включает многопользовательские АС, в которых одновременно обрабатывается и (или) хранится информация разных уровней конфиденциальности и не все пользователи имеют право доступа ко всей информации АС. Группа содержит пять классов — 1Д, 1Г, 1 B, 1Б и 1А.

 

 

 

 

            По сути дела, в РД приведен минимум требований, которым необходимо следовать, чтобы обеспечить конфиденциальность информации. Значительное внимание в РД уделено собственной безопасности средств обеспечения защиты и вопросам согласованного администрирования распределенных конфигураций.

 

            1.4. ГОСТ Р ИСО / МЭК 15408-2002 «Информационная технология.

Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий»

 

            Наиболее полным и современным оценочным стандартом является ГОСТ Р ИСО / МЭК 15408-2002 «Информационная технология. Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий», вступивший в силу 01.01.2004 г.

            В его основе лежит Международный стандарт ISO 15408 «Общие критерии оценки безопасности ИТ» (Common Criteria for Information Technology Security Evaluation»). Этот Международный стандарт стал итогом почти десятилетней работы специалистов нескольких стран, он вобрал в себя опыт существовавших к тому времени документов национального и межнационального масштаба (Оранжевой книги», Европейских критериев, Федеральных критериев США). «Общие критерии» («ОК») — это нормативный документ, определяющий требования безопасности, на основании которых проводится оценка уровня защищенности продуктов ИТ, общий набор понятий, структур данных и язык для формулирования вопросов и утверждений относительно безопасности продуктов ИТ.

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

            1) определение назначения, условий применения, целей и требований безопасности;

            2) проектирование и разработка;

            3) испытания, оценка и сертификация;

            4) внедрение и эксплуатация.

            В «ОК» объект оценки рассматривается в контексте среды безопасности, которая характеризуется определенными условиями и угрозами. В зависимости от того, в каких условиях эксплуатируется конкретный ИТ-объект (например, подключен ли он к сетям общего пользования или функционирует автономно), можно предъявить конкретный перечень требований к защите, т. е. формализовать так называемый профиль защиты. «ОК» содержат:

            1) функциональные требования, соответствующие активному аспекту защиты, предъявляемые к функциям безопасности и реализующим их механизмам;

            2) требования доверия, соответствующие пассивному аспекту, предъявляемые к технологии и процессу разработки и эксплуатации.

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

            Профиль защиты — одно из основных понятий «Общих критериев». В тексте Стандарта это понятие определяется следующим образом: «Независимая от реализации совокупность требований безопасности для некоторой категории продуктов или ИТ-систем, отвечающая специфическим запросам потребителя». Таким образом, в профиле защиты (как и в обычном техническом задании) приводится описание функциональной спецификации будущей системы защиты информации, причем практически не зависящее от конкретной реализации.

            Вообще говоря, профиль допускается создавать как непосредственно для продукта, который представляет собой СЗИ, так и для защитной подсистемы какого-либо программного продукта. Более того, можно написать один профиль для целой совокупности программных продуктов. Так, существуют профили (на сегодняшний день только в виде проектов) для межсетевых экранов, профиль для СУБД (по сути дела, набор требований по безопасности для защиты СУБД), для клиентской ОС и т. д.

            Каталог функций безопасности объекта (ФБО). Все механизмы защиты, описанные в профиле, называются функциями безопасности объекта. Автор профиля выбирает ФБО из специального каталога функций безопасности, который входит составной частью в «Общие критерии». В данном каталоге функции безопасности описаны достаточно жестко и формально.

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

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

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

            Угрозы также выбираются из предопределенного списка и показывают, от чего именно защищает система защиты информации, соответствующая данному профилю защиты.

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

            Уровень доверия. Кроме функций безопасности, в структуру документа, описывающего профиль защиты, входит раздел «Требования доверия к безопасности». Эти требования, как и функции безопасности, выбираются разработчиком профиля из каталога требований доверия, фактически составляющего всю третью часть «Общих критериев». Однако в отличие от формального набора функций для требований доверия в Стандарте сформированы определенные наборы, которые называются оценочными уровнями доверия (ОУД). Самый низкий уровень доверия — первый, самый высокий — седьмой.

            Если провести аналогию с определениями руководящих документов Гостехкомиссии РФ, то ОУД имеют много общего с уровнями проверки не декларированных возможностей. Но по сравнению с РД в «ОК» значительно больше внимания уделено процедурам поставки (важно, чтобы при выполнении процедуры поставки программный продукт был защищен от подмены или модификации) и поддержке продукции. Программный продукт, который не поддерживается должным образом разработчиком, не может считаться доверенным, не может претендовать на высокий уровень ОУД, а значит, не может применяться для защиты ценной информации.

            Задание по безопасности. Если профиль защиты — это описание функционала продукта, не зависящее от его реализации, то задание по безопасности содержит и список функций безопасности профиля, и описание того, как эти функции безопасности реализованы в конкретной разработке. В Стандарте задание по безопасности определяется как «совокупность требований безопасности и спецификаций, предназначенная для использования в качестве основы для оценки конкретного объекта».

            Стандартом предусмотрено, что разработчик или владелец ИС самостоятельно выбирает, какой документ составлять — профиль защиты или задание по безопасности. Для небольших организаций более эффективной будет разработка задания по безопасности. Если информационная система очень велика (например, ведомство с огромным количеством филиалов, причем требования к подсистеме информационной безопасности примерно одинаковы для всех филиалов, но информационные системы в филиалах построены с некоторыми различиями), то эффективнее разработать профиль защиты. Такой профиль описывает функции безопасности, которые должны обеспечиваться в ИС каждого филиала независимо от того, с помощью каких ОС, СУБД и прикладного ПО они построены. А для каждого филиала в данном случае необходимо составить отдельное задание по безопасности.

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

различные системы защиты. Данный Стандарт ориентирован прежде всего на достаточно крупные, комплексные системы. Применение его к конкретным подсистемам ИБ (по примеру того, как это делалось в РД) не совсем корректно.

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

 

2. ПРОГРАММНО-АППАРАТНЫЕ МЕТОДЫ И СРЕДСТВА ОГРАНИЧЕНИЯ ДОСТУПА К КОМПЬЮТЕРНЫМ СИСТЕМАМ

 

            2.1. ТИПЫ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА И УСЛОВИЯ РАБОТЫ СРЕДСТВ ЗАЩИТЫ

 

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

            1. Локальный НСД — попытки получения информации при непосредственном доступе к компьютеру (НСД-1). Для несанкционированного получения информации с защищенного компьютера чаще всего используются следующие виды атак:

            1) атака целевым вирусом (программной закладкой) осуществляется созданием программы-вируса, заражающей только конкретную программу или драйвер; внедрением программы-вируса в атакуемый компьютер и получением паролей.

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

            2) атака общим вирусом осуществляется созданием общей программы-вируса; внедрением программы-вируса в атакуемый компьютер; снятием полученной информации; выделением паролей в открытом виде после изучения этой информации.

            Против подобных атак можно применить различные проверки целостности ПО, хотя и они могут быть нейтрализованы стелс-механизмами вирусов ит. д.

            Известно, что гарантированно корректно работает та программа (закладка или средство защиты от нее), которая первой получает управление. В IBM-совместимых компьютерах после выполнения программ начальной инициализации BIOS и расширений BIOS начинает выполняться программа, расположенная в первичном загрузчике. Поэтому для гарантированно корректной работы средств защиты от закладок необходимо проверять целостность программных файлов до начала работы программы первичного загрузчика.

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

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

            2. Удаленный НСД по сети без доступа непосредственно к компьютеру (НСД-2). Одними из наиболее распространенных типов атак в компьютерных сетях являются атаки, основанные на уязвимости обычных протоколов информационного взаимодействия. Любой недостаток протокола может использоваться для несанкционированного доступа к информации в компьютерной сети. Такие атаки могут быть разграничены по уровням модели эталонного взаимодействия (модели OSI) на следующие типы:

            1) атаки на основе недостатков протоколов низкого уровня (Ethernet, Token Ring, FDDI, АТМ и др.);

            2) атаки на основе недостатков протоколов среднего уровня (TCP / IP, SPX / IPX, NetBIOS и NetBEUI);

            3) атаки на основе недостатков высокоуровневых протоколов (SMB, NCP, SNMP, NFS, RPC, FTP, НТТР, SMTP и др.);

            4) атаки на основе недостатков протоколов маршрутизации. В общем случае атакующий может реализовать следующие угрозы:

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

            • непосредственным подключением к линии связи;

            • доступом к компьютеру сети, принимающему сообщения или выполняющему функции маршрутизации;

            • внедрением в сеть несанкционированного маршрутизатора с перенаправлением через него потока сообщений.

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

            2) несанкционированное отправление данных от имени другого пользователя, выполняющееся с помощью соответствующих программных средств после подключения к компьютерной сети. Реализация угрозы данного вида позволяет осуществить маскировку под разрешенного пользователя и тем самым получить доступ к связанной с ним секретной информации или обмануть получателя данных с целью нанесения ему ущерба;

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

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

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

            Основным недостатком протоколов среднего уровня (ТСР / IP, SPX / IPX, NetBIOS и NetBEUI) также является отсутствие встроенных функций защиты. Не предусматриваются криптографическое закрытие содержимого пакетов сообщений, контроль их подлинности, а также аутентификация участников обмена. Следовательно, пакеты сообщений доступны для анализа и их можно подделать.

            Протоколы семейства ТСР / IP, изначально разработанные для глобальной сети Интернет, в настоящее время становятся основой построения и локальных сетей. Данные протоколы всегда были базовыми протоколами для UNIX-систем. Сейчас эти протоколы поддерживаются всеми современными операционными системами. Несмотря на то что разработка ТСР / IP финансировалась Министерством обороны США, эти протоколы не имеют функций защиты и допускают множество как пассивных, так и активных атак.

В случае пассивных атак на протоколы ТСР / IP, как и при нападениях на другие протоколы информационного обмена, злоумышленники никаким образом не обнаруживают себя, и все несанкционированные действия сводятся к наблюдению за циркулирующими пакетами сообщений. При активных атаках на ТСР / IP злоумышленник модифицирует и (или) фильтрует содержимое пакетов сообщений с целью обмана получателя или нарушения работоспособности принимающей компьютерной системы. Обладая достаточными привилегиями или просто используя DOS или Windows, не обеспечивающие разграничение доступа к компьютерным ресурсам, атакующий может вручную формировать IP-пакеты и передавать их по сети. Разумеется, поля заголовка каждого пакета могут быть сформированы произвольным образом. Получив такой пакет, невозможно выяснить, откуда реально он был получен, поскольку пакеты не содержат пути их прохождения. Конечно, при установке обратного адреса, не совпадающего с текущим IP-адресом, атакующий никогда не получит ответ на отосланный пакет. Однако часто это и не требуется. Возможность формирования произвольных IP-пакетов является ключевым пунктом для осуществления активных атак.

            Незащищены и протоколы SPX / IPX, используемые в сетевой операционной системе Netware. Злоумышленник может сформировать IPX-пакет, совершенно идентичный IPX-пакету администратора. Следовательно, нарушить безопасность системы может практически любой пользователь сети. Если некто самостоятельно заполнит IPX-пакет, то он может указать чужой адрес отправителя (например, администратора сети). Такой пакет обязательно дойдет до адресата (сервера) и будет им обработан тем же образом, что и все остальные санкционированные пакеты.

            Сложность атак на незащищенные высокоуровневые протоколы, а также протоколы маршрутизации определяется лишь сложностью самих протоколов, но никак не надежными функциями защиты.

            В сложившейся ситуации передача конфиденциальной информации возможна только по виртуальным сетям.  В данном случае под виртуальной сетью понимается сеть, образованная множеством криптомаршрутизаторов, использующих Интернет как транспортную среду передачи данных. Каждый криптомаршрутизатор защищает свою подсеть посредством зашифровывания исходящих и расшифровывания входящих пакетов. Криптомаршрутизаторы обмениваются информацией, зашифрованной на ключах парной связи между ними. Обмен ключами по сети отсутствует.

            Для закрытия информации эксплуатируется принцип инкапсуляции со скрытием внутренних адресов. Это означает, что выходящий пакет шифруется полностью вместе с заголовком на ключе парной связи текущего криптомаршрутизатора и криптомаршрутизатора, закрывающего подсеть, содержащую абонента. К этой криптограмме добавляется IP-заголовок с адресом отправителя — внешний адрес текущего криптомаршрутизатора и с адресом получателя — адрес криптомаршрутизатора, закрывающего сеть корреспондента.

            Для прохождения полученного пакета через устройства маскировки топологии надсетей (NAT) необходимо к IP-заголовку добавить подзаголовок произвольного протокола (например, UDP с некоторыми неиспользуемыми портами). Снаружи обмен информацией между защищаемыми подсетями выглядит как обмен UDP-пакетами между парой компьютеров. Пользователи защищаемых сетей никакого влияния (за исключением некоторого замедления за счет шифрования) не замечают.

            Все попытки зондирования нарушителем внутренних подсетей будут неудачными, поскольку пришедший пакет не будет правильно расшифрован. Отсутствие необходимости поддерживать транспортный уровень стека протоколов TCP / IP приводит к недейственности атак на транспортный уровень, что повышает надежность работы криптомаршрутизаторов.

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

            3. НСД к информации в канале связи с другими компьютерами (НСД-3). Для топологии сети «точка-точка» при возможном внедрении нарушителем произвольных закладок в программное обеспечение компьютеров и работе по коммутируемому или выделенному каналу по протоколу RS 232 возможно применение наложенных средств шифрования канала. Если обеспечить включение алгоритмов шифрования в состав каналообразующей аппаратуры только при непосредственной передаче информации в линию и выключение при отсутствии передачи информации при конфигурировании модема, то вне зависимости от количества и агрессивности закладок нарушитель:

            1) не сможет оказывать асинхронное воздействие извне на программно-аппаратные комплексы;

            2) не получит открытую информацию, передаваемую по каналу при непосредственном съеме информации с линии;

            3) не получит открытую информацию при перенаправлении ее по коммутируемому каналу.

            Единственное, что может сделать закладка нарушителя, внедренная в ПО,— передавать ему азбукой Морзе, используя канал «окончания / начала» или «ошибка / не ошибка приема / передачи» сообщений. Однако если учитывать скорость работы по коммутируемому каналу и инерцию каналообразующего оборудования, доля передаваемой таким способом информации представляется незначительной.

            4. НСД отслеживанием побочных электромагнитных излучений ЭВМ (НСД-4). В персональном компьютере основными источниками электромагнитных излучений являются устройства ввода и вывода информации совместно с их адаптерами (монитором, принтером, клавиатурой, печатающим устройством и т. д.), а также центральный процессор.

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

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

 

            2.2. ЗАЩИТА ОТ ЛОКАЛЬНОГО НЕСАНКЦИОНИРОВАННОГО ДОСТУПА

 

            Рассмотрим построение комплекса средств защиты от НСД-1 для некоторой модели нарушителя, учитывающей следующие факторы:

            1) установка системы защиты производилась в отсутствие нарушителя;

            2) нарушитель не имеет информации о пароле установки;

            3) нарушитель не имеет информации о пароле пользователя;

            4) нарушитель не может вскрыть корпус компьютера;

            5) нарушитель не имеет копии информации, записанной в носителе ключевой информации пользователя;

            6) программы ROM, BIOS не могут быть перезаписаны в процессе работы компьютера.

            Очевидно, что все чисто программные средства защиты можно обойти при использовании механизма работы Boot-вирусов (вирусов, внедряющихся в программу начального загрузчика). Аналогично, используя механизм работы микропроцессора Pentium и выше, можно создать закладку, обходящую все средства программного контроля целостности.

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

            Защити при загрузке ОС

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

            Эти средства осуществляют защиту от НСД к информации, записанной на жесткий диск компьютера, путем запроса пароля, вводимого с клавиатуры, а также подключения элемента Touch Memory (ТМ), с которого считывается ключевая информация (КИ). После считывания КИ программа, записанная в ПЗУ, осуществляет проверку целостности выбранных при установке комплекса файлов. В случае положительного результата проверки происходит загрузка операционной системы. В ином случае повторно запрашивается пароль. Для блокирования доступа к информации о пароле при включенном компьютере программное обеспечение, находящееся на плате, исчезает из адресного пространства компьютера и не может быть считано никакими программными средствами без извлечения микросхемы ПЗУ из платы. Загрузка компьютера при отсутствии адаптера или при неисправном адаптере блокируется.

            Алгоритм проверки целостности программного обеспечения основан на современных алгоритмах генерации имитозащитной приставки, что обеспечивает достаточное качество проверки. Ключевыми элементами являются пароль пользователя, пароль установки, а также содержимое ТМ.

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

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

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

            Таким образом, для сохранения конфиденциальности хранимой на жестком диске информации необходимо исключить прямой доступ нарушителя к компьютеру, находящемуся в рабочем состоянии, и обеспечить недосягаемость для него пароля установки и хотя бы одного из оставшихся ключевых элементов. Для исключения постоянного воздействия на операционную среду достаточно, чтобы нарушителю был недоступен хотя бы один из переменных ключевых элементов — элемента ТМ или пароля пользователя.

            Из вышесказанного можно сделать следующие выводы.

            1. Чисто программные комплексы не обеспечивают защиту от НСД при наличии программных закладок и вирусов.

            2. Для создания сколько-нибудь устойчивой и в то же время гибкой системы защиты от НСД следует применять программно-аппаратные комплексы.

            3. Для обеспечения чистоты ОС необходим контроль сохранности файлов ОС до момента выполнения любых участков кода, записанных на переписываемых носителях.

            4. Плата, содержащая ПЗУ с программой в формате BIOS Extension и устройство ввода идентификационно4и ключевой информации, реализует в полной мере достоверную проверку ПО на момент загрузки.

 

 

            2.3. ЗАЩИТА ОТ УДАЛЕННОГО НЕСАНКЦИОНИРОВАННОГО ДОСТУПА

 

            В настоящее время для передачи информации внутри контролируемой территории часто используются локальные вычислительные сети (ЛВС). Рассмотрим модель нарушителя в предположении, что в ЛВС применяется протокол ТСР / IP и обмен информацией между несколькими ЛВС выполняется через Интернет:

            1) нарушитель знает топологию всей сети;

2) нарушитель знает IP-адреса подсетей;

            3) нарушитель имеет образцы программного обеспечения рабочих станций и серверов в подсетях и образцы аппаратуры;

            4) нарушитель имеет информацию о внедренных в ПО программно-аппаратных закладках, отладочной информации, мастер-паролях и т. д.;

            5) нарушитель не имеет ключевой информации, т. е. сеансовых и базовых ключей;

            6) НСД-1 исключен.

            Возможные средства защиты Для решения задачи по защите информации в таких условиях предлагается применить разбиение всего пространства сети Интернет на два непересекающихся по открытой информации подпространства: подпространство Р— защищаемые подсети и подпространство С — остальная часть сети Интернет. При этом подпространства Р и С пересекаются только по открытой информации. Основные принципы, заложенные в работу устройства защиты криптомаршрутизатора (КМ), состоят в следующем. Во-первых, внешний и внутренний интерфейсы должны быть разделены физически (например, две разные сетевые карты или разные каналы RS-232). Во-вторых, вся исходящая информация должна преобразоваться КМ по определенным правилам.

            Введем обозначения. Пусть машина F c IP-адресом I(F) принадлежит защищенной подсети с маршрутизатором CRF c IP-адресом I(CRF), а машина G с IP-адресом I(G) — защищенной подсети с маршрутизатором CRG с IP-адресом I(CRG). Таблицы маршрутов на машинах F и G симметричные и выглядят так, будто все машины доступны машине F (G) через обычный маршрутизатор CRF (CRG). Тогда при попытке передать IP-пакет от машины F машине G маршрутизатор CRF будет выполнять следующие действия.  

            1. В таблице маршрутов CRF ищется IP адрес криптомаршрутизатора CRG, который закрывает подсеть, включающую машину G.

            2. По таблице маршрутизации определяется интерфейс, через который доступна подсеть, содержащая КМ CRG.

            3. Пакет от машины F шифруется вместе с заголовком на сеансовом ключе связи криптомаршрутизаторов CRF и CRG.

            4. Заголовок исходящего пакета содержит в качестве адреса машины-отправителя адрес I(CRF), а в качестве адреса машины-получателя — адрес I(CRG).

            5. Пакет отправляется через внешний интерфейс.

Допустим, пакет, содержащий в поле адреса отправителя CRF, а в поле адреса получателя CRG, попал по назначению — в CRG. Криптомаршрутизатор CRG будет выполнять следующую последовательность действий:

            1) выбирается сеансовый ключ связи из таблицы ключей в соответствии с парой адресов I(CRF)-I(CRG), и поле данных IP-пакета расшифровывается;

            2) пакет уничтожается в случае некорректной расшифровки или если полученная кодограмма не является IP-пакетом из внутренней подсети КМ CRG, т. е. адрес получателя расшифрованного IP-пакета не I(G);

            3) пакет передается через внутренний интерфейс машине G. Во внутренней сети расшифрованный IP-пакет имеет адрес отправителя I(F) и адрес получателя I(G).

            Таким образом, достигается полная прозрачность КМ для любого сетевого программного обеспечения, работающего через стек протоколов TCP / IP в рамках внутренних подсетей. Адресное пространство внутренних подсетей не зависит от адресов в Интернете. Устойчивость защиты информации в защищаемых подсетях равна стойкости крипто схемы, реализованной в КМ. Стойкость защиты информации, передаваемой по открытым каналам Интернета, также равна стойкости крипто схемы. При отсутствии воздействия злоумышленника на внутренние подсети, т. е. локального НСД к локальным сетям, защищенность информации в целом равна стойкости крипто схемы.

            Режимы работы криптомаршрутизатора При работе с небольшими сетями (до десяти защищаемых подсетей) конфигурация может храниться, например, в зашифрованном виде в блоке Типе HASP-4. В этом случае КМ имеет один режим работы — основной. При включении питания конфигурация считывается с носителя, КМ начинает работу в основном режиме.

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

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

 

            2.4. ЗАЩИТА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ИНФОРМАЦИИ В КОММУТИРУЕМЫХ КАНАЛАХ СВЯЗИ

 

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

            1) возможны попытки локального НСД со стороны нарушителя к аппаратуре внутренних подсетей;

            2) возможна запись нарушителем всего трафика вне пределов контролируемой зоны;

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

            4) нарушитель имеет образцы аппаратуры, программ, полную документацию;

            5) нарушитель может получить информацию только вне пределов контролируемой зоны;

            6) нарушитель не имеет возможности построить обходные каналы для аппаратуры передачи данных через неконтролируемую зону;

            7) нарушитель не имеет ключей шифрования. При рассмотренных условиях решение задачи по защите информации может быть осуществлено с помощью линейного шифратора, управляемого модемом, который расположен между модемом и компьютером. Устройство должно иметь входной и выходной разъемы интерфейса RS-232. Алгоритм работы такого устройства следующий.

            1. При режиме модема offline никакой информации в линию не передается, поэтому шифратор допускает передачу информации между компьютером и модемом без обработки. Это позволяет сконфигурировать любой модем из любого ПО с любым компьютером независимо от типа процессора и модема.

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

            3. После синхронизации шифраторов информация вместе с сигналом CARRIER DETECT интерфейса RS-232 выдается в компьютер.

            4. При потере несущей все предыдущие шаги повторяются.

            Достоинство предлагаемого решения — полная независимость от программного обеспечения, программных закладок в компьютере и самих компьютеров.

            Недостатками такой схемы являются:

            1) замкнутость (абонент не может связаться с другим абонентом, не имеющим аналогичного устройства);

            2) незащищенность информации при связи с центром коммутации сообщений (ЦКС).

 

            2.5. НАДЕЖНОСТЬ СРЕДСТВ ЗАЩИТЫ

 

            Рассмотренные в данной главе три системы защиты информации от НСД позволяют в разных случаях решать задачу защиты информации с надежностью, соответствующей стойкости реализованных систем шифрования при заданных моделях нарушителя.

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

 

3. ЗАЩИТА ОТ РАЗРУШАЮЩИХ ПРОГРАММНЫХ ВОЗДЕЙСТВИЙ

 

            3.1. ПОНЯТИЕ РАЗРУШАЮЩЕГО ПРОГРАММНОГО ВОЗДЕЙСТВИЯ

 

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

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

            1) в системе имеется механизм различения злоумышленников и легальных пользователей;

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

            3) в системе имеется механизм установления соответствия субъекта и информации, к которой он имеет доступ.

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

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

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

            2) входом злоумышленника в систему под именем и с полномочиями легального пользователя. Нарушитель должен каким-либо образом выяснить или подделать идентификатор реального пользователя. Например, злоумышленник воспользуется информацией, которая извлечена из некоторого массива данных, созданного при совместной работе программного средства злоумышленника и системы проверки прав доступа.

            В обоих случаях НСД можно представить моделью опосредованного несанкционированного доступа, когда проникновение в систему осуществляется на основе некоторого воздействия, произведенного предварительно внедренной в систему программой.

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

            1) скрыть признаки своего присутствия в программной среде КС;

            2) реализовать само дублирование, ассоциирование себя с другими программами и (или) перенос своих фрагментов в иные (не занимаемые изначально указанной программой) области оперативной или внешней памяти;

            3) разрушить (исказить произвольным образом) код программ в оперативной памяти КС;

            4) перенести (сохранить) фрагменты информации из оперативной памяти в некоторые области оперативной или внешней памяти;

            5) изменить произвольным образом, заблокировать и (или) подменить выводимый во внешнюю память или в канал связи массив информации либо изменить его параметры.

Программы с потенциально опасными последствиями можно условно разделить на три класса.

            1. Классические программы-вирусы. Особенность данного класса вредных программ заключается в не направленности их воздействия на конкретные типы прикладных программы, а также в том, что во главу угла ставится само дублирование вируса.

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

            3. Программные закладки, или разрушающие программные воздействия (РПВ), — обобщенный класс программ (в смысле отсутствия конкретных признаков) с потенциально опасными последствиями, обязательно реализующие хотя бы один из пунктов 3 — 5 определения программы с потенциально опасными последствиями.

            Далее наряду с термином «программа с потенциально опасными последствиями» будут использоваться термины «закладка», «программная закладка» либо сокращение РПВ.

            Кроме того, программные закладки можно классифицировать по методу и месту их внедрения и применения:

            1) закладки, ассоциированные с программно-аппаратной средой компьютерной системы (основная BIOS или расширенные BIOS);

            2) закладки, ассоциированные с программами первичной загрузки (находящиеся в Master Boot Record или Boot-секторах активных разделов), — загрузочные закладки;

            3) закладки, ассоциированные с загрузкой операционной среды;

            4) закладки, ассоциированные с прикладным программным обеспечением общего назначения (встроенные в клавиатурные и экранные драйверы, программы тестирования компьютеров, утилиты);

            5) исполняемые модули, содержащие только код закладки (как правило, внедряемые в файлы пакетной обработки типа .ВАТ);

            6) модули-имитаторы, совпадающие по внешнему виду с некоторыми программами, требующими ввода конфиденциальной информации (наиболее характерны для Unix-систем);

            7) закладки, маскируемые под программные средства игрового и развлекательного назначения (как правило, используются для первичного внедрения закладок).

            Как видно, программные закладки имеют много общего с классическими вирусами, особенно в части ассоциирования себя с исполняемым кодом. Кроме того, программные закладки, как и многие известные вирусы классического типа, имеют развитые средства борьбы с отладчиками и дизассемблерами.

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

            1) закладка должна находиться в оперативной памяти до начала работы программы, которая является целью воздействия закладки, следовательно, она должна быть загружена раньше или одновременно с этой программой;

            2) закладка должна активизироваться по некоторому общему как для закладки, так и для программы событию, т. е. при выполнении ряда условий в программно-аппаратной среде управление должно быть передано программе-закладке. Данное событие далее будем называть активизирующим. Обычно выполнение указанных условий достигается путем анализа и обработки закладкой общих относительно закладки и прикладной программы воздействий (как правило, прерываний) либо событий (в зависимости от типа и архитектуры операционной среды). Данные условия являются необходимыми, т. е. если они не выполнены, то активизация кода закладки не произойдет и код не сможет оказать какого-либо воздействия на работу прикладной программы.

            С учетом замечания о том, что закладка должна быть загружена в ОП раньше, чем цель ее воздействий, можно выделить программные закладки двух типов.

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

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

 

            3.2. МОДЕЛИ ВЗАИМОДЕЙСТВИЯ ПРИКЛАДНОЙ ПРОГРАММЫ И ПРОГРАММНОЙ ЗАКЛАДКИ

 

            Определим области воздействия программных закладок на компьютерные системы. Для этого рассмотрим определенные модели закладок.

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

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

            3. Модель «наблюдатель». Закладка встраивается в сетевое или телекоммуникационное программное обеспечение. Пользуясь тем, что данное ПО обычно всегда активно, программная закладка осуществляет контроль за процессами обработки информации на данном компьютере, установку и удаление закладок, а также съем накопленной информации. Закладка может инициировать события для ранее внедренных закладок, действующих по модели «троянский конь».

            4. Модель «компрометация». Закладка либо передает заданную злоумышленником информацию в канал связи, либо сохраняет ее, не полагаясь на гарантированную возможность последующего приема или снятия.

            5. Модель «инициатор ошибок». Программная закладка искажает потоки данных, возникающие при работе прикладных программ, либо искажает входные потоки информации, либо инициирует возникающие при работе прикладных программ ошибки.

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

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

            Исполнение кода закладки может сопровождаться операциями несанкционированной записи (НСЗ) (например, для сохранения некоторых фрагментов информации) и несанкционированного считывания (НСЧ), которое может происходить отдельно от операций чтения прикладной программы или совместно с ними. При этом операции считывания и записи, возможно, и не связаны с получением информации.

            Несанкционированная запись закладкой может происходить:

            1) в массив данных, не совпадающий с пользовательской информацией,— сохранение информации;

            2) в массив данных, совпадающий с пользовательской информацией или ее подмножеством, — искажение, уничтожение или навязывание информации закладкой.

            Следовательно, можно рассматривать три основные группы деструктивных функций, которые могут выполняться закладками:

            1) сохранение фрагментов информации, возникающей при работе пользователя, прикладных программ, вводе (выводе) данных, во внешней памяти, в том числе различных паролей, ключей и кодов доступа, собственно конфиденциальных документов в электронном виде, либо безадресная компрометация фрагментов ценной информации (модели «перехват», «компрометация);

            2) изменение алгоритмов функционирования прикладных программ. Происходит изменение собственно исходных алгоритмов работы программ (например, программа разграничения доступа станет пропускать пользователей по любому паролю (модели «искажение», «троянский конь»));

            3) навязывание некоторого режима работы (например, при уничтожении информации блокирование записи на диск, при этом информация, естественно, не уничтожается) либо замена записываемой информации, навязанной закладкой.

Итак, можно выделить следующие компоненты программной среды, в которой существует закладка, — множество фрагментов кода прикладных программ, множество фрагментов кода закладки и множество событий как последовательностей передачи управления от одного фрагмента кода к другому в программной среде. В последнем множестве выделяются события, по которым управление передается подмножеству фрагментов кода закладки (далее будем называть их активизирующими событиями).

 

            3.3. МЕТОДЫ ПЕРЕХВАТА И НАВЯЗЫВАНИЯ ИНФОРМАЦИИ

 

            В компьютерной системе в любом случае происходят ввод и вывод информации. Злоумышленника обычно интересует и вводимая, и выводимая информация. Основной путь ввода документов в компьютере — клавиатура, реже — сканер. В обоих случаях перехват информации при ее «зарождении» может сказать очень много об информации и ее владельце. То же самое происходит и с выводом информации (например, на принтер).

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

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

            Итак, закладка должна иметь доступ к информативной области, где накапливается вводимая или выводимая информация (как минимум, знать ее адрес), и иметь место для сохранения информации.

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

            Перехват может происходить в основном следующими способами:

            1) встраиванием в цепочку прерывания int 9h;

            2) анализом содержания клавиатурного порта или буфера клавиш по таймерному прерыванию.

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

            Часто закладки-перехватчики файловых операций нацелены на операцию уничтожения файла. Операция уничтожения совмещается с копированием файла в область сохранения.

            Рассмотрим перехват файловых операций применительно к DOS. Предположим, что прикладная программа производит некоторые файловые операции. Для этого файл открывается, часть его (или весь файл) считывается в буфер оперативной памяти, обрабатывается прикладной программой, а затем прикладная программа формирует файл-результат с прежним или новым именем. Активизирующими событиями в данном случае являются, как правило, открытие файла (прерывание int 21h, функция 3Dh), его закрытие или уничтожение.

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

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

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

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

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

            Рассмотрим конкретную модель воздействия закладки для DOS. Закладка встраивается в цепочки прерывания int 21h для следующих функций и управляется следующими событиями:

            1) «Открыть файл». Закладка отфильтровывает нужные имена или указатели файлов;

            2) «Считать из файла». Закладка выполняет прерывание по старому адресу, затем сохраняет считанный буфер в собственном файле либо исправляет в буфере некоторые байты. Кроме того, возможно влияние на результаты операции чтения. Данные действия особенно опасны для программ подтверждения подлинности электронных документов. При считывании приготовленного для подписи файла-документа может произойти изменение имени автора, даты, времени, цифровых данных, заголовка назначения документа (например, изменена сумма платежа в платежных поручениях и др.);

            3) «Записать в файл». Закладка редактирует нужным образом буфер в оперативной памяти или сохраняет файл или часть его в скрытой области, а затем выполняет старое прерывание. В результате записывается файл либо с измененным содержанием, либо каким-то образом дублированный в области сохранения. Закладки такого типа могут, например, подделывать истинность электронной подписи, даже если файл был изменен.

            Рассмотрим, например, процесс создания электронной подписи, реализованный в программе PGP. Программа считывает файл для вычисления хеш-функции блоками по 512 байт, причем завершением процесса чтения является считывание блока меньшей длины. Работа закладки основана на навязывании длины файла. Закладка позволяет считать только первый 512-байтовый блок и вычисляет подпись только на его основе. Такая же схема действует и при проверке подписи. Следовательно, остальная часть файла может быть произвольным образом искажена.

            Интересный пример воздействия на конечный результат проверки цифровой подписи — закладка, обнаруженная в финансовой системе с применением электронной цифровой подписи (ЭЦП) «Блиц». Работа закладки заключалась в изменении на экране и в файле-журнале слов «Не подтверждается» (при ошибочной подписи) на слово «Подтверждается». Активизирующим событием для искажения файла-журнала служила запись в него, а редактирование содержимого экрана выполнялось по таймерному прерыванию.

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

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

            2. Способ искажения результата проверки, связанный с влиянием закладки на признак правильности подписи независимо от результата работы.

            3. Способ изменения длины сообщения — предъявление программе ЭЦП электронного документа меньшей длины; следовательно, производится подпись только части документа.

            4. Способ искажения программы ЭЦП, связанный с изменением исполняемого кода самой программы ЭЦП (изменение алгоритма хеширования и т. д.).

            Рассмотрим последний способ подробнее, распространив алгоритм искажения кода программы на произвольную прикладную программу. Предположим, что злоумышленнику известна интересующая его программа с точностью до команд реализации на конкретном процессоре. Следовательно, возможно смоделировать процесс ее загрузки и выяснить адреса частей программы относительно сегмента оперативной памяти, в который она загружается. Это означает, что возможно произвольное изменение кода программы и, следовательно, отклонение (может быть, негативного характера) в работе прикладных программ.

            Тогда алгоритм действия закладки может быть таким:

            1) закладка загружается в память каким-либо образом;

            2) закладка осуществляет перехват одного или нескольких прерываний:

            • прерывания (события) «Запуск программ и загрузка библиотек»;

            • прерывания BI0S «Считать сектор»;

            • прерывания таймера;

            3) закладка по одному из трех событий получает управление на свой код и далее выполняются:

            • проверка принадлежности запущенной программы или уже работающей к интересующим программам;

            • определение сегмента, в который загружена программа;

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

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

            Достаточно важно использование ошибок при влиянии закладок на работу прикладных программ. Инициирование ошибок в компьютерной системе является частным случаем искажения. Кратко рассмотрим этот вопрос. Ошибкой будем называть ситуацию, при которой завершение какого-либо события в программной среде происходит отличным от нормального (предписанного на этапе проектирования или программирования) образом. Будем рассматривать два потенциально возможных управляемых злоумышленником процесса, связанных с ошибками, а именно инициирование и подавление ошибок. Возможны следующие четыре ситуации:

            1) инициирование статической ошибки. На устройствах хранения информации создается область, действия в которой (чтение, запись, форматирование и т. д.) приводят к возникновению ошибочной ситуации. Инициирование статической ошибки может затруднять или блокировать некоторые действия прикладных программ (например, затрудняет корректное уничтожение ненужной информации);

            2) инициирование динамической ошибки. При выполнении некоторого процесса инициируется ошибочная ситуация из числа возможных ошибок данной операции. При этом заданное действие может не выполняться или же выполняться (т. е. реально ошибка не имеет места, а производится маскировка каких-либо действий закладки, с тем чтобы создать впечатление того, что они не произошли). Инициирование может быть более тонким. Например, в закладке против системы PGP достаточно выставить флаг переноса при прочтении второго блока, чтобы достигнуть совершенно аналогичного эффекта подделки подписи;

            3) подавление статической ошибки — ситуация, обратная инициированию, т. е. на ошибочной области имитируется нормальная операция;

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

            Для прогнозирования возможного влияния ошибок на прикладные программы используется, как правило, имитационное или ситуационное моделирование комплекса прикладных средств и операционной среды.

 

            3.4. КЛАССИФИКАЦИЯ И МЕТОДЫ ВНЕДРЕНИЯ ПРОГРАММНЫХ ЗАКЛАДОК

 

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

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

            Существуют три основных вида архитектуры построения перехватчиков паролей.

            Перехватчики паролей первого рода действуют по следующему алгоритму. Злоумышленник запускает программу, которая имитирует приглашение для входа пользователя в систему и ждет ввода. Когда пользователь вводит имя и пароль, закладка сохраняет их в доступном злоумышленнику месте, после чего завершает работу и осуществляет выход из системы пользователя-злоумышленника. По окончании работы закладки на экране появляется настоящее приглашение для входа пользователя в систему. Пользователь, ставший жертвой такой закладки, видит, что он не вошел в систему и что ему снова предлагается ввести имя и пароль. Пользователь предполагает, что при вводе пароля произошла ошибка, и вводит имя и пароль повторно. После этого пользователь входит в систему и дальнейшая его работа происходит без изменений. Некоторые закладки, функционирующие по данной схеме, перед завершением работы выдают на экран правдоподобное сообщение об ошибке (например: «Пароль введен неправильно. Попробуйте еще раза).

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

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

            Программные закладки, превышающие полномочия пользователя. Эти закладки применяются для преодоления тех систем защиты, в которых реализовано разграничение доступа пользователей к объектам системы (в основном эти закладки применяются против операционных систем). Закладки данного типа позволяют пользователю-злоумышленнику осуществлять доступ к тем объектам, доступ к которым ему запрещен согласно текущей политике безопасности. В большинстве систем, поддерживающих разграничение доступа, существуют пользователи-администраторы, которые могут осуществлять доступ ко всем или почти всем объектам системы. Если программная закладка наделяет пользователя-злоумышленника полномочиями администратора, злоумышленник имеет практически неограниченный доступ к ресурсам системы. Средства и методы, используемые такими закладками для превышения полномочий пользователя, в значительной мере определяются архитектурой атакуемой системы. Чаще всего закладки данного класса используют ошибки в программном обеспечении системы.

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

            Иногда выделяют особый класс логических бомб — временные бомбы, для которых условием срабатывания является достижение определенного момента времени.

            Характерным свойством логических бомб является то, что реализуемые ими негативные воздействия на атакованную систему носят исключительно разрушающий характер. Логические бомбы никогда не используются для организации НСД к ресурсам системы, их единственной задачей является полное или частичное разрушение системы.

            Мониторы. Это программные закладки, перехватывающие те или иные потоки данных, протекающие в атакованной системе. В частности, к мониторам относятся перехватчики паролей второго рода.

            Целевое назначение мониторов может быть самым разным:

            1) полностью или частично сохранять перехваченную информацию в доступном злоумышленнику месте;

            2) искажать потоки данных;

            3) помещать в потоки данных навязанную информацию;

            4) полностью или частично блокировать потоки данных;

            5) использовать мониторинг потоков данных для сбора информации об атакованной системе.

            Мониторы позволяют перехватывать самые различные информационные потоки атакуемой системы, в том числе и сетевой трафик.

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

            Методы внедрения программных закладок

Маскировка закладки под безобидное программное обеспечение. Данный метод заключается в том, что программная закладка внедряется в систему под видом новой программы, на первый взгляд абсолютно безобидной. После внедрения закладки ее присутствие в системе не нужно маскировать. Даже если администратор заметит факт появления в системе новой программы, он не придаст этому значения, поскольку эта программа внешне совершенно безобидна.

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

            Маскировка закладки под безвредный модуль расширения программной среды. Многие программные среды допускают свое расширение дополнительными программными модулями. Например, для операционных систем семейства Microsoft Windows модулями расширения могут выступать динамически подгружаемые библиотеки (DLL) и драйверы устройств. В качестве одного или нескольких модулей расширения может быть внедрена в систему и программная закладка. Данный метод фактически является частным случаем предыдущего метода и отличается от него только тем, что закладка представляет собой не прикладную программу, а модуль расширения программной среды.

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

            Однако для внедрения модуля расширения в многопользовательскую программную среду пользователь, выполняющий эти действия, должен обладать большими полномочиями, которые при соблюдении адекватной политики безопасности предоставляются только администраторам. Другими словами, злоумышленник, внедряющий программную закладку с использованием данного метода, должен иметь в системе полномочия администратора.

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

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

            При внедрении программной закладки в многозадачную или много пользовательскую среду с использованием данного метода возникают и другие проблемы, проявляющиеся на этапе подмены программного модуля закладкой.

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

            Если в многопользовательской среде реализовано разграничение доступа к объектам, то каждая программа запускается от имени того пользователя, который ее запустил. Для того чтобы программная закладка смогла оказать на систему серьезное негативное воздействие, она должна быть запущена либо от имени пользователя, обладающего в системе достаточно большими полномочиями (например, администратора), либо как системный процесс. Следовательно, для внедрения в систему программной закладки с использованием данного метода злоумышленнику необходимы полномочия администратора.

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

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

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

файлов программной среды.

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

            При реализации косвенного ассоциирования в многозадачной программной среде инсталлирующая часть закладки должна получить доступ к коду или данным атакуемой программы. Поскольку в многозадачных программных средах программы выполняются изолированно друг от друга, косвенное ассоциирование возможно только в отдельных случаях. Например, в операционной системе Windows NT программная закладка может быть косвенно ассоциирована только с ядром операционной системы, HAL.DLL или одним из Boot-драйверов. При этом инсталлирующая часть закладки должна выполняться в привилегированном режиме (kernel mode).

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