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

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

Рассмотрим следующие основные сервисы безопасности:

  • идентификацию и аутентификацию,
  • управление доступом,
  • протоколирование и аудит,
  • криптографию,
  • экранирование.

Идентификация и аутентификация

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

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

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

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

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

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

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

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

Главное достоинство парольной аутентификации - простота и привычность. Пароли давно встроены в операционные системы и иные сервисы. При правильном использовании пароли могут обеспечить приемлемый для многих организаций уровень безопасности [2]. Тем не менее по совокупности характеристик их следует признать самым слабым средством проверки подлинности. Надежность паролей основывается на способности помнить их и хранить в тайне. Чтобы пароль был запоминающимся, его зачастую делают простым, однако простой пароль нетрудно угадать, особенно если знать пристрастия данного пользователя. Известна классическая история про советского разведчика Рихарда Зорге, объект внимания которого через каждое слово говорил "карамба"; разумеется, этим же словом открывался сверхсекретный сейф. Иногда пароли с самого начала не являются тайной, так как имеют стандартные значения, указанные в документации, и далеко не всегда после установки системы производится их смена. Правда, это можно считать аспектом простоты использования программного продукта.

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

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

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

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

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

Тем не менее следующие меры позволяют значительно повысить надежность парольной защиты:

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

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

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

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

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

Иногда (обычно для физического контроля доступа) карточки применяют сами по себе, без запроса личного идентификационного номера.

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

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

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

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

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

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

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

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

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

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

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

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

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

Управление доступом

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

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

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

Таблица 1. Фрагмент матрицы доступа

  Файл Программа Линия связи Реляционная таблица
Пользователь 1
orw
С системой консоли
е
rw
C 8:00 до 18:00
 
Пользователь 2      
а

Примечание: "o" обозначает разрешение на передачу прав доступа другим пользователям, "r" - чтение, "w" - запись, "e" - выполнение, "a" - добавление информации.

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

Для систем управления реляционными базами данных объект - это база данных, таблица, представление, хранимая процедура. К таблицам применимы операции поиска, добавления, модификации и удаления данных, у других объектов иные виды доступа. И список этот можно продолжать до бесконечности.

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

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

При принятии решения о предоставлении доступа обычно анализируется следующая информация.

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

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

Списки доступа - исключительно гибкое средство. С их помощью легко выполнить требования класса безопасности C2 о гранулярности прав с точностью до пользователя. Посредством списков несложно добавить права или явным образом запретить доступ (например, чтобы наказать нескольких членов группы пользователей). Безусловно, списки являются лучшим средством добровольного управления доступом [4].

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

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

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

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

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

Протоколирование и аудит

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

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

Реализация протоколирования и аудита преследует следующие главные цели [5]:

  • обеспечение подотчетности пользователей и администраторов;
  • обеспечение возможности реконструкции последовательности событий;
  • обнаружение попыток нарушений информационной безопасности;
  • предоставление информации для выявления и анализа проблем.

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

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

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

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

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

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

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

Криптография

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

Различают два основных метода шифрования, называемые симметричными и асимметричными. В первом из них один и тот же ключ используется и для шифровки, и для расшифровки сообщений. Существуют весьма эффективные методы симметричного шифрования. Имеется и стандарт на подобные методы — ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования".

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

Picture 1 (1x1)

Рис. 1. Использование симметричного метода шифрования

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

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

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

Picture 2 (1x1)

Рис. 2. Использование асимметричного метода шифрования

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

E(D(T)) = D(E(T)) = T 

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

Эффективное шифрование, реализованное путем сочетания симметричного и асимметричного методов проиллюстрировано на рис. 3.

Picture 3 (1x1)

Рис. 3. Эффективное шифрование сообщения

Расшифровка эффективно зашифрованного сообщения выглядит так, как показано на рис. 4.

Picture 4 (1x1)

Рис. 4. Расшифровка эффективно зашифрованного сообщения

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

Иллюстрацией процедуры эффективной генерации электронной подписи может быть рис. 5.

