- Модели безопасности
- Модель конечных автоматов
- Модель Bell-LaPadula
- Модель Biba
- Модель Clark-Wilson
- Модель информационных потоков
- Скрытые каналы
- Модель невлияния
- Сетчатая модель
- Модель Brewer and Nesh
- Модель Graham-Denning
- Модель Harrison-Ruzzo-Ullman
Обновлено: 02.05.2010
Важной концепцией в проектировании и анализе безопасных систем является модель безопасности, поскольку она включает в себя политику безопасности, которая должна быть реализована в системе. Модель – это символическое представление политики. Она преобразует желания создателей политики в набор правил, которым должна следовать компьютерная система.
В этом Домене часто упоминается политика безопасности и ее важность. Это связано с тем, что политика является абстрактным понятием, представляющим цели и задачи, которые должна соблюдать и реализовывать система для того, чтобы считаться безопасной и приемлемой. Как нам перейти от абстрактной политики безопасности к моменту, когда администратор запрещает Дэвиду доступ к конфигурационным файлам системы, снимая отметку с соответствующего пункта в графическом интерфейсе? Этот путь состоит из множества сложных шагов, предпринимаемых на протяжении проектирования и разработки системы.
Модель безопасности преобразует абстрактные цели политики в термины информационных систем, точно описывая структуры данных и средства (методы), необходимые для реализации политики безопасности. Модель безопасности обычно представляется в виде математических и аналитических идей, которые затем преобразуются в технические требования к системе, а затем разрабатывается программистами в коде программы. Таким образом, мы имеем политику, реализующую цели безопасности, типа «каждый субъект должен быть авторизован для доступа к каждому объекту». Модель безопасности берет эти требования и предоставляет необходимые математические формулы, взаимоотношения и структуру, которым необходимо следовать для достижения целей безопасности. Исходя из этого, разработаны технические требования для каждого типа операционной системы (Unix, Windows, Macintosh и т.д.), и отдельные производители могут решать, как им реализовывать механизмы, которые будут соблюдать эти технические требования.
Приведем очень общий и упрощенный пример. Если политика безопасности утверждает, что субъекты должны быть авторизованы для доступа к объектам, модель безопасности должна предоставить математические взаимоотношения и формулы, объясняющие, как x может получить доступ к y только посредством определенных и описанных методов. Затем разрабатываются технические требования, являющиеся мостом между тем, что это означает в компьютерной среде и тем, как это связано с компонентами и механизмами, которые должны быть разработаны. После этого разработчики пишут программный код для реализации механизмов, позволяющих использовать ACL и предоставляющих администраторам определенную степень управления. Эти механизмы представляют сетевому администратору графический интерфейс, в котором он может настроить разграничение доступа в рамках операционной системы, выбирая, какие субъекты могут иметь доступ к каким объектам. Это элементарный пример, поскольку модель безопасности может быть очень сложной. Этот пример используется для демонстрации взаимоотношений между политикой безопасности и моделью безопасности.
Некоторые модели безопасности, такие как Bell-LaPadula, реализуют правила, обеспечивающие защиту конфиденциальности. Другие модели, как, например, Biba, реализуют правила, обеспечивающие защиту целостности. Формальные модели безопасности, такие как Bell-LaPadula и Biba, используются для предоставления высокого уровня гарантий безопасности. Неформальные модели, такие как Clark-Wilson, больше используются в качестве основы для описания того, как политики безопасности должны выражаться и выполняться.
Политика безопасности описывает цели без конкретизации того, как они должны быть достигнуты. Модель – это платформа, которая придает политике форму и решает проблемы безопасного доступа к информации в конкретных ситуациях. Многие модели безопасности разработаны для реализации политик безопасности. Следующие разделы предоставляют обзор каждой из моделей.
Взаимоотношения между Политикой безопасности и Моделью безопасности. Если кто-то говорит вам, что нужно вести правильный и здоровый образ жизни, это очень широкое, общее, абстрактное понятие. Когда вы спрашиваете этого человека – как это сделать, он описывает вам, что вам нужно делать и что не нужно (не наносить другим вреда, не говорить неправду, есть овощи, чистить зубы и т.д.). Аналогично, Политика безопасности предоставляет абстрактные цели, а Модель безопасности говорит, что нужно и что не нужно делать, чтобы достичь эти цели.
В моделях конечных автоматов (state machine model) для проверки безопасности системы используется состояние (state), которое является мгновенным «снимком» всех текущих разрешений и всех текущих экземпляров субъектов, использующихся объектами. Каждая связь субъекта с объектом имеет отношение к поддержанию состояния системы. Система безопасна, если субъекты могут получить доступ к объектам только с помощью средств, соответствующих политике безопасности. Конечные автоматы предоставляют основу для важнейших моделей безопасности. Состояние системы – это ее моментальный снимок. Множество различных действий могут изменить состояние системы. Это называется переходами состояния (state transition). Разработчики операционной системы при реализации модели конечных автоматов должны учесть все возможные переходы состояний и оценить, не могут ли они привести систему в небезопасное состояние. Если все действия, которые могут произойти в системе, не приводят ее в небезопасное состояние, это означает, что система выполняется в безопасной модели конечных автоматов.
Формальные модели. Использование моделей при разработке программного обеспечения не стало так популярно, как предполагалось. Это связано в первую очередь с тем, что производители всегда старались вывести продукт на рынок как можно быстрее. А при использовании формальных моделей больше времени занимает архитектурная фаза разработки, что разработчики часто не могут себе позволить. В обязательном порядке формальные модели используются при разработке систем, для которых недопустимы ошибки или проблемы безопасности, таких, как системы управления движением воздушного транспорта, программное обеспечение космических кораблей, железнодорожные сигнальные системы, военные классифицированные системы и медицинские системы управления. Это не означает, что эти модели или их части не используются в коммерческих продуктах. Просто производители коммерческих систем не всегда в полной мере следуют этим моделям.Модели конечных автоматов используются для описания поведения системы при различных входных данных. Это дает математические конструкции, которые представляют собой множества (субъектов и объектов), и последовательности. Когда объект принимает входные данные, это изменяет состояние переменной. Упрощенный пример состояния переменной – это (Имя, Значение), как показано на Рисунке 3-15. Эта переменная является частью набора команд операционной системы. Когда эта переменная вызывается для использования, в нее может быть записано (Цвет, Красный) из входных данных, введенных пользователем программы. Скажем, пользователь вводит другое значение и теперь в переменную записывается (Цвет, Синий). Это упрощенный пример перехода состояния. Некоторые переходы состояний также являются простыми. Сложность появляется, когда системе нужно решать, следует ли разрешать тот или иной переход. Для принятия решения о возможности перехода, операционной системой должны быть проанализированы атрибуты безопасности объекта и права доступа субъекта.
Рисунок 3-15. Упрощенный пример изменения состояния
Разработчики, которые реализуют модель конечных автоматов, должны идентифицировать все начальные состояния (значения переменных по умолчанию) и описать, как эти значения могут быть изменены (входные данные, которые будут приняты), чтобы любые конечные состояния (результирующие значения) сохраняли уверенность в том, что система остается безопасной. Описание процесса возможных изменений этих значений часто реализуется посредством условных утверждений, типа «ЕСЛИ условие ТОГДА обновление».
Система, использующая модель конечных автоматов, будет оставаться в безопасном состоянии в любой момент. Она будет загружаться в безопасном состоянии, безопасно выполнять команды и транзакции, позволит субъектам использовать ресурсы только в безопасном состоянии, будет сохранять безопасное состояние при выключении и в случае сбоя. Сохранение безопасного состояния в случае сбоя крайне важно – система должна быть в состоянии «сохранить себя» и не сделать себя уязвимой. Когда операционная система показывает пользователю сообщение об ошибке, перезагружается или зависает, это является следствием выполнения защитных мер. Если операционная система считает, что происходит что-то недопустимое, но при этом она сама не может противостоять этому, она не позволяет перевести себя в небезопасное состояние и реагирует подобным образом. Поэтому, если приложение или система зависла, знайте, что система просто попыталась защитить себя и ваши данные.
Многие вопросы должны быть учтены при разработке продукта, использующего модель конечных автоматов. Изначально разработчик должен определить, что и где является переменными состояния. В компьютерной среде все переменные с данными могут считаться независимыми переменными состояния, а неправильные их изменения предположительно могут изменить или нарушить работу системы или отдельных процессов. Затем разработчик должен определить безопасное состояние для каждой переменной состояния. После этого нужно определить все приемлемые функции перехода состояний. Эти функции должны описывать допустимые изменения, которые могут быть произведены в отношении переменных состояния.
После того, как все функции перехода будут определены, они должны быть протестированы, чтобы убедиться, что конечный автомат в целом не будет скомпрометирован и что эти функции переходов сохранят целостность системы (компьютера, данных, программы или процесса) в течение всего времени.
В 1970-е годы американские военные использовали мейнфреймы, работающие в режиме разделения времени, и были заинтересованы в безопасности этих систем и защите от утечки классифицированной информации. Модель Bell-LaPadula разработана для таких систем. Это была первая математическая модель многоуровневой политики безопасности, использованная для определения понятия безопасного конечного автомата, режимов доступа и описания правил доступа. Ее разработка была профинансирована американским правительством, для обеспечения платформы для компьютерных систем, используемых для хранения и обработки критичной информации. Основной целью этой модели было предотвращение несанкционированного доступа к секретной информации.
Системы, использующие модель Bell-LaPadula, называют многоуровневыми системами безопасности, т.к. систему используют пользователи с разным допуском, а система обрабатывает данные с различной классификацией. Уровень классификации информации определяет, какие процедуры могут быть использованы для ее обработки. Модель Bell-LaPadula – это модель конечных автоматов, которая реализует аспект конфиденциальности при управлении доступом. Для принятия решения о доступе субъекта к объекту используются матрицы и уровни безопасности. Допуск субъекта сравнивается с классификацией объекта, затем применяются специальные правила для определения возможных вариантов взаимодействия субъекта и объекта.
Эта модель использует субъекты, объекты, операции доступа (чтение, запись и чтение/запись) и уровни безопасности. Субъекты и объекты могут находиться на различных уровнях безопасности, при этом будут использоваться взаимоотношения и правила, указывающие приемлемые действия между ними. Эта модель, при надлежащей реализации и внедрении, математически доказывает обеспечение очень безопасной и эффективной операционной системы. Она также является моделью безопасности информационных потоков, что означает невозможность передачи информации небезопасным способом.
Модель Bell-LaPadula – это модель субъект-объект (например, как пользователь (субъект) может читать элемент данных (объект) из определенной базы данных и записывать данные в эту базу данных). Модель Bell-LaPadula направлена на обеспечение гарантий того, что субъекты надлежащим образом аутентифицированы, имеют необходимый допуск безопасности, категорию «должен знать» и формальное разрешение доступа перед непосредственным доступом к объекту.
Есть три основных правила, используемых и реализованных в модели Bell-LaPadula: простое правило безопасности, правило *-свойства и строгое правило *-свойства. Простое правило безопасности (simple security rule) говорит о том, что субъект не может читать данные, находящиеся на более высоком уровне безопасности, чем его допуск. Например, если Боб имеет допуск безопасности «секретно», это правило говорит, что он не может читать данные, классифицированные как «совершенно секретно». Если компания хочет, чтобы Боб имел возможность читать совершенно секретные данные, она должна сначала дать Бобу соответствующий допуск.
Правило *-свойства (*-property rule, star property rule) говорит о том, что субъект не может записывать данные на меньший уровень безопасности, чем его допуск. Простое правило безопасности называют правилом «не читать сверху» (no read up), а правило *-свойства – правилом «не записывать вниз» (no write down), как показано на Рисунке 3-16. Третье правило – строгое правило *-свойства (strong *-property rule) говорит о том, что субъект может выполнять функции чтения и записи только на том же уровне безопасности, что и его допуск – не выше и не ниже. Таким образом, чтобы субъект имел возможность чтения и/или записи объекта, его уровень допуска должен совпадать с классификацией объекта.
Рисунок 3-16. В модели Bell-LaPadula каждый субъект имеет сетку прав
Эти три правила указывают, в какие состояния может перейти система. Помните, что состояние – это мгновенный снимок значений переменных в программной системе. Если субъект выполняет операцию чтения объекта, находящегося на более низком уровне безопасности, этот субъект теперь имеет переменную, в которую записаны прочитанные данные. Если субъект записал данные в объект, находящийся на более высоком уровне безопасности, субъект изменил переменную в рамках домена объекта.
ПРИМЕЧАНИЕ. В терминах управления доступом, слово «доминировать» (dominate) означает быть выше или равным. Таким образом, если вы видите утверждение, например, «субъект может выполнять операцию чтения только в том случае, если его класс доступа доминирует над классом доступа объекта», это означает просто, что субъект должен иметь допуск выше или равный классификации объекта. В модели Bell-LaPadula это называют отношением доминирования, являющимся взаимоотношением допуска субъекта и классификации объекта.Состояние системы изменяется по мере выполнения различных операций. Модель Bell-LaPadula определяет безопасное состояние, означающее безопасную вычислительную среду и допустимые действия, являющиеся операциями, не нарушающими безопасное состояние системы. Это означает, что эта модель обеспечивает безопасное состояние и разрешает только те операции, которые сохраняют систему в безопасном состоянии и не дают ей перейти в небезопасное состояние. Так, если 100 человек ежедневно с помощью одной этой системы использует 2000 объектов, эта система выполняет достаточно большой объем сложной работы. Однако в конце дня система также безопасна, как была в начале дня. Это является определением Основной теоремы безопасности системы (Basic Security Theorem), используемой в компьютерной науке, которая гласит, что если система была инициализирована в безопасном состоянии, и она допускает только безопасные изменения состояния, она безопасна в любой момент, независимо от входных данных.
ПРИМЕЧАНИЕ. Принцип равновесия (tranquility principle), также используемый в этой модели, гласит, что субъекты и объекты не могут изменить свой уровень безопасности после своего создания.Важно отметить, что модель Bell-LaPadula была разработана для гарантии сохранения секретности секретной информации, поэтому она обеспечивает и учитывает только конфиденциальность. Эта модель не учитывает целостность данных в системе — только кто может, а кто не может получить доступ к данным, и какие операции может выполнять с ними.
ПРИМЕЧАНИЕ. Обеспечение того, что информация не может переходить с более высокого уровня безопасности на более низкий, называется контролем несанкционированного понижения статуса информации (controlling unauthorized downgrading of information). Это может произойти при выполнении операции «запись вниз» (write down). При этом реальная компрометация произойдет только в том случае и в тот момент, когда пользователь на более низком уровне безопасности прочитает эти данные.Так что же это означает и зачем это нужно? В Домене 02 рассматривались системы мандатного управления доступом (MAC) в сравнении с системами дискреционного управления доступом (DAC). Все системы МАС основаны на модели Bell-LaPadula, т.к. она позволяет интегрировать многоуровневую безопасность в код. Субъектам и объектам присваиваются метки. Метка субъекта содержит отметку о его допуске («совершенно секретно», «секретно» или «конфиденциально»), а метка объекта содержит его уровень классификации («совершенно секретно», «секретно» или «конфиденциально»). Когда субъект пытается получить доступ к объекту, система сравнивает метку допуска субъекта с меткой классификации объекта, чтобы выяснить, является ли такой доступ допустимым и безопасным. В нашем сценарии, это разрешенное действие и субъект получает доступ к объекту. Теперь, если метка допуска субъекта – «совершенно секретно», а классификация объекта – «секретно», субъект не может записывать в этот объект из-за правила *-свойства, которое гарантирует, что субъект не сможет намеренно или случайно предоставить общий доступ к конфиденциальной информации, записав ее на более низкий уровень безопасности. В качестве примера представьте, что занятой и беспечный армейский генерал (который имеет допуск к совершенно секретной информации) открыл письмо с информацией о целях (которому была присвоена классификация «секретно»), которое затем будет отправлено всем секретарям на всех базах по всему миру. Он попытался дополнить письмо информацией, что США нападет на Кубу. При этом модель Bell-LaPadula будет приведена в действие и не позволит этому генералу записать такую информацию в это письмо, поскольку его допуск выше классификации письма.
Точно также, если секретарь попытается прочитать письмо, которое доступно только генералам и выше, модель Bell-LaPadula остановит эту попытку. Допуск секретаря ниже классификации объекта (письма), что нарушает простое правило безопасности модели. Все это относится к сохранению секретности.
ПРИМЕЧАНИЕ. Очень важно, чтобы MAC-операционная система и MAC-база данных следовали этим правилам. В Домене 09 мы рассмотрим, как база данных должна следовать этим правилам, используя многоэкземплярность (polyinstantiation).
ПРЕДУПРЕЖДЕНИЕ. Вы должны понимать правило Bell-LaPadula, называемое Дискреционным свойством безопасности (Discretionary Security Property - ds-property), которое является еще одним правилом этой модели. Это правило основано на именовании субъектов и объектов. Оно указывает, что определенное разрешение позволяет субъекту передавать разрешения на свой страх и риск. Эти разрешения хранятся в матрице доступа. Это просто означает, что механизмы мандатного и дискреционного управления доступом могут быть реализованы в одной операционной системе одновременно.
Правила, которые нужно знать. Основными правилами модели Bell-LaPadula, которые вы должны понимать, являются следующие:
- Простое правило безопасности. Субъект не может читать данные из объекта, находящегося на более высоком уровне безопасности (правило «Не читать сверху»).
- Правило *- свойства. Субъект не может записывать данные в объект, находящийся на более низком уровне безопасности (правило «Не записывать вниз»).
- Строгое правило *-свойства. Чтобы субъект мог читать и записывать данные в объект, его допуск и классификация объекта должны совпадать.
Модель Biba была разработана позднее модели Bell-LaPadula. Она также является моделью конечных автоматов и очень похожа на Bell-LaPadula. Biba учитывает целостность данных в рамках приложений. Модель Bell-LaPadula использует сетку уровней безопасности («совершенно секретно», «секретно», «конфиденциально» и т.п.). Эти уровни безопасности были разработаны в основном для гарантии того, что критичные данные будут доступны только уполномоченным лицам. Модель Biba не связана с уровнями безопасности и конфиденциальностью, поэтому она не основана на решениях о доступе в рамках такой сетки. Модель Biba использует сетку уровней целостности.
В случае правильного внедрения и реализации, модель Biba предотвращает переход данных с любого уровня целостности на более высокий уровень целостности. Biba имеет три основных правила для обеспечения такой защиты:
- Аксиома *-целостности (*-integrity axiom). Субъект не может записывать данные в объект, находящийся на более высоком уровне целостности (это называют «не записывать вверх» (no write up));
- Простая аксиома целостности (simple integrity axiom). Субъект не может читать данные, находящиеся на более низком уровне целостности (это называют «не читать снизу» (no read down)).
- Свойство вызова (Invocation property). Субъект не может запрашивать обслуживание (вызов) у другого субъекта, находящегося на более высоком уровне целостности.
Простая аксиома целостности применяется не только к субъектам, создающим данные, но также и к процессам. Процесс на более низком уровне целостности не должен осуществлять запись в доверенные данные на более высоком уровне целостности. Области с различными уровнями целостности разделяются в приложениях, основанных на модели Biba.
Например, вы пишете статью для Нью-Йорк Таймс о трендах в безопасности за последний год, суммах потерь бизнеса, соотношении затрат/преимуществ внедрения межсетевых экранов, систем IDS и сканеров уязвимостей. Вы не хотите использовать данные и цифры со старых и безымянных веб-сайтов, не зная, как они были посчитаны и на основе каких источников информации. Ваша статья (данные на более высоком уровне целостности) может быть скомпрометирована безосновательной информацией, полученной из недостоверных источников (данные на более низком уровне целостности).
Модели Bell-LaPadula и Biba могут показаться очень похожими, а причины их разделения могут вызывать недоумение. Модель Bell-LaPadula была написана для американского правительства, а правительство просто параноидально относится к утечке секретной информации. В модели Bell-LaPadula пользователь не может записывать данные на более низкий уровень безопасности, поскольку это может привести к утечке секретной информации. Точно также, пользователь на более низком уровне безопасности не может читать что-либо на более высоком уровне безопасности, поскольку этот пользователь не уполномочен на получение доступа к этим секретам. Правительство и военные заботятся о конфиденциальности и придают большое значение защите секретов. Коммерческие организации в большей степени сосредоточены на целостности своих данных, поэтому многие из них используют приложения, реализующие модель Biba. Конечно, эти компании не ищут слово Biba на коробках с программными продуктами, которые они закупают. Какую модель использовать, решается и реализуется на этапе проектирования приложения. Покупатели используют рейтинг уровня гарантий для определения того, подходит им этот продукт или нет.
Bell-LaPadula vs. Biba. Модель Bell-LaPadula используется для обеспечения конфиденциальности. Модель Biba используется для обеспечения целостности. Модели Bell-LaPadula и Biba являются моделями информационных потоков, поскольку они в основном рассматривают процессы перехода данных с одного уровня на другой. Bell-LaPadula использует уровни безопасности, а Biba использует уровни целостности. Для экзамена CISSP важно знать правила Biba и Bell-LaPadula. Эти правила звучат очень просто и их просто запомнить – слово «простое» используется в отношении чтения, а «*» - в отношении записи. Поэтому вам нужно помнить только направления чтения и записи в каждой модели.Свойство вызова в модели Biba говорит, что субъект не может вызвать другой субъект, находящийся на более высоком уровне целостности. Прекрасно, но чем это отличается от двух других правил Biba? Аксиома *-целостности (не записывать вверх) указывает, как субъекты могут записывать информацию в объекты. Простая аксиома целостности (не читать снизу) указывает, как субъекты могут читать объекты. Свойство вызова указывает, как один субъект может взаимодействовать и инициализировать другой субъект во время выполнения. Примером вызова одним субъектом другого субъекта является отправка процессом запроса процедуре для выполнения определенной задачи. Субъектам разрешается запрашивать только инструменты на более низком уровне целостности. С использованием свойства вызова, система гарантирует, что «грязные» субъекты не могут запрашивать «чистые» инструменты для загрязнения чистых объектов.
Ссылки по теме:
- Security Models
- Course study materials for Introduction to Security, University of Cambridge, Dr. Markus Kuhn, principal lecturer (academic year 2003–2004)
- Chapter 3.3, “Models of OS Protection,” by Fred Cohen
Модель Clark-Wilson была разработана позднее модели Biba и использует несколько иной подход для защиты целостности информации. Эта модель использует следующие элементы:
- Пользователи (user) – активные агенты
- Процедуры преобразования (TP – transformation procedure) – запрограммированные абстрактные операции, такие как чтение, запись и изменение
- Ограниченные элементы данных (CDI – constrained data item) – могут управляться только TP
- Неограниченные элементы данных (UDI – unconstrained data item) – могут управляться пользователями посредством команд чтения и записи
- Процедуры проверки целостности (IVP – Integrity verification procedure) – запускаются периодически для проверки непротиворечивости CDI внешней действительности.
Таким образом, Кэти собирается ввести данные, которые предположительно заменят исходные данные в базе данных. Программное обеспечение (TP) должно гарантировать, что эта деятельность безопасна, и выполнить процедуру записи для Кэти. Кэти (как и любой другой субъект) не достаточно доверена для управления объектами напрямую.
Целостность CDI должна быть защищена с помощью TP. UDI не требует такого уровня защиты. Например, если Кэти работает со своим интернет-банкингом, данные на сервере и в базе данных ее банка разделены на категории UDI и CDI. Категория CDI содержит информацию о ее банковском счете, которая должна быть максимально защищена. Данными UDI могут быть ее клиентский профиль, который она может обновлять при необходимости. TP не требуется, если Кэти нужно обновить свою информацию UDI.
В некоторых случаях системе может потребоваться перенести данные UDI в данные CDI. Например, когда Кэти обновляет свой клиентский профиль через веб-сайт, чтобы указать свой новый адрес проживания, эта информация должна быть отправлена банковскому программному обеспечению, ответственному за почтовую информацию в банковских счетах. Банк не хочет, чтобы Кэти напрямую взаимодействовала с банковским программным обеспечением, поэтому применяется компонент программного обеспечения (TP), ответственный за копирование таких данных и обновление почтового адреса клиента. На этом этапе TP меняет статус данных с UDI на CDI. Эта концепция показана на Рисунке 3-17.
Рисунок 3-17. Субъект не может внести изменения в CDI без использования TP
Помните, что это модель целостности, поэтому так много обсуждения идет в отношении правил целостности. Это задача IVP. IVP гарантирует, что все критичные данные (CDI) следуют определенным правилам целостности приложений.
Модель состоит из конструкций, математических формул и т.п. Модель предоставляет платформу, которая может использоваться для обеспечения конкретных характеристик в программном обеспечении (конфиденциальность, целостность и т.д.). Таким образом, модель не обуславливает, какие правила целостности должно реализовывать IVP; она просто предоставляет платформу, а производители выбирают правила целостности. Производители реализуют те правила целостности, которые нужны большинству их заказчиков. Поэтому если производитель разрабатывает приложение для финансовой компании, в состав UDI могут входить профили клиентов, которые позволено обновлять, а в состав CDI – информация о банковском счете, обычно хранящаяся на мейнфрейме. Данные UDI не требуется очень сильно защищать, они могут быть размещены на той же системе или на другой системе. Пользователь может иметь доступ к данным UDI без использования TP, однако когда пользователю нужно получить доступ к CDI, он обязан использовать TP. Таким образом, разработчики продукта определяют, какой тип данных будет рассматриваться как UDI, а какой тип данных является CDI, и разрабатывают TP для управления и дирижирования тем, как программное обеспечение будет обеспечивать целостность значений CDI.
В банковских приложениях IVP может гарантировать, что CDI содержит правильное значение. Например, если Кэти имеет 200 000 руб. на своем счете и кладет на него еще 50 000 руб., CDI для ее счета должен теперь иметь значение 250 000 руб. IVP гарантирует согласованность данных. Поэтому после того, как Кэти выполнит эту транзакцию и IVP проверит целостность CDI (новое значение остатка на банковском счете является правильным), тогда CDI будет считаться находящимся в согласованном (правильном) состоянии. Только TP является компонентом, позволяющим изменить состояние CDI. В нашем примере TP могут быть процедуры программного обеспечения, выполняющие операции пополнения счета, снятия денег со счета и их перевода. Использование TP для изменения CDI называют правильной транзакцией.
Правильная транзакция (well-formed transaction) – это последовательность операций, которые выполняются для перевода данных из одного согласованного состояния в другое. Если Кэти переводит деньги со своего текущего счета на свой депозитный счет, эта транзакция состоит из двух частей – списания суммы с одного счета и зачисления на другой. Гарантируя правильность и целостность нового значения остатка на текущем и депозитном счетах, IVP поддерживает внутреннюю и внешнюю согласованность. Модель Clark-Wilson также описывает, как реализовать разделение обязанностей в архитектуре приложения. Возвращаясь к нашему примеру с банковским программным обеспечением, если клиенту нужно снять более 1 000 000 руб., приложение должно требовать авторизации этой операции супервизором (например, начальником операционного отдела). Это является защитной мерой против потенциального мошенничества. Эта модель предоставляет правила, которым должны следовать разработчики для правильной реализации разделения обязанностей в процедурах своего программного обеспечения.
Цели Моделей Целостности
Ниже приведены три основных цели моделей целостности:
- Предотвращение выполнения изменений неуполномоченными пользователями
- Предотвращение выполнения некорректных изменений уполномоченными пользователями (разделение обязанностей)
- Обеспечение внутренней и внешней согласованности (правильные транзакции)
Внутренняя и внешняя согласованность обеспечивается IVP, гарантирующими значения всех CDI согласуются со входными значениями, изменившими их состояние. Так, если Кэти имеет 250 000 руб. на своем счету и снимает 200 000 руб., то результирующее значение в CDI будет 50 000 руб.
ПРИМЕЧАНИЕ. Матрица контроля доступа рассматривалась в Домене 02. Это еще одна модель, часто используемая в операционных системах и приложениях.
Модель Bell-LaPadula сосредоточена на предотвращении утечки информации с высокого уровня безопасности на более низкий. Модель Biba сосредоточена на предотвращении утечки информации с низкого уровня целостности на более высокий. Обе эти модели построены на модели информационных потоков (information flow model). Модель информационных потоков может учитывать любые информационные потоки, а не только переходы информации с одного уровня безопасности (целостности) на другой.
В модели информационных потоков данные рассматриваются как хранящиеся отдельно или разделенные на группы. В модели Bell-LaPadula эти группы основаны на уровнях безопасности. Помните, что системы MAC основаны на модели Bell-LaPadula. Системы MAC используют метки для каждого субъекта и объекта. Метка субъекта указывает на уровень допуска субъекта и его категории «должен знать». Метка объекта указывает на его классификацию и категорию. Если вы в армии и имеете допуск к совершенно секретной информации, это не означает, что вы можете получить доступ ко всей военной совершенно секретной информации. Информация разделяется по двум факторам – классификация и категории «должен знать». Ваш допуск должен «доминировать» над классификацией объекта, а ваш профиль безопасности должен содержать одну из категорий, перечисленных в метке объекта, что реализует принцип «должен знать». Таким образом, Bell-LaPadula – это модель информационных потоков, которая гарантирует, что информация не может перейти из одной группы в другую способом, угрожающим конфиденциальности данных. Biba делит данные на основе уровней целостности. Это также модель информационных потоков, которая управляет потоком информации способами, обеспечивающими защиту целостности наиболее доверенной информации.
Как может перемещаться информация в рамках всей компании? Ответить на этот вопрос можно разными способами. Субъекты могут использовать доступ к файлам. Процессы могут использовать доступ к сегментам памяти. Информационным потоком является перемещение данных из файла подкачки в память. Загрузка и выгрузка данных из регистров процессора. Перемещение данных в другую кэш-память. Запись данных на жесткий диск, флеш-накопитель, компакт-диск и т.п. Полноценный контроль всех этих потоков данных может быть очень сложной задачей. Именно поэтому существует модель информационных потоков, которая помогает архитекторам и разработчикам гарантировать, что их программное обеспечение не позволит информации перемещаться способами, которые могут представлять опасность для системы или данных. Один из способов, которым модель информационных потоков обеспечивает такую защиту, является обеспечение отсутствия в коде скрытых каналов.
Скрытые каналы (covert channel) – это способ несанкционированного получения информации. Это потоки информации, не контролируемые механизмами безопасности. Это такой информационный путь, который не был предназначен для передачи информации, поэтому системы не защищают его надлежащим образом, в большинстве случаев разработчики даже не представляли, что информация может передаваться таким образом. Получение информации посредством скрытых каналов является явным нарушением политики безопасности.
Скрытый канал для несанкционированной передачи данных является следствием одной из следующих причин:
- Недостаточный контроль при разработке продукта
- Некорректная реализация управления доступом в программном обеспечении
- Существование общих ресурсов между двумя сущностями
- Заражение троянской программой
Другие типы скрытых каналов. Мы упомянули скрытые каналы в рамках программного кода, но скрытые каналы могут находиться и во внешнем мире. Скажем, вы собираетесь посетить одну из лекций. Перед началом лекции вы с лектором договариваетесь о способе взаимодействия, который не поймет никто в аудитории. Лектор говорит вам, что если он будет вертеть ручку между пальцами правой руки, это значит, что в конце занятия будет экзамен. Если он будет вертеть ручку между пальцами левой руки, значит, что экзамена не будет. Это тоже скрытый канал, поскольку это не нормальный способ взаимодействия, а секретный.Другой способ атаки через скрытый канал по памяти может осуществляться посредством создания файла. Система может быть скомпрометирована и на нее может быть установлено программное обеспечение, которое может создавать и удалять файлы в определенной директории и иметь доступ на чтение критичного файла. Когда это программное обеспечение увидит, что первый бит данных критичного файла является «1», оно создаст файл с именем Temp в определенной директории. Атакующий будет пытаться создать в этой же директории файл с таким же именем. Если атакующий получит сообщение об ошибке, говорящее, что такой файл уже существует в этой директории, он будет знать, что первый бит критичного файла – «1». Атакующий будет пытаться создать такой же файл снова и, если система позволит ему сделать это, значит вредоносное программное обеспечение, установленное в системе, удалило этот файл, говоря, что следующим битом является «0».
Модели информационных потоков предоставляют правила, позволяющие гарантировать отсутствие скрытых каналов. Но существует множество различных вариантов информационных потоков в системе, поэтому выявление и искоренение скрытых каналов обычно является более сложной задачей, чем может показаться на первый взгляд.
ПРИМЕЧАНИЕ. Открытый канал – это коммуникационный канал, который был разработан специально для коммуникационных целей. Процессам следует взаимодействовать через открытые каналы, а не через скрытые.В скрытых каналах по времени (covert timing channel) один процесс передает информацию другому, получив сигнал в виде использования системных ресурсов. Два процесса взаимодействуют друг с другом, используя один и тот же общий ресурс, которым является время. Например, если один процесс обратился к диску 30 раз за 30 секунд, это является сигналом для другого процесса выполнить определенные вредоносные действия, на которые он был заранее запрограммирован. Еще один пример. Предположим, что процесс А является частью вредоносного программного обеспечения, установленного троянской программой. В многозадачной системе каждый процесс имеет возможность взаимодействия с процессором. Когда эта возможность предоставляется процессу А, он отвергает ее, что соответствует «1» для атакующего. В следующий раз процесс А использует доступ к процессору, что соответствует «0» для атакующего. Представьте, что это разновидность азбуки Морзе, использующая некоторый вид системных ресурсов.
Контрмеры
Поскольку все операционные системы имеют некоторые виды скрытых каналов, не всегда реально освободиться от всех из них. Число допустимых скрытых каналов обычно зависит от рейтинга уровня гарантий системы. Система, которая имеет рейтинг EAL 6 по Общим критериям, содержит меньше скрытых каналов, чем система с рейтингом EAL 3, поскольку рейтинг EAL 6 представляет собой более высокий уровень гарантий обеспечения конкретного уровня защиты, по сравнению с рейтингом EAL 3. Немногие пользователи могут обеспечить противодействие таким каналам, более правильно, чтобы такие каналы были учтены при проектировании и разработке системы.
ПРИМЕЧАНИЕ. В Оранжевой книге скрытые каналы в операционных системах не учитываются, пока уровень безопасности не опускается ниже уровня B2. Системы на уровнях ниже В2 хранят и обрабатывают достаточно критичную информацию, чтобы атакующие нашли любые пути для доступа к этой информации, в том числе посредством скрытых каналов.Ссылки по теме:
- “Secure Databases: An Analysis of Clark-Wilson Model in a Database Environment,” by Xiaocheng Ge, Fiona Polack, and Rйgine Laleau
- “Access Control: Theory and Practice”
- “New Thinking About Information Technology Security,” by Marshall D. Abrams, PhD and Michael V. Joyce (first published in Computers & Security, Vol. 14, No. 1, pp. 57–68)
Свойства многоуровневой безопасности могут быть выражены многими способами, одним из них является «невлияние». Эта концепция реализована для обеспечения гарантий того, что любые действия, происходящие на высоком уровне безопасности, не воздействуют (не влияют) на действия, происходящие на более низком уровне безопасности. Эта модель не имеет отношения к потокам данных, она относится к тому, что субъект знает о состоянии системы. Так, если сущность на высоком уровне безопасности выполняет некоторое действие, оно не может изменить состояние для сущности, находящейся на более низком уровне.
Если сущность на низком уровне безопасности узнает о том, что сущность на высоком уровне безопасности произвела определенные действия, из-за которых изменилось состояние системы для этой сущности на низком уровне, она (эта сущность) может догадаться (предположить) о дополнительной информации, относящейся к этим действиям на высоком уровне, что является разновидностью утечки информации.
Пользователи на низком уровне безопасности не должны знать о действиях, выполненных пользователями на высоком уровне безопасности, эти действия не должны влиять на пользователей на низком уровне безопасности.
Скажем, Том и Кэти одновременно работают на мейнфрейме, реализующем многоуровневую безопасность. Том имеет допуск уровня «секретно», а Кэти – «совершенно секретно». Соответственно терминал Тома работает в контексте «секретно», а терминал Кэти – «совершенно секретно». Эта модель утверждает, что никакие из действий Кэти на своем терминале не окажут прямого или косвенного воздействия на домен Тома (доступные ресурсы и рабочая среда). Независимо от выполняемых ею команд и используемых ресурсов, это никоим образом не повлияет на работу Тома на этом мейнфрейме.
То, что выполняемые Кэти команды не должны влиять на терминал Тома, выглядит вполне логично. Но реальный смысл этой модели состоит в учете скрытых каналов и атак посредством предположений о действиях. Эта модель рассматривает общие ресурсы, которые будут использовать различные пользователи системы, и пытается идентифицировать способы, посредством которых информация может переходить от процессов, работающих с высоким уровнем допуска, к процессам с меньшим уровнем допуска. Т.к. Том и Кэти работают в одной и той же системе в одно и то же время, они, скорее всего, будут иметь некоторые общие ресурсы. Данная модель содержит правила, гарантирующие, что Кэти не сможет отправить данные Тому посредством скрытых каналов (по памяти или по времени).
Другим недостатком безопасности, учтенным данной моделью, являются атаки посредством предположений о действиях (inference attack). Такая атака происходит, когда человек имеет доступ к некоему типу информации и может на основании нее сделать вывод (или догадаться) о чем-то, что ему не положено знать в соответствии с его уровнем допуска или полномочиями. Например, Том работал с файлом, содержащим информацию о России. Он закрыл этот файл, а когда через час попытался открыть его снова, получил отказ в доступе к нему, т.к. в это время кто-то повысил уровень секретности данного файла до уровня «совершенно секретно». Том может предположить, что готовиться некая совершенно секретная миссия в отношении России, но к информации об этом Том не был допущен. Это является атакой посредством предположения и фактом «утечки информации» (Атаки посредством предположений будут рассматриваться позднее в Домене 09).
Сетка (lattice) – это математическая конструкция, построенная на основе понятия группы. Стандартное определение сетчатой модели (lattice model) звучит следующим образом: это «структура, состоящая из конечного, частично упорядоченного множества с определенной самой верхней границей и самой нижней границами операторов множества».
В этом определении есть существенные недостатки. Во-первых, такая формулировка может быть понятна только тем, кто хорошо понимает эту модель. Это похоже на определение метаданных: «данные о данных». Только после того, как вы действительно поймете, что такое метаданные, это определение обретет смысл для вас. Таким образом, приведенное выше определение сетчатой модели практически бесполезно. Кроме того, еще одна проблема с таким математическим объяснением состоит в том, что только доктор математических наук сможет его понять. Эта модель должна объясняться обычным, общепонятным языком. Давайте попробуем сделать это.
Вспомним модель MAC, которая рассматривалась в Домене 02, а затем затрагивалась и в этом Домене. В этой модели субъекты и объекты имеют метки. Метка каждого субъекта содержит допуск и категории «должен знать», к которым этот субъект имеет доступ. Предположим, что Кэти имеет уровень допуска «совершенно секретно» и она формально имеет доступ к разделам «Ирак» и «Корея» в соответствии со своими категориями «должен знать». Таким образом, ее метка – СС {Ирак, Корея}. Таблица 3-1 показывает различные файлы в системе в соответствии с этим сценарием. Эта система основана на модели MAC, т.е. операционная система принимает решения о возможности доступа на основе содержимого меток безопасности.
Таблица 3-1. Элементы управления доступом
Кэти пытается получить доступ к файлу В, поскольку ее допуск выше классификации файла В, она может читать этот файл, но не записывать в него (помните, в Bell-LaPadula субъект с более высоким уровнем может «читать снизу», но не «записывать вверх»). Это относится к «частично упорядоченному множеству с определенной самой верхней границей и самой нижней границами операторов множества». Множество – это субъект (Кэти) и объект (файл). Это частично упорядоченное множество, т.к. не все атрибуты управления доступом полностью эквивалентны. Система должна выбрать между чтением, записью, полным доступом, изменением и всеми другими видами разрешений доступа, используемыми этой операционной системой. Таким образом, «частично упорядоченное» означает, что система должна применять самый ограниченный вариант доступа к этому множеству. В качестве «самой верхней границы» система берет одно утверждение управления доступом (Кэти может читать файл), а другое утверждение управления доступом (Кэти не может записывать в файл) считается «самой нижней границей». Поскольку запрет записи – это более ограниченный вариант, чем разрешение чтения, самой верхней границей Кэти для этого файла будет чтение, а самой нижней границей – запрет записи. Рисунок 3-18 иллюстрирует границы доступа. Это просто более сложный способ сказать, что «самое большее, что Кэти может делать с этим файлом, это читать его. А самое меньшее – она не может записывать в него».
Рисунок 3-18. Границы доступа в сетчатой модели
Давайте изобразим самую верхнюю и самую нижнюю границы уровня доступа для Кэти и файла С. Допуск Кэти совпадает с классификацией файла С. В соответствии с моделью Bell-LaPadula в этом случае нужно применять строгое правило *-свойства (субъект имеет доступ на чтение и запись к объекту на том же уровне безопасности). Поэтому самая верхняя граница – это запись, а самая нижняя – чтение.
Посмотрим на метку безопасности файла D – она имеет категорию {Иран}, которая отсутствует в метке безопасности Кэти. Это означает, что у Кэти нет необходимой категории «должен знать» для доступа к этому файлу. Самая верхняя и самая нижняя границы разрешений доступа Кэти в этом случае будут соответствовать уровню «Нет доступа».
Так зачем же описывать эту достаточно простую концепцию таким сложным образом? Во-первых, здесь эта модель описана самыми простыми из возможных терминов, чтобы вам было проще понять ее назначение. Сложность в этой концепции появляется, если представить все взаимодействия субъект-объект, происходящие в рамках операционной системы каждую секунду. К тому же это формальная модель, т.е. она может доказать математически обеспечение определенного уровня защиты, при правильном следовании всем ее правилам. Изучение этой модели похоже на изучение основ химии. Студент сначала изучает, из чего состоит атом (протоны, нейтроны и электроны) и как эти элементы взаимодействуют друг с другом. Это легкая часть. Затем студент переходит к органической химии и должен понять, как все эти элементы работают вместе в сложной органической системе. Затем студент переходит к квантовой физике и изучает, что отдельные атомы в действительности имеют несколько различных субатомных частиц (кварки, лептоны и мезоны). В этой книге, вы изучаете только базовые компоненты этой модели.
Модель Brewer and Nash, также называемая моделью «Китайской стены», создана для обеспечения управления доступом, который может динамически изменяться в зависимости от предыдущих действий пользователя. Основной целью модели является защита от конфликтов интересов, вызванных попытками получения доступа пользователями. Например, большая маркетинговая компания реализует продвижение и предоставляет маркетинговые материалы двум банкам. При этом сотрудники этой компании, работающие над проектом для банка А не должны видеть маркетинговую информацию, относящуюся к банку Б, поскольку это может привести к конфликту интересов, т.к. банки конкурируют между собой. Если менеджер проекта для банка А сможет увидеть маркетинговые материалы для банка В, он сможет обеспечить наилучшее продвижение банка А, напрямую привлекая его клиентов. Это может повредить репутации маркетинговой компании, в которой сотрудники ведут себя настолько безответственно.
Этой компании следует внедрить продукт, который отслеживает доступ к информации представителей обеих этих групп и предотвращает конфликт интересов. На Рисунке 3-19 мы видим, что когда пользователь получает доступ к информации банка А, система автоматически запрещает ему доступ к информации банка В. Права доступа изменяются динамически на основе авторизации пользователей, их деятельности, предыдущих запросов на доступ.
Рисунок 3-19. Модель «Китайская стена» реализует динамическое управление доступом
Модель «Китайская стена» также основана на модели информационных потоков. Информация может передаваться между субъектом и объектом только такими способами, которые не могут привести к конфликту интересов. Модель гласит, что субъект может записывать информацию в объект только в том случае, если субъект не может читать другой объект, находящийся в другом наборе данных. Таким образом, возвращаясь к нашему примеру, менеджер проекта не сможет записать информацию в любой объект в рамках набора данных банка А, если он в настоящее время имеет доступ на чтение к любому из объектов в рамках набора данных банка В.
Помните, что все вышеописанное является моделями, поэтому они не очень конкретны. Каждый производитель должен сам принимать решения как выполнять то или иное правило, определенное в выбранной модели. Модели Bell-LaPadula и Biba не определяют, как оцениваются и изменяются рейтинги безопасности и целостности, а также не предоставляют способа делегирования и передачи прав доступа. Модель Graham-Denning учитывает эти вопросы и определяет набор базовых прав в терминах команд, которые определенный субъект может выполнять над объектом. Эта модель имеет восемь команд защиты прав или правил, определяющих каким образом эта функциональность должна выполняться безопасным образом.
- Как безопасно создать объект
- Как безопасно создать субъект
- Как безопасно удалить объект
- Как безопасно удалить субъект
- Как безопасно прочитать права доступа
- Как безопасно предоставить права доступа
- Как безопасно удалить права доступа
- Как безопасно передать права доступа
Модель Harrison-Ruzzo-Ulman связана с правами доступа субъектов и целостностью этих прав. Субъект может выполнять только конечный набор операций над объектом. Пока безопасность достаточно проста, системе не сложно разрешить или запретить выполнение операций при условии, что одна команда ограничена одной операцией. Например, если субъект отправляет команду X, которая требует выполнения только операции Y, это позволяет системе достаточно просто принять решение о разрешении или запрете этой операции. Но если субъект отправляет команду M, для выполнения которой нужно выполнить операции N, B, W и P — системе гораздо более сложно решить, следует ли разрешать эту команду.
Обобщение информации по моделям. Для упрощения понимания всех этих моделей, ниже приведены их ключевые концепции.
Ссылки по теме:
- Модель Bell-LaPadula. Это модель конфиденциальности, описывающая допустимые информационные потоки и формализующая военную политику безопасности. Это первая математическая модель многоуровневой политики безопасности, которая определяет концепцию безопасного состояния и необходимые режимы доступа.
- Простое правило безопасности. Субъект не может читать данные более высокого уровня безопасности, чем его допуск («не читать сверху»);
- Правило *-свойства. Субъект не может записывать данные в объект меньшего уровня безопасности, чем его допуск («не записывать вниз»);
- Строгое правило *-свойства. Субъект может выполнять функции чтения-записи только в отношении объекта, находящегося на том же уровне безопасности.
- Модель Biba. Эта модель защищает целостность информации в рамках системы и происходящих в ней действий. Она учитывает первую цель целостности.
- Простая аксиома целостности. Субъект не может читать данные с более низкого уровня целостности («не читать снизу»).
- Аксиома *-целостности. Субъект не может изменять объект на более высоком уровне целостности («не записывать вверх»).
- Модель Clark-Wilson. Это модель целостности, реализованная для защиты целостности данных и обеспечения того, чтобы выполнялись только корректные транзакции. Она учитывает все три цели целостности.
- Субъекты могут получить доступ к объектам только посредством авторизованных программ (тройка доступа).
- Реализация разделения обязанностей.
- Требуется ведение аудита.
- Модель матрицы контроля доступа. Это модель, которая принимает решения о предоставлении доступа на основе ACL объектов и таблиц разрешений субъектов.
- Модель информационных потоков. Это модель, в которой информация ограничена в своих потоках и может передаваться между сущностями только способами, которые не могут нарушить политику безопасности.
- Модель невлияния. Эта модель гласит, что команды и действия, выполняющиеся на одном уровне безопасности, не могут быть замечены и не могут оказать влияние на субъекты или объекты на другом уровне безопасности.
- Модель Brewer and Nash. Эта модель позволяет динамически изменять права доступа для защиты от конфликта интересов. Также известна как модель «Китайская стена».
- Модель Graham-Denning. Эта модель показывает, как следует создавать и удалять субъекты и объекты. Она также учитывает, как назначать отдельные права доступа.
Комментариев нет:
Отправить комментарий