Содержание статьи
В «доисторические» времена, когда персональных компьютеров еще не
существовало и даже мэйнфреймы были в новинку, контроля доступа таким, как мы
его знаем сегодня, не было. Доступ к компьютеру имели единицы проверенных людей
в соответствующих ведомствах или исследовательских институтах и вузах. Все знали
и доверяли друг другу, и острой необходимости в разграничении доступа не
возникало. Потом пользователей стало больше. Уже надо было считать машинное
время, выделяемое каждому из них. Тогда появился контроль доступа (access
control).
Большинство ранних исследований по информационной безопасности было посвящено
проблеме персонального доступа в системах совместного доступа. Как сделать так,
чтобы Вася и Петя, пользуясь одними и теми же программами, не знали, кто и что
делает? Именно тогда стали разрабатываться так называемые модели разграничения
доступа, которые лежат в основе политики безопасности и защитных механизмов
современных информационных систем – ОС, СУБД, МСЭ и т. п. Потом уже данный
вопрос был расширен. Как сделать так, чтобы Вася не мог модифицировать данные
Пети? А также как обеспечить определенный уровень доступности систем, с которыми
работают Вася и Петя? Однако, учитывая место и время разработки первых моделей
безопасности (военные ведомства США), исторически сложилось так, что первыми
появились именно модели, направленные на предотвращение угроз раскрытия
информации (модели разграничения доступа). Иными словами, мы должны защитить
информацию так, чтобы она не стала известна тому, кому это не положено.
Модели разграничения доступа
Такие модели строились, как правило, по принципу предоставления тех или иных
прав, хотя существовали и другие, зачастую более интересные и совершенные методы
– на основе теории информации или теории вероятностей. Но простота реализации и
естественность моделей первого типа обусловила их распространение по миру.
Впервые описания подобных моделей появились в 60-х годах, и многие принципы с
тех пор мало изменились. Суть их проста – если у вас есть «пропуск», то вы имеет
право на доступ к информации. Если такого «билета» нет, то и доступ должен быть
заблокирован. Из всех существующих моделей наиболее известными являются две –
дискреционный, или избирательный (discretionary access control, DAC), и
мандатный, или полномочный доступ (mandatory access control, MAC). Надо
заметить, что вторая модель стала развитием первой.
Суть DAC заключается в следующем (математически сложноописываемые модели
Хартстона или АДЕПТ-50 мы не рассматриваем). У каждого объекта (например, файл
или запись в базе данных) есть владелец (owner), который может по своему
усмотрению разрешать другим субъектам (как правило, пользователи, но могут быть
и программы, процессы и т. п.) доступ к этому объекту. Реализация такой модели
очень проста – создается так называемая матрица доступа (access matrix), в
столбцах которой указаны субъекты, а в строках – объекты доступа. На их
пересечении указывается совокупность прав доступа (чтение, запись, выполнение и
т. д.)
Но за простотой реализации скрывается и ряд подводных камней, которые делают
эту модель низкозащищенной для большинства сфер применения. Во-первых, в системе
с DAC (ярким примером является семейство ОС Windows без навесных систем защиты)
всегда есть администратор, который имеет доступ ко всем объектам, что делает его
«царем и богом». Защищенность системы в этом случае зависит только от честности
этого «суперпользователя». Вторая особенность в том, что для облегчения
реализации DAC на практике многие права доступа назначаются автоматически при
создании того или иного объекта. И для облегчения жизни пользователям доступ
разрешается всем.
Пример, как выглядят права доступа к данной статье на компьютере после ее
написания
Многие ли из читателей самостоятельно назначают права доступа к
многочисленным файлам своего компьютера? Вряд ли больше 1%. Это, конечно, делает
такую модель доступа очень удобной в использовании, но совершенно непригодной
для контроля утечки информации. Злоумышленнику достаточно узнать идентификатор и
пароль пользователя, чтобы получить доступ ко всем его файлам и документам, а
также выполнить любые действия от имени своей жертвы.
Развитием этой модели стала «замкнутая программная среда», которая помимо
определенных ранее критериев дополнена еще одним – для каждого субъекта имеется
список программ, которые этот субъект (обычно пользователь) может запускать. Это
значительно повышает защищенность системы от различных вредоносных программ,
червей, троянцев и вирусов, но контролю не поддается утечка информации. И
конечно, остаются проблемы с перехватом или подбором имени и пароля пользователя
и административным доступом. На практике такая модель не получила широкого
распространения из-за сложностей в ее администрировании и эксплуатации (особенно
в крупных территориально распределенных сетях).
Для того чтобы устранить недостатки модели DAC, была предложена новая модель
— мандатного, или полномочного доступа. Суть ее также очень проста и была
подсмотрена Беллом и Лападулой, основоположниками MAC, в государственных
структурах США. Любой объект или субъект доступа в правительственных органах
имел так называемый уровень секретности, или по-нашему «гриф», который
варьировался от «неклассифицируемый» до «совершенно секретно» или «особой
важности». Также Белл и Лападула обратили внимание на два интуитивно понятных
правила безопасности:
- «нет чтения вверх» — субъект доступа может получать доступ только
к объектам, у которых уровень секретности не ниже уровня секретности
субъекта. Иными словами, пользователь с грифом «секретно» не может прочитать
документ с грифом «совершенно секретно», но может читать документы с грифом
«секретно», «для служебного пользования» и «неклассифицируемый»; - «нет записи вниз» — субъект не имеет права писать (выполнять,
копировать и т. п.) информацию в объект с уровнем секретности ниже, чем
уровень субъекта. Иными словами, записать документ с грифом «для служебного
пользования» на неклассифицированную флэшку невозможно.
Данная модель значительно повышает уровень защищенности операционных систем,
СУБД и приложений, а также позволяет контролировать утечки конфиденциальной
информации. Однако у данного подхода есть один очень серьезный недостаток –
сложность реализации. Только представьте, что вам нужно классифицировать не
только пользователей, но и все файлы и программы, носители информации, а также
строить очень громоздкие матрицы доступа, учитывающие все возможные комбинации.
И хотя такие системы существуют («Secret Net», «Аккорд», «Щит» и т.п.),
распространены они в основном в военных и государственных структурах, в которых
применение подобных моделей регламентируется на законодательном уровне.
У модели Белла – Лападулы есть и другие недостатки. Например, так называемая
деклассификация объекта. Допустим, субъект с уровнем секретности
«совершенно секретно» получил доступ к файлу с грифом также «совершенно
секретно», после чего он понизил свой уровень секретности до «секретно» или даже
«для служебного пользования» — формально он имеет на это право и мандатную
модель это не нарушает. После этого субъект записывает информацию в файл с
грифом «секретно» или «для служебного пользования» (он ведь находится на одном с
ними уровне) – безопасность системы нарушена, хоть требования и условия модели
Белла – Лападулы формально соблюдены.
И DAC, и MAC появились тогда, когда о сетях еще никто не задумывался и защиты
требовали только автономные конфигурации компьютеров. Но со временем ситуация
поменялась и стали проявляться совершенно иные проблемы. Например, как
определить права доступа для удаленного субъекта? Или как защититься от скрытых
каналов?
Контроль информационных потоков
Видя описанные проблемы, многие исследователи решили обратиться к теории
информации и применить ее положения для создания моделей безопасности в сетевых
окружениях. Одна из них – модель невмешательства, согласно которой ввод
высокоуровневого пользователя не может смешиваться с выводом низкоуровневого
пользователя. По сравнению с моделью Белла – Лападулы модель невмешательства
полностью закрывает проблему скрытых каналов, но при этом возрастает сложность
проверки корректности ее реализации.
Вторая модель, учитывающая информационные потоки, называется моделью
невыводимости, суть ее тоже интуитивно понятна (хотя ее верификация и
реализация не так просты, как в DAC или даже MAC). Пользователи с низким уровнем
секретности не могут получить информацию с высоким уровнем секретности, какие бы
действия не предпринимались пользователями с высоким уровнем секретности. Иными
словами, утечка информации в таких системах полностью исключается. В широко
используемых нами в повседневной жизни приложениях или системах эти модели не
используются.
От безопасности к игре и наоборот
Помимо названных подходов большой интерес у исследователей вызывает
применение теории вероятностей, или теории игр, для моделирования систем защиты.
Модели этих типов позволяют оценивать время, за которое злоумышленник преодолеет
все защитные механизмы. Это основное достоинство таких систем – числовая оценка
стойкости механизмов отражения тех или иных действий злоумышленников. Второе
преимущество – «реальное отношение к жизни». В отличие от ранее описанных
моделей, которые пытаются построить идеальную и абсолютно стойкую систему
защиты, вероятностный, или игровой подход изначально предполагает, что
злоумышленник может проникнуть сквозь все преграды. Вопрос только во времени и
затрачиваемых ресурсах, которые можно оценить. Однако, как и в случае с
контролем информационных потоков, эти модели не получили широкого
распространения, в том числе из-за их новизны и не такой проработанности, как в
DAC или MAC.
Другие модели
Можно заметить, что все описанные выше модели ориентированы на предотвращение
одной угрозы – нарушения конфиденциальности. Но информация или
информационная система обладают и другими свойствами, объединяемыми в триаду, –
целостностью и доступностью. Существуют модели и для них. Например,
модель Кена Биба, ориентирована на контроль целостности информации и
предотвращает модификацию данных одного грифа целостности субъектом другого
уровня. Проще говоря, модель Биба является полной противоположностью модели
Белла – Лападулы, но если в последней речь идет об уровнях секретности, то в
первой – об уровнях целостности. Соответственно основные правила в модели Биба
могут быть сформулированы так: «нет записи наверх» и «нет чтения снизу».
Похожесть двух моделей, с одной стороны, облегчает их реализацию, а с другой
– делает невозможным их одновременную работу. Это основная проблема для
большинства нынешних моделей безопасности – они ориентированы на защиту от
какой-либо одной из угроз (нарушения конфиденциальности, целостности или
доступности). Попытка скомбинировать их вместе приводит обычно к противоречиям и
различным вопросам – например, имеют ли эти модели взаимные противоречия,
дополняют ли эти модели друг друга? Для того чтобы несколько моделей работало в
рамках одной системы, необходимо создание новой модели, объединяющей в себе
черты всех своих предков. Это задача нетривиальная и немногие производители,
ориентированные на массовый рынок, готовы на такие затраты. Давайте попробуем
объединить модель Биба с моделью Белла – Лападулы. Мы вынуждены будем не только
описывать грифы секретности для каждого объекта и субъекта, но и грифы
целостности для них же. Матрица доступа в такой объединенной модели станет
просто «неподъемной», а ее администрирование однозначно приведет к огромному
количеству ошибок, следствием которых будут утечки и другие нарушения
безопасности.
Заключение
Существуют и другие интересные модели, позволяющие контролировать как
целостность информации (модель Кларка – Вилсона), так и доступность
информационной системы (модель Миллена), но и они, увы, не получили пока
широкого распространения в реально работающих системах. Надо признать, что
несмотря на почти сорокалетнюю историю разработки моделей безопасности, сегодня
широко используется только две из них, ориентированные на предотвращение утечки
информации – избирательное и полномочное разграничение доступа. Но даже эти
модели в своей практической реализации наталкиваются на серьезное препятствие –
сложность администрирования, которое нельзя сделать один раз и забыть,
эксплуатации. Ситуация меняется постоянно — появляются и исчезают новые файлы и
пользователи, а значит, постоянного изменения требуют и атрибуты субъектов и
объектов доступа. Без наличия достаточного количества персонала (хотя этот
показатель конечен по своей сути) или средств автоматизированного контроля прав
доступа, внедрение любых моделей безопасности обречено на неудачу.
Сегодня, когда возросла важность групповой работы, включая взаимодействие на
расстоянии, возрастает интерес и к исследованиям в рассматриваемой области. Пока
же остается только посоветовать четко прорабатывать документальную базу (читай,
политику безопасности), определяющую, кто и что может делать в защищаемой
системе, а также использовать решения, не зависящие от прав доступа, а
дополняющие эту концепцию новым уровнем безопасности. Речь идет о сканерах
безопасности (например, российский MaxPatrol), системах предотвращения атак и т.
п., которые снижают влияние человеческого фактора при реализации формальных
моделей безопасности на практике.
Алексей Лукацкий (alukatsk@cisco.com),
бизнес-консультант по безопасности компании Cisco