Кодекс и Законы Защита информации 3
Работа добавлена на сайт bukvasha.net: 2015-10-29Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
ВВЕДЕНИЕ
1. Необходимость и цели защиты информации.
Бурное развитие средств вычислительной техники, автоматизированных информационных систем, появление новых информационных технологий в нашей стране сопровождается, к сожалению, и появлением таких малоприятных явлений, как промышленный шпионаж, компьютерная преступность и, прежде всего, несанкционированный доступ (НСД) к конфиденциальной информации. Этим обуславливается актуальность и значимость проблемы защиты информации.
Острая необходимость в защите информации нашла выражение в создании Государственной системы защиты информации (ГСЗИ). Развивается правовая база информационной безопасности. Приняты и введены в действие законы "О государственной тайне", "Об информации, информатизации и защите информации", "О правовой охране программ для электронных вычислительных машин и баз данных" и др. Целями защиты информации являются: предотвращение ущерба, возникновение которого возможно в результате утери (хищения, утраты, искажения, подделки) информации в любом ее проявлении; реализация адекватных угрозам безопасности информации мер защиты в соответствии с действующими Законами и нормативными документами по безопасности информации (приложение 1), потребностями владельцев (пользователей) информации. "Защите подлежит любая документированная информация, неправомерное обращение с которой может нанести ущерб ее собственнику, владельцу, пользователю и иному лицу" [2].
Любое современное предприятие (учреждение, фирма и т.д.), независимо от вида деятельности и форм собственности, не может сегодня успешно развиваться и вести хозяйственную и иную деятельность без создания надежной системы защиты своей информации, включающей не только организационно-нормативные меры, но и технические средства контроля безопасности информации при ее обработке, хранении и передаче в автоматизированных системах (АС), прежде всего, программно-аппаратные.
2. Основные принципы организации защиты информации от НСД и обеспечения ее конфиденциальности.
Мероприятия по защите информации от НСД являются составной частью управленческой, научной, производственной (коммерческой) деятельности предприятия (учреждения, фирмы и т.д.), независимо от их ведомственной принадлежности и формы собственности, и осуществляются в комплексе с другими мерами по обеспечению установленного режима конфиденциальности. Практика организации защиты информации от НСД при ее обработке и хранении в АС должна учитывать следующие принципы и правила обеспечения безопасности информации [3]:
1. Соответствие уровня безопасности информации законодательным положениям и нормативным требованиям по охране сведений, подлежащих защите по действующему законодательству, в т.ч. выбор класса защищенности АС в соответствии с особенностями обработки информации (технология обработки, конкретные условия эксплуатации АС) и уровнем ее конфиденциальности.
2. Выявление конфиденциальной информации и документальное оформление в виде перечня сведений, подлежащих защите, его своевременная корректировка.
3. Наиболее важные решения по защите информации должны приниматься руководством предприятия (организации, фирмы), владельцем АС.
4. Определение порядка установки уровней полномочий субъектов доступа, а также круга лиц, которым это право предоставлено.
5. Установление и оформление правил разграничения доступа (ПРД), т.е. совокупности правил, регламентирующих права доступа субъектов доступа к объектам доступа.
6. Установление личной ответственности пользователей за поддержание уровня защищенности АС при обработке сведений, подлежащих защите по действующему законодательству путем:
- ознакомления с перечнем защищаемых сведений, организационно-распорядительной и рабочей документацией, определяющей требования и порядок обработки конфиденциальной информации;
- определение уровня полномочий в соответствии с его должностными обязанностями;
- получения от субъекта доступа расписки о неразглашении доверенной ему конфиденциальной информации.
7. Обеспечение физической охраны объекта, на котором расположена защищаемая АС (территория, здания, помещения, хранилища информационных носителей), путем установления соответствующих постов, технических средств охраны или любыми другими способами, предотвращающими или существенно затрудняющими хищение средств вычислительной техники (СВТ), информационных носителей, а также НСД к СВТ и линиям связи.
8. Организация службы безопасности информации (ответственные лица, администратор АС), осуществляющей учет, хранение и выдачу информационных носителей, паролей, ключей, ведение служебной информации СЗИ НСД (генерацию паролей, ключей, сопровождение правил разграничения доступа), приемку включаемых в АС новых программных средств, а также контроль за ходом технологического процесса обработки конфиденциальной информации и т.д.
9. Планомерный и оперативный контроль уровня безопасности защищаемой информации согласно НД по безопасности информации, в т.ч. проверка защитных функций средств защиты информации.
Средства защиты информации должны иметь сертификат, удостоверяющий их соответствие требованиям по безопасности информации.
Современные компьютеры за последние годы приобрели гигантскую вычислительную мощь, но одновременно с этим стали гораздо проще в эксплуатации. Пользоваться ими стало легче, поэтому все большее количество новых, как правило, малоквалифицированных людей получают доступ к компьютерам, что существенно облегчает задачу нарушителям, т.к. в результате "персонализации" средств ВТ большинство пользователей осуществляет администрирование компьютеров самостоятельно.
Повсеместное распространение сетевых технологий объединило отдельные машины в локальные сети, совместно использующие общие ресурсы, а применение технологий клиент-сервер и кластеризации преобразовало такие сети в распределенные вычислительные среды. Безопасность сети определяется защищенностью всех входящих в нее компьютеров и сетевого оборудования, и злоумышленнику достаточно нарушить работу только одного компонента, чтобы скомпрометировать всю сеть.
Современные телекоммуникационные технологии объединили локальные компьютерные сети в глобальную информационную среду – Internet. Именно развитие Internet вызвало всплеск интереса к проблеме безопасности и поставило вопрос об обязательном наличии средств защиты у сетей и систем, подключенных к Internet, независимо от характера обрабатываемой в них информации. Дело в том, что Internet обеспечивает возможности злоумышленникам для осуществления нарушений безопасности в глобальном масштабе. Если компьютер, который является объектом атаки, подключен к Internet, то для атакующего не имеет большого значения, где он находится – в соседней комнате или на другом континенте.
По заключению экспертов самым привлекательным сектором российской экономики для преступников является кредитно-финансовая система. Анализ преступных действий, совершенных в этой сфере, и опросы представителей банковских учреждений позволяют выделить наиболее типичные способы совершения преступлений:
Ø Наиболее распространенные компьютерные преступления, совершенные путем несанкционированного доступа к банковским базам данных посредством телекоммуникационных сетей.
Ø За последнее время не отмечено ни одно компьютерное преступление, которое было бы совершено одним человеком. Известны случаи, когда преступными группировками нанимались бригады из десятков хакеров.
Ø Большинство компьютерных преступлений в банковской сфере совершается при непосредственном участии самих служащих коммерческих банков.
Ø Много компьютерных преступлений совершается в России с использованием возможностей, которые предоставляет своим пользователям сеть Internet.
Уникальность сети Internet заключается в том, что она не находится во владении какого-то физического лица, частной компании, государственного ведомства или отдельной страны. Поэтому практически во всех ее сегментах отсутствует централизованное регулирование, цензура и другие методы контроля информации. Благодаря этому открываются практически неограниченные возможности доступа к любой информации. Сеть Internet можно рассматриать не только как инструмент совершения компьютерных преступлений, но и как среду для ведения преступной деятельности.
При использовании сети Internet в качестве среды для преступной деятельности привлекательной для правонарушителей является возможность обмена информацией криминального характера.
Другая особенность сети Internet – возможность осуществлять в глобальных масштабах информационно-психологическое воздействие на людей. Преступное сообщество весьма заинтересовано в распространении своих доктрин и учений для укрепления позиций представителей преступного мира.
Однако наибольший интерес сети Internet представляет именно как орудие для совершения преступлений обычно в сфере экономики и финансов. В самом простом варианте эти преступления связаны с нарушением авторских прав (незаконное копирование и продажа программ, находящихся на серверах компаний).
Во вторую группу преступлений можно включить нелегальное получение товаров и услуг, в частности, бесплатное пользование услугами, представляемыми за плату различными телефонными компаниями.
Другие способы незаконного пользования услугами основываются на модификации сведений о предоставлении этих услуг в базах данных компаний, которые их оказывают. Информация о предоставлении какой-то услуги в кредит может либо просто уничтожаться, либо изменяться для того, чтобы потребителем уже оплаченной кем-то услуги стал член преступного сообщества.
Через сеть Internet преступники стремятся также получить возможность нужным для себя образом модифицировать конфиденциальную служебную информацию, которая используется руководством банка для принятия каких-либо важных решений.
Дополнительная сфера компьютерных преступлений, совершаемых через сеть Internet, появилась с возникновением электронных банковских расчетов, т.е. с введением в обращение так называемой электронной наличности.
Способы хищения основываются на модификации информации, отображающей электронную наличность. Информация переписывается на счета преступников.
Защищенная система обработоки информации для определенных условий эксплуатации обеспечивает безопасность (конфиденциальность и целостность) обрабатываемой информации и поддерживает свою работоспособность в условиях воздействия на нее множества угроз.
Защищенная система обработки информации должна обладать следующими свойствами:
Ø Осуществление автоматизации некоторого процесса обработки конфиденциальной информации, включая все аспекты этого процесса, связанные с обеспечением безопасности информации.
Ø Успешное противостояние угрозам безопасности, действующими в определенной среде.
Ø Соответствие требованиям и критериям стандартов информационной безопасности.
Защита информации в КС – комплекс организационных, организационно-технических и технических мер, предотвращающих или снижающих возможность образования каналов утечки информации и/или каналов воздействия на КС.
Для защиты информации в компьютерной системе принимаются следующие меры.
Организационные меры защиты – меры общего характера, затрудняющие доступ к ценной информации злоумышленникам вне зависимости от особенностей способа обработки информации и каналов утечки и воздействия.
Организационно-технические меры защиты – меры, связанные со спецификой каналов утечки (воздействия) и метода обработки информации, но не требующие для своей реализации нестандартных приемов, оборудования или программных средств.
Технические (программно-технические) меры защиты – меры, жестко связанные с особенностями каналов утечки и воздействия и требующие для своей реализации специальных приемов, оборудования или программных средств.
ГЛАВА 1
МЕТОДЫ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ
БЕЗОПАСНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ
1.1.
Методы создания безопасных систем обработки информации
В данном разделе рассмотрим самые общие методы обеспечения информационной безопасности автоматизированных систем с позиций автоматизации процессов обработки конфиденциальной информации и методы противодействия угрозам безопасности [1]. Подробно эти вопросы рассматриваются в стандартах информационной безопасности.
1.2. Автоматизация процесса обработки конфиденциальной информации
До применения компьютерных технологий в любой организации, для которой безопасность информации имела определенное значение, был установлен определенный порядок работы с информацией (например, система работы с секретными документами), регламентирующий информационные потоки внутри организации и обмен информацией с внешним миром. Этот порядок включал схему информационных потоков внутри организации и правила управления этими потоками. Таким образом, если основная цель внедрения информационных технологий – автоматизировать процесс обработки информации, то частная задача автоматизации – обеспечить адекватную реализацию в компьютерной системе схемы информационных потоков и правил управления ими, существовавших до применения компьютерных средств.
1.3.
Противодействие угрозам безопасности путем устранения предпосылок их осуществления.
Это основная задача защиты. Любая успешная атака непременно использует определенные особенности системы обработки информации или недостатки средств защиты. В большинстве случаев наличие "изъянов защиты" определяется особенностями архитектуры и реализации средств защиты.
Создание средств защиты от каждого вида угроз не зависит напрямую от назначения системы и не требует модификации по мере по мере ее развития. Недостаток: анализ всех типов угроз, количество которых растет.
Устранение причин, обуславливающих успешную реализацию угроз, не зависит от развития угроз, так как ликвидирует причину, а не следствие.
Недостаток: необходимость модернизации защищенных систем.
1.4. Стандарты информационной безопасности и их роль
Главная задача стандартов информационной безопасности – создать основу для взаимодействия между производителями, потребителями и экспертами по квалификации продуктов информационных технологий. Каждая из этих групп имеет свои интересы и свои взгляды на проблему информационной безопасности.
Потребители, во-первых, заинтересованы в методике, позволяющей обоснованно выбрать продукт, отвечающий их нуждам, для чего необходима шкала оценки безопасности, и, во-вторых, нуждаются в инструменте, с помощью которого они могли бы сформулировать свои требования производителям. При этом потребителя интересуют исключительно характеристики и свойства конечного продукта, а не методы и средства их достижения.
Производители также нуждаются в стандартах как средстве сравнения возможностей своих продуктов, а также в стандартизации определенного набора требований безопасности. Эти требования не должны противоречить парадигмам обработки информации, архитектуре вычислительных систем и технологиям создания информационных продуктов.
Эксперты по квалификации и специалисты по сертификации рассматривают стандарты как инструмент, позволяющий им оценить уровень безопасности.
Производители в результате квалификации уровня безопасности получают объективную оценку возможностей своего продукта.
Таким образом, перед стандартами информационной безопасности стоит задача – примирить эти три точки зрения и создать эффективный механизм взаимодействия всех сторон.
Прежде чем приступить к созданию защищенной системы обработки информации, надо сначала получить четкий и недвусмысленный ответ на вопрос: что представляет собой защищенная система. Для ответа на этот вопрос и согласования всех точек зрения разрабатываются стандарты информационной безопасности. Это документы, регламентирующие основные понятия и концепции информационной безопасности на государственном или межгосударственном уровне, определяющие понятие "защищенная система" посредством стандартизации требований и критериев безопасности, образующих шкалу оценки степени защищенности вычислительной системы (ВС). В соответствии с этими документами защищенная система – это система, сответствующая тому или иному стандарту информационной безопасности (приложение 2).
1.5.
Основные понятия и определения
Эти понятия составляют базовые концепции безопасности компьютерных систем.
Политика безопасности (
Security
Policy
). Совокупность норм и правил, обеспечивающих эффективную защиту системы обработки информации от заданного множества угроз безопасности.
Модель безопасности (
Security
Model
). Формальное представление политики безопасности.
Дискреционное, или произвольное управление доступом (
Discretionery
Access
Control
). Управление доступом, осуществляемое на основании заданного администратором множества разрешенных отношений доступа (например в виде "троек" – <объект, субъект, тип доступа>).
Мандатное, или нормативное, управление доступом (
Mandatory
Access
Control
). Управление доступом основанное на совокупности правил предоставления доступа, определенных на множестве атрибутов безопасности субъектов и объектов, например, в зависимости от грифа секретности информации и уровня доступа пользователя.
Ядро
безопасности
(Trusted Computing Base (
ТСВ
)). Совокупность аппаратных, программных и специальных компонент ВС, реализующих функции защиты и обеспечения безопасности.
Идентификация (
Identification
). Процесс распознания сущностей путем присвоения им уникальных меток (идентификатолров).
Аутентификация (
Autentification
). Проверка подлинности идентификаторов сущностей с помощью различных (преимущественно криптографических) методов.
Адекватность (
Assurance
). Показатель реально обеспечиваемого уровня безопасности, отражающий степень эффективности и надежности реализованных средств защиты и их соответствия поставленным задачам (в основном политике безопасности).
Квалификационный анализ, квалификация уровня безопасности (
Evaluation). Анализ ВС с целью определения уровня ее защищенности и соответствия требованиям безопасности на основе критериев стандарта безопасности. Квалификация уровня безопасности является конечным этапом технологического цикла создания защищенных систем. Непосредственно предшествует процедуре сертификации, и завершается присвоением ВС того или иного класса или уровня безопасности.
Таксономия (
Taxonomy
). Наука о систематизации и классификации сложноорганизованных объектов и явлений, имеющих иерархическое строение. В отличие от классификации, устанавливающей связи и отношения между объектами снизу-вверх, таксономия основана на декомпозиции явлений и поэтапном уточнении свойств объектов (иерархия сверху-вниз).
Прямое взаимодействие (
Trusted
Path
). Принцип организации информационного взаимодействие (как правило, между пользователем и системой), гарантирующий, что передаваемая информация не подвергается перехвату или искажению.
1.6. Угрозы безопасности компьютерных систем
Под угрозой безопасности вычислительной системе понимаются воздействия на систему, которые прямо или косвенно могут нанести ущерб ее безопасности.
Разработчики требований безопасности и средств защиты выделяют три вида угроз:
Ø угрозы нарушения конфиденциальности обрабатываемой информации;
Ø угрозы нарушения целостности обрабатываемой информации;
Ø угрозы нарушения работоспособности ВС.
Угрозы конфиденциальности направлены на разглашение секретной информации (несанкционированный доступ).
Угрозы целостности представляют собой любое искажение или изменение неуполномоченным на это действие лицом хранящейся в вычислительной системе или передаваемой информации. Наиболее актуальна эта угроза для систем передачи информации – компьютерных сетей и систем телекоммуникаций.
Угрозы нарушения работоспособности (отказ в обслуживании) направлены на создание ситуаций, когда в результате преднамеренных действий ресурсы вычислительной системы становятся недоступными, или снижается ее работоспособность.
Цель защиты систем обработки информации – противодействие угрозам безопасности.
1.7. Методы взлома компьютерных систем
В общем случае программное обеспечение универсальной компьютерной системы (КС) состоит из трех основных компонентов: операционной системы (ОС), сетевого программного обеспечения (СПО) и системы управления базами данных (СУБД). Поэтому попытки взлома защиты компьютерных систем можно разделить на три группы [4]:
Ø атаки на уровне операционной системы;
Ø атаки на уровне сетевого программного обеспечения;
Ø атаки на уровне систем управления базами данных.
Атаки на уровне СУБД. Защита СУБД является одной из самых простых задач. Это связано с тем, что СУБД имеет строго определенную внутреннюю структуру, а операции над элементами СУБД заданы довольно четко. Есть четыре основных действия – поиск, вставка, удаление и замена элемента. Другие операции являются вспомогательными и используются довольно редко. Все это упрощает решение защиты СУБД. В большинстве случаев злоумышленники предпочитают взламывать защиту компьютерной системы на уровне ОС и получать доступ к файлам СУБД с помощью средств ОС. Однако в случае, если используется СУБД, не имеющая достаточно надежных защитных механизмов, или плохо протестированная версия СУБД, содержащая ошибки, или если при определении политики безопасности администратором СУБД были допущены ошибки, то становится вполне вероятным преодоление взломщиком защиты, реализуемой на уровне СУБД.
Имеются два специфических сценария атаки на СУБД, для защиты от которых требуется применить специальные методы. В первом случае результаты арифметических операций над числовыми полями СУБД округляются в меньшую сторону, разница суммируется в некоторой другой записи СУБД (например, личный счет злоумышленника), а округляемые числовые поля относятся к счетам других клиентов банка. Во втором случае злоумышленник получает доступ к полям записей СУБД, для которых доступной является только статистическая информация. Сущность атаки злоумышленника – так хитро сформулировать запрос, чтобы множество записей, для которого собирается статистика, состояло только из одной записи.
Атаки на уровне операционной системы
. Защитить операционную систему (ОС), в отличие от СУБД, намного сложнее. Это связано с тем, что внутренняя структура современных ОС чрезвычайно сложна, и поэтому соблюдение адекватной политики безопасности является очень трудной задачей. Среди неопытных пользователей бытует мнение, что самые эффективные атаки на ОС могут быть организованы только с помощью сложнейших средств. На самом деле это не совсем так. Высокая квалификация взломщика – качество не лишнее, но искусство взлома заключается в поиске слабых мест в конкретной системе защиты. При этом простейшие методы взлома оказываются ничуть не хуже самых изощренных, поскольку чем проще алгоритм атаки, тем больше вероятность его работы без ошибок.
Успех реализации того или иного алгоритма атаки взломщика в значительной степени зависит от архитектуры и конфигурации ОС. Однако есть атаки, которым может быть подвергнута практически любая ОС:
Ø кража пароля:
· подглядывание за пользователем, когда тот вводит пароль (злоумышленник может легко узнать пароль, просто следя за перемещением пальцев при его наборе);
· получение пароля из файла, в котором этот пароль был сохранен в незашифрованном виде пользователем, не желающим затруднять себя вводом пароля при подключении к сети;
· поиск пароля, который пользователи записывают где-угодно;
· кража внешнего носителя парольной информации (дискеты или электронного ключа, где хранится пароль для входа в ОС);
· полный перебор всех возможных вариантов пароля;
· подбор пароля по частоте встречаемости символов с помощью словарей наиболее часто употребляемых паролей с применением знаний о конкретном пользователе (фамилия, номер телефона, год рождения и т.п.);
Ø сканирование жестких дисков компьютера (злоумышленник последовательно пытается обратиться к каждому файлу, хранимому на жестких дисках компьютерной системы; если объем дискового пространства достаточно большой, то вполне вероятно, что при описании доступа к файлам и каталогам администратор допустил хотя бы одну ошибку, в результате которой все каталоги и файлы будут прочитаны злоумышленником; для сокрытия следов взломщик может организовать эту атаку под чужим именем, например, под именем пользователя, пароль которого ему известен);
Ø сборка "мусора" (если средства ОС позволяют восстанавливать ранее удаленные объекты, например, из корзин);
Ø превышение полномочий (используя ошибки в программном обеспечении или в администрировании ОС, злоумышленник получает полномочия, превышающие полномочия, предоставленные ему согласно действующей политике безопасности):
· запуск программы от имени пользователя, имеющего необходимые полномочия;
· подмена динамически загружаемой библиотеки, используемой системными программами, или изменение переменных среды, описывающих путь к таким библиотекам;
· модификация кода или данных подсистемы защиты самой операционной системы;
Ø отказ в обслуживании (целью этой атаки является частичный или полный вывод из строя операционной системы):
· захват ресурсов (программа злоумышленника производит захват всех имеющихся в ОС ресурсов, а затем входит в бесконечный цикл);
· бомбардировка запросами (программа злоумышленника постоянно направляет ОС запросы, реакция на которые требует привлечения значительных ресурсов компьютера);
· использование ошибок в программном обеспечении или администрировании.
Если в программном обеспечении компьютерной системы нет ошибок и ее администратор строго соблюдает политику безопасности, то атаки всех перечисленных типов окакжутся малоэффективными. Тем не менее полностью устранить угрозу взлома компьютерной системы на уровне ОС невозможно. Поэтому политика безопасности должна быть такой, чтобы даже при преодолении защиты ОС злоумышленник не смог нанести серьезного ущерба.
Атаки на уровне сетевого программного обеспечения. Сетевое программное обеспечение (СПО) является наиболее уязвимым, потому что канал связи, по которому передаются сообщения, чаще всего не защищен, и всякий, кто может иметь доступ к этому каналу, может перехватывать исообщения и отправлять свои собственные. Поэтому на уровне СПО возможны следующие атаки взломщиков:
Ø прослушивание сегмента локальной сети (в пределах одного и того же сегмента локальной сети любой подключенный к нему компьютер в состоянии принимать сообщения, адресованные другим компьютерам сегмента, а следовательно компьютеру взломщика, подключенному к этому же сегменту сети, становится доступен весь информационный обмен между компьютерами этого сегмента);
Ø перехват сообщений на маршрутизаторе (если взломщик имеет привилегированный доступ к сетевому маршрутизатору, то он получает возможность перехватывать все сообщения, проходящие через этот маршрутизатор, и хотя тотальный перехват невозможен из-за слишком большого объема информации, значительный интерес для взломщика представляет выборочный перехват сообщений, содержащих пароли пользователей и их электронную почту);
Ø создание ложного маршрутизатора (путем отправки в сеть сообщений специального вида взломщик добивается, чтобы его компьютер стал маршрутизатором сети, после чего получает доступ ко всем проходящим через него сообщениям);
Ø навязывание сообщений (отправляя в сеть сообщения с ложным обратным сетевым адресом, взломщик переключает на свой компьютер уже установленные сетевые соединения и в результате получает права пользователей, чьи соединения обманным путем были переключены на компьютер взломщика);
Ø отказ в обслуживании (взломщик отправляет в сеть сообщения специального вида, после чего одна или несколько компьютерных систем, подключенных к сети, частично или полностью выходят из строя).
Поскольку атаки злоумышленников на уровне СПО спровоцированы открытостью сетевых соединений, то для отражения этих атак необходимо максимально защитить каналы связи и тем самым затруднить обмен информацией по сети для тех, кто не является легальным пользователем. Ниже перечислены некоторые способы такой защиты:
· максимальное ограничение размеров компьютерной сети (чем больше сеть, тем труднее ее защитить);
· изоляция сети от внешнего мира (ограничение физического доступа к сети извне);
· шифрование сетевых сообщений (снижается угроза перехвата, но также снижается и производительность сети);
· электронная цифровая подпись сетевых сообщений (если неподписанные сообщения игнорируются, то можно забыть про угрозу навязывания сообщений и про большинство угроз отказа в обслуживании);
· использование брандмауэров (межсетевых экранов), которые являются вспомогательным средством защиты, применяемым только в том случае, если компьютерную сеть нельзя изолировать от других сетей.
1.8. Защита компьютерной системы от взлома
Для обобщенной модели взлома компьютерных систем можно сформулировать универсальные рекомендации, чтобы свести риск к минимуму:
· постоянно повышайте квалификацию в области защиты компьютерных систем;
· руководствуйтесь принципом разумной достаточности: не стремитесь построить абсолютно надежную защиту (чем мощнее защита, тем больше ресурсов компьютерной системы она требует);
· храните в секрете информацию о принципах действия защитных механизмов КС;
· постарайтесь максимально уменьшить размеры КС и без крайней необходимости не подключайте ее к Internet;
· перед покупкой нового ПО поищите информацию о нем на хакерских сайтах Internet;
· размещайте серверы в охраняемых помещениях, не подключайте к ним клавиатуру и дисплеи, чтобы доступ к ним осуществлялся только через сеть;
· абсолютно все сообщения, передаваемые по незащищенным каналам связи, должны шифроваться и снабжаться цифровой подписью;
· при стыковке защищенной сети с незащищенной все сообщения должны проходить через межсетевые экраны, шифроваться и снабжаться цифровой подписью;
· не пренебрегайте возможностями аудита (интервал просмотра журнала аудита не должен превышать одних суток);
· если окажется, что число событий в журнале аудита велико, изучите новые записи, так как не исключено, что КС подверглась атаке взломщика;
· регулярно проводите проверку целостности программного обеспечения КС, проверяйте КС на наличие в ней программных закладок;
· регистрируйте все изменения в политике безопасности в обычном бумажном журнале (регулярная проверка поможет обнаружить присутствие программной закладки);
· пользуйтесь защищенными ОС;
· создайте несколько ловушек для взломщиков (например, заведите на диске файл с привлекательным именем, и если будет зафиксировано успешное обращение к этому файлу, значит в защищаемую КС была внедрена программная закладка);
· регулярно тестируйте КС с помощью специальных программ степень защищенности КС.
1.9. Защита КС от программных закладок
1.9.1. Программные закладки
Основным условием правильного функционирования компьютерной системы является ее защита от воздействия тех программ, присутствие которых в этой системе излишне. В первую очередь такими прграммами являются компьютерные вирусы, от которых необходимо освобождаться и защищаться известными методами. Имеются также вредоносные программы другого типа – так называемые программные закладки, которые могут выполнять одно из перечисленных действий [4]:
Ø искажать коды программ, загруженных в оперативную память компьютера (программная закладка первого типа);
Ø перемещать фрагменты информации из одних областей оперативной или внешней памяти компьютера в другие (программная закладка второго типа);
Ø искажать выводимую на внешние устройства или в канал связи информацию (программная закладка третьего типа).
По методу внедрения в КС программные закладки подразделяются:
· программно-аппаратные закладки, связанные с аппаратными средствами компьютера (их средой обитания обычно является BIOS);
· загрузочные закладки, связанные с программами начальной загрузки, которые располагаются в загрузочных секторах, из которых компьютер при начальной загрузке считыват программу, берущую на себя последующую загрузку самой операционной системы;
· драйверные закладки;
· прикладные закладки, ассоциированные с прикладным программным обеспечением общего назначения (текстовые редакторы, утилиты, антивирусные мониторы и программные оболочки);
· исполняемые закладки, ассоциированные с исполняемыми программными модулями, содержащими код этой закладки (чаще всего эти модули представляют собой пакетные файлы, которые состоят из команд операционной системы, выполняемых одна за одной, как если бы их набирали на клавиатуре компьютера);
· закладки-имитаторы, интерфейс которых идентичен с интерфейсом некоторых служебных программ, требующих ввод конфиденциальной информации (паролей, криптографических ключей, номеров кредитных карточек);
· замаскированные закладки, которые маскируются под программные средства оптимизации работы компьютера (файловые архиваторы, дисковые дефрагментаторы) или под программы игрового и развлекательного назначения.
Чтобы программная закладка выполнила свое назначение, процессор должен приступить к выполнению команд, входящих в код закладки. Это осуществимо, если программная закладка находится в оперативной памяти компьютера (программная закладка первого типа должна быть загружена до начала работы основной программы) и имели место активизирующие условия.
Иногда сам пользователь может спровоцировать запуск исполняемого файла, содержащего код программной закладки. Известен случай, когда среди пользователей свободно распространялся набор из архивированных файлов. Для извлечения файлов из него требовалось вызвать специальную утилиту, которая запускается после указания ее имени в командной строке. Однако мало кто замечал, что в полученном наборе файлов уже имелась программа с таким же именем и что запускалась именно она. Кроме разархивирования файлов, эта программная закладка выполняла ряд негативных действий.
Можно выделить резидентные закладки, которые находятся в оперативной памяти постоянно, начиная с некоторого момента и до окончания работы компьютера, и нерезидентные закладки, которые попадают в оперативную память компьютера аналогично резидентным, но выгружаются при выполнении особых условий.
Существует три вида негативных действий программных закладок:
· копирование информации пользователя компьютерной системы (паролей, криптографических ключей, кодов доступа и т. п.);
· изменение алгоритмов работы системных, прикладных и служебных программ (например, изменение программы разграничения доступа может привести к тому, что доступ будет разрешен любому пользователю независимо от правильности пароля);
· навязывание определенных режимов работы (например, блокирование записи на диск при удалении информации, при этом запись не уничтожается и может быть прочитана).
У всех программных закладок имеется одно общее свойство: они обязательно выполняют операцию записи в оперативную или внешнюю память системы. При отсутствии этой операции никакого негативного воздействия программная закладка сделать не может. Понятно, что для избирательного действия она должна выполнять и операцию чтения.
1.9.2. Воздействия программных закладок на компьютеры
Перехват. В модели перехват программная закладка внедряется в ПЗУ, системное или программное обеспечение и сохраняет вводимую информацию с внешних устройств или выводимую на эти устройства в скрытой области памяти локальной или удаленной компьютерной системы.
Модель может действовать в два этапа. На первом этапе перехватываются, например, только имена или начала файлов. После анализа этой информации выбираются конкретные объекты для следующей атаки.
Эта модель может быть успешно использована для атаки на защищенную операционную систему Windows NT. Как известно, после старта Windows NT на экране монитора появляется приглашение активизировать клавиши <Ctrl>+<Alt>+<Del>, после нажатия которых загружается динамическая библиотека MSGINA.dll, осуществляющая процедуры идентификации и аутентификации пароля. Существует простой способ подмены исходной библиотеки MSGINA.dll на пользовательскую добавлением специальной строки в реестр операционной системы и указанием пути к пользовательской библиотеки. В итоге злоумышленник может изменить процедуру контроля доступа к компьютерной системе.
Искажение. В этой модели воздействия программная закладка модифицирует информацию в памяти компьютерной системы, или создает ошибочные ситуации.
Различают статическое и динамическое искажение. Статическое искажение происходит только один раз, после чего модифицированные параметры программной среды позволяют злоумышленнику выполнять необходимые для него действия. Например, измененный файл AUTOEXEC.bat в операционной системе Windows 95/98 может запустить программную закладку раньше, чем загрузятся программы, указанные в зтом файле.
Известны случаи статического искажения, связанного с проверкой корректности цифровой подписи. В исполняемом EXE-модуле проверки цифровой подписи символьная строка "Подпись некорректна" была заменена на строку "Подпись корректна", в результате чего документы с некорректной цифровой подписью перестали фиксироваться, а в электронные документы стало возможным вносить изменения.
Суть динамичесого искажения заключается в модификации каких-либо параметров программной среды системных или прикладных процессов при помощи заранее активизированной программной закладки. Различают искажение на входе, когда на обработку попадает уже искаженный документ, и искажение на выходе, когда искажается информация, необходимая для работы других программ или анализа.
Программная реализация цифровой подписи – наиболее привлекательный объект для воздействия программных закладок типа "динамическое искажение". Например, в одной из реализаций криптосистемы PGP электронный документ, подлежащий удостоверению цифровой подписью, считывался блоками по 512 байт. Процесс считывания считался законченным, если в последнем блоке данные занимали менее 512 байт. Действие одной программной закладки основывалось на навязывании длины файла. Закладка позволяла считывать только первые 512 байт исходного документа, в результате чего цифровая подпись ставилась после первого блока данных. Оставшаяся часть этого документа могла быть произвольно искажена, а цифровая подпись под ним оставалась "корректной".
На цифровую подпись программные закладки могут действовать следующим образом [4]:
· искажение входной информации, когда изменяется поступающий на подпись электронный документ;
· искажение результата проверки истинности цифровой подписи, когда независимо от работы программы подпись объявляется подлинной;
· навязывание длины электронного документа;
· искажение программы цифровой подписи, когда вноcятся изменения в исполняемый код программы.
В рамках модели "искажение" также создаются программные закладки, которые инициируют или подавляют сигнал о возникновении в компьютерной системе ошибочных ситуаций, которые приводят к ненормальному завершению исполняемой программы.
Для инициирования статической ошибки на устройствах хранения информации злоумышленником создается область, при обращении к которой (чтение, запись, форматировние и т. п.) возникает ошибка, что может блокировать действия системных или прикладных программ (например, не позволять корректно уничтожать конфиденциальную информацию на жестком диске).
Для инициирования динамической ошибки для некоторой операции генерируется ложная ошибка из числа тех, которые могут возникать при выполнении данной операции. Например, для блокирования приема или передачи информации может постоянно инициироваться ошибочная ситуация "Модем занят". Или при прочтении первого блока информации длиной 512 байт может устанавливаться флажок для того, чтобы не допустить прочтения второго и последующего блоков и подделать цифровую подпись под документом.
Чтобы маскировать ошибочные ситуации, злоумышленники используют подавление сигналов статических и динамических ошибок. Целью таких действий является желание блокировать нормальное функционирование компьютерной системы.
Разновидностью программных закладок являются программы типа троянский конь. Троянской программой называется:
· программа, которая является частью другой программы с известными пользователю свойствами, способная втайне от него выполнять некоторые дополнительные функции с целью причинения ущерба;
· программа с известными пользователю свойствами, в которую были внесены изменения, чтобы помимо известных функций, она могла втайне от него выполнять некоторые разрушительные действия.
Такие программные закладки по некоторому активизирующему событию могут вызывать сбойную ситуацию в компьютерной системе. При этом достигаются две цели: нарушается нормальное функционирование системы и становится возможным доступ злоумышленника к компьютерной системе под предлогом устранения неисправности. При этом злоумышленник может извлечь информацию, перехваченную другими закдадками. В качестве активизирующего события используется наступление определенного момента времени, состояние некоторых счетчиков (например, счетчика запусков программы) или сигнал из канала модемной связи.
В общем случае действия троянской программы могут быть любыми – от определения регистрационных номеров программного обеспечения, установленного на компьютере, до составления списка каталогов на его жестком диске. А сама троянская программа может маскироваться под текстовый редактор, под сетевую утилиту или любую программу. Троянцы написаны для всех операционных систем и представляют значительную угрозу компьютерам, поскольку их действия могут носить не только деструктивный характер, но и сбор конфиденциальной информации о системе. Обнаружить такие троянские программы удается, как правило, чисто случайно.
Уборка мусора. При хранении компьютерной информации на внешних носителях прямого доступа имеется несколько уровней иерархии: сектора, кластеры и файлы. Сектора являются единицами хранения информации на аппаратном уровне. Кластеры состоят из одного или нескольких подряд идущих секторов. Файл – это множество кластеров, связанных по определенному закону.
Работа с конфиденциальными документами обычно связана со следующими действиями с файлами: создание, хранение, коррекция и уничтожение.
Для защиты конфиденциальной информации применяется шифрование. Надежность защиты информации зависит не только от алгоритмов шифрования и стойкости криптографических ключей, но и от особенностей работы обыкновенных текстовых редакторов и баз данных, применяемых для создания и коррекции конфиденциальных документов. Подобные программные средства в процессе работы создают в оперативной или внешней памяти временные копии документов, с которыми они работают. Эти временные файлы не шифруются и могут быть использованы злоумышленником.
Необходимо также иметь в виду, что при записи отредактированной информации меньшего объема в тот же файл, где хранилась исходная информация до начала ее редактирования, образуются так называемые "хвостовые" кластеры, в которых информация полностью сохраняется. И тогда информация из "хвостовых" кластеров не только не шифруются, но и остаются неповрежденными даже при применении средств гарантированного стирания. Со временем информация из "хвостовых" кластеров затирается данными из других файлов, однако по оценкам специалистов через сутки из "хвостовых" кластеров можно извлечь до 85% исходной информации.
Пользователям надо иметь в виду, что команда удаления DEL операционной системы DOS не изменяет содержание файла, и оно может быть восстановлено в любой момент, если поверх не была записана другая информация.
Распространенные средства гарантированного стирания файлов сначала записывают на его место случайные числа, а потом удаляют файл стандартными средствами DOS. Однако и такие средства оказываются малоэффективными против программных закладок, которые предназначены для увеличения в "мусоре" фрагментов конфиденциальной информации. Например, закладка может может инициировать статическую ошибку, пометив один или несколько кластеров меткой "сбойный". В итоге при удалении файла та его часть, которая размещена в "сбойных" кластерах останется нетронутой и может быть восстановлена с помощью стандартных утилит.
Наблюдение и компрометация. При использовании модели воздействия типа "наблюдение" программная закладка размещается в сетевом или телекоммуникационном программном обеспечении. Так как это программное обеспечение постоянно находится в активном состоянии, то программная закладка может следить за процессами обработки информации, а также осуществлять установку новых и удаление других закладок.
Модель типа "компрометация" позволяет получать доступ к информации, перехваченной другими закладками. Например, инициируется постоянное обращение к такой информации, приводящее к росту сигнал/шум, что значительно облегчает перехват побочных излучений компьютерной системы и выделение сигналов, генерируемых закладкой типа "компрометация".
1.10. Защита от программных закладок
Защита от программных закладок может рассматриваться в трех аспектах [4]:
· предотвращение внедрения программной закладки;
· обнаружение внедренной программной закладки;
· удаление программной закладки.
Проблемы защиты от программных закладок сходны с проблемами защиты от вирусов. Обнаружение программных закладок можно эффективно осуществить, контролируя целостность информации, запускаемых системных и прикладных программ, а также критические для работы системы события. При этом средства контроля сами не должны быть подвержены влиянию программных закладок, которые могут:
· искажать результаты контрольных действий;
· влиять на процесс считывания и запуск контролируемых программ;
· изменять алгоритмы функционирования средств контроля.
Выявление внедренной программной закладки. Обнаружение внедренной программной закладки заключается в выявлении признаков ее присутствия в компьютерной системе. Эти признаки могут быть качественными и визуальными, а также обнаруживаемые средствами тестирования и диагностики.
Качественные и визуальные признаки обнаруживаются пользователем компьютерной системы по определенным отклонениям в ее работе, например, по изменению состава и длины файлов, замедлению или ускорению работы программ и т. п.
Признаки, выявляемые с помощью средств тестирования и диагностики, однотипны как для программных закладок, так и для компьютерных вирусов. Например, загрузочные закладки обнаруживаются антивирусными программами, сигнализирующими о наличии подозрительного кода в загрузочном секторе диска. Инициирование статической ошибки обнаруживает программа Disk Doctor. Средства проверки целостности данных на диске типа Adinf выявляют изменения в файлах, вызванные программными закладками. Эффективен также поиск фрагментов кода программных закладок по характерных для них последовательностям нулей и единиц (сигнатурам), а также разрешение выполнения только программ с известными сигнатурами.
Программные средства для защиты от троянских программ используют так называемое согласование объекта. При этом в качестве объектов фигурируют файлы и каталоги, а согласование заключается в установлении факта неизменности файлов и каталогов с момента последней проверки. В процессе согласования характеристики объектов сравниваются с характеристиками, которые они имели раньше. Например, архивная копия системного файла и ее атрибуты сравнивается с атрибутами этого же файла, находящемся на диске в данный момент времени.
Одним из атрибутов любого файла являются сведения о времени его последней модификации, которое фиксируется автоматически при внесении поправки в файл. Но фиксация времени модификации файла не может служить надежным признаком наличия в системе троянской программы, так как можно подкрутить системные часы назад, модифицировать файл, а затем снова вернуть часы в исходное состояние, и отметка времени об изменении файла останется неизменной. Если доступ к системным часам для пользователя запрещен, то такой метод выявления программной закладки может оказаться действенным.
Для обнаружения программной закладки можно использовать контроль размера файла. Если файл текстовый и занимает на диске, например, 10 Кбайт, то после незначительного редактирования он будет иметь такой же размер, иначе говоря, килобайт не является достаточно точной единицей определения размера файла. Иначе обстоит дело с двоичными файлами. Внедрить постороннюю программу в исходную с точностью до одного бита при сохранении работоспособности исходной программы после компиляции – задача далеко не простая.
Злоумышленник обычно пытается сделать троянскую программу частью системного файла. Такие файлы входят в дистрибутив операционной системы и их присутствие на компьютере вполне обоснованно. Но любой системный файл имеет известную длину, определяющую эталон контрольной суммы битов. Если этот атрибут будет изменен, то пользователь обратит на это внимание. Для маскировки злоумышленник тщательно проанализирует исходный текст соотоветствующей программы на наличие избыточных элементов, удалит их и вставит в сократившуюся программу свою закладку. Если размер полученного двоичного кода будет больше или меньше размера исходного, то процедура повторяется до тех пор, пока указанные размеры файлов не станут одинаковыми. Описанная процедура может быть выполнена только очень квалифицированным злоумышленником.
Для проверки целостности файловой системы применяется алгоритм вычисления контрольной суммы – одностороннее хэширование. Напомним, что функция называется односторонней, если нахождение двух аргументов, для которых ее значения совпадает, является труднорешаемой задачей. Все попытки злоумышленника изменить какой-либо файл таким образом, чтобы значение контрольной суммы, полученное путем одностороннего хэширования, осталось неизменным, обречены на провал.
Защита от внедрения программных закладок. Надежным средством защиты от внедрения программной закладки является использование изолированного компьютера. Компьютер является изолированным, если:
· в нем BIOS и операционная система не содержат программных закладок;
· гарантированно установлена неизменность BIOS и операционной системы в данном сеансе работы компьютера;
· на компьютере не запускалось и не запускается никаких других программ, не проверенных на закладки;
· исключен запуск проверенных программ вне изолированного компьютера.
Для определения изолированности компьютера может быть осуществлен ступенчатый контроль. Сначала проверяется на наличие закладок BIOS. При положительном результате считываются для проверки загрузочный сектор диска и драйверы операционной системы. Затем при помощи операционной системы активизируется драйвер контроля вызовов программ, который отслеживает, чтобы в компьютере запускались только проверенные программы.
Действенный метод борьбы с внедрением программных закладок применяется в банковской системе, в которой обрабатываются исключительно файлы-документы. Чтобы препятствовать проникновению программной закладки через каналы связи, в системе не допускается прием исполняемого кода. Применяется контроль на присутствие в файле запрещенных символов, которые не встречаются в файлах-документах.
Недавно на рынке появились программные пакеты для комплексной защиты от угроз при работе в Internet [4]. Одним из таких пакетов является eSafe Protect компании Aladdin Knowledge Systems. Функционально eSafe Protect делится на три компонента – антивирус, персональный брандмауэр и модуль защиты компьютерных ресурсов. Антивирус избавляет компьютер от вредоносных программ с помощью антивирусного модуля VisuSafe. Персональный брандмауэр контролирует весь входящий и выходящий трафик по протоколу TCP/IP, наделяя используемые IP-адреса определенными правами (например, ограничивая доступ в Internet в определенные часы или запрещая посещение некоторых Web-узлов). С помощью специального окна осуществляется доступ к конфигурационным настройкам входящих в eSafe Protect компонентов, производится запуск антивирусной программы и дискретно устанавливается степень защищенности системы.
Для защиты ресурсов компьютера создается специальная изолированная область – песочница. Все автоматически загружаемые из Internet Java-аплеты и компоненты ActiveX сначала помещаются в "песочницу", где они находятся под наблюдением eSafe Protect. Если попавшая в "песочницу" программа попытается выполнить какое-то непредусмотренное действие, то оно будет немедленно блокировано. В течение заданного интервала времени (от 1 до 30 дней) каждое приложение, загруженное из Internet, проходит "карантинную" проверку в "песочнице". Полученная в ходе такой проверки информация заносится в особый журнал. По истечении "карантина" приложение будет выполняться вне "песочницы", но ему будут дозволены только те действия, перечень которых определяется на основе журнальных записей.
Таким образом, по сравнению с другими подобными программными пакетами eSafe Protect обеспечивает наиболее развитые и зффективные средства комплексной защиты от троянских программ. Входящий в состав eSafe Protect антивирус помогает быстро выявлять троянцев. Персональный брандмауэр блокирует любые попытки связаться извне с проникнувшими в компьютерную систему троянскими программами. С помощью "песочницы" своевременно предотвращается внедрение троянцев в компьютеры под видом Java-аплетов и компонентов ActiveX.
Удаление внедренной программной закладки. Предпочтительный способ удаления программной закладки определяется методом ее внедрения. Если имеют дело с программно-аппаратной закладкой, то следует перепрограммировать ПЗУ компьютера. Если это загрузочная, драйверная, прикладная, замаскированная закладка или закладка-имитатор, то можно заменить их на соответствующую загрузочную запись, драйвер, утилиту, прикладную или служебную программу, полученную от источника, заслуживыающего доверия. И наконец, если это исполняемый программный модуль, то можно попытаться получить его исходный текст, убрать из него закладки или подозрительные фрагменты, а затем заново откомпилировать.
1.11. Политика безопасности
Рассматривая вопросы безопасности информации в компьютерных системах, можно говорить о наличии некоторых "желательных" состояний данных систем [5]. Эти желательные состояния описывают "защищенность" системы. Понятие "защищенности" принципиально не отличается от любых других свойств технической системы, например, "надежной" работы, и является для системы априорно заданным. Особенностью понятия "защищенность" является его тесная связь с понятиями "злоумышленник" (как обозначение внешней причины для вывода системы из состояния "защищенности") или "угроза" (понятие, обезличивающее причину вывода системы из защищенного состояния из-за действий злоумышленника).
При рассмотрении понятия "злоумышленник" практически всегда выделяется объект его воздействия – часть системы, связанная с теми или иными действиями злоумышленника ("объект атаки"). Таким образом, можно выделить три компоненты, связанные с нарушением безопасности системы: "злоумышленник" – внешний по отношению к системе источник нарушения свойства "безопасность", "объект атаки" – часть, принадлежащая системе, на которую злоумышленник производит воздействие, "канал воздействия" – среда переноса злоумышленного воздействия.
Интегральной характеристикой, описывающей свойства защищаемой системы, является политика безопасности (ПБ) – качественное (или качественно-количественное) описание свойств защищенности, выраженное в терминах, описывающих систему. Описание политики безопасности может включать или учитывать свойства злоумышленника и объект атаки.
Описание политики безопасности включает:
1. Множество возможных операций над объектами.
2. Для каждой пары "субъект-объект" (SiOi) назначение множества разрешенных операций, являющегося подмножеством всего множества возможных операций. Операции связаны обычно с целевой функцией защищаемой системы (т.е. с категорией, описывающей назначение системы и решаемые задачи), например, операциями "создание объекта", "удаление объекта", "перенос информации от произвольного объекта к предопределенному – чтение" и т.д.
В теории компьютерной безопасности практически всегда рассматривается модель произвольной компьютерной системы (КС) в виде конечного множества элементов. Указанное множество можно разделить на два подмножества: множество объектов и множество субъектов. Данное разделение основано на свойстве элемента "быть активным" или "получать управление" (применяются также термины "использовать ресурсы" или "пользоваться вычислительной мощностью"). На основе модели вычислительной системы последовательность исполняемых инструкций (программа, соответствующая понятию "субъект") находится в единой среде с данными (соответствующими понятию "объект").
Подчеркнем отличие понятия субъекта КС от человека-пользователя следующим образом. Пользователь – физическое лицо, аутентифицируемое некоторой информацией и управляющее субъектом КС через органы управления ЭВМ. Пользователь является, таким образом, внешним фактором, управляющим состоянием субъектов. Пользователь не может влиять на свойства субъекта.
Можно сформулировать аксиомы защищенных компьютерных систем:
Аксиома 1. В защищенной КС всегда присутствует активная компонента (субъект), выполняющая контроль операций субъектов над объектами. Данная компонента фактически отвечает за реализацию некоторой политики безопасности.
Аксиома 2. Для выполнения в защищенной КС операций над объектами необходима дополнительная информация (и наличие содержащего ее объекта) о разрешенных и запрещенных операциях субъектов с объектами.
В данном случае мы оперируем качественными понятиями "контроль", "разрешенная и запрещенная операция".
Аксиома 3.
Все вопросы безопасности информации описываются доступами субъектов к объектам.
Важно отметить, что политика безопасности описывает в общем случае нестационарное состояние защищенности. КС может изменяться, дополняться новыми компонентами. Очевидно, что политика безопасности должна быть поддержана во времени, следовательно, в процесс изучения свойств защищаемой системы должны быть добавлены процедуры управления безопасностью.
С другой стороны, нестационарность защищаемой КС, а также вопросы реализации политики безопасности в конкретных конструкциях защищаемой системы (например, программирование контролирующего субъекта в командах конкретного процессора компьютера) предопределяют необходимость рассмотрения задачи гарантирования заданной политики безопасности.
Таким образом, компьютерная безопасность решает четыре класса взаимосвязанных задач:
1. Формулирование и изучение политик безопасности.
2. Реализация политик безопасности.
3. Гарантирование заданной политики безопасности.
4. Управление безопасностью.
Типовой жизненный цикл КС состоит из следующих стадий:
1. Проектирование КС и проектирование политики безопасности.
2. Моделирование ПБ и анализ корректности ПБ, включающий установление адекватности ПБ и целевой функции КС.
3. Реализация ПБ и механизмов ее гарантирования, а также процедур и механизмов управления безопасностью.
4. Эксплуатация защищенной системы.
Безопасность КС достаточно часто описывается в категориях "достоверность", "конфиденциальность", "целостность" и "доступность".
Свойство достоверности понимается как сохранение информацией своих семантических свойств в любой момент времени от момента ввода в систему. Свойство доступности понимается как возможность пользования ресурсом КС и информацией в произвольный момент времени. Свойство целостности (связанное со свойством достоверности) подразумевает неизменность свойств информации и ресурсов в любой момент времени от момента их порождения или ввода в систему. Свойство конфиденциальности понимается как недоступность информации или сервисов для пользователей, которым априорно не задана возможность использования указанных сервисов или информации.
Рассмотрим также качественное описание и классификацию различных угроз в КС.
По цели реализации угрозы – нарушение конфиденциальности, целостности, доступности.
По принципу и типу воздействия – с использованием физического доступа (локально) или удаленно – пассивно (с использованием каналов утечки) и активно (с использованием каналов удаленного воздействия). Более общим понятием по сравнению с каналом утечки является канал воздействия на КС. Он может включать изменение компонент КС – активное воздействие – угроза свойству целостности. Несанкционированный доступ в КС может иметь как пассивный, так и активный характер, поэтому его корректнее отнести к воздействию на КС.
По используемым средствам атаки на КС – с использованием штатных средств КС и с использованием дополнительных средств.
1.12. Модель КС. Понятие монитора безопасности
Модели, связанные с реализацией ПБ, не учитывают возможности субъектов по изменению КС, которые могут привести к изменению ее свойств и как предельный случай к полной неприменимости той или иной модели к описанию отношений "субъект-объект" в измененной КС.
Этот факт не является недостатком политики безопасности. Достоверность работы механизмов реализации политики безопасности считается априорно заданной, поскольку в противном случае невозможна формализация и анализ моделей. Однако вопрос гарантий политики безопасности является ключевым как в теории, так и в практике.
Рассматривая активную роль субъектов в КС, необходимо упомянуть о ряде важнейших их свойств, на которых базируется модель КС [5].
Во-первых, необходимо заметить, что человек-пользователь воспринимает объекты и получает информацию о состоянии КС через субъекты, которыми он управляет и которые производят отображение информации в воспринимаемом человеком виде.
Во-вторых, угрозы компонентам КС (КС рассматривается в модели потоков или состояний) исходят от субъектов как активной компоненты, порождающей потоки и изменяющей состояние объектов в КС.
В-третьих, субъекты могут влиять друг на друга через изменяемые ими объекты, связанные с другими субъектами, порождая в конечном итоге в системе субъекты (или состояния системы), которые представляют угрозу для безопасности информации или работоспособности самой системы.
Будем считать разделение КС на субъекты и объекты априорным. Будем считать также, что существует априорный безошибочный критерий различения субъектов и объектов КС (по свойству активности). Кроме того, считаем в условиях всех утверждений, что декомпозиция КС на субъекты и объекты фиксирована.
Будем также полагать, что в любой дискретный момент времени множество субъектов КС не пусто.
Аксиома 4. Субъекты в КС могут быть порождены только активной компонентой (субъектами) из объектов.
Специфицируем механизм порождения новых субъектов следующим определением.
Определение 1. Объект Oi называется источником для субъекта Sm, если существует субъект Sj, в результате воздействия которого на объект Oi в КС возникает субъект Sm.
Субъект Sj, порождающий новый субъект из объекта Oi, в свою очередь, называется активизирующим субъектом для порожденного субъекта Sm.
Введем обозначение: Create
(
Sj, Oi
)-> Sk из объекта Oi
порожден субъект Sk при активизирующем воздействии субъекта Sj. Create назовем операцией порождения субъектов (рис. 1).
Операция Create
задает отображение декартова произведения множеств субъектов и объектов на объединение множества субъектов с пустым множеством. Заметим также, что в КС действует дискретное время и фактически новый субъект Sk порождается в момент времени t+1 относительно момента t, в который произошло воздействие порождающего субъекта на объект-источник.
Считаем, что если Create
(Sj, Oi
)>
NULL
(конструкцияNULL
далее обозначает пустое множество), то порождение нового субъекта из объекта Oi при активизирующем воздействии Sj невозможно. Так, практически во всех операционных средах существует понятие исполняемого файла – объекта, могущего быть источником для порождения субъекта. Например, для MS DOS файл edit.com является объектом-источником для порождения субъекта-программы текстового редактора, а порождающим субъектом является, как правило, командный интерпретатор shell (объект-источник – command.com).
Из архитектуры фон Неймана следует также, что с любым субъектом связан (или ассоциирован) некоторый объект (объекты), отображающий его состояние,– например, для активной программы (субъекта) ассоциированным объектом будет содержание участка оперативной памяти с исполняемым кодом данной программы.
Определение 2. Объект Oi в момент времени t ассоциирован с субъектом Sm, если состояние объекта Oi
повлиялона состояние субъекта в следующий момент времени (т.е. субъект использует информацию, содержащуюся в объекте).
Рис. 1. Порождение субъекта и понятие потока
Введем обозначение "множество объектов {Om
}
t
ассоциировано с субъектом Sj в момент времени t": Sj
({
Om
}
t
).
В данном случае определение не в полной мере является формально строгим, поскольку состояние субъекта описывается упорядоченной совокупностью ассоциированных с ним объектов.
В момент порождения субъекта Sm
из объектаOi
он является ассоциированным объектом для субъекта Sm.
Определение 3. Потоком информации между объектом Om
и объектом OJ
называется произвольная операция над объектом OJ, реализуемая в субъекте Sj и зависящая от Om.
Заметим, что как OJ, так и Om
могут быть ассоциированными или неассоциированными объектами, а также "пустыми" объектами (NULL).
Обозначения: Stream
(
Si
,
Om
)->
Oj
– поток информации от объекта Om
кобъектуOJ. При этом будем выделять источник (Om) и получатель (приемник) потока (OJ). В определении подчеркнуто, что поток информации рассматривается не между субъектом и объектом, а между объектами. Активная роль субъекта выражается в реализации данного потока (это означает, что операция порождения потока локализована в субъекте и отображается состоянием его функционально ассоциированных объектов). Отметим, что операция Stream может создавать новый объект или уничтожать его.
Определение 4. Доступом субъекта Sj
к объекту OJ
будем называть порождение потока информации между некоторым объектом (например, ассоциированным с субъектом объектами и объектом OJ.
Выделим все множество потоков Р для фиксированной декомпозиции КС на субъекты и объекты во все моменты времени (все множество потоков является объединением потоков по всем моментам дискретного времени) и произвольным образом разобьем его на два непересекающихся подмножества: N
и L
,
P
=
N
È
L.
Обозначим:
N – подмножество потоков, характеризующее несанкционированный доступ;
L – подмножество потоков, характеризующее легальный доступ.
Дадим некоторое пояснение к разделению множеств N
и L. Понятие "безопасность" подразумевает наличие и некоторого состояния "опасности" – нежелательных состояний какой-либо системы (в данном случае КС). Будем считать парные категории типа "опасный – безопасный" априорно заданными для КС и описываемыми политикой безопасности, а результатом применения политики безопасности к КС – разделение на множество "опасных" потоков N
и множество "безопасных" потоков L. Деление на потоки может описывать как свойство целостности (потоки из N нарушают целостность КС) или свойство конфиденциальности (потоки из N нарушают конфиденциальность КС), так и любое другое свойство.
Определение 5. Правила разграничения доступа субъектов к объектам есть формально описанные потоки, принадлежащие подмножеству L.
В предлагаемой субъектно-ориентированной модели не производятся уточнения известных моделей политики безопасности (политика безопасности описывает только критерии разбиения на множества), но формулируются условия корректного существования элементов КС, обеспечивающих реализацию той или иной политики безопасности.
Определение 6. Монитор обращений (МО) – субъект, активизирующийся при возникновении потока от любого субъекта к любому объекту.
Можно выделить два вида МО:
Индикаторный МО – устанавливающий только факт обращения субъекта к объекту.
Содержательный МО – субъект, функционирующий таким образом, что при возникновении потока от ассоциированного объекта Om
любого субъекта Si
(
Si
((
Om
)) к объекту OJ
и обратно существует ассоциированный с МО объект Omo
(в данном случае речь идет об ассоциированных объектах-данных), тождественный объекту Om
или Sj
(
Om
).
Определение 7. Монитор безопасности объектов (МБО) – монитор обращений, который разрешает поток, принадлежащий только множеству легального доступа L. Разрешение потока в данном случае понимается как выполнение операции над объектом – получателем потока, а запрещение – как невыполнение.
1.13. Обеспечение гарантий выполнения политики безопасности
Представляется очевидным, что при изменении функционально ассоциированных с субъектом реализации политики безопасности (МБО) объектов могут измениться и свойства самого МБО, заключающиеся в фильтрации потоков, и как следствие могут возникнуть потоки, принадлежащие множеству N (рис. 2). Введем в связи с этим понятие корректности субъектов [5].
Определение 8. Пара субъектов называется не влияющими друг на друга (или корректными относительно друг друга), если в любой момент времени отсутствует поток (изменяющий состояние объекта) между ассоциированным объектом субъекта и причем не является ассоциированным объектом а Osi не является ассоциированным объектом.
Смысл понятия корректности можно пояснить на примере: существующие в едином пространстве ОП программы не должны иметь функциональных возможностей изменения "чужого" вектора кода и состояния переменных.
Определение 9. Пара субъектов называется абсолютно не влияющими друг на друга (или абсолютно корректными относительно друг друга), если множества ассоциированных объектов указанных субъектов не имеют пересечения.
Абсолютная корректность легко достижима в случае виртуального адресного пространства.
Определение абсолютной корректности позволяет сформулировать условия гарантированного осуществления только легального доступа.
Утверждение 1. Достаточное условие гарантированного выполнения политики безопасности в КС.
Монитор безопасности объектов разрешает порождение потоков только из множества L, если все существующие в системе субъекты абсолютно корректны относительно него и друг друга.
Доказательство.
Условие абсолютной корректности предполагает неизменность функционально ассоциированных объектов МБО (поскольку потоков, изменяющих ассоциированные объекты МБО, не существует). С другой стороны, такие потоки могут появиться при изменении ассоциированных объектов, принадлежащих другим субъектам КС (изменятся свойства субъекта, в том числе и возможно по порождению потоков к МБО). Условие корректности субъектов относительно друг друга делает это невозможным по определению абсолютной корректности. Это, в свою очередь, означает, что МБО реализует только потоки из подмножества L. Утверждение доказано.
Рис. 2. Возможные пути нарушения ПБ (АО – ассоциированные объекты)
Определение 10. Монитор порождения субъектов (МПС) – субъект, активизирующийся при любом порождении субъектов.
По аналогии с переходом от МО к МБО введем понятие монитора безопасности субъектов.
Определение 11. Монитор безопасности субъектов (МБС) – субъект, который разрешает порождение субъектов только для фиксированного подмножества пар активизирующих субъектов и порождающих объектов.
Воздействие МБС выделяет во всем множестве субъектов S подмножество разрешенных Е.
ГЛАВА 2
ЗАМКНУТАЯ ПРОГРАММНАЯ СРЕДА
2.1.
Основные определения
Определение 12. КС называется замкнутой по порождению субъектов, если в ней действует МБС, разрешающий порождение только фиксированного конечного подмножества субъектов для любых объектов-источников, рассматриваемых для фиксированной декомпозиции компьютерной системы на субъекты и объекты [5].
При рассмотрении вопросов реализации защищенных сред будет рассматриваться термин "замкнутая программная среда", который по существу эквивалентен приведенному определению.
Однако замкнутости КС по порождению субъектов недостаточно для описания свойств системы в части защищенности, поскольку необходимо обеспечить корректность порождаемых МБС субъектов относительно его самого и МБО. Механизм замкнутой программной среды сокращает множество возможных субъектов до некоторого множества фиксированной мощности, но при этом допускает существование некорректных субъектов, включенных в замкнутую среду.
Сформулируем определение изолированности КС.
Определение 13. Множество субъектов КС называется изолированным (абсолютно изолированным), если в ней действует МБС и субъекты из порождаемого множества корректны относительно друг друга и МБС.
С учетом ограничения множества субъектов за счет применения механизма МБС можно сформулировать утверждение о достаточном условии гарантированного выполнения политики безопаности по иному: если в абсолютно изолированной КС существует МБО и порождаемые субъекты абсолютно корректны относительно МБО, а также МБС абсолютно корректен относительно МБО, то в такой системе реализуется только доступ, описанный в правилах разграничения доступа.
При рассмотрении технической реализации изолированности субъектов в КС будет употребляться термин "изолированная программная среда" (ИПС), который описывает механизм реализации изолированности.
Определение 13. Операция порождения субъекта Create
(
Sk, Om
)-> Si называется порождением с контролем неизменности объекта, если для любого момента времени t>t0, в который активизирована операция порождения Create, порождение субъекта Si возможно только при тождественности объектов O
m[t0] и O
m[t].
Следствие. В условиях определения 13 порожденные субъекты Si[t1] и Si[t2] тождественны, если t1>t0 t2>t0. При t1= t2 порождается один и тот же субъект.
При порождении субъектов с контролем неизменности объекта в КС допустимы потоки от субъектов к объектам-источникам, участвующим в порождении субъектов, с изменением их состояния.
Утверждение 2 (базовая теорема ИПС)
Если в момент времени t0 в изолированной КС действует только порождение субъектов с контролем неизменности объекта и существуют потоки от любого субъекта к любому объекту, не противоречащие условию корректности субъектов, то в любой момент времени t>t0 КС также остается изолированной (абсолютно изолированной).
Доказательство
По условию утверждения в КС возможно существование потоков, изменяющих состояние объектов, не ассоциированных в этот момент времени с каким-либо субъектом. Если объект с измененным состоянием не является источником для порождения субъекта, то множество субъектов изолированной среды нерасширяемо, в противном случае (измененный объект является источником для порождения субъекта) по условиям утверждения (порождение субъекта с контролем) порождение субъекта невозможно. Следовательно, мощность множества субъектов не может превышать той, которая была зафиксирована до изменения состояния любого объекта. По следствию из определения 13 (о замкнутости множества субъектов в ИПС с невозрастанием мощности множества субъектов) получим, что множество субъектов КС изолировано. Утверждение доказано.
Можно сформулировать методологию проектирования гарантированно защищенных КС. Сущность данной методологии состоит в том, что при проектировании защитных механизмов КС необходимо опираться на совокупность приведенных выше в утверждениях достаточных условий, которые должны быть реализованы для субъектов, что гарантирует защитные свойства, определенные при реализации МБО в КС (т.е. гарантированное выполнение заданной МБО политики безопасности).
Рассмотренная концепция изолированной программной среды является расширением зарубежных подходов к реализации ядра безопасности.
Обычно модель функционирования ядра безопасности изображается в виде следующей схемы, показанной на рис. 3.
На рис. 3 "база данных защиты" означает объект, содержащий в себе информацию о потоках множества L (защита по "белому списку" – разрешение на потоки) или N (защита по "черному списку" – запрещение на потоки).
Для учета влияния субъектов в КС необходимо рассматривать расширенную схему взаимодействия элементов системы реализации и гарантирования ПБ.
Рис. 4 наглядно поясняет взаимодействие элементов ядра безопасности с учетом контроля порождения субъектов. На рис. 4 подчеркнута роль монитора безопасности при порождении субъектов из объектов. Взаимодействие субъектов и объектов при порождении потоков уточнено введением ассоциированных с субъектом объектов.
Рис. 3. Классическая модель ядра безопасности
Рис. 4. Ядро безопасности с учетом контроля порождения субъектов
Конструкция ОУ на схеме обозначает объект управления, т.е. объект, содержащий информацию о разрешенных значениях Stream
(об элементах множества L или N) и Create
(элементы множества Е). Объект управления может быть ассоциирован (ассоциированный объект-данные) как с МБО, так и с МБС.
Перейдем к описанию практических методов построения изолированной программной среды. Целью рассмотрения практических подходов является иллюстрация утверждения о том, что достаточные условия гарантированной защищенности могут быть практически выполнены в реальных КС.
2.2. Метод генерации изолированной программной среды при проектировании механизмов гарантированного поддержания политики безопасности
Опираясь на базовую теорему ИПС, опишем метод субъектно-объектного взаимодействия в рамках ИПС для более конкретной архитектуры КС [5].
Из теоремы следует, что для создания гарантированно защищенной КС в смысле выполнения политики безопасности необходимо:
1. Убедиться в попарной корректности субъектов, замыкаемых в ИПС (либо убедиться в корректности любого субъекта относительно МБО и МБС).
2. Спроектировать и реализовать программно (или программно-аппаратно) МБС так, чтобы:
- для любого субъекта и любого объекта производился контроль порождения субъетов (т.е. чтобы реализация МБС соответствовала его определению;
- порождение любого субъекта происходило с контролем неизменности объекта-источника.
3. Реализовать МБО в рамках априорно сформулированной политики безопасности.
Надо заметить, что приводимые выше утверждения верны только тогда, когда описанная и реализованная ПБ не нарушает их условий (проверка данного факта зависит от модели ПБ и является отдельной весьма важной задачей).
Кроме того, необходимо обратить внимание на следующее. Объект управления, который является ассоциированным объектом МБС (обычно ассоциированный объект-данные), играет решающую роль в проектировании ИПС. При возможности изменения состояния объекта управления потенциально возможно "размыкание" программной среды, т.е. добавление к множеству разрешенных субъектов дополнительных, реализующих злоумышленные функции. С другой стороны, процесс управления безопасностью подразумевает возможность изменения объекта управления. Возможность изменения объекта управления (реализация потока Stream (субъект управления, АО объекты субъекта управления)->ОУ) должна присутствовать для выделенных субъектов.
Важную роль при проектировании ИПС играет свойство КС, заключающееся в поэтапной активизации субъектов из объектов различного уровня представления информации. Рассмотрим в таблице 1 иерархию уровней при загрузке операционной системы.
В таблице выделен термин "сектор" для обозначения представления объекта аппаратно-программного уровня. Он обозначает непрерывную последовательность элементов хранения (байт) на материальном носителе, характеризуемую местом расположения
Термин "файл" обозначает абстрактный объект, построенный по списочной структуре из объектов "сектор". Объекты типа "файл" и "сектор" выделены исключительно исходя из типовой структуры объектов КС.
Таблица 1. Иерархия уровней при загрузке ОС
Уровень | Субъект | Локализация | Представле-ние информации | Через какие функции реализуются потоки |
0 | Субъект аппаратно-программного уровня | ПЗУ (Bios) | cектора | через микропро-граммы ПЗУ |
1 | Субъект уровня пер- вичной за- грузки | Загрузчик ОС | cектора | через Bios или первич- ный загруз- чик |
2 | Субъект уровня вторичного загрузчика (драйвер) | Драйверы ОС | cектора | через Bios или первич- ный загруз- чик |
3 | Субъект уровня ОС | Ядро ОС | файлы | через драйверы |
4 | Субъект пользовате-льского уровня | Прикладные приложения | файлы | через ядро ОС |
С учетом иерархической структуры представления объектов можно говорить о том, что в начальные этапы активизации КС декомпозиция на субъекты и объекты динамически изменяется. Следовательно, основная теорема ИПС может быть применима только на отдельных интервалах времени, когда уровень представления объектов постоянен и декомпозиция фиксирована. Можно утверждать, что ИПС, действующая от момента активизации до момента окончания работы КС, невозможно сформировать в начальный момент активизации КС.
Пусть в КС выделяется конечное число уровней представления объектов U={0,…,R}, где R – максимальный уровень представления объекта.
С точни зрения базовой теоремы ИПС имело бы смысл говорить о некотором "стационарном состоянии КС, когда в отображениях Stream
и Create участвуют только объекты уровня R. Тогда реализация МБС может быть значительно упрощена (в том смысле, что все аргументы-объекты операции Create имеют тот же уровень). Необходимо обратить внимание на то, что такое требование, с одной стороны, может накладывать ограничительные условия на свойства прикладного ПО (невозможность инициирования потоков, включающих объекты уровня менее R, прикладными программами, а с другой стороны, быть следствием проектировочных решений реализации субъекта, локализованного в ядре операционной системы (примером является ОС Windows NT 4.0, запрещающая операции ниже уровня "файл" со стороны субъектов прикладного уровня).
Практическая реализация всех операционных систем позволяет выделить две фазы их работы: активизация субъектов с ростом уровня представления объектов (фаза загрузки или начальная фаза) и фаза стационарного состояния (когда уровень представления объектов не увеличивается). Конечно, необходимо сделать оговорку, касающуюся возможности реализации потоков к объектам нижнего уровня (операционные системы типа DOS, в которых возможна операция с любым объектом нижнего уровня (сектор) из программ прикладного уровня).
Тогда практическая реализация ИПС может состоять из двух этапов: предопределенное выполнение начальной фазы, включающее в себя момент активизации МБС (и МБО), и работа в стационарной фазе в режиме ИПС (возможно, с контролем неизменности объектов-источников).
Введем понятие последовательности активизации компонент КС. Смысл вводимых понятий и формулируемых ниже утверждений состоит в необходимости приведения субъектов КС в одно и то же состояние после активизации первичного субъекта аппаратно-программного уровня, или, иначе говоря, в задании предопределенной последовательности активизации субъектов КС.
Обозначим: ZL – последовательность пар (i,j)t (t=0,1,2,…,l-1 – моменты времени) длины l, такие, что Create
(
S
i
,
O
j
)[t]->S
m[t+l].
Обозначим также:
Sz – множество всех субъектов, включенных в последовательность ZL,
OZ – множество всех объектов, включенных в последовательность ZL.
Для многопотоковых КС можно рассматривать несколько (возможно, независимых друг от друга) последовательностей ZLи соответственно множеств Sz и OZ.
Определение 14. Состоянием КС в момент времени t называется упорядоченная совокупность состояний субъектов.
Напомним, что каждый объект есть слово в априорно определенном языке, а понятие состояния субъекта сформулировано выше.
Утверждение 3. (Условие одинакового состояния КС).
Состояние КС в моменты времени tx1 и tx2 (tx1 и tx2 исчисляются для двух отрезков активности КС от нулевого момента активизации КС to1 и to2 – например, включения питания аппаратной части) одинаково, если:
1. tx1=tx2,
2. тождественны субъекты Si[to1] и Si[to2],
3. неизменны все объекты из множества OZ,
4. неизменна последовательность ZL.
Доказательство по принципу математической индукции:
Верность утверждения при t=1 следует из определения тождественности субъектов.
Пусть утверждение верно для t=k<1.
Тогда в момент времени k+1 могут быть порождены только тождественные субъекты, поскольку тождественны активизирующие субъекты (по предположению индукции) и по условию утверждения неизменны элементы множества OZ.
Длина l последовательности ZL определяется:
1. По признаку невозможности управления субъектами, принадлежащими множеству Sz, со стороны пользователя (в противном случае последовательность активизации субъектов может быть изменена).
2. По признаку доступности для контроля неизменности всех объектов из множества OZ.
3. По признаку невозрастания уровня представления информации (в данном случае имеется в виду, что существует момент времени tx такой, что для любого t>tx объект-аргумент Oj операции Create
(
S
i
,
O
j
) принадлежит одному уровню представления).
Необходимо заметить, что последовательность ZL локализуется в некотором объекте либо совокупности объектов (например, для DOS последовательность активизации субъектов предопределена содержанием файлов AUTOEXEC.BAT и CONFIG.SYS) и неизменность последовательности ZL тождественна неизменности указанных объектов, для ОС Windows NT последовательность активизации компонент определена содержанием соответствующих ключей реестра (registry).
Пусть в последовательности ZL можно выделить zi такое, что для любого zk, k>i отображения Create
и Stream
используют только объекты уровня R. Другими словами, с момента времени i наступает стационарная фаза функционирования КС.
В этих условиях, а также при попарной корректности субъектов и действии МБС с контролем неизменности объектов-источников на уровне R с момента времени m>k верно:
Утверждение 4 (достаточное условие ИПС при ступенчатой загрузке).
При условии неизменности ZL и неизменности объектов из OZ в КС с момента времени установления неизменности ZL и OZ действует ИПС. Доказательство не приводим.
Утверждение 5 (требования к субъектному наполнению ИПС).
Для того, чтобы ИПС поддерживалась в течение всего времени активности КС, достаточно, чтобы в составе программного обеспечения, могущего быть инициированным в ИПС, не было функций порождения субъектов и прекращения их работы, кроме заранее предопределенных при реализации МБС, и не существовало возможностей влияния на среду выполнения (под средой выполнения понимается множество ассоциированных объектов) любого процесса, а также инициирования потоков к объектам логического уровня менее R.
Утверждение 6 (достаточное условие чтения реальных данных).
Если субъект, обслуживающий процесс чтения данных (т.е. указанный субъект инициируется запрашивающим данные субъектом и участвует в потоке) содержал только функции тождественного отображения данных на ассоциированные объекты-данные любого субъекта, инициирующего поток чтения, и целостность объекта-источника для этого субъекта зафиксирована, то при его последующей неизменности чтение с использованием порожденного субъекта будет чтением реальных данных.
2.3. Формирование и поддержка изолированной программной среды
Предположим, что в КС работают N субъектов-пользователей, каждый i-й из которых характеризуется некоторой персональной информацией Ki, не известной другим пользователям и хранящейся на некотором материальном носителе. Существует также выделенный субъект - администратор системы, который знает все Кi. Администратор КС присваивает i-му пользователю полномочия, заключающиеся в возможности исполнения им только заданного подмножества программ
Тi={Pi1, Pi2, ... Pit}.
Несанкционированным доступом является использование имеющихся на жестком диске ПЭВМ программ либо субъектом, не входящим в N допущенных, либо i-м пользователем вне подмножества своих полномочий Ti. Субъект, пытающийся проделать данные действия, называется злоумышленником. НСД осуществляется обязательно при помощи имеющихся на ПЭВМ или доставленных злоумышленником программных средств (в данном случае не рассматривается возможность нарушения целостности аппаратных средств компьютера). НСД может носить непосредственный и опосредованный характер. При непосредственном НСД злоумышленник, используя некоторое ПО пытается непосредственно осуществить операции чтения или записи (изменения) интересующей его информации. Если предположить, что в Ti нет программ, дающих возможность произвести НСД (это гарантирует администратор при установке полномочий), то НСД может быть произведен только при запуске программ, не входящих в Ti. Опосредованный НСД обусловлен общностью ресурсов пользователей и заключается во влиянии на работу другого пользователя через используемые им программы (после предварительного изменения их содержания или их состава злоумышленником). Программы, участвующие в опосредованном НСД, будем называть разрушающими программным воздействиями (РПВ) или программными закладками. РПВ могут быть внедрены i-м пользователем в ПО, принадлежащее j-му пользователю только путем изменения программ, входящих в Tj. Следовательно, система защиты от НСД должна обеспечивать контроль за запуском программ, проверку их целостности и активизироваться всегда для любого пользователя. Выполнение контроля целостности и контроля запусков ведется на основе Ki для каждого пользователя. При этом внедренный в КС защитный механизм должен обеспечивать следующее:
- в некоторый начальный момент времени требовать у субъекта предъявления аутентифицирующей информации и по ней однозначно определять субъекта и его полномочия Тi;
- в течении всего времени работы пользователя i должен обеспечивать выполнение программ только из подмножества Ti;
- пользователь не должен иметь возможности изменить подмножество Тi и/или исключить из дальнейшей работы защитный механизм и его отдельные части.
Положим, что в ПЗУ (BIOS) и операционной среде (в том числе и в сетевом ПО) отсутствуют специально интегрированные в них возможности НСД. Пусть пользователь работает с программой, в которой также исключено наличие каких-либо скрытых возможностей (проверенные программы). Потенциально злоумышленные действия могут быть такими:
1. Проверенные программы будут использованы на другой ПЭВМ с другим BIOS и в этих условиях использоваться некорректно.
2. Проверенные программы будут использованы в аналогичной, но не проверенной операционной среде, в которой они также могут использоваться некорректно.
3. Проверенные программы используются на проверенной ПЭВМ и в проверенной операционной среде, но запускаются еще и не проверенные программы, потенциально несущие в себе возможности НСД.
Тогда НСД в КС гарантированно невозможен, если выполняются условия:
У1. На ПЭВМ с проверенным BIOS установлена проверенная операционная среда.
У2. Достоверно установлена неизменность DOS и BIOS для данного сеанса работы.
У3. Кроме проверенных программ в данной программно-аппаратной среде не запускалось и не запускается никаких иных программ, проверенные программы перед запуском контролируются на целостность.
У4. Исключен запуск проверенных программ в какой-либо иной ситуации, т.е. вне проверенной среды.
У5. Условия У1-4 выполняются в любой момент времени для всех пользователей, аутентифицированных защитным механизмом.
При выполнении перечисленных условий программная среда называется изолированной (далее будем использовать термин ИПС – изолированная программная среда). Функционирование программ в изолированной программной среде (ИПС) существенно ослабляет требования к базовому ПО. В самом деле, ИПС контролирует активизацию процессов через операционную среду, контролирует целостность исполняемых модулей перед их запуском и разрешает инициирование процесса только при одновременном выполнении двух условий – принадлежности к разрешенным и неизменности.
В таком случае от базового ПО требуется только:
1. Невозможность запуска программ помимо контролируемых ИПС событий.
2. Отсутствие в базовом ПО возможностей влиять на среду функционирования уже запущенных программ (фактически это требование невозможности редактирования оперативной памяти).
Все прочие действия, являющиеся нарушением Условий 1-3, в оставшейся их части будут выявляться и блокироваться. Таким образом, ИПС существенно снижает требования к ПО в части наличия скрытых возможностей.
Основным элементом поддержания изолированности среды является контроль целостности. При этом возникает проблема чтения реальных данных, так как контроль целостности всегда сопряжен с чтением данных (по секторам, по файлам и т.д.). В процессе чтения РПВ может навязывать вместо одного сектора другой или редактировать непосредственно буфер памяти. С другой стороны, даже контроль самого BIOS может происходить "под наблюдением" какой-либо дополнительной программы ("теневой BIOS") и не показать его изменения. Аналогичные эффекты могут возникать и при обработке файла. Таким образом, внедренное в систему РПВ может влиять на процесс чтения-записи данных на уровне файлов или на уровне секторов и предъявлять системе контроля некоторые другие вместо реально существующих данных. Этот механизм неоднократно реализовывался в STELTH-вирусах. Однако верно утверждение: если программный модуль, обслуживающий процесс чтения данных, не содержал РПВ и целостность его зафиксирована, то при его последующей неизменности чтение с использованием этого программного модуля будет чтением реальных данных. Из данного утверждения следует способ ступенчатого контроля.
Алгоритм ступенчатого контроля для создания ИПС на примере DOS
При включении питания ПЭВМ происходит тестирование ОП, инициализация таблицы прерываний и поиск расширений BIOS. При их наличии управление передается на них. После отработки расширений BIOS в память считывается первый сектор дискеты или винчестера (загрузчик) и управление передается на него, код загрузчика считывает драйверы DOS, далее выполняются файлы конфигурации, подгружается командный интерпретатор и выполняется файл автозапуска.
С учетом этого механизма для реализации ИПС предварительно фиксируется неизменность программ в основном и расширенных BIOS, далее используя функцию чтения в BIOS (для DOS int 13h) читаются программы обслуживания чтения (драйверы DOS), рассматриваемые как последовательность секторов и фиксируется их целостность. Далее, используя уже файловые операции, читаются необходимые для контроля исполняемые модули (командный интерпретатор, драйверы дополни- тельных устройств, .EXE и .COM - модули и т.д.). При запуске ИПС таким же образом и в той же последовательности выполняется контроль целостности. Этот алгоритм можно обобщить на произвольную операционную среду. Для контроля данных на i-м логическом уровне их представления для чтения требуется использование предварительно проверенных на целостность процедур i-1 - го уровня. В случае описанного механизма загрузки процесс аутентификации необходимо проводить в одном из расширений BIOS (чтобы минимизировать число ранее запущенных программ), а контроль запуска программ включать уже после загрузки DOS (иначе DOS определяет эту функцию на себя). При реализации ИПС на нее должна быть возложена функция контроля за запуском программ и контроля целостности.
Реализация ИПС с использованием механизма расширения BIOS
Рассмотрим 2 этапа - этап установки ИПС и этап эксплуатации ИПС. Предположим существование N пользователей, каждый i-й из которых характеризуется некоторой персональной информацией Ki, не известной другим пользователям и хранящейся на некотором материальном носителе (например, устройстве типа Touch Memory). Существует также администратор КС, который знает все Кi и единолично проводит этап установки. Пользователи же участвуют только в этапе эксплуатации.
Процесс установки ИПС состоит из следующих действий:
1. В ПЭВМ устанавливается плата, включающая в себя устройства и программы ПЗУ данного устройства, реализующие:
- чтение Ki,
- идентификацию пользователя с номером i по введенному Ki,
- чтение массива данных, содержащего множество доступных для выполнения пользователем i задач Pi1, Pi2, ..., Pim, и информации Mi1, Mi2, ... Mim, фиксирующей целостность файлов Fi1, ..., Fim каждой задачи.
Описанное устройство должно активизироваться сразу после включения питания, отработки процедур самотестирования и инициализации системы прерываний.
Для ПЭВМ типа IBM PC для этой цели необходимо использовать механизм расширения BIOS.
2. Администратор определяет для пользователя i набор задач и соответствующих задачам исполняемых файлов {Pit, Fit}, t=1,...,mi; i=1, ..., N, где mi - число разрешенных к запуску задач для i-го пользователя.
3. Администратор формирует (и заносит на носитель) или считывает с носителя для i-го пользователя его Ki и вычисляет значения для последующего контроля целостности Mir=f(Ki, Fir, Pir), где f - функция фиксации целостности (хэш-функция).
4. Администратор проделывает действия 2 и 3 для всех N пользователей.
5. Администратор устанавливает в программную среду модуль активизации ИПС и фиксирует его целостность. Фиксируется также целостность файлов операционной среды Fос (в которые входят файлы DOS, драйверы и сетевое ПО).
Процесс эксплуатации состоит из следующих действий.
1. Включение питания и активизация расширенного BIOS:
а) идентификация пользователя по его Ki (при успехе п. б);
б) проверка целостности всех включенных в ПЭВМ BIOS (при положительном исходе п. в);
в) чтение по секторам файлов DOS и проверка их целостности;
г) чтение как файлов Рипс и сетевого ПО (с помощью функций операционной среды) и проверка его целостности;
д) активизация сетевого ПО;
е) активизация процесса контроля Pипс;
ж) запуск избранной задачи i-го пользователя.
2. Работа в ИПС.
Запуск каждого процесса Рs сопровождается проверками:
а) принадлежит ли Fs к множеству разрешенных для i (Ti), если да, то п. б), иначе запуск игнорируется;
б) совпадает ли G=f(Ki,Fs,Ps) c M=f(Ki,Fs,Ps), вычисленной администратором;
в) при положительном исходе проверки б) задача запускается.
Легко видеть, что условия изолированности среды (У1-5) в данном случае выполнены.
Пункт У1 гарантируется при установке системы администратором.
Пункты У2, У4 и У5 обеспечиваются платой (загрузка собственной DOS и сетевой среды с дискеты невозможна, поскольку расширенный BIOS активен раньше и направляет загрузку на винчестер; пользователь допускается к работе только при проверке Ki).
Пункт У3 реализован программным модулем контроля запусков и контроля целостности задач, входящим в состав ИПС. Кроме того, в данном случае реализован механизм ступенчатого контроля, обеспечивающий чтение реальных данных.
ГЛАВА 3
БЕЗОПАСНОЕ ВЗАИМОДЕЙСТВИЕ В КС
3.1. Введение
Создание защищенной КС может происходить с учетом существования механизмов безопасности, в связи с чем возникает задача сопряжения субъектов обеспечения ПБ и поддержания гарантий ПБ в различных элементах КС [5]. Для создания КС с гарантированно выполненной ПБ необходимо реализовать МБО, поддерживающий эту ПБ и МБС, гарантирующий ПБ, и замкнуть каким-либо образом субъекты КС в ИПС. Практически в любой КС этого можно достигнуть, если субъекты (МБО и МБС) спроектированы и реализованы в виде исполняемых модулей конкретной операционной среды. Однако весьма часто в ОС уже присутствуют средства типа МБО с реализацией некоторой ПБ, несколько реже присутствуют и МБС. С точки зрения оптимизации трудозатрат на реализацию защитных механизмов целесообразно максимально использовать средства, которые уже реализованы в КС, в необходимых случаях усиливая и дополняя их.
В этом случае в рамках целостного представления о защите возникает проблема сопряжения штатных и дополненных средств защиты.
Поставленная проблема имеет ряд аспектов. Первый из них – техническое сопряжение субъектов ОС, осуществляющих штатную аутентификацию с дополняемыми суъектами, получившими информацию от модулей аутентификации. Второй аспект связан с гарантиями передачи параметров между модулями аутентификации и модулями реализации и гарантирования ПБ (МБО и МБС) без нарушения условий корректности субъектов. Третий – с организацией необходимых структур данных (описание объектов), обеспечивающих хранение данных для работы модулей аутентификации и сопряжения с другими объектами КС без нарушения ПБ.
Итак, рассмотрим вопросы:
1. Формализация процедур аутентификации пользователей КС и описание ее характеристик.
2. Формализация процедур сопряжения субъектов (для решения задач передачи параметров от модулей аутентификации к модулям реализации и поддержания ПБ).
3. Описание процедур сопряжения различных аутентифицирующих объектов.
4. Формализация и описание процедур использования внешних субъектов для поддержания защищенности КС.
5. Методика анализа попарной корректности субъектов.
3.2. Процедура идентификации и аутентификации
Учитывая, что пользователь КС только опосредованно работает с объектами и субъектами КС через средства ввода и отображения информации, постулируем наличие как минимум двух аутентифицирующих пользователя объектов – внешнего аутентифицирующего объекта, не принадлежащего КС, и внутреннего, принадлежащего КС, в который переносится информация из внешнего объекта [5]. Полагаем также наличие субъекта переноса информации от внешнего к внутреннему объекту (например, драйвер клавиатуры). Например, символьный пароль для входа в систему находится в "памяти пользователя", затем он путем набора на клавиатуре переносится в буфер программы запроса пароля (объект оперативной памяти ПЭВМ).
Поскольку предполагается выполнение процедур как идентификации, так и аутентификации, предположим, что i-й аутентифицирующий объект содержит два информационных поля IDi – неизменяемый идентификатор i-го пользователя, который является аналогом имени и используется для идентификации пользователя, и Ki – аутентифицирующая информация пользователя, которая может изменяться и служит для аутентификации.
Совокупную информацию в аутентифицирующем объекте будем называть первичной аутентифицирующей информацией i-го пользователя. Описанная структура соответствует практически любому устройству, служащему для опознания пользователя, например, упомянутый носитель сенсорной памяти типа Touch Memory (ТМ) имеет 8 байт неперезаписываемого неповторяющегося серийного номера, который однозначно характеризует кокретную ТМ и некоторый объект перезаписываемой памяти, который может содержать Ki. Аналогично для носителей типа пластиковых карт выделяется неизменяемая информация первичной персонализации пользователя, соответствуюжая IDi, и объект в файловой структуре карты, содержащий Ki.
Очевидно, что внутренний аутентифицирующий объект не должен существовать в КС длительное время (большее времени работы конкретного пользователя). Далее, для постоянного хранения необходимо использовать некую преобразованную информацию от первичной. Рассмотрим типовые схемы аутентификации.
Схема 1
В КС выделяется объект следующей структуры – эталон для идентификации и аутентификации (предположим, что в системе зарегистрировано n пользователей).
В табл. 1 обозначено Ei=F(IDi,Ki), F – функция, для которой можно качественно описать свойство "невосстановимости" Ki по Ei и IDi.
"Невосстановимость" Ki описывается некоторой пороговой трудоемкостью То решения задачи восстановления аутентифицирующей информации по Ei и IDi, ниже которой не должна опускаться ни одна оценка трудоемкости нахождения Ki для всех известных алгоритмов данной задачи.
Таблица 1. Объект-эталон для схемы 1
| Информация для идентификации | Информация для аутентификации |
1 | ID1 | E1 |
2 | ID2 | E2 |
… | … | … |
n | IDn | En |
Алгоритм идентификации и аутентификации:
1. Пользователь предъявляет свой идентификатор (имя) ID.
2. Если ID не совпадает ни содним Idi, зарегистрированным в КС, то идентификация отвергается – пользователь не допущен к работе, иначе идентификация проходит.
3. У пользователя субъектом аутентификации запрашивается аутентификатор K.
4. Субъектом аутентификации вычисляется Y=F(IDi,K).
5. Субъектом аутенфикации производится сравнение Ei и Y. При совпадении фиксируется событие " пользователь аутентифицирован", информация о пользователе передается в МБО, считываются необходимые для реализации заданной ПБ массивы данных, в противном случае аутентификация отвергается.
Схема 2
В КС выделяется объект следующей структуры (табл. 2)
Таблица 2. Объект-эталон для схемы 2
| Информация для идентификации | Информация для аутентификации |
1 | ID1, S1 | E1 |
2 | ID2, S2 | E2 |
… | … | … |
n | IDn, Sn | En |
В таблице обозначено Ei=F(Si, Ki),
Si – случайный вектор, заданный при создании пользователя, F- функция, для которой можно качественно описать свойство "невосстановимости" Ki по Ei и Si.
Алгоритм идентификации и аутентификации:
1. Пользователь предъявляет свой идентификатор (имя) ID.
2. Если ID не совпадает ни с одним IDi, зарегистрированным в КС, то идентификация отвергается.
3. По IDi выделяется Si.
4. У пользователя субъектом аутенфикации запрашивается аутентификатор K.
5. Субъектом аутентификации вычисляется Y=F(Si,K).
6. Субъектом аутентификации производится сравнение Ei и Y. При совпадении фиксируется факт успешной аутентификации, информация о пользователе передается в МБО, считываются необходимые для реализации заданной ПБ массивы данных.
Вторая схема защиты применяется в ОС Unix. В качестве идентификатора применяется имя пользователя (запрошенное по Login), в качестве Ki – пароль пользователя (запрошенный по Password), функция F представляет собой алгоритм шифрования DES. Эталоны для идентификации и аутентификации содержатся в файле Etc/passwd.
Поскольку выбор аутентифицирующей информации происходит из небольшого множества осмысленных слов, то для повышения надежности защиты к реализованным защитным мерам операционной среды необходимо добавить аппаратную аутенфикацию.
3.3. Реализация механизмов безопасности на аппаратном уровне
3.3.1. Защита на уровне расширений
Bios
Защита ресурсов ПЗВМ на аппаратном уровне может быть реализована с использованием механизмов расширений Bios. В ПЭВМ, реализованных на платформе Intel, первичная активизация вычислительных ресурсов компьютера производится кодом процессора, хранящемся в основном Bios. При включении питания код основного Bios "проецируется" в область памяти F000 и управление передается на точку входа, определенную производителем Bios. После этого код Bios производит тестирование оборудования, инициализацию векторов прерываний, активизацию видеосистемы и некоторые другие действия, зависящие от специфики Bios. В состав кода Bios входит типовая процедура поиска так называемых расширений Bios (Bios Extention). Расширение Bios – фрагмент исполняемого кода, оформленный по правилам, приводимым ниже, на который (в случае соблюдения этих правил) передается управление в ходе процедуры поиска расширений. Поиск расширений заключается в сканировании с шагом 512 байт области памяти с С000 до F000 с целью нахождения двухбайтовой сигнатуры 55АА. После нахождения этой сигнатуры анализируется следующий (третий начиная с 55) байт, который указывает область расширения Bios в 512-байтных страницах (или блоках).
Если в указанной позиции находится число, отличное от 0, то вычисляется арифметическая байтовая контрольная сумма от области памяти с байта 55 на длину, указанную в третьем байте. В случае совпадения этой суммы с 0 на четвертый (от первого байта 55) байт передается управление.
Если в теле кода, на который передано управление, окажется процедура RETF (с учетои состояния стека на момент вызова расширения), то произойдет возврат к основному Bios (т.е. к процедуре дальнейшего поиска расширений).
Таким образом, имеется механизм для реализации ряда защитных функций на аппаратном уровне ПЭВМ, т.е. на уровне, "хронологически" находящемся до уровня загрузки операционной системы. С учетом того, что объем расширения Bios не может быть очень большим, то на этом уровне может быть реализован достаточно небольшой объем значимых для безопасности КС функций, а именно:
Ø идентификация и аутентификация пользователя (возможно, с использованием специфического аппаратного носителя;
Ø запрет несанкционированной загрузки ОС с избранных носителей (например с CD-ROM);
Ø контроль неизменности или целостности аппаратной или программной компоненты ПЭВМ.
Надо заметить, что первый расширенный Bios, код которого будет исполнен, – это расширение, проецируемое видеокартой (VideoBios). Оно размещено по адресу С000. Используя программы получения дампа памяти, можно убедиться в наличии указанных выше заголовков и команд.
Программирование пользователем расширенного Bios связано с решением ряда технических проблем. Первая из них связана с тем, что программирование в данном случае целесообразно на языке низкого уровня. Вторая связана с тем, что изменение состояний переменных программы при ее неизменном размещении в ПЗУ невозможно. Это предопределяет необходимость корректного перемещения кода в ОЗУ с передачей управления. Далее стоит упомянуть о том, что на этапе выполнения кода Bios доступен только ряд сервисных функций, которые могут быть использованы для программирования на низком уровне, – это сервис клавиатуры, реализованный в обработчиках 9h и 16h прерываний, видеосервис 10h прерывания и сервисы диска 13h прерывания.
Кроме того, корректное завершение фрагментов кода расширений представляет собой отдельную задачу. Как указывалось выше, возврат к выполнению основного Bios происходит по команде RETF. Однако если реализуемый пользователем код расширения содержит аварийные выходы (например, в случае неверной аутентификации пользователя), то корректное прерывание выполнения может быть выполнено через аппаратную перезагрузку компьютера.
Наконец, о том, каким образом можно реализовать расширения Bios. В настоящее время существует значительное количество сетевых карт с местом размещения ПЗУ или флеш, а также значительное число средств защиты (накпример, платы АККОРД), которые дают возможность перепрограммироваия кода расширений Bios, в котором можно заложить необходимый механизм парольной идентификации и аутентификации пользователей (например, троекратный запрос пароля).
3.3.2. Защита на уровне загрузчиков операционной среды
Локализация защитных механихмов в структурах, связанных с организацией начальной загрузки операционных систем, позволяет решить ряд важных задач компьютерной безопасности. Это задачи, связанные с "ранней" идентификацией и аутентификацией пользователей (при отсутствии аппаратных средств защиты), защитой от несанкционированной загрузки операционной системы, а также получением специального вида загрузочных носителей.
Рассмотрим данные проблемы подробнее. Первая проблема возникает в том случае, когда процедуры идентификации и аутентификации не удается реализовать на этапе инициализации аппаратной компоненты компьютера (в частности, невозможно реализовать указанные процедуры в расширении Bios). При размещении процедур идентификации-аутентификации совместно с процедурами начальной загрузки удается выполнить идентификацию и аутентификацию на ранней стадии сеанса работы пользователя.
Вторая проблема связана с реализацией защиты от загрузки несанкционированных копий ОС. Для решения данной задачи обычно используют тонкости обработки загрузки с внешних носителей либо преобразуют (например, шифруют) информацию на несъемных носителях компьютера.
В первом случае загрузка с внешних носителей операционной системы невозможна физически, во втором – даже при успешной загрузке с несанкционированной копии ОС информация недоступна.
Третья проблема связана с формированием загрузочных носителей (например, дискет), имеющих нестандартный вид, для их специального использования.
Решение указанных проблем сводится в общем случае к программированию модифицированного загрузчика (или загрузчиков) операционной системы. Для простоты рассмотрим технологию создания модифицированного загрузчика для гибкого магнитного диска.
Рассмотрим процесс загрузки ОС для компьютеров семейства Intel.
После выполнения всех процедур, реализованных в основном и расширенных Bios, считывается сектор с номером 1 с нулевой дорожкой поверхности чтения в дисководе А либо при его отсутствии – с дисковода 80h (в случае если в установке Setup установлена последовательность А:, С:). Считанный код размером 512 байт загружает его с адреса 0:7С00h в оперативную память, после чего управление передается на данный адрес. На дискете в этом месте находится программа начальной загрузки (ВООТ-сектор), которая загружает в память драйверы DOS и передает им управление. На нулевой дорожке дискеты также находятся системные области File Allocation Table и Root Directory, которые формируют файловую структуру дискеты.
На жестком диске в первом секторе размещается Master Root Record, который адресует выполнение (по той же схеме) активного загрузчика операционной среды.
Таким образом, очевидно, что для модификации загрузчика необходимо в общем случае проделать следующие операции:
Ø заместить первичный код загрузчика собственным фрагментом;
Ø сохранить исходный код загрузочного сектора (в случае необходимости его выполнения);
Ø с учетом необходимости размещения первичного загрузчика по тому же адресу, что и модифицированного, обеспечить корректное перемещение модифицированного загрузчика в другую область памяти без потери управления.
Следовательно, необходимо разместить модифицированный загрузочный сектор на месте первичного (исходного) загрузчика и разместить первичный загрузчик (возможно, в преобразованном виде) в таком месте дискеты или жесткого диска, где будет обеспечена его гарантированная сохранность.
Для дискеты предлагается такой способ. Нулевая дорожка дискеты целиком копируется на место k-й дорожки. Исходная нулевая дорожка заполняется нулями (или модифицируется как-то иначе для получения нужного вида дискеты). На место загрузочного сектора устанавливается необходимая программа.
Предлагаемый способ позволяет исключить использование изготовленной дискеты без загрузки с нее. Дополнив DOS программами проверки целостности, можно добиться соблюдения всех требований изолированности программно-аппаратной среды.
3.4. Контроль и управление доступом
3.4.1. Произвольное управление доступом
Основной задачей контроля и управления доступом является ограничение операций, выполняемых зарегистрированными пользователями в системе [1]. Существует два основных механизма управления доступом – дискреционный (произвольный) и мандатный (нормативный). Требования различных стандартов информационной безопасности к управлению доступом рассмотрен в приложениях 1,2. Приведем анализ основных особенностей механизмов реализации этих требований в современных системах на примере ОС.
Требования произвольного управления доступом по "Оранжевой книге" появляются, начиная с класса С.
Основой реализации произвольного управления доступом является матрица прав доступа, строки которой соответствуют субъектам (пользователи, процессы), а столбцы – объектам (файлы, каталоги и т.п.).В ячейках матрицы содержатся права доступа субъектов к объектам (рис. 3.1).
В зависимости от способа представления матрицы прав доступа в ОС различают несколько способов реализации произвольного доступа. Наиболее распространенными для ОС являются списки прав доступа, биты доступа, "парольная " защита.
"Парольная" защита осуществляется следующим образом: пользователь использует отдельный пароль для доступа к каждому объекту в системе.
Файлы Пользователи | F1 | F2 | F3 | F4 | F5 |
Лапин | | R | | R | |
Котов | RW | | R | | |
Волков | | RW | | | |
Майоров | C | C | C | C | C |
R – права доступа пользователя по чтению;
W – права доступа пользователя по записи;
C – управление доступом для других пользователей.
Рис. 3.1
Использовние данного метода доставляет пользователю массу неудобств, связанных с запоминанием паролей.
В подавляющем большинстве современных защищенных ОС используются списки прав доступа (Access Control List – ACL) (рис. 3.2) и биты доступа (рис. 3.3).
При реализации ACL с каждым объектом ассоциируется список пользователей с указанием их прав доступа к объекту. При принятии решения о доступе, соответствующий объекту доступа ACL проверяется на наличие прав, ассоциированных с идентификатором пользователя, запрашивающего доступ, или его группы.
Основными недостатками метода являются большие временные затраты на обработку списков по сравнению с битами защиты, а также необходимость разрешения противоречий между отдельными элементами списка.
Вследствие того, что многие ОС ведут свое происхождение от UNIX, они реализуют произвольный доступ с помощью механизмов битов защиты. При этом вместо списка пользователей, которым запрещен доступ к объекту, с объектом связываются биты защиты. Пример битов защиты приведен на рис. 3.3. В ОС UNIX биты защиты указывают права доступа для трех категорий пользователей: все пользователи (world), члены группы владельца (group) и владелец (owner). При этом биты защиты может изменять только владелец объекта и администратор.
Рис. 3.2. Пример списка контроля доступа к файлам
Рассмотрим типичный алгоритм проверки прав доступа к объекту при использовании механизма битов защиты. Субъект системы обычно ассоциирован с некоторым эффективным идентификатором (EUID), содержащим информацию о пользователе и группе, к которой он принадлежит.
При попытках доступа выполняются следующие действия:
1. Проверяется, является ли субъект собственником объекта. Для этого сравниваются значения эффективного идентификатора процесса и идентификатора владельца объекта. Если они равны, то сравниваются полномочия владельца объекта с запрашиваемым типом доступа. Если запрашиваемый тип доступа присутствует в соответствкющем поле, то доступ предоставляется. Если идентификаторы не равны, то осуществляется переход ко второму шагу алгоритма.
2. Проверяется, входит ли субъект в группу владельца. Для этого сравниваются значения эффективного идентификатора процесса и идентификатора группы владельца объекта. Если они равны, то сравниваются полномочия группы владельца объекта с запрашиваемым типом доступа. Если запрашиваемый тип доступа присутствует в соответствующем поле, то доступ предоставляется. Если идентификаторы не равны, то осуществляется переход к третьему шагу алгоритма.
Владелец | Группа | Все пользователи | ||||||
Чтение | Запись | Выполн | Чтение | Запись | Выполн | Чтение | Запись | Выполн |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
1…9 – номер бита
Рис. 3.3. Биты защиты UNIX
3. В противном случае сравниваются полномочия, предоставленные всем пользователям системы с запрашиваемым типом доступа. Если запрашиваемый тип доступа присутствует в соответствующем поле, то доступ предоставляется.
Недостатком использования механизма битов защиты является неполная реализация произвольного контроля доступа, т.к. доступ к объекту нельзя разрешить или запретить для отдельных пользователей.
В современных системах часто используются комбинации списков контроля доступа и битов защиты.
3.4.2. Нормативное управление доступом
В отличие от произвольного управления доступом, которое позволяет передавать права от одного пользователя другому, нормативное управление доступом полностью запрещает передачу прав доступа между пользователями. Это позволяет решить проблему "троянских коней" в защищенных информационных системах. Нормативное управление доступом основано на модели Белла-Лападула, которая описывает правила документооборота, принятые в правительственных учреждениях США.
Для защиты от угрозы целостности информации в защищенных информационных системах чаще всего используется модифицированный аналог модели Белла и Лападула, так называемая нормативная модель целостности Биба. Нормативная модель целостности Биба часто называют инверсией модели Белла-Лападула. Это довольно точное название, поскольку основные правила этой модели просто переворачивают правила модели Белла-Лападула. Но при этом в модели рассматриваются уровни целостности, а не уровни безопасности.
В системах, не реализующих модель Биба, для защиты целостности доверенного программного обеспечения, ТСВ системы (см. следующий параграф), в рамках нормативной модели Белла и ЛаПадула может использоваться следующий прием. ТСВ системы размещается на нижней ступени иерархии безопасности. Поскольку субъекты и объекты с высокой целостностью находятся внизу иерархии, а компоненты с низкой целостностью – наверху иерархии, то правила "запрет чтения с верхнего уровня" и "запрет записи на нижний уровень" имитируют нормативную модель целостности Биба в структуре модели Белла и ЛаПадула. Примеры реализации модели Белла и ЛаПадула приведены далее.
Пример реализации управления доступом и контроля за его осуществлением в операционной системе
UTS
MLS
2.1.5+.
Операционная система UTS MLS 2.1.5+ является доработкой традиционной UNIX до системы, защищенной по классу В. Управление доступом реализовано следующим образом. В описании объекта (в структуре i-node) операционной системы UTS MLS 2.1.5+ хранится информация о владельце объекта (его идентификатор – UID, указывающий на пользователя, создавшего объект), псевдогрупповая информация (Privs) и права доступа для всех пользователей (other) в системе (рис. 3.4)
Владелец | Псевдогрупповая информация | Все пользователи |
Рис. 3.4. Описатель объекта
Псевдогрупповая информация указывает на комбинацию группы субъекта с меткой безопасности нормативного контроля доступа. Стандартный механизм UNIX дает поддержку для произвольного разграничения доступа для групп (DGID). Однако, в стандартной версии ОС UNIX отсутствует поддержка нормативного управления доступом. Для того чтобы обеспечить поддержку групп и нормативное управление доступом, а также совместимость с UNIX в UTS MLS 2.1.5+ вместо групп UNIX используется понятие псевдогрупповой информации, ассоциированной с каждым объектом и процессом.
Каждая комбинация группы и метки безопасности нормативного управления доступом является уникальной и отображается в единственную псевдогрупповую информацию. При этом меняется семантика поля GID. Вместо идентификатора группы в UTS MLS данное поле содержит псевдогрупповую информацию, указывающую на соответствующий элемент в таблице атрибутов безопасности (данная таблица поддерживается ТСВ ОС UTS). Каждый элемент таблицы атрибутов безопасности (рис. 3.5) содержит следующую информацию:
Ø Идентификатор псевдогрупповой информации в таблице (PTI).
Ø Группу пользователя.
Ø Метку безопасности нормативного управления доступом.
PTI | Метка нормативного контроля доступа | Группа (DGID) | |
Уровень | Категория | ||
Рис. 3.5. Формат записи таблицы атрибутов безопасности
Из приведенной таблицы атрибутов безопасности видно, что в ОС UTS метка нормативного контроля доступа является объединением иерархического (упорядоченного) уровня и иерархической категории. Данная пара определена для каждой метки в таблице атрибутов безопасности.
Нормативное управление доступом в ОС UTS позволяет использовать 256 упорядоченных уровней для задания уровня безопасности субъектов и объектов. Уровень 0 (SYSTEM) присвоен всем элементам, входящим в состав ТСВ, (что обеспечивает защиту его целостности), уровни 1-255 предназначены для пользователей. Всего поддерживается 1024 категории.
Рассмотрим алгоритм принятия решения о доступе (рис. 3.6).
1. Для нормативного контроля доступа псевдогрупповой идентификатор объекта (PTI) используется для получения информации об уровне безопасности объекта, извлекаемой из таблицы атрибутов безопасности. Данная информация сравнивается с помощью правил модели Белла-ЛаПадула с соответствующим уровнем безопасности субъекта, запрашивающего доступ. Кроме проверки соответствия уровня безопасности система проверяет соответствие категорий в метке нормативного доступа.
Для произвольного контроля доступа прежде всего сравнивается эффективный идентификатор процесса (EUID), которым отмечается каждый процесс пользователя, с идентификатором владельца объекта (UID). Если они равны, то сравниваются полномочия владельца объекта с запрашиваемым типом доступа.
2. Если запрашиваемый тип доступа присутствует в соответствующем поле, то доступ предоставляется. Если идентификаторы не равны, то сравнивается информация о группе процесса с информацией о группе владельца (DGID), получаемой из таблицы атрибутов безопасности (Priv-таблицы). Если они равны, то сравниваются полномочия группы владельца объекта с запрашиваемым типом доступа. Если запрашиваемый тип доступа присутствует в соответствующем поле, то доступ предоставляется. Если нет, то доступ отклоняется.
Рис. 3.6. Механизм контроля доступа в UTS MLS 2.1.5+
Если и в данном случае совпадение отсутствует, то сравниваются полномочия, хранящиеся в поле "все пользователи" (other) с запрашиваемым типом доступа. Если запрашиваемый тип доступа присутствует в соответствующем поле, то доступ предоставляется. Если нет, то доступ отклоняется.
Субъекту предоставляется доступ к объекту только в том случае, если он одновременно разрешается механизмами нормативного и произвольного контроля доступа.
Диаграмма, характеризующая алгоритм принятия решения о доступе, приведена выше (рис. 3.6.).
3.4.3. Диспетчер доступа комплекной системы защиты информации
Структура диспетчера доступа, реализованного в комплексной системе защиты информации (КСЗИ) "Панцирь" для ОС HP-UX 10.20, показана на рис. 3.7. Реализуются следующие механизмы управления доступом (каждый механизм реализуется своим диспетчером контроля доступа):
· авторизация пользователей и администратора безопасности осуществляется при доступе в систему (при запуске интерфейса настроек клиентской и серверной частей КСЗИ);
· разграничение прав произвольного доступа пользователей и процессов к объектам локальной файловой системы (томам, каталогам и файлам);
· разграничение прав произвольного доступа пользователей и процессов к разделяемым сетевым (по протоколу NFS) ресурсам файл-серверов локальной вычислительной сети – томам, каталогам, файлам;
· разграничение прав произвольного доступа пользователей и процессов к устройствам;
· разграничение прав произвольного доступа пользователей и процессов к сетевым ресурсам по протоколу TCP(UDP)/IP.
Верификация диспетчера доступа проводится в соответствии с требованиями к средствам вычислительной техники по 5 классу требований.
Диспетчер доступа к системе обеспечивает идентификацию пользователей при запросах на доступ, проверяет подлинность идентификатора субъекта (осуществляет аутентификацию). Диспетчер доступа к системе располагает необходимыми данными для идентификации и аутентификации и препятствованию входа в систему неидентифицированного пользователя или пользователя, чья подлинность при аутентификации не подтвердилась, а также обладает способностью надежно связывать полученную идентификацию со всеми действиями данного пользователя.
Диспетчер доступа к объектам файловой системы (к томам, каталогам, файлам) обеспечивает контроль доступа наименованных субъектов (пользователей и процессов) к наименованным объектам (файлам, каталогам, программам, томам). Для каждой пары (субъект-объект) в системе задано и недвусмысленное перечисление допустимых типов доступа (запись/чтение/исполнение/создание/удаление/переименование/изменение владельца/изменение прав пользователя/создание ссылок на защищаемый объект), т.е. тех типов доступа, которые являются санкционированными для данного субъекта (индивида или группы индивидов, а также процессов) к данному ресурсу системы (к объекту).
Рис. 3.7
КСЗИ содержит механизм, претворяющий в жизнь правила разграничения прав произвольного доступа на основе матрицы доступа. Контроль доступа применим к каждому объекту и каждому субъекту (индивиду или группе равноправных индивидов, процессов). Механизм, реализующий контроль произвольного доступа, предусматривает возможности санкционированного изменения правил разграничения доступа администратором безопасности после его авторизации. При этом предоставляется возможность сакционированного изменения списка пользователей системы, списка процессов (программ), имеющих доступ к объектам, и списка защищаемых объектов. Право изменять правила разграничения доступа предоставляется выделенным субъектам (администратору безопасности). Предусмотрены средства управления, ограничивающие распространение прав на доступ.
3.5. Безопасность компьютерной сети
3.5.1. Сканеры
Сканеры стали грозным оружием как нападения, так и защиты в Internet.
Сканер – это программа, предназначенная для автоматизации процесса поиска слабостей в защите компьютера, подключенного к сети в соответствии с протоколом TCP/IP [4]. Наиболее совершенные сканеры обращаются к портам TCP/IP удаленного компьютера и в деталях протоколируют отклик, который они получают от этого компьютера. Запустив сканер на своем компьютере, пользователь может найти бреши в защитных механизмах удаленного сервера.
Большинство сканеров предназначено для работы в среде операционной системы UNIX, хотя к настоящему времени такие программы имеются для любой ОС. Возможность запустить сканер на конкретном компьютере зависит от ОС, под управлением которой работает этот компьютер, и от параметров подключения к Internet. Есть сканеры, которые функционируют только в среде UNIX, а с остальными ОС оказываются несовместимыми. Другие отказываются нормально работать с устаревшими компьютерами и ОС и с медленным (до 14400 бит/с) доступом к Internet, осуществляемым по коммутируемым линиям. Такие компьютеры будут надоедать сообщениями о переполнении стека, нарушении прав доступа или станут просто зависать.
Критическим является и объем ОЗУ компьютера. Сканеры, которые управляются при помощи командной строки, как правило, более умерены в своих требованиях к объему ОЗУ. А самыми "прожорливыми" являются сканеры, снабженные оконным графическим интерфейсом пользователя.
Написать сканер не очень трудно. Для этого достаточно хорошо знать протоколы TCP/IP, уметь программировать на С или Perl и на языке сценариев, а также разбираться в программном обеспечении сокетов. Но в этом нет необходимости, так как предложения рынка сканеров превышает спрос на них.
Не следует переоценивать положительные результаты, которых можно достичь благодаря использованию сканера. Действительно, сканер может помочь выявить дыры в защите хост-машины, однако в большинстве случаев информацию о наличии этих дыр сканер выдает в довольно завуалированном виде, и ее надо еще уметь правильно интерпретировать. Сканеры не в состоянии сгенерировать пошаговый сценарий взлома исследуемой КС. Поэтому для эффективного использования сканеров на практике прежде всего необходимо научиться правильно интерпретировать собранные с их помощью данные, а это возможно только при наличии глубоких знаний в области сетевой безопасности и богатого опыта.
Обычно сканеры создаются и используются специалистами в области сетевой безопасности. Как правило, они распространяются через сеть Internet, чтобы с их помощью системные администраторы могли проверять компьютерные сети на наличие в них изъянов. Поэтому обладание сканерами, равно как и их использование, вполне законно. Однако некоторые сканеры в процессе поиска брешей в защите сетей предпринимают такие действия, которые по закону могут квалифицироваться как несанкционированный доступ к информации, или как создание, использование и распространение вредоносных программ. И если следствием таких действий стало уничтожение, блокирование, модификация или копирование информации, хранящейся в электронном виде, то виновные в этом лица в соответствии с российским законодательством подлежат уголовному преследованию. А значит, прежде чем начать пользоваться первым попавшимся под руку бесплатным сканером для UNIX-платформ, стоит убедиться, не копирует ли случайно этот сканер заодно и какие-нибудь файлы с диска тестируемой им хост-машины (например, файл password из каталога /ETC).
3.5.2. Защита от анализаторов протоколов
В настоящее время технология построения компьютерных сетей Ethernet стала самым распространенным решением [4]. Сети Ethernet завоевали огромную популярность благодаря хорошей пропускной способности, простоте установки и приемлемой стоимости сетевого оборудования. Участки сети, для которых скорости передачи данных 10 Мбит/с недостаточно, можно легко модернизировать, чтобы повысить эту скорость до 100 Мбит/с или даже до 1 Гбит/с.
Однако технология Ethernet не лишена существенных недостатков. Основной из них – передаваемая информация не защищена. Компьютеры сети оказываются в состоянии перехватывать информацию, адресованную соседям. Основной причиной тому является принятый в сети Ethernet так называемый широковещательный механизм обмена сообщениями.
Компьютеры сети, как правило, совместно используют один и тот же кабель, который служит средой для пересылки сообщений между ними. Компьютер сети, желающий передать какое-либо сообщение по общему каналу, должен удостовериться, что этот канал в данный момент свободен. В начале передачи компьютер прослушивает несущую частоту сигнала, определяя, не произошло ли искажения сигнала в результате возникновения коллизий с другими компьютерами, которые ведут передачу одновременно с ним. При наличии коллизии компьютер прерывает передачу и "замолкает". По истечении некоторого случайного периода времени он пытается повторить передачу.
Если компьютер, подключенный к сети Ethernet, ничего не передает сам, он, тем не менее, продолжает "слушать" все сообщения, передаваемые другити компьютерами. Заметив в заголовке поступившей порции данных свой сетевой адрес, компьютер копирует эти данные в свою локальную память.
Существует два основных способа объединения компьютеров в сеть Ethernet. В первом случае компьютеры соединяются при помощи коаксиального кабеля. Кабель соединяется с сетевыми адаптерами Т-образным разъемом (сеть Ethernet 10Base2). В этой сети "все слышат всех". Любой компьютер способен перехватывать данные, посылаемые другим компьютером.
Во втором случае каждый компьютер соединен кабелем типа витая пара с отдельным портом центрального коммутирующего устройства – концентратора или коммутатора. В таких сетях, которые называются сетями Ethernet 10BaseТ, компьютеры поделены на группы, именуемыми доменами коллизий. Домены коллизий определяются портами концентратора или коммутатора, замкнутыми на общую шину. В результате коллизии возникают не между всеми компьютерами сети, а по отдельности – между теми из них, которые входят в один и тот же домен коллизий, что повышает пропускную способность сети.
В последнее время в крупных сетях стали появдяться коммутаторы нового типа, которые не используют широковещание и не замыкают группы портов между собой. Вместо этого все передаваемые по сети данные буферизируются в памяти и отправляются по мере возможности.
Как уже отмечалось, сетевой адаптер каждого компьютера в сети Ethernet как правило "слышит" все, но обрабатывает и помещает в свою локальную память только те порции (так называемые кадры) данных, которые содержат его уникальный сетевой адрес. В дополнение к этому подавляющее большинство современных Ethernet-адаптеров допускают функционирование в особом режиме, называемом беспорядочным. При использовании данного режима адаптер копирует в локальную память компьютера все без исключения передаваемые по сети кадры данных.
Специализированные программы, переводящие сетевой адаптер в беспорядочный режим и собирающие весь трафик сети для последующего анализа, называются анализаторами протоколов. Администраторы сетей широко используют анализаторы протоколов для осуществления контроля за работой этих сетей и определения их перегруженных участков. К сожалению, анализаторы протоколов используются и злоумышленниками, которые с их помощью могут перехватить чужие пароли и другую конфиденциальную информацию.
Анализаторы протоколов представляют серьезную опасность. Присутствие их в сети указывает на брешь в защитных механизмах. Установить анализатор протоколов мог посторонний человек, который проник в сеть извне (например, если сеть имеет выход в Internet).
Специалисты в области компьютерной безопасности относят атаки на компьютеры при помощи анализаторов протоколов к так называемым атакам второго уровня. Это означает, что компьютерный взломщик уже сумел проникнуть в сеть и теперь стремится развить свой успех. При помощи анализатора протоколов он может попытаться перехватить регистрационные номера и пароли пользователей, их секретные финансовые данные. Имея в своем распоряжении достаточные ресурсы, компьютерный взломщик в принципе может перехватывать всю информацию, передаваемую по сети.
Анализаторы протоколов существуют для любой платформы. Они исследуют не конкретный компьютер, а протоколы. Поэтому анализатор протоколов может обосноваться в любом узле сети и оттуда перехватывать сетевой трафик.
В советах по защите от анализаторов протоколов нуждаются только те, кто желает дать отпор компьютерным взломщикам. В руках сетевого администратора анализатор протоколов является весьма полезным инструментом, помогающим находить и устранять неисправности, избавляться от узких мест, снижающих пропускную способность сети, и обнаруживать проникновение в нее компьютерных взломщиков.
Рекомендовать можно следующее:
· Обзаведитесь сетевым адаптером, который принципиально не может функционировать в беспорядочном режиме. Такие адаптеры существуют. Одни адаптеры не поддерживают беспорядочный режим на аппаратном уровне, а остальные просто снабжаются драйвером, не допускающим работу в беспорядочном режиме, хотя этот режим и реализован в них аппаратно.
· Учитывая, что спецификация РС99, подготовленная по инициативе корпораций Microsoft и Intel, требует безусловного наличия в сетевой карте беспорядочного режима, приобретите современный сетевой интеллектуальный коммутатор, который буферизует каждое отправляемое по сети сообщение в памяти и отправляет его по мере возможности точно по адресу. В результате надобность в "прослушивании" сетевым адаптером всего трафика для того, чтобы выбирать из него сообщения, адресатом которого является данный компьютер, отпадает.
· Не допускайте несанкционированной установки анализаторов протоколов на компьютеры сети. Для этого следует применять средства из арсенала борьбы с программными закладками.
· Шифруйте весь трафик сети.
3.5.3. Межсетевые экраны – эффективная технология сетевой защиты информации
Средства сетевой защиты в литературе фигурируют как firewall, брандмауэры и даже информационные мембраны. Но наиболее часто используется термин "межсетевые экраны" (МЭ). В общем случае для обеспечения сетевой защиты между двумя множествми информационных систем ставится экран или информационная мембрана, которые являются средством разграничения доступа клиентов из одного множества систем к информации, хранящейся на серверах в другом множестве. В этом смысле МЭ можно представить как набор фильтров, пропускающих через себя весь трафик, анализирующих проходящую через них информацию и принимающих решение: пропустить информацию или ее заблокировать. Одновременно с этим производится регистрация событий и тревожная сигнализация в случае обнаружения угрозы.
Обычно экранирующие системы делают несимметричными. Для экранов определяются понятия "внутри" и "снаружи", причем в задачу экрана входит защита внутренней сети от потенциального враждебного окружения. Кроме того, МЭ может использоваться в качестве корпоративной открытой части сети, видимой со стороны Интернета. Так, например, во многих организациях МЭ используются для хранения данных с открытым доступом, как, например, информация о продуктах и услугах, файлах из баз FTP, сообщений об ошибках и т. п.
3.5.4. Современные требования к межсетевым экранам
1. Основное требование – это обеспечение безопасности внутренней (защищаемой) сети и полный контроль над внешними подключениями и сеансами связи.
2. Экранирующая система должна обладать мощными и гибкими средствами управления для простого и полного проведения в жизнь политики безопасности организации.
3. Межсетевой экран должен работать незаметно для пользователей локальной сети и не затруднять выполнение ими легальных действий.
4. Процессор МЭ должен быть быстродействующим, работать достаточно эффективно и успевать обрабатывать весь входящий и исходящий поток в пиковых режимах, чтобы его нельзя было блокировать большим количеством вызовов и нарушить его работу.
5. Система обеспечения безопасности должна быть надежно защищена от любых несанкционированных воздействий, поскольку она является ключом к конфиденциальной информации организации.
6. Система управления экранами должна иметь возможность централизованно обеспечивать проведение для удаленных филиалов единой политики безопасности.
7. Межсетевой экран должен иметь средства авторизации доступа пользователей через внешние подключения, что является необходимым в случае работы сотрудников организации в командировках.
3.6. Управление криптографическими ключами и хранение ключевой информации
3.6.1.
Ключевая информация
Все криптографические системы основаны на использовании криптографических ключей. В симметричной криптосистеме отправитель и получатель используют один и тот же секретный ключ. Этот ключ должен периодически обновляться во избежание его компрометации. Процесс рассылки ключей между участниками информационного обмена в симметричных криптосистемах имеет сложный характер.
Несимметричная криптосистема использует два ключа – один открытый и второй секретный (личный). При обмене информацией необходимо пересылать только открытый ключ. Под ключевой информацией понимают совокупность всех действующих в автоматизированной системе обработки информации ключей [7].
В компьютерных системах должно быть налажено надежное управление ключевой информацией для предотвращения несанкционированного доступа к системе.
Управление ключами включает в себя следующие функции:
· генерация ключей;
· хранение ключей;
· распределение ключей.
Генерация ключей. Так как от криптографического ключа зависит безопасность криптографического алгоритма, то качественные криптографические ключи должны иметь достаточную длину и случайные значения битов.
Для генерации ключей используют аппаратные и прогаммные средства, способные формировать случайные значения ключей. В большинстве случаев применяют датчики псевдослучайных чисел (ПСЧ). Степень случайности должна быть высокой. Идеальными генераторами случайных чисел являются устройства, работающие на принципах естественных случайных процессов, например, на основе "белого шума".
В системах со средними требованиями защищенности допустимы программные генераторы ключей, формируют псевдослучайные числа как сложную функцию от текущего времени и (или) числа, введенного пользователем.
Для регулярной замены ключа необходимо проводить процедуру его модификации. Под модификацией ключа понимают генерирование нового ключа из предыдущего с помощью однонаправленной функции. Пользователи разделяют один и тот же ключ и одновременно вводят его значение в качестве аргумента в однонаправленную функцию, получая один и тот же результат. Затем они берут определенные биты из этих результатов и создают новое значение ключа.
Процедура модификации ключа обеспечивает его безопасность на уровне прежнего ключа. Но если злоумышленник завладеет прежним ключом, то он сможет его модифицировать.
Создание ключей для ассиметричных криптосистем с открытыми ключами намного сложнее.
Хранение ключевой информации. Под хранением ключей понимают организацию их безопасного хранения, учета и удаления. Злоумышленники проявляют особый интерес к ключам, так как ключи открывают доступ к конфиденциальной информации. Поэтому вопросам безопасного хранения ключей уделяется особое внимание. Секретные ключи никогда не должны записываться в явном виде на носителе, который может быть считан или скопирован.
Носители ключевой информации.
Носитель, на котором записан ключ, может быть магнитным диском, устройством хранения ключей типа Тоuсh Мемогу, пластиковой картой и т.д.
Применение магнитного диска (МД) в качестве носителя ключа позволяет временное изъятие МД из состава технических средств компьютерной системы. Особенно целесообразно использование в качестве ключевых носителей съемных накопителей – гибких магнитных дисков, съемных магнитооптических носителей и т.д.
Основное преимущество МД по сравнению с другими носителями ключевой информации заключается в том, что оборудование для взаимодействия с МД (дисковод) входит в состав штатных средств компьютера. Другая важная особенность, определяющая широкое распространение МД, – стандартный формат хранения информации на дисках и стандартные программные средства доступа к дискам. Кроме того, из всех средств хранения ключевой информации гибкие магнитные диски имеют самую низкую стоимость.
Для обеспечения надежного хранения ключевой информации на МД применяют как минимум двукратное резервирование. Это обеспечивает защиту ключевой информации от ошибок при считывании с МД и от сбоев программной и аппаратной части.
Для исключения возможности перехвата ключевой информации в процессе ее чтения с МД используют хранение ключевой информации на МД в зашифрованном виде.
Устройство хранения ключей типа Тоис
h
Метоry является относительно новым носителем ключевой информации. Носитель информации Тоuсh Меmогy (ТМ) представляет собой энергонезависимую память, размещенную в металлическом корпусе, с одним сигнальным контактом и одним контактом земли. Корпус ТМ имеет диаметр 16,25 мм и толщину 3,1 или 5,89 мм (в зависимости от модификации прибора).
В структуру ТМ входят следующие основные блоки [7]:
• Постоянное запоминающее устройство (ПЗУ), которое хранит 64-разрядный код, состоящий из байтового кода типа прибора, 48-битового
уникального серийного номера и 8-битовой контрольной суммы.
Содержимое ПЗУ уникально и не может быть изменено в течение
всего срока службы прибора.
• Оперативное запоминающее устройство (ОЗУ) емкостью от 128
до 8192 байт, которое содержат практически все модификации ТМ. В одной из модификаций оперативная память аппаратно защищена от несанкционированного доступа.
• Встроенная миниатюрная литиевая батарейка со сроком службы
не менее 10 лет, которая обеспечивает питанием все блоки устройства.
Особенностью технологии хранения и обмена ключевой информации между носителем ТМ и внешними устройствами является сравнительно низкая скорость из-за последовательной передачи данных и высокая вероятность сбоя в тракте чтения-записи, обусловленная тем, что контакт устройства ТМ с устройством чтения осуществляется пользователем вручную без дополнительной фиксации (простое касание, что и определило название прибора ТМ – память касания). В связи с этим особое значение приобретают вопросы надежного обмена между программами обработки ключевой информации пользователей и носителем ТМ.
В устройстве ТМ конструктивно отработаны вопросы надежности функционирования и вопросы интерфейса со считывающим устройством на основе одного сигнального контакта. Для обеспечения достоверного чтения применяются корректирующие коды, для обеспечения достоверной записи в приборе предусмотрена технология буферизации. При проведении операции записи первоначально вектор передаваемой в ТМ информации помещается в буфер, далее выполняется операция чтения из буфера, затем прочтенная из буфера информация сравнивается с записываемой и в случае совпадения подается сигнал переноса информации из буфера в память долговременного хранения.
Таким образом, носитель ТМ является микроконтроллерным устройством без собственной вычислительной мощности и с ограниченным объемом хранимой информации, но с достаточно высокими надежностными характеристиками. Поэтому применение ТМ вполне обосновано в случае повышенных требований к надежности носителя ключа и небольшого объема ключевой информации, хранимой в ТМ.
Электронные пластиковые карты становятся в настоящее время наиболее распространенным и универсальным носителем конфиденциальной информации, который позволяет идентифицировать и аутентифицировать пользователей, хранить криптографические ключи, пароли и коды.
Интеллектуальные карты (смарт-карты), обладающие наибольшими возможностями, не только эффективно применяются для хранения ключевой информации, но и широко используются в электронных платежных системах, в комплексных решениях для медицины, транспорта, связи, образования и т. п.
3.6.2. Концепция иерархии ключей
Любая информация об используемых ключах должна быть защищена, в частности храниться в зашифрованном виде.
Необходимость в хранении и передаче ключей, зашифрованных с помощью других ключей, приводит к концепции иерархии ключей.. В стандарте ISО 8532 (Ваnking-Кеу Маnаgement) подробно изложен метод главных сеансовых ключей (master/session keys). Суть метода состоит в том, что вводится иерархия ключей: главный ключ (ГК), ключ шифрования ключей (КК), ключ шифрования данных (КД) [7].
Иерархия ключей может быть:
• двухуровневой (КК/КД);
• трехуровневой (ГКУКК/КД).
Самым нижним уровнем являются рабочие или сеансовые КД, которые применяются для шифрования данных, персональных идентификационных номеров (Р1N) и аутентификации сообщений.
Для шифрования ключей с целью защиты при передаче или хранении, применяют ключи следующего уровня – ключи шифрования ключей, которые никогда не должны использоваться как сеансовые КД.
Таким образом, стандарт устанавливает шифрование различных типов ключей с помощью различных версий ключей шифрования ключей. В частности, ключи шифрования ключей, используемые для пересылки ключей между двумя узлами сети, называются ключами обмена между узлами сети (cross domain keys). В большинстве случаев в канале применяются два ключа для обмена между узлами сети, по одному в каждом направлении. Поэтому каждый узел сети будет иметь ключ отправления для обмена с узлами сети и ключ получения для каждого канала, поддерживаемого другим узлом сети.
На верхнем уровне иерархии ключей находится главный ключ, мастер-ключ, шифрующий КК, если требуется сохранить их на диске. Обычно в компьютере используется только один мастер-ключ. Для исключения перехвата мастер-ключ распространяется между участниками обмена неэлектронным способом. Значение мастер-ключа сохраняется длительное время (до нескольких недель или месяцев). Мастер-ключ компьютера создается случайным выбором из всех возможных значений ключей и помещается в защищенный от считывания и записи блок криптографической системы. Должен существовать способ проверки на правильность значения ключа. Один из способов аутентификации мастер-ключа показан на рис. 7 [7].
Рис. 3.7
Администратор, получив новое значение мастер-ключа Кн хост- компьютера, шифрует некоторое сообщение М ключом Кн. Пара (криптограмма ЕКН(М), сообщение М) помещается в память компьютера. Когда требуется аутентификация мастер-ключа, берется сообщение М из памяти и подается в криптографическую систему. Полученная криптограмма сравнивается компаратором с криптограммой, хранящейся в памяти. При их совпадении считается, что ключ правильный.
Рабочие ключи (например, сеансовый) создаются с помощью генератора псевдослучайных чисел и могут храниться в незащищенном месте, поскольку такие ключи генерируются в форме криптограмм (генератор выдает вместо ключа KS его криптограмму ЕКН(KS), получаемую с помощью мастер-ключа хост-компьютера. Расшифрование такой криптограммы осуществляется перед применением ключа KS.
Схема защиты рабочего ключа показана на рис. 3.8. Чтобы зашифровать сообщение М ключом KS, на соответствующие входы криптосистемы подается криптограмма Екн(К5) и сообщение М. Криптографическая система сначала восстанавливает ключ К5, а затем шифрует сообщение М, используя открытую форму сеансового ключа К5.
Как видно, безопасность сеансовых ключей зависит от безопасности криптографической системы. Криптографический блок может быть спроектирован как единая СБИС и помещен в физически защищенное место.
Важным условием защиты информации является периодическое обновление ключевой информации в (АСОИ). При этом должны переназначаться как рабочие ключи, так и мастер-ключи. В особо ответственных АСОИ обновление ключевой информации (сеансовых ключей) желательно делать ежедневно. Вопрос обновления ключевой информации тесно связан с третьим элементом управления ключами – распределением ключей.
Рис. 3.8
3.6.3. Распределение ключей
Распределение ключей – самый ответственный процесс в управлении ключами. К нему предъявляются следующие требования:
• оперативность и точность распределения;
• скрытность распределяемых ключей.
Распределение ключей между пользователями компьютерной сети реализуется двумя способами [7]:
1) использованием одного или нескольких центров распределения ключей;
2) прямым обменом сеансовыми ключами между пользователями сети.
Недостаток первого подхода состоит в том, что центру распределения ключей известно, кому и какие ключи распределены, и это позволяет читать все сообщения, передаваемые по сети. Возможные злоупотребления существенно влияют на защиту. При втором подходе проблема состоит в том, чтобы надежно удостоверить подлинность субъектов сети.
В обоих случаях должна быть обеспечена подлинность сеанса связи. Это можно осуществить, используя механизм запроса-ответа или механизм отметки времени.
Механизм запроса-ответа заключается в следующем. Пользователь А включает в посылаемое сообщение (запрос) для пользователя В непредсказуемый элемент (например, случайное число). При ответе пользователь В должен выполнить некоторую операцию с этим элементом (например, добавить единицу), что невозможно осуществить заранее, поскольку неизвестно, какое случайное число придет в запросе. После получения результата действий пользователя В (ответ) пользователь А может быть уверен, что сеанс является подлинным.
Механизм отметки времени предполагает фиксацию времени для каждого сообщения. Это позволяет каждому субъекту сети определить, насколько старо пришедшее сообщение, и отвергнуть его, если появится сомнение в его подлинности. При использовании отметок времени необходимо установить допустимый временной интервал задержки.
В обоих случаях для защиты элемента контроля используют шифрование, чтобы быть уверенным, что ответ отправлен не злоумышленником и не изменен штемпель отметки времени.
Задача распределения ключей сводится к построению протокола распределения ключей, обеспечивающего:
• взаимное подтверждение подлинности участников сеанса;
• подтверждение достоверности сеанса механизмом запроса-ответа или отметки времени;
• использование минимального числа сообщений при обмене ключами;
• возможность исключения злоупотреблений со стороны центра распределения ключей (вплоть до отказа от него).
В основу решения задачи распределения ключей целесообразно положить принцип отделения процедуры подтверждения подлинности партнеров от процедуры собственно распределения ключей. Цель такого подхода состоит в создании метода, при котором после установления подлинности участники сами формируют сеансовый ключ без участия центра распределения ключей с тем, чтобы распределитель ключей не имел возможности выявить содержание сообщений.
3.6.4. Распределение ключей с участием центра распределения
ключей
При распределении ключей между участниками предстоящего информационного обмена должна быть гарантирована подлинность сеанса связи. Для взаимной проверки подлинности партнеров приемлема модель рукопожатия. В этом случае ни один из участников не будет получать никакой секретной информации во время процедуры установления подлинности.
Взаимное установление подлинности гарантирует вызов нужного субъекта с высокой степенью уверенности, что связь установлена с требуемым адресатом и никаких попыток подмены не было. Реальная процедура организации соединения между участниками информационного обмена включает как этап распределения, так и этап подтверждения подлинности партнеров.
При включении в процесс распределения ключей центра распределения ключей (ЦРК) осуществляется его взаимодействие с одним или обоими участниками сеанса с целью распределения секретных или открытых ключей, предназначенных для использования в последующих сеансах связи.
Следующий этап – подтверждение подлинности участников. На этом этапе осуществляется обмен удостоверяющими сообщениями, чтобы иметь возможность выявить любую подмену или повтор одного из предыдущих вызовов.
Рассмотрим протоколы для симметричных криптосистем с секретными ключами и для асимметричных криптосистем с открытыми ключами. Вызывающий (исходный объект) обозначается через А, а вызываемый (объект назначения) – через В. Участники сеанса А и В имеют уникальные идентификаторы IdA и IdB соответственно.
Протокол аутентификации и распределения ключей для симметричных криптосистем.
Рассмотрим в качестве примера протокол аутентификации и распределения ключей КегЬегоs (по-русски – Цербер). Первоначально протокол КегЬегоs был разработан в Массачусетском технологическом институте (США) для проекта Аthеnа. Протокол КегЬегоs спроектирован для работы в сетях ТСР/IР и предполагает участие в аутентификации и распределении ключей третьей доверенной стороны. КегЬегоs обеспечивает надежную аутентификацию в сети, разрешая законному пользователю доступ к различным машинам в сети. Протокол КегЬегоs основывается на симметричной криптографии (реализован алгоритм DЕS, хотя возможно применение и других симметричных криптоалгоритмов). КегЬегоs разделяет отдельный секретный ключ с каждым субъектом сети. Знание такого секретного ключа равносильно доказательству подлинности субъекта сети.
Основной протокол КегЬегоs является вариантом протокола аутентификации и распределения ключей Нидхема-Шредера. В основном протоколе КегЬегоs (версия 5) участвуют две взаимодействующие стороны А и В и доверенный сервер КS (КегЬегоs Sегvег). Стороны А и В, каждая по отдельности, разделяют свой секретный ключ с сервером КS. Доверенный сервер КS выполняет роль центра распределения ключей ЦРК.
Пусть сторона А хочет получить сеансовый ключ для информационного обмена со стороной В.
Сторона А инициирует фазу распределения ключей, посылая по сети серверу КS идентификаторы IdA и IdB:
А®КS: IdА, IdB. (1)
Сервер КS генерирует сообщение с временной отметкой Т, сроком действия L, случайным сеансовым ключом К и идентификатором IdA. Он шифрует это сообщение секретным ключом, который разделяет со стороной В.
Затем сервер КS берет временную отметку Т, срок действия L, сеансовый ключ К, идентификатор IdB стороны В и шифрует все это секретным ключом, который разделяет со стороной А. Оба эти зашифрованные сообщения он отправляет стороне А:
КS ®А: ЕА (Т, L, К, IdВ), ЕB (Т, L, К, IdА). (2)
Сторона А расшифровывает первое сообщение своим секретным ключом, проверяет отметку времени Т, чтобы убедиться, что это сообщение не является повторением предыдущей процедуры распределения ключей.
Затем сторона А генерирует сообщение со своим идентификатором IdА и отметкой времени Т, шифрует его сеансовым ключом К и отправляет стороне В. Кроме того, А отправляет для В сообщение от КS, зашифрованное ключом стороны В:
А®В: Ек(IdА,Т), ЕВ(Т, L, K, IdА). (3)
Только сторона В может расшифровать сообщения (3). Сторона В получает отметку времени Т, срок действия L, сеансовый ключ К и идентификатор IdА. Затем сторона В расшифровывает сеансовым ключом К вторую часть сообщения (3). Совпадение значений Т и IdА в двух частях сообщения подтверждают подлинность А по отношению к В.
Для взаимного подтверждения подлинности сторона В создает сообщение, состоящее из отметки времени Т плюс 1, шифрует его ключом К и отправляет стороне А:
В®А: Ек(Т+1). (4)
Если после расшифровки сообщения (4) сторона А получает ожидаемый результат, она знает, что на другом конце линии связи находится действительно В.
Этот протокол успешно работает при условии, что часы каждого участника синхронизированы с часами сервера КS. Следует отметить, что в этом протоколе необходим обмен с КS для получения сеансового ключа каждый раз, когда А желает установить связь с В. Протокол обеспечивает надежное соединение объектов А и В при условии, что ни один из ключей не скомпрометирован и сервер КS защищен.
Система КегЬегоs обеспечивает защиту сети от несанкционированного доступа, базируясь исключительно на программных решениях, и предполагает многократное шифрование передаваемой по сети управляющей информации.
Система КегЬегоs имеет структуру типа клиент-сервер и состоит из клиентских частей С, установленных на все машины сети (рабочие станции пользователей и серверы), и КегЬегоs-сервера КS, располагающегося на каком-либо (не обязательно выделенном) компьютере.
КегЬегоs-сервер, в свою очередь, можно разделить на две части: сервер (Ticket Granting Server) и сервер идентификации (AS). Информационными ресурсами, необходимыми клиентам С, управляет сервер информационных ресурсов RS (рис. 3.9).
Область действия системы КегЬегоs распространяется на тот участок сети, все пользователи которого зарегистрированы под своими именами и паролями в базе данных КегЬегоs-сервера.
Укрупненно процесс идентификации и аутентификации пользователя в системе КегЬегоs можно описать следующим образом. Пользователь (клиент) С, желая получить доступ к ресурсу сети, направляет запрос серверу идентификации АS. Последний идентифицирует пользователя с помощью его имени и пароля и выдает разрешение на доступ к серверу выдачи разрешений ТGS, который, в свою очередь, по запросу клиента С разрешает использование необходимых ресурсов сети с помощью целевого сервера информационных ресурсов RS.
Данная модель взаимодействия клиента с серверами может функционировать только при условии обеспечения конфиденциальности и целостности передаваемой управляющей информации. Без строгого обеспечения информационной безопасности клиент не может отправлять серверам АS, ТGS и RS свои запросы и получать разрешения на доступ к обслуживанию в сети. Чтобы избе-
жать возможности перехвата и несанкционированного использования информации, КегЬегоs применяет при передаче любой управляющей информации в сети сложную систему многократного шифрования с использованием комплекса секретных ключей (секретный ключ клиента, секретный ключ сервера, секретные сеансовые ключи, клиент-сервер).
Протокол для асимметричных криптосистем с использованием сертификатов открытых ключей.
В этом протоколе используется идея сертификатов открытых ключей.
Сертификатом открытого ключа С называется сообщение ЦРК, удостоверяющее целостность некоторого открытого ключа объекта. Например, сертификат открытого ключа для пользователя А, обозначаемый СА, содержит отметку времени Т, идентификатор IdA и открытый ключ КА, зашифрованные секретным ключом ЦРК кцрк, т. е.
СА = ЕКЦРК (Т, IdА, КА).
Отметка времени Т используется для подтверждения актуальности сертификата и тем самым предотвращает повторы прежних сертификатов, которые содержат открытые ключи и для которых соответствующие секретные ключи несостоятельны.
|
Обозначения:
КS – сервер системы КегЬегоs;
АS – сервер идентификации;
ТGS – сервер выдачи разрешений;
RS – сервер информационных ресурсов;
С – клиент системы КегЬегоs;
1: C® АS: – запрос разрешить обратиться к ТGS;
2: АS ® С: – разрешение обратиться к ТGS;
3: С ®ТGS: – запрос на допуск к RS;
4: ТGS ® С: – разрешение на допуск к RS;
5: С ® RS: – запрос на получение информационного ресурса от RS;
6: RS ® С: – подтверждение подлинности сервера RS и предоставление
информационного ресурса.
Рис. 3.9. Схема и шаги протокола КегЬегоs
Секретный ключ kцРК известен только менеджеру ЦРК. Открытый ключ КцРк известен участникам А и В. ЦРК поддерживает таблицу открытых ключей всех объектов сети, которые он обслуживает.
Вызывающий объект А инициирует стадию установления ключа, запрашивая у ЦРК сертификат своего открытого ключа и открытого ключа участника В:
А® ЦРК: IdA, IdB, "Вышлите сертификаты ключей А и В'". (5)
Здесь IdA и IdB – уникальные идентификаторы соответственно участников А и В.
Менеджер ЦРК отвечает сообщением
ЦРК ® А: ЕKЦРК(Т, IdА, Kа), ЕКцРК(Т, IdB, КB). (6)
Участник А, используя открытый ключ ЦРК КЦРК, расшифровывает ответ ЦРК, проверяет оба сертификата. Идентификатор IdB убеждает А, что личность вызываемого участника правильно зафиксирована в ЦРК и КB – действительно открытый ключ участника В, поскольку оба зашифрованы ключом КЦРК.
Хотя открытые ключи предполагаются известными всем, посредничество ЦРК позволяет подтвердить их целостность. Без такого посредничества злоумышленник может снабдить А своим открытым ключом, который А будет считать ключом участника В. Затем злоумышленник может подменить собой В и установить связь с А, и его никто не сможет выявить.
Следующий шаг протокола включает установление связи А с В:
А®В: СA, ЕКА(Т), ЕкB(r1). (7)
Здесь СА – сертификат открытого ключа пользователя А; ЕKА(Т) – отметка времени, зашифрованная секретным ключом участника А и являющаяся подписью участника А, поскольку никто другой не может создать такую подпись; r1 – случайное число, генерируемое А и используемое для обмена с В в ходе процедуры подлинности.
Если сертификат СА и подпись А верны, то участник В уверен, что сообщение пришло от А. Часть сообщения ЕКB(r1) может расшифровать только В, поскольку никто другой не знает секретного ключа kB, соответствующего открытому ключу КB. Участник В расшифровывает значение числа r1, чтобы подтвердить свою подлинность, посылает участнику А сообщение
В ®А: ЕКА(r1). (8)
Участник А восстанавливает значение r1 , расшифровывая это сообщение с использованием своего секретного ключа kА. Если это ожидаемое значение r1,, то А получает подтверждение, что вызываемый участник действительно В.
Протокол, основанный на симметричном шифровании, функционирует быстрее, чем протокол, основанный на криптосистемах с открытыми ключами. Однако способность систем с открытыми ключами генерировать цифровые подписи, обеспечивающие различные функции защиты, компенсирует избыточность требуемых вычислений.
3.6.5. Прямой обмен ключами между пользователями
При использовании для информационного обмена криптосистемы с симметричным секретным ключом два пользователя, желающие обменяться криптографически защищенной информацией, должны обладать общим секретным ключом. Пользователи должны обменяться общим ключом по каналу связи безопасным образом. Если пользователи меняют ключ достаточно часто, то доставка ключа превращается в серьезную проблему.
Для решения этой проблемы можно применить два способа:
1) использование криптосистемы с открытым ключом для шифрования и передачи секретного ключа симметричной криптосистемы;
2) использование системы открытого распределения ключей Диффи-Хеллмана.
Второй способ основан на применении системы открытого распределения ключей. Эта система позволяет пользователям обмениваться ключами по незащищенным каналам связи. Интересно отметить, что система открытого распределения ключей базируется на тех же принципах, что и система шифрования с открытыми ключами.
ГЛАВА 4
ЗАЩИТА ОПЕРАЦИОННЫХ СИСТЕМ
4.1. Введение
В данной главе рассмотрены проблемы защиты программного обеспечения. Они охватывают широкий диапазон: от законодательных аспектов защиты интеллектуальной собственности до конкретных технических устройств. Последние помогают в тех ситуациях, когда очень трудно решить эти проблемы юридическими методами из-за высокой степени скрытности улики и несоизмеримости судебных издержек по сравнению с потерями от самих нарушений.
Установление авторского права на компьютерные программы изменило взгляд на защиту программных продуктов. Возникли две крайние точки зрения. Одну представляют изготовители программных продуктов, которые считают, что технические средства обеспечивают высокую степень защиты; другую – пользователи, для которых такие средства создают определенные трудности. Некоторые авторы считают, что авторское право должно быть единственным средством защиты.
Когда ряд фирм приняли авторское право в качестве единственного средства защиты программ, то оказалось коммерчески нецелесообразным продавать программы без соответствующей защиты на рынках тех стран мира, где авторское право не признается. Даже на территории стран, где соблюдается авторское право, необходима защита дешевых массовых программ; в противном случае продажа таких программ оказывается коммерчески невыгодной.
Кроме того, необходимо повысить степень скрытности защищаемой информации и методов обработки. В терминах информатики методы обработки, вероятно, должны быть реализованы в виде алгоритмов и соответствующих программных модулей, которые, хотя и являются объектом патентной защиты, если включены в состав вычислительной системы, тем не менее могут оказаться защищенными неадекватно, если содержат существенно новые элементы («ноу-хау»), которые представляют самостоятельный интерес для конкурентов.
Технические методы защиты, начиная от дешевых простых устройств и кончая мощными методами, включающими сложные способы шифрования, описаны ниже. Наша цель – рассмотреть все возможные виды компьютерного пиратства – от простых нарушений до злостных действий. Если для выявления нарушений требуются значительные усилия, это с большой вероятностью означает, что злоумышленник не является случайным лицом, однако обеспокоенность и постоянное чувство страха разоблачения делает его уязвимым по отношению к юридическим действиям, направленным на возмещение ущерба.
При чисто коммерческом отношении к оценке ущерба уменьшение числа посягательств на копирование программы, защищенной техническими средствами, должно быть сопоставлено с неприятием обычным покупателем того, что купленный товар имеет ограничения на его использование. Например, это может быть связано с тем, что пользователю запрещено создавать резервные копии программы; или один из портов компьютера должен быть выделен для подключения устройства защиты и тем самым ограничить его функциональные возможности; кроме того, защита может сделать программу более уязвимой и вызвать конфликт при взаимодействии с другими программами. Эти критические ситуации хорошо известны, и поэтому продолжаются поиски методов, которые могут удовлетворить таким противоречивым требованиям, как высокая степень защищенности и удобство применения. В идеале пользователь не должен «замечать» механизмов защиты, до тех пор пока он не попытается скопировать и выполнить программу на компьютере, на котором эти операции не разрешены.
Существует важное различие между методами защиты программного обеспечения и методами защиты компьютера и данных. Защита компьютера, основанная на использовании паролей и ограничении физического доступа к аппаратуре, совпадает с интересами законопослушного пользователя; в то же время, если программа успешно эксплуатируется и ее целостность не нарушена, пользователь не проявляет большой заинтересованности в защите прав автора программы.
Вычислительную установку разумно размещать на небольшой площади, и тогда упрощается контроль за ее защитой, а время и возможности на преодоление средств защиты оказываются весьма ограниченными. Программное обеспечение часто пересылается по почте, по каналам связи или просто продается в розницу, и это определяет способы его защиты. Программное средство, которое оказалось в руках пользователя, можно неограниченное время испытывать на преодоление механизмов защиты.
Когда говорят о превентивных мерах, обычно имеют в виду технические методы защиты, хотя и пассивные методы играют важную роль. Превентивные меры предполагают ограничения на использование программы, запрещение ее копирования или просмотра. Многие из них могут быть реализованы либо за счет создания условий защиты в самом компьютере, либо за счет включения защиты в программу, требующую, например, для своей работы разрешения от специального устройства. Однако такое устройство может оказаться экономически невыгодным из-за малого тиража его выпуска или из-за того, что его стоимость может увеличить существенно стоимость копии программы. Программа может быть сделана зависимой от характеристик конкретной вычислительной системы.
Другой важный механизм защиты – подтверждение подлинности программного кода. Он позволяет защитить от копирования, обеспечить конфиденциальность при выполнении финансовых сделок, в управленческой деятельности, при поддержании секретности, а также, например, в процессе автоматизированного проектирования, когда формальное доказательство целостности программы используется для разрешения входа в систему. Важно также обеспечить подтверждение подлинности и в тех случаях, когда в программу вносятся несущественные изменения, которые автор не в состоянии проконтролировать; это достигается тем, что такие изменения не учитываются. При этом программа должна сохранять совместимость с текущими версиями, имеющимися в продаже.
Предостережения обычно делаются с целью указать на неотвратимость возмещения ущерба по закону, но и простые словесные напоминания во многих случаях могут быть полезны. Лицензионная политика также позволяет достичь цели, но отношение к ней зависит от общественного мнения. Например, одноразовая продажа программы с разрешением копирования может окончательно подорвать позицию конкурента. Некоторые пользователи считают, что они имеют право копировать другие программы в зависимости от того, получен или не получен автором гонорар при передаче программы в общественное пользование.
Одна из форм предостережения заключается в выводе на экран авторской этикетки (обращается внимание на юридическую ответственность). Аналогично включение в программу имени покупателя и вывод его на экран предостерегают покупателей от последующего копирования ее даже своим коллегам, поскольку имя покупателя будет присутствовать во всех копиях, которые будут сделаны и переданы другим лицам. Такие меры могут оказаться достаточными для законопослушного пользователя, но чтобы защититься от тех, кто не страдает угрызениями совести и способен выявить и уничтожить элементы защиты, в программу должны быть включены более мощные средства.
Пассивные методы могут во многих случаях помочь выявить улику, подтверждающую несанкционированное копирование, и это может сыграть свою роль в судебном разбирательстве. Однако следует определить цену такого пути, прежде чем последовать ему. Предпочтительно использовать улику, которую дают пассивные методы, для того чтобы вынудить компьютерного нарушителя (хакера), затеявшего игру, прекратить свою деятельность. Было бы достаточно, если бы нарушитель, которому предъявлены отличительные метки или другие улики в программе, прекратил дальнейшие попытки распространения и согласился возместить автору нанесенный ущерб.
Психология предостережения весьма важна при защите программного обеспечения. Хотя хакер может овладеть большим числом приемов раскрытия защиты, к услугам автора имеются разнообразные активные и пассивные методы защиты, использующие отличительные метки для ссылки на владельца авторского права или лицензию непосредственно в коде программы. Многообразие авторских приемов ставит компьютерного нарушителя в сложное положение, поскольку, хотя он и может выявить отдельные приемы, но не может быть абсолютно уверен, что все ключи и ловушки удалены из программы.
Для того чтобы обсуждение методов носило содержательный характер, эти методы классифицированы по категориям. Следует отметить, что использованные термины для обозначения категории не всегда связаны с устоявшейся терминологией.
Одно из направлений защиты – использование неожиданных или маловероятных приемов. Полезно уяснить, как можно комбинировать методы, чтобы создать прием, который из-за его неожиданности не может быть раскрыт хакером.
Выделены следующие категории средств защиты программного обеспечения:
• средства собственной защиты;
• средства защиты в составе вычислительной системы;
• средства защиты с запросом информации;
• средства активной защиты;
• средства пассивной защиты.
4.2. Средства собственной защиты
Собственная защита программ – это термин, определяющий те элементы защиты, которые присущи самому программному обеспечению или сопровождают его продажу и препятствуют незаконным действиям пользователя. Средства собственной защиты представлены на рис. 4.1.
Рис. 4.1.
Документация, сопровождающая любое программное обеспечение, является субъектом авторского права и может выполнять функции защиты. Этому способствуют следующие факторы: ее репродуцирование стоит достаточно дорого, особенно если оригинал выполнен в цвете и не может быть качественно воспроизведен одноцветным копировальным устройством; обычно программы распространяются, будучи представленными в машинном коде, что затрудняет анализ их структуры и обеспечивает определенную степень защиты. В последнем случае весьма важно, чтобы сохранялось сопровождение программы со стороны разработчика, особенно в тех случаях, когда программа не полностью отлажена.
Ограниченное применение как способ защиты реализуется в том случае, когда программное обеспечение используется небольшим числом пользователей, каждый из которых известен по имени. Эта ситуация относительно легко контролируется в окружении, пользующемся доверием, хотя могут возникать проблемы с отдельными работниками, нанятыми на ограниченный срок. В этих случаях следует оговорить условия работы с программными средствами в заключаемом контракте.
Заказное проектирование предполагает разработку программного обеспечения для специальных целей. Если программа используется редко, то ее кража в коммерческих целях маловероятна; однако если кража произошла, то именно эти детали дают ключ к источнику несанкционированного копирования.
Рекомендуется также расставлять отличительные метки в стандартных программных модулях для того, чтобы идентифицировать программы, поставляемые добросовестным покупателям. Цена индивидуальной разметки каждой копии программы должна быть тщательно соразмерена с ожидаемой коммерческой прибылью.
4.3. Средства защиты в составе вычислительной системы
Эта категория средств защиты включает защиту дисков и аппаратуры, замки защиты, изменение функций штатных устройств. При использовании таких средств операционная среда вычислительной системы в отличие от штатного режима постоянно изменяется, поскольку выполнение программы зависит от определенных действий, специальных мер предосторожности и условий, гарантирующих защиту. Перечень таких средств представлен на рис. 4.2.
4.3.1. Защита магнитных дисков
Методы защиты от копирования прежде всего были разработаны для IBM PC и подобных персональных компьютеров. Методы защиты гибких дисков используют два принципа: либо помешать копированию программы на другой диск, либо воспрепятствовать просмотру или операции обратного ассемблирования (реассемблирования).
Рис. 4.2
. О таких программах можно говорить как о "защищенных от копирования" и "защищенных от просмотра". Метод первого типа защищает программу от несанкционированного воспроизведения, а второго – от несанкционированной проверки.
Эти два типа защиты не взаимосвязаны: вполне возможно, что допускающая копирование программа защищена от просмотра и наоборот.
Весьма уязвимой является программа, размещенная на диске, защищенном от копирования, но допускающая просмотр. Если пользователь достаточно разобрался в программе и может обеспечить ее просмотр, то с большой долей вероятности он сможет найти способ переписать на незащищенный диск. В крайнем случае он может сделать распечатку и затем ввести программу заново. И наоборот, если программа не допускает просмотра, но находится на незащищенном диске, квалифицированный специалист может, используя стандартные средства проверки и изменения содержимого диска, обеспечить просмотр программы. По этой причине программные продукты обычно имеют оба вида защиты.
Защита дисков выполняется различными способами. Основная техника заключается в форматировании диска специальными способами, которые предохраняют операционную систему от копирования. Это – нестандартное определение форматов данных или каталогов, изменение размеров секторов, увеличение числа синхронизирующих битов и замена информационных заголовков. Поскольку время обращения к секторам различно, то программным способом можно определить время запаздывания при чтении различных секторов, а поскольку при копировании с помощью стандартной DOS расположение секторов изменится, то запаздывания не будут более соответствовать запаздываниям исходной копии.
Перечисленные методы становятся неэффективными при использовании систем побитового копирования. Побитовый копировщик – это электронная система копирования, которая осуществляет непосредственное считывание информации, бит за битом. Таким способом можно скопировать диск независимо от того, форматирован он или нет.
Средства защиты от побитовых копировщиков используют некоторые интересные приемы. Например, введение битов защиты, которые читаются по-разному в разное время и, таким образом, мешают верификатору копий; или запись исходной копии со скоростью ниже стандартной, что увеличивает плотность записи. В этом случае копирование на другой диск со стандартной скоростью вызывает увеличение длины записи и, следовательно, начало дорожки будет испорчено.
4.3.2.
Защитные механизмы устройств вычислительной системы
Использование специальных характеристик аппаратуры для защиты программ всегда рассматривалось как весьма мощное, но дорогостоящее средство. Практический интерес представляет идея уникального диска, поскольку стоимость ее реализации достаточно низка. Принцип состоит в том, чтобы придать магнитной поверхности диска уникальность, запрещающую запись информации в некоторые секции дорожки. Сначала это достигалось механическим стиранием элементов поверхности, а позднее – использованием лазерного пучка. Таким образом, требуемый формат каждого диска оказывается уникальным. Это позволяет, сравнивая скорости чтения разных дисков, различать оригинальный диск от его копии.
В то время как специализированный компьютер экономически невыгоден для обеспечения защиты программ, специализированный микропроцессор на одном чипе оказывается пригодным для этих целей. Разработаны методы проектирования архитектуры микропроцессора, позволяющей защитить программу от считывания на шину данных для просмотра или копирования. Выполнение программы реализуется в чипе. В этом случае чип играет роль интеллектуального аппаратного модуля, предназначенного для реализации наиболее важных процедур, требующих защиты, например процедур шифрования и дешифрирования программ или данных, используемых исполняемой программой.
4.3.3.
Замки защиты
Замки защиты используются для того, чтобы запретить доступ к программе, если при попытке обращения к ней не выполнены некоторые проверки. Например, можно осуществлять контроль предельного времени или даты использования согласно лицензии; при этом эталоном служат часы компьютера. Во многих системах установка часов доступна оператору, и это позволяет подстраивать часы под временной интервал действия лицензии. Защиту часов компьютера, т. е. предотвращение доступа к ним, можно выполнить, используя либо программный модуль, либо дополнительное оборудование в составе центрального процессора для контроля доступа к часам.
Контроль можно реализовать, если построить замок на основе уникального для каждого компьютера серийного номера. Такой замок защиты относят к классу «мобильных» (настраиваемых, уникальных) замков. В этом случае программа функционирует только на тех компьютерах, серийные номера которых включены в лицензию. Доступ к серийному номеру невозможен ни на одном компьютере, но хакеру это доставляет незначительные трудности – достаточно внести изменения в машинные коды объектного модуля, чтобы обойти или имитировать проверку.
Такая возможность обхода присуща многим методам контроля; данный недостаток можно устранить, если предусмотреть проверки в многочисленных и случайно назначаемых местах программы. Эти точки контроля должны быть проверены на подлинность перед переходом к счету, а еще лучше и во время счета, так чтобы никогда не возникали ситуации, когда вычисления идут без подтверждения проверки.
Интересный метод, который позволяет придать уникальную характеристику каждому компьютеру, состоит в записи с частичным разрушением памяти. Блоки динамической памяти в отличие от статической характеризуются тем, что данные в ней должны периодически восстанавливаться путем регенерации. Данные исчезают, если регенерация, связанная с периодической перезаписью, по каким-либо причинам приостанавливается. Это свойство изменчивости структуры памяти можно использовать в целях идентификации. Если сигнал перезаписи прерывать на некоторое время, можно убедиться, что элементы памяти разрушаются специфическим образом для каждого конкретного модуля памяти. Условие функционирования программы можно связать с уникальной структурой памяти. Запись с частичным разрушением дает уникальный ключ защиты, который предохраняет программу от функционирования на другом компьютере.
Ключи защиты позволяют контролировать использование программного средства в течение заданных интервалов времени с последующим продолжением. Допустим, пользователь выплачивает периодическую (например, ежемесячную) арендную плату и получает на этот срок определенный пароль. Схема защиты запрещает доступ к программе, если пароль или ключ не будут соответствовать показаниям внутренних часов.
Другое применение таких ключей защиты заключается в том, что не период аренды, а ресурс программного продукта служит критерием. В этом случае необходимо определить единицу ресурса, которой может быть время функционирования программы в секундах или объем данных, извлеченных из базы данных. В этом методе ключевые слова присваиваются в соответствии с различными номерами устройств, так что пользователь может покупать блоки устройств в соответствии с работой, которая должна быть выполнена. В дальнейшем длительность использования может быть установлена заново и перезаписана в памяти.
4.3.4. Изменение функций
Существует ряд методов защиты, которые основаны на чередовании действий ключей или функций системы. Эти чередования могут предотвратить просмотр программного листинга или приостановить выполнение подпрограмм копирования. Изменения в визуальном представлении данных могут быть незаметными для пользователя, и он может не осознавать, что информация изменена или скрыта. Так, например, если изменить имена файлов, выводимых на экран монитора, то случайный пользователь не сможет вызвать такие файлы.
Функциональные особенности аппаратуры могут использоваться для защиты программ. Любая программа, размещенная в ПЗУ, будет отражать присущее этому устройству свойство, разрешающее только чтение информации. Попытки обойти это свойство программным способом будут безуспешны, если только не скопировать программу в память, допускающую запись, где незаконная копия может быть изменена.
4.4. Средства защиты с запросом информации
Включение защиты в программу связано с разработкой программ с запросом информации, т. е. требующих для своей работы ввода дополнительной информации, такой, как пароли, номера ключей и т. п.
4.4.1. Пароли
Обычные пароли не являются в полном смысле средствами защиты, они скорее относятся к механизмам управления доступом. Пароли обеспечивают сохранение целостности программного обеспечения в составе вычислительной системы, но для поддержания системы паролей требуется высокая дисциплинированность. Пароли должны быть просты для запоминания, чтобы не записывать их, и не должны быть столь очевидными, чтобы нарушитель мог угадать – они не должны быть связаны с адресом или названием фирмы. Вопросно-ответные системы, которые запрашивают место рождения, девичью фамилию и т. п., обеспечивают высокий уровень защиты, но требуют значительных ресурсов и времени работы вычислительной системы. Использование в качестве пароля отдельных элементов условного слова, например первой и пятой буквы, предотвращает ситуацию, когда целое слово могло бы быть случайно услышано. Так называемый одноразовый блокнот – более надежный механизм формирования паролей; в этом случае пароль является составным, наподобие листков блокнота, которые открываются одновременно (такой пароль очень трудно определить). Однако защита с помощью пароля может оказаться неэффективной, если требуется хранение копии пароля, которая может быть похищена хакером.
Пароль в обычном смысле этого слова не является средством защиты программного обеспечения, поскольку законный пользователь, которому вручен пароль, может оказаться хакером. При формировании пароля можно прибегнуть к помощи специального устройства, которое генерирует последовательности чисел или букв в зависимости от данных, которые задает пользователь. Такое устройство называется преобразователем информации. В действительности вычислительная система генерирует последовательность случайных чисел, и требует, чтобы пользователь в течение короткого промежутка времени присвоил ей некоторое число.
4.4.2. Сигнатуры
Сигнатура – уникальная характеристика компьютера или других устройств системы, которая может быть использована для защиты и проверена программным способом.
Уникальность гибких дисков проявляется прежде всего в форматировании. Уникальное форматирование позволяет закрепить за таким диском каталог файлов, требуемых для данной программы, чтобы установить нужную вычислительную среду. При этом копирование отдельных участков на ту же дискету гарантирует правильность, чего нельзя утверждать при копировании на другую дискету. Список испорченных секторов зависит от конкретной дискеты и отличается от списка для дубликата. К другим возможным сигнатурам относятся длина незаписанных участков магнитной ленты, неиспользованные дорожки на дискете и т. п. Техника частичного разрушения диска является примером, где сигнатура определяется уникальными характеристиками блока памяти компьютера.
В общем случае следует отыскивать такие характеристики аппаратуры или системы, которые не подвержены изменениям и сами не влияют на нормальное функционирование программного обеспечения. Если характеристики уникальны для данной вычислительной системы, нормальное прохождение программы может быть выполнено только на ней.
4.4.3. Аппаратура защиты
Ожидалось, что производители компьютеров первыми проявят интерес к аппаратуре защиты и начнут встраивать ее в стандартные устройства. Но выяснилось, что никаких запросов на обеспечение компьютеров средствами защиты от пользователей не поступало. Другим потенциальным заказчиком должен быть изготовитель программных средств, особенно при продаже сложных и дорогих программных продуктов, когда защищенность прямо связана с получением дохода.
Принцип защиты программ с использованием аппаратуры защиты состоит в том, что при несанкционированном копировании программы из ПЗУ в оперативную память вырабатывается сигнал на самоуничтожение программы. Часть программного обеспечения обычно размещается в ПЗУ либо из-за недостатка памяти компьютера, либо из-за желания поставить под контроль операционной системы операцию копирования ПЗУ. Такая защита, возможно, и будет успешной от неискушенного нарушителя, но совершенно недостаточна для защиты от хакера.
Преобразователь информации, о котором мы кратко упомянули при обсуждении паролей, использует некоторые особенности преобразования данных. В одной из возможных реализаций преобразователя используется микропроцессор, генерирующий в соответствии с алгоритмом псевдослучайное число при нажатии некоторой клавиши клавиатуры. Если на вычислительной установке имеется такой же алгоритм, оператору достаточно задать правильное число, чтобы подтвердить требуемую последовательность.
Другие возможности были реализованы при использовании оптических устройств для выделения исходного образа из искаженных, которые поступают от компьютера. Это может выполнить только оператор, имеющий соответствующее оптическое устройство. Такое устройство можно построить на основе оптических материалов с двойным лучепреломлением, которые позволяют получать наборы цветовых сигналов в соответствии с числами, вводимыми в устройство. Оптические системы, как правило, просты в изготовлении и имеют низкую стоимость. Достоинство описанных преобразователей информации состоит в том, что они независимы от назначения вычислительной системы и в контуре управления используют человека для оценки ответа от компьютера и задания уставок с помощью клавиатуры или другого устройства.
Электронные устройства защиты (ЭУЗ) обычно подсоединяются через стандартный интерфейс RS-232 и откликаются на запрос в виде некоторого числа или последовательности чисел. Недостаток этого устройства связан с тем, что необходимо управлять доступом к этому устройству из программы, и поэтому хакер может предусмотреть обход такого запроса. Обход может, например, заключаться в том, что включается обращение к подпрограмме, которая имитирует функцию ЭУЗ и затем возвращается к исполнению основной программы, обходя запрос. Можно также следить за линией связи и фиксировать числа, а затем генерировать таблицу для вторжения в программу. Для предотвращения таких попыток вторжения необходимо повторять запрос на доступ несколько раз и случайным образом. Кроме того, подлинность исходной программы должна подтверждаться в случайные моменты времени и предусматривать самоуничтожение программы при обнаружении обходов.
Устройства защиты с элементами интеллекта представляют собой одну из форм ЭУЗ с встроенным микропроцессором для реализации сложных алгоритмов защиты. В этом случае связь выхода ЭУЗ с входом оказывается непредсказуемой, обход устройства осуществить нельзя, если только этот обход не удалось встроить непосредственно в защищенную программу. Чтобы обойти эту защиту, надо скопировать программу из памяти микропроцессора. Действия против нарушителя – проектирование микропроцессора на кристалле со сверхвысокой степенью интеграции и встроенной памятью.
Альтернативные устройства используют генератор случайных чисел для реализации механизма подтверждения. Защищаемая программа сначала обращается к датчику случайных чисел для генерации некоторой случайной последовательности, которая и запоминается в программе; при подтверждении программа генерирует некоторую последовательность байтов, которая заставляет датчик случайных чисел воспроизвести последовательность, уникальную для данной программы.
Разработаны также устройства, которые обеспечивают защиту и подтверждение подлинности при взаимодействии двух терминалов. Такое устройство имеется на каждом терминале и предназначено для шифрования. Оно шифрует некоторое случайное число, сгенерированное на одном терминале, а использует его в диалоге с другим. На следующем шаге эта процедура осуществляется со второго терминала.
Средства непосредственной защиты основаны на уничтожении данных, если модуль, содержащий секретные данные, например ключи шифрования, подвергся взлому. Наиболее часто блокируется питание динамической памяти путем разрыва проводов, и информация исчезает. Возможные способы преодоления такой защиты засекречены. Очевидно, что эти методы широко используются в военных применениях, однако информация об этом недоступна для обычных коммерческих целей.
Программу, которую следует защитить, можно зашифровать, используя стандарт шифрования данных и зашифрованный открытый ключ. Особенность шифра открытого ключа состоит в том, что ключ к стандарту шифрования можно дешифрировать только секретным ключом, который находится в специальном аппаратном модуле, а защищенная программа может быть дешифрирована и выполнена только внутри этого модуля. Такие системы первоначально разрабатывались для перевода капиталов между банками и были реализованы в виде специализированной программы. Например, модуль защиты программного обеспечения, разработанный Национальной физической лабораторией, использует как симметричный, так и асимметричный шифры внутри модуля непосредственной защиты; это удобно при защите нескольких программ одним устройством.
Вероятно, неразумно ни с позиций функционирования, ни из экономических соображений размещать в устройстве защиты целые программы или пакеты программ. Должны быть зашифрованы лишь наиболее важные программные модули, которые будут выполняться внутри такого устройства, а вызываться будут из незашифрованной главной программы, выполняющейся на центральном компьютере. Такое устройство может включить часы для контроля времени и даты и, поскольку оно защищено, такие часы могут фиксировать допустимую длительность работы, например при аренде или пересылке программы пользователю для проведения вычислений в течение ограниченного времени.
Проблема, которую следует решить при выполнении нескольких программ в одном устройстве, – это отразить вторжение «троянского коня», т. е. включение в состав законной программы подпрограммы, которая оказалась бы вынужденной обратиться к данным, хранящимся в памяти микропроцессора. Новшество, предложенное в одном из патентов, состоит в том, чтобы в защищенную область памяти нельзя было обратиться, не вызвав сброса микропроцессора. В результате перезагрузки микропроцессор стартует заново и, следовательно, оказывается под управлением защищенной программы, размещенной в новой области памяти.
Следует отметить, что защита системы с открытым ключом требует сохранения регистра законных ключей с целью воспрепятствовать возможному появлению парного ключа. Если этого не предусмотрено, зашифрованное программное обеспечение может быть дешифрировано оставшимся ключом, принадлежащим нарушителю. Почему же регистр хранения открытого ключа обеспечивает необходимую защиту? Дело в том, что длина этих чисел, будучи порядка 150 десятичных цифр, позволяет сгенерировать невероятно большое число таких ключей. Число законных пар, размещаемых в регистре, существенно меньше и вероятность того, что нарушитель подберет пару, которая соответствует регистру защиты, чрезвычайно мала.
Специальная архитектура плат со сверхвысокой степенью интеграции позволяет защитить память, содержащую программу, от чтения через шину данных. Память для хранения программ – это либо программируемое (ППЗУ), либо стираемое программируемое постоянное запоминающее устройство (СППЗУ), которое размещено отдельно от памяти данных и недоступно со стороны входных и выходных портов (чтобы предотвратить прямой доступ к содержимому памяти). Плата помещается в резервные гнезда компьютера. Считается, что преодоление такой защиты по трудоемкости аналогично технологии воспроизведения архитектуры микропроцессора с помощью шлифовки платы, как это делается при расслоении интегральной микросхемы.
Степень защиты, обеспечиваемая рядом описанных выше подсистем, поднимает интересные проблемы о потенциальных возможностях такой защиты. Секретный ключ обычно можно снова восстановить из записей и, вероятно, он будет разглашен при судебном разбирательстве. Однако можно организовать модуль так, чтобы секретный ключ порождался генератором случайных чисел в обстановке секретности и помещался в защищаемый модуль без участия человека и знания ключа. В этом случае невозможно проверить содержимое модуля. То же справедливо и по отношению к архитектуре специального микропроцессора.
4.5. Средства активной защиты
Средства активной защиты делятся на две группы: внутренние и внешние, используемые в составе компьютера и вне его соответственно. Средства защиты инициируются при возникновении особых обстоятельств – вводе неправильного пароля, указания неправильной даты или времени при запуске программы на выполнение или других подобных условий. Попытки получить доступ к точной информации без разрешения на это могут также служить инициирующим обстоятельством для приведения защиты в действие. Внутренние средства активной защиты характеризуются тем, что их обычно не рекламируют хакерам: они либо блокируют программу, либо уничтожают ее.
4.5.1. Внутренние средства активной защиты.
Ключи защиты для блокирования выполнения программы могут быть настроены на любое недозволенное действие, которое будет обнаружено. Обычно это ключи, настроенные на дату, определенное время или на перечень разрешенных ресурсов; в наибольшей степени это относится к арендуемым лицензионным программам, для которых период использования и требуемые ресурсы бывают однозначно определены. Проверка уровня авторских полномочий необходима, чтобы блокировать доступ к точной информации или другим ресурсам, запрещенным для использования. Реакция на несанкционированный доступ может быть реализована в виде предупреждения, дружеского напоминания, либо служить поводом для организации наблюдения.
Инициализация наблюдения может начаться с регистрации в системном журнале использования терминала или реализовываться в виде подтверждения подлинности структуры программы; следует проверить, что средства защиты, включенные в программу, не подверглись изменению или удалению.
Искажение программы представляет собой интересный прием изменения функций, хотя возможны и более решительные действия, например стирание памяти. Например, программы-вирусы вызывают постепенное разрушение программы.
4.5.2. Внешние средства активной защиты
В группе этих средств общепринятые сигналы тревоги, которые известны или неизвестны хакеру, приводят в состояние готовности средства защиты, что может быть вызвано различными ситуациями. Они могут быть активизированы при возникновении многих условий, уже описанных выше. Такие внешние факторы включают также использование ключевых слов, чтобы вызвать распечатку названия программы или имени ее владельца.
Распечатка авторской этикетки важна, поскольку большинство людей считают, что они действуют законно, и напоминание им о праве собственности владельца вызывает у них некоторую обеспокоенность. Хотя описанное и не является защитой от пиратства, это тем не менее способствует увеличению объема продаж, если число случайных копирований уменьшится. Общепринятые сигналы тревоги более сродни созданию среды защиты компьютера, когда требуется подтверждение подлинности операции, особенно при копировании.
Замечено, что чувство беспокойства может оказаться эффективным механизмом сокращения активности по крайней мере некоторых хакеров. Законность совместного (коллективного) пользования программами должна быть подтверждена приобретением лицензии, что может служить эффективным методом борьбы с нарушителями авторского права.
Запуск распечатки этикетки или других деталей из защищенных участков программы осуществляется только при наличии ключевых слов. В то время как этикетка, появившаяся на листинге, может быть вырезана из него, защищенные данные, о которых мы еще будем говорить при обсуждении методов пассивной защиты не так просто, во-первых, найти, а во-вторых, декодировать для получения распечатки, используя подпрограмму, которая инициируется при вводе нужного ключевого слова или другой операцией (активная защита). Метод применим и в иных случаях, не обязательно связанных с анализом программного листинга.
4.6. Средства пассивной защиты
К средствам пассивной защиты относятся предостережения, контроль, а также методы, направленные на поиск улик и доказательство копирования, чтобы создать обстановку неотвратимости раскрытия.
4.6 1. Идентификация программ
Идентификация программы или отдельного модуля представляет интерес в том случае, когда другие методы защиты не приносят успех. Эти вопросы слабо освещены в литературе, за исключением обсуждения нескольких программных процедур и ряда отчетов о судебных тяжбах в США. Широко обсуждаются проблемы авторского права для отдельной процедуры программы и взаимосвязь между идеей и способом ее реализации.
Выделение объективных характеристик программы – довольно сложная процедура, тем не менее признаки подобия двух программ или модулей, содержащихся в больших программах, указать можно. Проблема заключается в том, чтобы уметь идентифицировать программы, которые изменены хакером, погружены в другую программу или откомпилированы в машинный код. Оценка относительной частоты появления операторов или машинных команд – практический способ количественной оценки характеристики программы. Эта величина изменяется при внесении хакером изменений в программу, однако в большой программе для существенного изменения характеристики требуется выполнить значительную работу; к этому следует добавить возможность появления дополнительных ошибок или не согласующихся процедур, которые уменьшают надежность программы.
Для получения корреляционных характеристик, связанных с вставкой программного модуля в большую программу, требуются трудоемкие расчеты, хотя можно указать ряд важных признаков, которые указывали бы на целесообразность более детальных исследований.
Понятие «родимые пятна» используется для описания характеристик, появляющихся в результате естественного процесса разработки программы и относящихся к особенностям стиля программирования, ошибкам и избыточностям, которые не должны иметь места.
Каждое из них может служить убедительной уликой нарушения авторского права. Наоборот, отличительные метки относятся к таким признакам, которые не являются случайными, а вводятся специально, чтобы дать информацию об авторе или владельце авторского права. Другое использование идентификационных меток – выявление путей незаконного копирования или других злоумышленных действий. Термин «отличительная метка» относится к пассивным средствам защиты, которые при нормальном функционировании не «проявляют» себя по отношению к пользователю.
Одно из убедительных доказательств копирования – наличие скопированных ошибок. Маловероятно, чтобы в точном аналоге, который создан, как утверждается, независимо, содержались те же ошибки. В каждой программе остаются избыточные части, например подпрограммы, которые были необходимы для отладки в процессе проектирования программного продукта, а затем не были удалены. Таким образом, в любой программе содержится встроенная улика, которая тем или иным способом сохраняет следы разработки. Отсюда вытекает практический совет – сохранять документацию, которая сопровождала процесс проектирования, чтобы потом иметь улику, подтверждающую авторское право.
Существует точка зрения, что убедительность улики повышается, если отличительная метка, содержащая информацию о владельце авторского права, закодирована. Известно много способов включения такой улики, особенно в программы на языках высокого уровня. Диапазон возможностей сокращается, если необходимо, чтобы отличительная метка сохранялась после компиляции в машинном коде программы. Эта проблема особенно актуальна при использовании оптимизирующих трансляторов. Использование закодированных отличительных меток – довольно распространенная практика, поскольку при этом они остаются доступными и в машинном коде. Существенно, что отличительные метки не являются в полной мере избыточными для того, кто организует контроль за данными и в состоянии отделить на их фоне действительно избыточные данные.
Очевидно, что можно разработать методы, которые позволят использовать закодированные в программе данные. Один из них связан с форматированием выходных данных в закодированной форме, что обусловлено необходимостью проверки кодирования при удаленной передаче, и это требует дополнительной работы.
Важная особенность отличительных меток заключается в том, что они неизвестны нарушителю. Поскольку в прошлом на программы покушались в основном бывшие служащие фирмы, существует организационная проблема, связанная с тем, чтобы отличительные метки были неизвестны руководству фирмы. Даже если существуют многочисленные версии программы, необходимо учитывать относительную несложность процедуры оценки корреляции двух программ, чтобы обнаружить различия в отличительных метках. Методы идентификации машинного кода с целью установления факта копирования довольно-таки надежны, но проблема с процедурами, встроенными в программу, значительно сложнее. Степень подобия процедур, которая обеспечивает правильное функционирование, представляет значительный интерес.
В то время как элементы интеллектуальной собственности, содержащиеся в программе, должны быть защищены, требование совместимости, особенно по диалоговому интерфейсу, имеет важное значение. Существует общий подход к проблеме диалогового взаимодействия (иногда определяемой как проблема «человек – машина»). Сообщество пользователей не должно изучать различные процедуры диалога при переходе к другим системам. Считается, что пользователю необходимо около трех месяцев, чтобы изучить приемы работы со сложной системой, например автоматизированного проектирования. О несогласованности процедур диалога в различных системах можно судить по тому, что более шести недель требуется для переобучения. Аналогичные проблемы возникают при использовании клавиатур с различающимся расположением клавиш.
4.6.2. Устройства контроля
Устройства регистрации событий, процедур или доступа к данным могут рассматриваться как часть общей системы защиты, причем как программ, так и данных. Подтверждение подлинности программы охватывает проблемы: от установления идентичности функционирования текущей программы и ее оригинала до подтверждения адекватности средств защиты. Сохранение выполняемой функции наиболее важно при выполнении финансовых сделок, а также для систем автоматизированного проектирования, когда целостность процедуры проектирования не должна быть нарушена. Последнее весьма важно, если используются устройства с низким уровнем защищенности, когда возможен обход проверок, связанных с защитой.
4.6.3.
Водяные знаки
Использование водяных знаков как метода выявления подделки занимает особое место, поскольку препятствует созданию точной копии, которую пользователь не мог бы отличить от оригинала. В большинстве методов, предложенных для анализа проблемы идентификации программ, считается, что программы либо замаскированы, либо не полностью открыты для просмотра.
4.6.4. Психологические методы защиты
Эти методы основаны на том, чтобы создать у нарушителя чувство неуверенности и психологического напряжения, заставляя его все время помнить, что в похищенном программном продукте могут сохраняться средства защиты. Поэтому полезно было бы дать объявление, что в программное обеспечение встроены механизмы защиты (независимо от того, так ли это на самом деле). Во многих странах распространено мнение, что защита авторского права на программы усиливает психологическую обеспокоенность. Существует огромное число хитроумных способов расстановки отличительных меток в программе и никакой хакер не может быть уверен, что ему удалось уничтожить все ключи и механизмы защиты.
Методы защиты программного обеспечения имеют широкий диапазон действия, и пользователь должен выбрать тот или иной механизм, учитывая стоимость его реализации. Фактор неудобства для покупателя может несколько снизить цену.
Стратегия, выбираемая изготовителем, будет зависеть от объема программных средств, которые следует защитить. Выбранный способ должен быть относительно дешев для изготовителя, чтобы можно было его включить в большое число программных продуктов, но одновременно он должен быть сложным и дорогостоящим для преодоления нарушителем, т.е. не должен относиться к одной-единственной программе. Угроза законного возмездия против квалифицированного хакера должна быть поддержана убедительными уликами,
Идеальные методы защиты должны позволять пользователю делать резервные копии для собственного использования и не должны ограничивать возможности компьютера (такие, как число строк ввода-вывода или выбор приоритета при работе в многозадачном режиме). Исключительно важное значение приобретают устройства зашиты, которые эффективны при работе в сетях.
Психологические и социальные факты должны способствовать защите и поддерживать в сознании нарушителя обеспокоенность, и это будет полезное дополнение к методам защиты, которыми мы располагаем.
4.7. Электронные ключи
Среди средств так называемых ААА (authentication, authorization, administration – аутентификация, авторизация, администрирование) важное место занимают программно-аппаратные инструменты контроля доступа к компьютерам – электронные замки, устройства ввода идентификационных признаков (УВИП) и соответствующее программное обеспечение (ПО) [9]. В этих средствах контроля доступа к компьютерам идентификация и аутентификация, а также ряд других защитных функций, выполняются с помощью электронного замка и УВИП до загрузки ОС.
По способу считывания современные УВИП подразделяются на контактные, дистанционные и комбинированные.
Контактное считывание идентификационных признаков осуществляется непосредственным взаимодействием идентификатора и считывателя.
При бесконтактном способе считывания идентификатор может располагаться на некотором расстоянии от считывателя, а сам процесс считывания осуществляется радиочастотным или инфракрасным методом.
УВИП могут быть электронными, биометрическими и комбинированными.
Электронные УВИП содержат микросхему памяти идентификационного признака.
Анализ новых технологий защиты информации показывает, что одним из наиболее мощных инструментов защиты ПО и БД от несанкционированного использования и нелегального копирования являются системы защиты на базе электронных ключей, в частности инструментальная система Hardlock с ее основным компонентом – электронным ключом Hardlock.
В целом система защиты Hardlock базируется на трех компонентах:
· электронном ключе Hardlock;
· криптокарте для программирования ключей Cripto-Programmer Card;
· программном обеспечении Hardlock Bistro, позволяющем быстро создать систему защиты для приложений и связанных с ними файлов данных.
Основой ключей Hardlock является заказной ASIC-чип (Application Specific Integrated Circuit) со встроенной EEPROM-памятью, разработанной компанией Aladdin. Чип имеет достаточно сложную внутреннюю организациюи специфический алгоритм работы, причем он программируется только с использованием специальной платы Cripto-Programmer Card, так как любой другой метод программирования ключей в настоящее время не обеспечивает безопасное хранение ключевой информации.
Каждый экземпляр этой платы является уникальным и позволяет задавать 43 680 вариантов работы алгоритма шифрования, которые могут быть использованы при программировании ASIC-чипа ключа. Логику работы чипа практически невозможно реализовать с помощью наборов микросхем, его практически невозможно воспроизвести, а содержащийся в его памяти микрокод – считать, расшифровать либо сэмулировать.
Использование подобного чипа позволяет работать на всех типах ПК. Последняя модель ключа Hardlock Twin может работать как с параллельным портом, так и с последовательным, позволяя подключать через него практически любые устройства, в том числе модемы, сканеры, принтеры и т. п.
В настоящее время ключи Hardlock выпускаются в следующих конфигурациях:
· внешний ключ на параллельный порт (Hardlock EYE);
· внешний ключ на параллельный и на последовательный порт (Hardlock Twin);
· внутренний ключ на шину ISA/MCA (Hardlock Internal);
· сетевой ключ (HL-Server) – внешний или внутренний;
· USB-порт (Hardlock USB);
· PC Card (Hardlock PCMCIA) – для лэптопов и ноутбуков.
Все модели ключей совместимы между собой и могут работать с большинством ОС, в различных сетях ( c протоколами IPX, TCP/IP, Net-BIOS), осуществлять защиту 16- и 32-разрядных приложений (com, exe, dll) DOS и Windows и связанных с ними файлов данных в прозрачном режиме. При записи данные автоматически шифруются с использованием заданного аппаратно реализованного алгоритма, при чтении – расшифровываются. Симметричное шифрование производится блоками по 64 бита, причем для каждого нового блока ASIC генерирует новыц сеансовый ключ длиной 48 бит.
Главным отличием ключей Hardlock от известных является высокий уровень защиты программ и аппаратное шифрование файлов данных.
Компания ALADDIN SOFTWARE SECURITY R.D. получила сертификат Госкомиссии РФ на продукт для защиты информации под названием Secret Disk. Этот продукт позволяет создавать на диске компьютера защищенные разделы, доступ к которым невозможен без установленного в USB-порт компьютера индивидуального электронного брелока. Перед началом работы секретный диск необходимо отпереть, вставив в порт электронный брелок и ввести пароль, а по окончании – отключить. Если во время работы с конфиденциальными документами необходимо прерваться, не выключая компьютера, достаточно вынуть ключ. При этом экран гаснет, а клавиатура блокируется. Допускается применение ключа также при работе с документами, составляющими государственную тайну.
Дальнейшим шагом в развитии Secret Disk стал продукт Secret Disk Server, предназначенный для шифрования корпоративной информации на серверах Windows NT/2000.
Устройства ввода идентификационных признаков на базе идентификаторов Proximity
(от английского слова proximity – близость, соседство) относится к классу электронных бесконтактных радиочастотных устройств. Они выпускаются в виде карточек, ключей, брелоков и т. п. Каждый из них имеет собственный уникальный серийный номер. Основными составляющими устройств являются интегральная микросхема для связи со считывателем и встроенная антена. В составе микросхемы находятся приемо-передатчик и запоминающее устройство, хранящее идентификационный код и другие данные. Внутри Proximity может быть встроена литиевая батарейка (активные идентификаторы). Активные идентификаторы могут считывать информацию на расстоянии нескольких метров. Расстояние считывания пассивными идентификаторами (не имеющих батарейки) составляет десятки сантиметров.
Устройство считывания постоянно излучает радиосигнал, который принимается антенной и передается на микросхему. За счет принятой энергии идентификатор излучает идентификационные данные, принимаемые считывателем.
4.8. Технология защиты информации на основе смарт-карт
Появление новой информационной технологии смарт-карт (СК), основанной на картах со встроенным микропроцессором, позволило удобнее решать вопросы использования пластиковых денег. Однако уникальные возможности СК с микропроцессором, состоящие в высокой степени защиты от подделки, поддержке базовых операций по обработке информации, обеспечении высоких эксплуатационных характеристик, сделали СК одним из лидеров среди носителей конфиденциальной информации. Следует отметить отличительные особенности таких карт. СК содержит микропроцессор и ОС, которые обеспечивают уникальные свойства защиты, имеют контактное и бесконтактное исполнение (на рис. 4.3 показана схема бесконтактной СК). СК могут быть произведены только промышленным путем и, следовательно, не могут быть скопированы. Каждая СК имеет уникальный код, определенный на производстве, и если на другую карту будут записаны те же данные, что и на оригинале, то различия во внутренних параметрах дают возможность системе отличить одну карту от другой. СК может быть запрограммирована так, что она выходит из строя при попытке НСД. Данные шифруются с помощью различных алгоритмов, в том числе ГОСТ 28147 – 89 или DES и секретных ключей, которые содержатся на микросхеме карты. Если карта обнаруживает несоответствие введенного пользователем pin-кода – персонального идентификационного номера – со своим личным pin-кодом несколько раз подряд (обычно 3 раза), она может самоуничтожиться, т.е. стать непригодной для использования, записав в память вместо системных ключей случайно сгенерированные числа.
Таким образом, технология СК обеспечивает надежное хранение ключей и доступ к различным информационным ресурсам.
Персональные идентификаторы iKey компании Rainbow являются недорогими брелоками, которые могут использоваться на любой рабочей станции, имеющей универсальную последовательную шину (USB). Они обеспечивают надежность, простоту и безопасность в такой же степени, как и смарт-карты, но без сложностей и лишних затрат, связанных с с использованием считывателя [9]. iKey являются идеальным инструментом для контроля доступа к сетевым службам. iKey 2000 поддерживает и интегрируется со всеми основными прикладными системами, работающими по технологии PKI и используемыми в сетях отдельной организации, нескольких взаимодействующих организаций. Указанные системы включают Microsoft Internet Exolorer и Outlook, Netscape, Entrust, Baltimore, Xcert, Verisign и др. iKey 2000 разрабатывался для защиты цифровой идентичности в рамках инфраструктуры открытых ключей (PKI). iKey 2000 способен с помощью аппаратных средств генерировать и сохранять в памяти пары открытых ключей и цифровые сертификаты, а также производить цифровую подпись. Личный PKI-ключ недоступен компьютеру клиента.
iKey 2000 создает мощную систему защиты и криптографического кодирования непосредственно внутри аппаратного устройства. Для iKey 2000 пользователю поставляется программное обеспечение. Устройство содержит полный набор криптографических библиотек для броузеров Netscape и Internet Exolorer, а также для клиентов электронной почты. iKey 2000 действует одновременно как смарт-карта и считыватель, находящиеся в едином устройстве с конструктивом USB. Для активизации прикладной программы достаточно вставить iKey 2000 в USB-порт.
Рис. 4.3
iKey 2000 реализует более простой метод обеспечения привилегий пользователя, чем пароли или чисто программные сертификаты. Чтобы запрограммировать ключ, администратору потребуется всего несколько минут. Потерянные ключи могут быть дезактивированы и изменены.
4.9. Создание защищенной операционной системы
Анализ архитектуры и характеристик сертифицированных защищенных систем показывает [1]:
1. В настоящее время имеется два принципиально различных метода к проектированию защищенных информационных систем. Первый метод предполагает разработку защищенной системы с нуля, и в этом случае для нее специально разрабатываются защищенные приложения. Вследствие значительной трудоемкости и стоимости такой подход приемлем для состоятельных производителей. Второй подход заключается в доработке системы-прототипа с целью улучшения ее характеристик защиты.
2. Принципы построения защищенных операционных систем изменялись с развитием сферы применения компьютерных систем. Защищенные ОС стали разрабатываться для рабочих станций и персональных компьютеров, для сетевых систем. Особое значение при этом имела ОС UNIX, которая наиболее часто служила основой для разработки защищенных ОС.
3. Для соответствия требованиям сертификации ОС должна обеспечивать произвольный и нормативный доступ. Для реализации произвольного доступа защищенные ОС используют как традиционный механизм битов защиты, так и списки контроля доступа (ACL). Для организации нормативного контроля доступа в большинстве случаев используется модель Белла и Лападула. Обеспечение целостности данных в защищенных ОС обеспечивается применением нормативной модели Биба.
4. Так как при сертификации защищенные ОС подлежат формальному анализу, то защищенные системы должны разрабатываться на основе иерархического и модульного проектирования.
Все защищенные ОС в общем реализуют один и тот же набор защитных функций – управление доступом и контроль за его осуществлением, идентификация и аутентификация, аудит, прямое взаимодействие и т. д. Это связано с тем, что все разработчики ориентируются на соответствующие разделы стандартов информационной безопасности. Однако способы реализации этих функций, как и реализуемый ими уровень защиты, различаются от системы к системе даже в рамках одного класса требований [1].
Построению защищенной системы должно предшествовать определение класса требований стандарта информационной безопасности к данной системе. На современном уровне развития информационных технологий необходимо разрабатывать системы с жесткими требованиями по защищенности. В обязательном порядке должны быть реализованы произвольное и нормативное управление доступом, а структура ТСВ системы должна позволять применение формальных методов анализа.
Поэтому будем ориентироваться на требования безопасности уровня В3 "Оранжевой книги". Эти требования содержат поддержку формально определенной модели безопасности, предусматривают произвольное и нормативное управление доступом, метки безопасности, контроль доступа к субъектам и объектам. ТСВ в такой системе должна быть структурирована с целью исключения из нее подсистем, не отвечающих за функции защиты, и быть компактной для надежного тестирования и анализа. ТСВ должна быть минимизирована по сложности. Средства аудита должны содержать механизмы оповещения администратора о событиях, влияющих на безопасность системы. Требуется наличие средств восстановления работоспособности после сбоев и контроля скрытых каналов утечки информации.
С точки зрения обеспечения безопасности самой прогрессивной на сегодняшний день технологией построения ОС является технология микроядра. В отличие от традиционной архитектуры, в которой ОС представляет собой монолитное ядро, реализующее основные функции по управлению аппаратными ресурсами и организующее среду для выполнения пользовательских процессов, микроядерная архитектура распределяет функции ОС между микроядром и входящими в состав ОС системными сервисами (процессы, равноправные с пользовательскими приложениями).
Микроядро выполняет базовые функции операционной системы, на которые опираются эти системные сервисы и приложения. В итоге такие важные компоненты ОС как файловая система, сетевая поддержка и т. д. превращаются в независимые модули, которые функционируют как отдельные процессы и взаимодействуют с ядром и друг с другом на общих основаниях. Имевшее раньше место четкое разделение программного обеспечения на системные и прикладные программы размывается, т.к. между процессами, реализующими функции ОС, и прикладными процессами, выполняющими программы пользователя, нет никаких различий. Все компоненты системы используют средства микроядра для обмена сообщениями, но взаимодействуют непосредственно. Микроядро лишь проверяет законность сообщений, пересылает их между компонентами и обеспечивает доступ к аппаратуре.
Другое изменение в технологии построения ОС, связанное исключительно с внедрением технологии микроядра, это организация взаимодействий между процессами и ядром с помощью универсального механизма передачи информации – обмена сообщениями, пришедшему на смену технике системных вызовов. При этом десятки или даже сотни вызовов, различающихся числом и типом параметров, можно заменить несколькими типами сообщений, которые содержат компактные порции информации и могут передаваться от одного обработчика к другому.
На современном этапе развития ОС эта технология является самой перспективной, т.к. позволяет преодолеть самые заметные недостатки существующих систем – отсутствие мобильности, громоздкость, ресурсоемкость. Реализация многих традиционных функций ОС за пределами ядра способствует построению на базе этого ядра операционных систем с недостижимым раннее уровнем модульности и расширяемости.
Чтобы иметь представление о базовом наборе понятий, необходимого для изложения деталей реализации средств защиты, рассмотрим некоторые понятия и основные принципы построения архитектуры современных микроядерных операционных систем на примере лежащего в основе Trusted Mach микроядра MK++[1].
4.9.1. Основные положения архитектуры микроядерных ОС
В основе архитектуры микроядерных ОС лежат следующие базовые концепции:
· минимизация набора функций, поддерживаемых микроядром, и реализация традиционных функций ОС (файловая система, сетевая поддержка) вне микроядра;
· организация синхронного и асинхронного взаимодействия между процессами через механизм обмена сообщениями;
· все отношения между компонентами строятся на основе модели клиент/сервер;
· применение объектно-ориентированного подхода при разработке архитектуры и программирования системы.
Минимизация функций микроядра дает возможность сконцентрировать в нем код, зависящий от аппаратной платформы, что позволяет повысить переносимость ОС до максимума. Таким образом, микроядро реализует только жизненно важные функции, лежащие в основе операционной системы, являющиеся базисом для всех системных служб, сервисов и прикладных программ.
Использование механизма передачи сообщений позволяет установить единый интерфейс для взаимодействия между всеми компонентами системы независимо от их уровня и назначения, что дает возможность строить все информационные связи в системе по модели клиент/сервер.
В модели клиент/сервер все компоненты рассматриваются либо как потребители (клиенты), либо как поставщики (серверы) некоторых ресурсов или сервисов. Стандартизированные протоколы предоставления сервиса или ресурсов позволяют серверу обслуживать клиентов независимо от деталей их реализации, что открывает перед разработчиками широкие возможности для построения распределенных систем. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса. Один и тот же процесс может являться клиентом по отношению к одним ресурсам, и быть сервером для других. Данная модель успешно применяется не только при построении ОС, но и при создании программного обеспечения любого уровня. Применение модели клиент/сервер по отношению к ОС состоит в реализации не вошедших в состав ядра компонентов ОС, в виде множества серверов, каждый из которых предназначен для обслуживания определенного ресурса (например, управление памятью, процессами, контроль доступа и т. д.).
Наиболее полно раскрыть преимущества технологии клиент/сервер позволяет применение методов объектно-ориентированного проектирования и программирования. Если каждый сервер обслуживает только один тип ресурсов и представляет его клиентам в виде некоторой абстрактной модели, то такой сервер можно рассматривать как объект, т.к. он обладает всеми необходимыми для этого качествами. Объект должен обладать состоянием, поведением и индивидуальностью. Для каждого сервера существует четко определенная модель состояний и переходов между ними. И, наконец, "поведение" каждого сервера однозначно регламентируется протоколом его взаимодействия с клиентами. Соответственно, можно строить модель ОС, построенной по этим принципам, в виде иерархии серверов и моделей, представляемых ими ресурсов, а также описывать существующие между ними взаимосвязи с помощью объектных отношений наследования, использования и включения.
С точки зрения создания защищенных операционных систем, использование объектно-ориентированного подхода в сочетании с микроядром и технологией клиент/сервер позволяет разработчику реализовать взаимодействие субъектов и объектов, а также контроль за информационными потоками с помощью ограниченного числа простых и понятных механизмов, что облегчает адекватность реализации модели безопасности и позволяет применять формальные методы анализа.
4.9.2. Микроядерная архитектура с точки зрения создания защищенных систем
Благодаря принципам, на которых основаны микроядерные ОС, их компоненты функционируют на основе очень небольшого и сравнительно простого набора абстракций, составляющих базис системы и компактно реализованных в микроядре. Можно сказать, что для защищенных систем такая архитектура является оптимальной, т.к. она позволяет достаточно просто и эффективно разрешить целый ряд вопросов, неизбежно возникающих при реализации защищенных систем:
1. Выявление потоков информации в системе. Поскольку все взаимодействия осуществляются исключительно посредством механизма передачи сообщений, очевидно, что, контролируя потоки сообщений, можно быть уверенным в том, что контролируются все информационные потоки в системе;
2. Определение субъектов и объектов взаимодействия. Как уже говорилось, все задачи в микроядерных системах связаны между собой отношениями клиент/сервер. Соответственно, субъектом взаимодействия всегда является задача-клиент, а объектом – ресурс, обслуживаемый задачей-сервером.
3. Размещение подсистемы контроля доступа. Поскольку единственным механизмом взаимодействия является передача сообщений, очевидно, что функция контроля за информационными потоками должна быть возложена на ту часть ядра системы, которая реализует этот механизм. Контроль и управление доступом к ресурсам и объектам могут быть реализованы, как в составе серверов, отвечающих за обслуживание этих ресурсов и объектов, так и на уровне всей системы в целом. Так как многие сервера обслуживают однотипные ресурсы и объекты (файлы, устройства и т. д.), то контроль доступа к ним с целью унификации реализуется на глобальном уровне, с помощью Сервера имен, который формирует глобальное пространство имен системы и организует взаимодействие между клиентами и серверами.
4. Минимизация объема программного кода, отвечающего за контроль доступа. Как следует из предыдущего пункта, в системе существует всего две процедуры, реализующие контроль за осуществлением доступа: на уровне передачи сообщений и глобальная система на уровне именованных объектов. Таким образом, объем программ, корректность функционирования которых критична для безопасности всей системы, сокращен до минимума.
5. Использование объектно-ориентированных технологий программирования. Контроль за потоками сообщений и доступом процессов к ресурсам из глобального пространства имен можно осуществлять на основе унифицированного набора свойств сообщений (источник, приемник) и ресурсов (идентификатор процесса, имя ресурса). За счет этого достигается абстрагирование системы защиты от специфики информационных взаимодействий, но в то же время сохраняется ее гибкость за счет возможности использования в задачах-серверах специализированных механизмов защиты, адаптированных и конкретизированных к ресурсам, которые обслуживают эти сервера.
6. Верификация и анализ защиты. Достигнутая с помощью применения описанных решений простота и компактность средств контроля за осуществлением доступа очевидным образом, за счет структуризации системы способствует применению формальных методов верификации и анализа программного кода средств защиты.
4.9.3. Микроядро как основа для создания защищенной ОС нового поколения – МК++
Микроядро МК++ отвечает всем требованиям, предъявляемыми к ОС нового поколения (многопоточность, расширяемость, мобильность и т.д.) [1]. Разработчики преследовали следующие цели:
· отработать технологии реализации современных требований к операционным системам;
· создать основу для разработки будущих поколений защищенных ОС, рассчитанных на достаточно высокий класс требований безопасности;
· обеспечить возможность работы микроядра и приложений в режиме реального времени;
· предусмотреть максимальное использование параллельности, как для приложений, так и для самих компонентов операционной системы в расчете на распределенные и массово-параллельные системы будущего;
· обеспечить переносимость микроядра с одной аппаратной платформы на другую;
· обеспечить совместимость с существующим программным обеспечением.
Рассмотрим МК++ только с точки зрения создания основы для защищенной ОС.
Поскольку разработчики МК++ стремились создать классическую микроядерную систему, в которой практически все традиционные для ОС функции вынесены за пределы ядра, само микроядро осуществляет только следующий набор функций:
· управление физической аппаратурой (оперативной памятью, процессорами, внешними устройствами);
· распределение ресурсов аппаратной платформы между процессами (время процессора, память и т.д.);
· изоляция процессов;
· организация взаимодействия между процессами;
· управление процессами (создание, уничтожение, переключение).
Ядро является своеобразным арбитром, роль которого сводится к поддержанию некоторого набора "правил игры" внутри операционной системы, все остальные традиционные функции ОС должны быть реализованы вне ядра.
Для описания микроядерной архитектуры необходимо перечислить набор основных понятий, используемых в микроядерной технологии построения ОС:
Задача. В микроядерных системах это понятие заменяет традиционное для ОС понятие процесс. Задача представляет собой обобщение понятия процесс и обозначает набор ресурсов, который образует среду для выполнения потоков (см. далее). Эта среда включает в себя:
· изолированное от других задач адресное пространство;
· среду выполнения прикладного процесса;
· атрибуты безопасности;
· средства взаимодействия с ядром;
· средства взаимодействия с другими задачами.
Каждая задача имеет свое собственное пространство имен портов. Задача может выступать в роли потребителя ресурсов (клиент), или предоставлять определенные ресурсы другим задачам (сервер). Одна и та же задача может являться одновременно и сервером, и клиентом, потребляя ресурсы, контролируемые одними задачами, и предоставляя свои ресурсы другим. Доступ к ресурсам, как и взаимодействие с другими задачами и ядром, осуществляется только с помощью обмена сообщениями через порты.
Поток (
Thread
) – логически связанный поток выполняемых команд. Каждый поток выполняется в контексте какой-либо
задачи и может осуществлять непосредственный доступ только к ее среде. Потоки являются основной единицей вычислений и единственными активными элементами в системе. Поток представляет собой последовательность команд, выполняемых в рамках задачи. Его единственными атрибутом является состояние процессора. Все потоки внутри задачи совместно используют адресное пространство и наследуют атрибуты безопасности задачи.
Порт – однонаправленный информационный канал, с помощью которого задачи обмениваются информацией друг с другом и с ядром, осуществляя операции посылки и получения сообщений. Задачи могут получить доступ к портам только при наличии у них прав на посылку/прием сообщений.
Сообщение – логически связанный набор данных, предаваемый через порт за одно обращение. Для осуществления контроля доступа ядро снабжает все сообщения специальной меткой, идентифицирующей отправителя сообщения.
Пример взаимодействия между сервером, клиентом и микроядром с помощью портов и сообщений показан на рис. 4.4.
Рассмотрим внутреннюю структуру МК++, назначение и основные функции составляющих его компонентов. Как видно из рис. 4.5, структура МК++, представляет собой иерархию, в которой каждый уровень опирается на сервисы, реализуемые нижестоящими уровнями, и, в свою очередь, обслуживает уровни, лежащие выше.
Для того чтобы пояснить, как функционирует микроядро, рассмотрим в общих чертах тот сервис, который реализуется компонентами МК++ и некоторыми задачами, обеспечивающими важные для функционирования системы функции.
Рис. 4.4
1. Подсистема управления процессорами представляет собой самую низкоуровневую и в наибольшей степени зависимую от аппаратной платформы подсистему во всей структуре микроядра. Подсистема управления процессорами контролирует все переходы между различными режимами работы процессоров, в том числе изменение уровня привилегий и переходы между различными кольцами защиты, а также переключение с одного потока команд на другой и также обработку прерываний и исключений. Данный уровень скрывает от вышестоящих все особенности аппаратной архитектуры, такие как порядок сохранения и восстановления регистров, формат таблиц трансляции адресов, способы управления приоритетами прерываний и т.д. Таким образом, подсистема управления процессорами реализует следующие функции:
· управление состоянием процессоров;
· обработка аппаратных прерываний и исключений;
· синхронизация совместной работы нескольких процессоров;
· предоставление процессоров в распоряжение потоков и контроль за использованием процессорного времени.
2. Управление ресурсами микроядра. Служебные структуры (сообщения, порты и т.д.) требуют выделения определенных ресурсов (памяти), и при этом должны быть доступны как для приложений, так и из микроядра, что влечет за собой необходимость размещения их в адресном пространстве микроядра. Подсистема управления ресурсами памяти микроядра отвечает за выделение памяти в адресном пространстве микроядра, ее освобождение и контроль за использованием.
3. Подсистема организации взаимодействий реализует для вышележащих уровней сервис, позволяющий посылать и принимать элементы данных. Данная подсистема включает в свой состав универсальные механизмы, которые могут быть использованы для передачи абстрактных элементов (непосредственно или с буферизацией в очереди) от некоторого источника к некоторому приемнику. Тип элементов не имеет значения. Самым распространенным примером использования этого сервера является механизм передачи сообщений, обслуживающий информационный обмен между задачами и ядром, однако этот сервис может быть использован для других целей.
4. Подсистема управления физической памятью отвечает за порядок распределения и использования физической памятью системы. Кроме того, данная подсистема выполняет машинно-зависимые операции трансляции адресов для различных адресных пространств.
5. Подсистема ввода-вывода выполняет низкоуровневый ввод/вывод информации, специфичный для каждого конкретного устройства. Кроме того, эта подсистема управляет аппаратными таймерами, а также осуществляет обработку прерываний от внешних устройств.
6. Подсистема идентификации ставит в соответствие каждой сущности уровня микроядра (задачи, потоки, порты и т.д.) уникальный идентификатор.
7. Идентификатор никогда не используется повторно, даже если объект, на который он ссылается, уничтожен. Эта подсистема обеспечивает механизм взаимодействий на уровне всей системы. Все манипуляции с объектами микроядра опираются на этот сервис.
8. Подсистема виртуальной памяти отвечает за отображение виртуальных адресных пространств ядра и задач в физическую память и обеспечивает инициализацию и очистку объектов памяти.
Рис. 4.5
9. Подсистема реального времени обеспечивает функции работы с сигналами и таймерами и осуществляет доступ к аппаратным часам.
10. Подсистема управления виртуальными устройствами поддерживает абстракции, представляющие их на уровне задач. Данная подсистема ответственна за присваивание имен и реализацию операций открытия/закрытия для всех устройств.
11. Подсистема управления адресными пространствами организует виртуальные адресные пространства задач и пользуется сервисом виртуальной памяти для манипулирования областями памяти, находящимися в адресном пространстве задач. Эта подсистема также осуществляет низкоуровневое управление доступом к пространствам памяти.
12. Подсистема управления портами отвечает за организацию пространства имен портов для задач и осуществляет отображение имен портов во внутренние идентификаторы микроядра с помощью подсистемы идентификации. Именно эта подсистема реализует контроль за информационными потоками и определяет, обладает ли задача правом на прием сообщений из порта и посылать в него сообщения.
13. Подсистема управления ресурсами обеспечивает высокоуровневые средства управления ресурсами ядра, в частности задачами и потоками. Управление состоит в отслеживании событий, связанных с ресурсами, и манипуляциях с ними, например, создание, завершение и приостановка выполнения потоков. Специальный механизм данной подсистемы позволяет реализовать различные политики управления ресурсами ядра.
14. Интерфейс микроядра определяет границу между выполнением потоков в контексте ядра и в пользовательском контексте. Подсистема управления процессорами осуществляет переключение процессора таким образом, что вход в контекст микроядра из прикладной задачи и выход из него возможен только через интерфейс микроядра.
15. Сервер загрузки находится вне микроядра и представляет собой обычную пользовательскую задачу, создаваемую процессом инициализации ОС. Целью этой задачи является загрузка и запуск серверов, реализующих системные сервисы, в том числе входящих в состав ТСВ.
16. Сервер свопинга также является обычной задачей. Он обеспечивает сохранение на диске областей виртуальной памяти, вытесненных из физической памяти.
В микроядре отсутствуют средства, отвечающие за реализацию политики безопасности и управления доступом к информационным ресурсам системы. Однако, МК++ включает два механизма, необходимые для реализации этих функций, а именно: изоляцию задач и контроль за передачей сообщений. Все остальные механизмы защиты, опирающиеся на этот сервис, могут быть реализованы в составе серверов. В совокупности микроядро и эти серверы образуют ТСВ системы.
Порт – однонаправленный информационный канал, с помощью которого задачи обмениваются информацией друг с другом и с ядром, осуществляя операции посылки и получения сообщений. Задачи могут получить доступ к портам только при наличии у них прав на посылку/прием сообщений.
Сообщение – логически связанный набор данных, предаваемый через порт за одно обращение. Для осуществления контроля доступа ядро снабжает все сообщения специальной меткой, идентифицирующей отправителя сообщения.
Пример взаимодействия между сервером, клиентом и микроядром с помощью портов и сообщений показан на рис. 4.4.
Рассмотрим внутреннюю структуру МК++, назначение и основные функции составляющих его компонентов. Как видно из рис. 4.5, структура МК++, представляет собой иерархию, в которой каждый уровень опирается на сервисы, реализуемые нижестоящими уровнями, и, в свою очередь, обслуживает уровни, лежащие выше.
Для того чтобы пояснить, как функционирует микроядро, рассмотрим в общих чертах тот сервис, который реализуется компонентами МК++ и некоторыми задачами, обеспечивающими важные для функционирования системы функции.
Рис. 4.4
1. Подсистема управления процессорами представляет собой самую низкоуровневую и в наибольшей степени зависимую от аппаратной платформы подсистему во всей структуре микроядра. Подсистема управления процессорами контролирует все переходы между различными режимами работы процессоров, в том числе изменение уровня привилегий и переходы между различными кольцами защиты, а также переключение с одного потока команд на другой и также обработку прерываний и исключений. Данный уровень скрывает от вышестоящих все особенности аппаратной архитектуры, такие как порядок сохранения и восстановления регистров, формат таблиц трансляции адресов, способы управления приоритетами прерываний и т.д. Таким образом, подсистема управления процессорами реализует следующие функции:
· управление состоянием процессоров;
· обработка аппаратных прерываний и исключений;
· синхронизация совместной работы нескольких процессоров;
· предоставление процессоров в распоряжение потоков и контроль за использованием процессорного времени.
2. Управление ресурсами микроядра. Служебные структуры (сообщения, порты и т.д.) требуют выделения определенных ресурсов (памяти), и при этом должны быть доступны как для приложений, так и из микроядра, что влечет за собой необходимость размещения их в адресном пространстве микроядра. Подсистема управления ресурсами памяти микроядра отвечает за выделение памяти в адресном пространстве микроядра, ее освобождение и контроль за использованием.
3. Подсистема организации взаимодействий реализует для вышележащих уровней сервис, позволяющий посылать и принимать элементы данных. Данная подсистема включает в свой состав универсальные механизмы, которые могут быть использованы для передачи абстрактных элементов (непосредственно или с буферизацией в очереди) от некоторого источника к некоторому приемнику. Тип элементов не имеет значения. Самым распространенным примером использования этого сервера является механизм передачи сообщений, обслуживающий информационный обмен между задачами и ядром, однако этот сервис может быть использован для других целей.
4. Подсистема управления физической памятью отвечает за порядок распределения и использования физической памятью системы. Кроме того, данная подсистема выполняет машинно-зависимые операции трансляции адресов для различных адресных пространств.
5. Подсистема ввода-вывода выполняет низкоуровневый ввод/вывод информации, специфичный для каждого конкретного устройства. Кроме того, эта подсистема управляет аппаратными таймерами, а также осуществляет обработку прерываний от внешних устройств.
6. Подсистема идентификации ставит в соответствие каждой сущности уровня микроядра (задачи, потоки, порты и т.д.) уникальный идентификатор.
7. Идентификатор никогда не используется повторно, даже если объект, на который он ссылается, уничтожен. Эта подсистема обеспечивает механизм взаимодействий на уровне всей системы. Все манипуляции с объектами микроядра опираются на этот сервис.
8. Подсистема виртуальной памяти отвечает за отображение виртуальных адресных пространств ядра и задач в физическую память и обеспечивает инициализацию и очистку объектов памяти.
Рис. 4.5
9. Подсистема реального времени обеспечивает функции работы с сигналами и таймерами и осуществляет доступ к аппаратным часам.
10. Подсистема управления виртуальными устройствами поддерживает абстракции, представляющие их на уровне задач. Данная подсистема ответственна за присваивание имен и реализацию операций открытия/закрытия для всех устройств.
11. Подсистема управления адресными пространствами организует виртуальные адресные пространства задач и пользуется сервисом виртуальной памяти для манипулирования областями памяти, находящимися в адресном пространстве задач. Эта подсистема также осуществляет низкоуровневое управление доступом к пространствам памяти.
12. Подсистема управления портами отвечает за организацию пространства имен портов для задач и осуществляет отображение имен портов во внутренние идентификаторы микроядра с помощью подсистемы идентификации. Именно эта подсистема реализует контроль за информационными потоками и определяет, обладает ли задача правом на прием сообщений из порта и посылать в него сообщения.
13. Подсистема управления ресурсами обеспечивает высокоуровневые средства управления ресурсами ядра, в частности задачами и потоками. Управление состоит в отслеживании событий, связанных с ресурсами, и манипуляциях с ними, например, создание, завершение и приостановка выполнения потоков. Специальный механизм данной подсистемы позволяет реализовать различные политики управления ресурсами ядра.
14. Интерфейс микроядра определяет границу между выполнением потоков в контексте ядра и в пользовательском контексте. Подсистема управления процессорами осуществляет переключение процессора таким образом, что вход в контекст микроядра из прикладной задачи и выход из него возможен только через интерфейс микроядра.
15. Сервер загрузки находится вне микроядра и представляет собой обычную пользовательскую задачу, создаваемую процессом инициализации ОС. Целью этой задачи является загрузка и запуск серверов, реализующих системные сервисы, в том числе входящих в состав ТСВ.
16. Сервер свопинга также является обычной задачей. Он обеспечивает сохранение на диске областей виртуальной памяти, вытесненных из физической памяти.
В микроядре отсутствуют средства, отвечающие за реализацию политики безопасности и управления доступом к информационным ресурсам системы. Однако, МК++ включает два механизма, необходимые для реализации этих функций, а именно: изоляцию задач и контроль за передачей сообщений. Все остальные механизмы защиты, опирающиеся на этот сервис, могут быть реализованы в составе серверов. В совокупности микроядро и эти серверы образуют ТСВ системы.