Picture 5 (1x1)

Рис. 5. Эффективная генерация электронной подписи

Проверка эффективно сгенерированной электронной подписи может быть реализована способом, представленным на рис. 6.

Picture 6 (1x1)

Рис. 6. Проверка эффективно сгенерированной электронной подписи

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

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

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

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

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

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

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

Экранирование

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

Picture 7 (1x1)

Рис. 7. Экран как средство разграничения доступа

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

Picture 8 (1x1)

Рис. 8. Экран как последовательность фильтров

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

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

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

Экранирование дает возможность контролировать также информационные потоки, направленные во внешнюю область, что способствует поддержанию режима конфиденциальности.

Чаще всего [7] экран реализуют как сетевой сервис на третьем (сетевом), четвертом (транспортном) или седьмом (прикладном) уровнях семиуровневой эталонной модели OSI. В первом случае мы имеем экранирующий маршрутизатор, во втором - экранирующий транспорт, в третьем - экранирующий шлюз. Каждый подход имеет свои достоинства и недостатки; известны также гибридные экраны, где делается попытка объединить лучшие качества упомянутых подходов.

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

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

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

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

Экранирующий шлюз, функционирующий на прикладном уровне, способен обеспечить наиболее надежную защиту. Как правило, экранирующий шлюз представляет собой универсальный компьютер, на котором функционируют программные агенты - по одному для каждого обслуживаемого прикладного протокола. При подобном подходе помимо фильтрации реализуется еще один важнейший аспект экранирования. Субъекты из внешней сети видят только шлюзовой компьютер; соответственно, им доступна только та информация о внутренней сети, которую шлюз считает нужным экспортировать - шлюз заслоняет внутреннюю сеть от внешнего мира. В то же время субъектам внутренней сети кажется, что они напрямую общаются с объектами внешнего мира. Недостаток экранирующих шлюзов - отсутствие полной прозрачности, что требует специальных действий для поддержки каждого прикладного протокола. Примером инструментария для построения экранирующих шлюзов является TIS Firewall Toolkit компании Trusted Information Systems.

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

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

Picture 9

Рис. 9. Многокомпонентный экран

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

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

***

Данной статьей завершается серия статей [1], посвященных обзору основных положений информационной безопасности. Цель этих публикаций состояла в том, чтобы ознакомить читателей с важнейшими понятиями данной области, снабдив их практическими рекомендациями по формированию и поддержанию режима безопасности. Хочется еще раз подчеркнуть обязательность комплексного, систематического подхода, необходимость сочетания законодательных, организационных и программно-технических мер. Особенно важно, чтобы вопросы безопасности попали в сферу особого внимания руководителей организаций - без их поддержки или, точнее, без их напора сделать что-нибудь существенное невозможно.

Литература

1. Владимир Галатенко, Информационная безопасность. Открытые системы. № 4,5,6, 1995, №1,2,3,1996.

2. Announcing the Standard for Automated Password Generator. - Federal Information Processing Standards Publication 181, 1993.

3. Announcing the Guideline for the Use of Advanced Authentication Technology Alternatives. - Federal Information Processing Standards Publication 190, 1994.

4. National Computer Security Center. A Guide to Understanding Discretionary Access Control in Trusted Systems. - NCSC-TG-003, 1987.

5. National Computer Security Center. A Guide to Understanding Audit in Trusted Systems. - NCSC-TG-001, 1987.

6. Escrowed Encryption Standard. - Federal Information Processing Standards Publication 185, 1994.

7. Cheswick W.R., Bellovin S.M. Firewalls and Internet Security: Repelling the Wily Hacker. - Addison-Wesley, 1994.

8. Venema W. TCP WRAPPER: Network monitoring, access control and booby traps. - Proceedings of the Third Usenix Unix Security Symposium, Baltimore, MD, September 1992, p. 85-92.

Владимир Галатенко (Vladimir.Galatenko@jet.msk.su "Инфосистемы Джет" (Москва).