ТОКБ Л_5 Лекция № 5. Построение систем защиты от угрозы

advertisement
ТОКБ Л_5
Лекция № 5. Построение систем защиты от угрозы нарушения целостности информации
1. Организационно-технологические меры защиты целостности информации.
2. Целостность данных в АС
3. Защита от угрозы нарушения целостности информации на уровне
содержания
1. Организационно-технологические меры защиты целостности информации на машинных носителях
Организационно-технологические меры защиты целостности информации на машинных носителях можно разделить на две основные группы:
•
организационные меры по поддержке целостности информации,
хранящейся на МНИ;
•
технологические меры контроля целостности битовых последовательностей, хранящихся на МНИ. В свою очередь, организационные меры
разделяются на две группы:
• создание резервных копий информации, хранимой на МНИ;
• обеспечение правильных условий хранения и эксплуатации МНИ.
Создание резервных копий информации, хранимой на МНИ, должно
быть обязательной регулярной процедурой, периодичность которой зависит
от технологии обработки информации, в частности от объема вводимых данных, важности информации, возможности повторного ввода и т.д. Для создания резервных копий могут использоваться как стандартные утилиты, которые сохраняют выбранные файлы или каталоги, так и специализированные
системы резервного копирования, адаптированные к конкретной АС. В последнем случае можно применять собственные методы архивирования,
например, так называемое "разностное" архивирование, когда на вспомогательный носитель записывается не весь объем базы данных, а только та
часть, которая была введена с момента последнего сохранения.
В качестве вспомогательных носителей, на которые производится архивирование информации, традиционно рассматривались магнитные ленты.
В настоящее время благодаря развитию технологий хранения информации
число возможных типов носителей увеличилось, поэтому для хранения архивных данных выбирают, как правило, те, которые при заданном объеме
копируемой информации (в случае накопления информации и с учетом определенной перспективы) и предполагаемом сроке хранения оптимальны по
цене единицы хранимой информации. Так, в ряде случаев оптимальным
устройством резервирования может быть дополнительный жесткий диск или
CD-ROM. При ведении резервных копий необходимо регулярно проверять их
сохранность и целостность находящейся информации. Обеспечение правильных условий хранения и эксплуатации определяется конкретным типом машинного носителя.
Рассмотрим теперь технологические меры контроля целостности би1
ТОКБ Л_5
товых последовательностей, хранящихся на машинных носителях. Целостность информации в областях данных на машинных носителях контролируется с помощью циклического контрольного кода, контрольные числа
которого записываются после соответствующих областей, причем в контролируемую область включаются соответствующие маркеры.
Для стандартного сектора дискеты размер контролируемой области составит 516 байт: 512 байт данных плюс 4 байта маркера данных. При чтении
с дискеты данные проверяются на соответствие записанному коду и в случае
несовпадения выставляется соответствующий флаг ошибки.
Для обеспечения контроля целостности информации чаще всего применяют циклический контрольный код. В основе данного подхода лежит понятие полинома или, как его еще называют, многочлена. Как известно, полином-это формально заданный степенной ряд, т.е. сумма множества степенных выражений независимых переменных.
В общем случае любой блок информации х в памяти вычислительной
машины представляет последовательность битов, которую можно считать
двоичным полиномом и в дальнейшем будем обозначать через А(х). Для вычисления контрольного кода понадобится еще один полином, называемый
порождающим полиномом. Этот полином обозначим G(x). Порождающий
полином является в некотором роде ключом циклического кода.
Контрольный код, представляемый полиномом R(x), вычисляется как
остаток от деления полинома А(х) на G(x):
R(x) = (A(x)хr)modG(x),
где r – степень порождающего полинома.
Из теории циклических кодов следует, что чем больше г, тем больше
обнаруживающая способность контрольного кода. При реализации метода
подсчета контрольного кода значение г в общем случае ограничено только
параметрами МНИ. Например, для контроллеров гибких магнитных дисков г
= 16 и порождающий полином G(x) имеет следующий вид:
G(x)=x16+x12+x5 + 1.
В книге Д. Правикова "Ключевые дискеты. Разработка элементов защиты от несанкционированного копирования" (М.: Радио и связь, 1997 г.)
приводится программа на языке С, иллюстрирующая схему вычисления циклического контрольного кода. Основная сложность программной реализации
заключается в том, что для получения 16-разрядного остатка информационный полином необходимо делить на 17-разрядный порождающий
полином. Это ограничение обходится с помощью специальной реализации
алгоритма. При сложении по модулю 2 как старший разряд остатка информационного полинома, так и старший разряд порождающего полинома всегда
равны единице и, следовательно, известен результат их сложения, который
всегда равен нулю. Поэтому складывать с остатком уже можно только младшие 16 разрядов порождающего полинома. Поскольку цель вычислений состоит в получении контрольного числа - остатка отделения, частное не вы2
ТОКБ Л_5
числяется. В данной реализации алгоритма, во-первых, циклический контрольный код вычисляют, взяв в качестве первоначального значения FFFF
(16-ричная запись), и, во-вторых, данные считаются поступающими, начиная
со старших битов.
2. Целостность данных в АС
Понятие целостности данных в научной литературе определяется несколькими способами, описанию и сравнению которых посвящены отдельные научные статьи. Одна из наиболее распространенных трактовок, используемая далее в пособии, под целостностью данных подразумевает отсутствие ненадлежащих изменений. Смысл понятия "ненадлежащее изменение" раскрывается Д.Кларком и Д.Вилсоном в [25]: ни одному пользователю
АС, в том числе и авторизованному, не должны быть разрешены такие изменения данных, которые повлекут за собой их разрушение или потерю.
При рассмотрении вопроса целостности данных мы используем интегрированный подход (в определенном выше смысле), основанный на ряде
работ Кларка и Вилсона, а также их последователей и оппонентов, и включающий в себя девять абстрактных теоретических принципов, каждый из которых раскрывается ниже: « корректность транзакций;
• аутентификация пользователей;
• минимизация привилегий;
• разграничение функциональных обязанностей;
• аудит произошедших событий;
• объективный контроль;
· управление передачей привилегий;
• обеспечение непрерывной работоспособности;
• простота использования защитных механизмов.
Понятие корректности транзакций определяется в [25] следующим
образом. Пользователь не должен модифицировать данные произвольно, а
только определенными способами, так, чтобы сохранялась целостность данных. Другими словами, данные можно изменять только путем корректных
транзакций и нельзя - произвольными средствами. Кроме того, предполагается, что "корректность" (в обычном смысле) каждой из таких транзакций может быть некоторым способом доказана. Принцип корректных
транзакций по своей сути отражает основную идею определения целостности
данных сформулированную выше.
Второй принцип гласит, что изменение данных может осуществляться
только специально аутентифицированными для этой цели пользователями.
Этот принцип работает совместно с последующими четырьмя, с вторыми
тесно связана его роль в общей схеме обеспечения целостности.
Идея минимизации привилегий появилась еще на ранних этапах развития направления компьютерной безопасности в форме ограничения, накладываемого на возможности процессов, выполняющихся в АС, и подразумевающего, что процессы должны быть наделены теми и только теми
привилегиями, которые естественно и минимально необходимы для вы3
ТОКБ Л_5
полнения процессов. Практикам администрирования ОС UNIX это положение хорошо знакомо на примере правил использования учетной записи
root, обладающей неограниченными полномочиями. Принцип, согласно которому следует минимизировать назначаемые привилегии в строгом соответствии с содержанием выполняемой задачи, распространяется в равной мере
как на процессы (работающие в системе программы), так и на пользователей
системы.
Разграничение функциональных обязанностей подразумевает организацию работы с данными таким образом, что в каждой из ключевых стадий, составляющих единый критически важный с точки зрения целостности
процесс, необходимо участие различных пользователей. Этим гарантируется,
что один пользователь не может выполнить весь процесс целиком (или даже
две его стадии) с тем, чтобы нарушить целостность данных. В обычной жизни примером воплощения данного принципа служит передача одной половины пароля для доступа к программе управления ядерным реактором первому
системному администратору, а другой – второму.
Как отмечено выше, принцип минимизации привилегий распространяется и на программы, и на пользователей. Последним, однако, на практике
трудно назначить "теоретически достижимый" минимальный уровень привилегий по двум причинам. Во-первых, пользователи выполняют разнообразные задачи, требующие различных привилегий. Во-вторых, если
строгое соблюдение принципа минимизации в отношении процессов связано
с соображениями стоимости и производительности, то в отношении пользователей оно, скорее, затрагивает вопросы этики и морали, а также удобства и
эффективности работы – это факторы, которые не поддаются точной количественной оценке. Поэтому пользователи будут, как правило, иметь несколько
больше привилегий, чем им необходимо для выполнения конкретного действия в данный момент времени. А это открывает возможности для злоупотреблений. Аудит произошедших событий (включая возможность восстановления полной картины происшедшего) является превентивной мерой в отношении потенциальных нарушителей.
Принцип объективного контроля, согласно [25], также является одним
из краеугольных камней политики контроля целостности. Суть данного
принципа заключается в том, что контроль целостности данных имеет смысл
лишь тогда, когда эти данные отражают реальное положение вещей. Очевидно, что нет смысла заботиться о целостности данных, связанных с размещением боевого арсенала, который уже отправлен на переплавку. В связи с этим
Кларк и Вилсон указывают на необходимость регулярных проверок, целью
которых является выявление возможных несоответствий между защищаемыми данными и объективной реальностью, которую они отражают.
Управление передачей привилегий необходимо для эффективной работы
всей политики безопасности (данное понятие рассматривается в гл.З). Если
схема назначения привилегий неадекватно отражает организационную структуру предприятия или не позволяет администраторам безопасности гибко
манипулировать ею для обеспечения эффективности производственной дея4
ТОКБ Л_5
тельности, защита становится тяжким бременем и провоцирует попытки
обойти ее там, где она мешает "нормальной" работе.
С некоторыми оговорками иногда в зарубежной научной литературе в
основу контроля целостности закладывается и принцип обеспечения непрерывной работы (включая защиту от сбоев, стихийных бедствий и других
форс-мажорных обстоятельств), который в классической теории компьютерной безопасности относится, скорее, к проблеме доступности данных.
В основу последнего девятого принципа контроля целостности – простота использования защитных механизмов – заложен ряд идей, призванных
обеспечить эффективное применение имеющихся механизмов обеспечения
безопасности. На практике зачастую оказывается, что предусмотренные в системе механизмы безопасности некорректно используются или полностью
игнорируются системными администраторами по следующим причинам:
• неправильно выбранные производителем конфигурационные параметры по умолчанию обеспечивают слабую защиту;
• плохо разработанные интерфейсы управления защитой усложняют
использование даже простых средств безопасности;
•
имеющиеся средства безопасности не обеспечивают адекватный
уровень контроля за системой;
• реализация механизмов безопасности плохо соответствует сложившемуся у администраторов интуитивному их пониманию;
• отдельные средства защиты плохо интегрированы в общую схему
безопасности;
• администраторы недостаточно осведомлены о важности применения конкретных механизмов защиты и их особенностях.
Простота использования защитных механизмов подразумевает, что самый безопасный путь эксплуатации системы будет также наиболее простым,
и наоборот, самый простой - наиболее защищенным.
Модель контроля целостности Кларка-Вилсона
После того, как сформулировано определение понятия целостности
данных и обсуждены основные принципы построения системы контроля целостности, в качестве примера политики контроля целостности рассмотрим
модель, предложенную Кларком и Вилсоном [25]. Другая известная модель
политики контроля целостности – модель Биба, которую с некоторой степенью условности можно охарактеризовать как интерпретацию модели БеллаЛападулы для случая контроля целостности (подробнее см. в гл. 3).
Модель Кларка-Вилсона появилась в результате проведенного авторами анализа реально применяемых методов обеспечения целостности документооборота в коммерческих компаниях. В отличие от моделей Биба и
Белла-Лападулы, она изначально ориентирована на нужды коммерческих заказчиков, и, по мнению авторов, более адекватна их требованиям, чем предложенная ранее коммерческая интерпретация модели целостности на основе
решеток. Основные понятия рассматриваемой модели - это корректность
транзакций и разграничение функциональных обязанностей. Модель задает
5
ТОКБ Л_5
правила функционирования компьютерной системы и определяет две категории объектов данных и два класса операций над ними.
Все содержащиеся в системе данные подразделяются на контролируемые и неконтролируемые элементы данных (constrained data items-GDI и
unconstrained data items-UDI соответственно). Целостность первых обеспечивается моделью Кларка-Вилсона. Последние содержат информацию, целостность которой в рамках данной модели не контролируется (этим и объясняется выбор терминологии).
Далее, модель вводит два класса операций над элементами данных:
процедуры контроля целостности (integrity verification procedures - IVP) и
процедуры преобразования (transformation procedures -TP). Первые из них
обеспечивают проверку целостности контролируемых элементов данных
(CDI), вторые изменяют состав множества всех CDI (например, преобразуя
элементы UDI в GDI).
Наконец, модель содержит девять правил, определяющих взаимоотношения элементов данных и процедур в процессе функционирования системы.
Правило С1. Множество всех процедур контроля целостности (IVP)
должно содержать процедуры контроля целостности любого элемента данных из множества всех GDI.
Правило С2. Все процедуры преобразования (ТР) должны быть реализованы корректно в том смысле, что не должны нарушать целостность обрабатываемых ими GDI. Кроме того, с каждой процедурой преобразования
должен быть связан список элементов GDI, которые допустимо обрабатывать
данной процедурой. Такая связь устанавливается администратором безопасности.
Правило Е1. Система должна контролировать допустимость применения ТР к элементам GDI в соответствии со списками, указанными в правиле С2.
Правило Е2. Система должна поддерживать список разрешенных конкретным пользователям процедур преобразования с указанием допустимого
для каждой ТР и данного пользователя набора обрабатываемых элементов
GDI.
Правило СЗ. Список, определенный правилом С2, должен отвечать
требованию разграничения функциональных обязанностей.
Правило ЕЗ. Система должна аутентифицировать всех пользователей,
пытающихся выполнить какую-либо процедуру преобразования.
Правило С4. Каждая ТР должна записывать в журнал регистрации информацию, достаточную для восстановления полной картины каждого применения этой ТР. Журнал регистрации - это специальный элемент GDI, предназначенный только для добавления в него информации.
Правило С5. Любая ТР, которая обрабатывает элемент UDI, должна
выполнять только корректные преобразования этого элемента, в результате
которых UDI превращается в GDI.
Правило Е4. Только специально уполномоченное лицо может изме6
ТОКБ Л_5
нять списки, определенные в правилах С2 и Е2. Это лицо не имеет права выполнять какие-либо действия, если оно уполномочено изменять регламентирующие эти действия списки.
Роль каждого из девяти правил модели Кларка-Вилсона в обеспечении
целостности информации можно пояснить, показав, каким из теоретических
принципов политики контроля целостности отвечает данное правило.
Напомним, что первые шесть из сформулированных выше принципов это:
1) корректность транзакций;
2) аутентификация пользователей;
3) минимизация привилегий;
4) разграничение функциональных обязанностей;
5) аудит произошедших событий;
6) объективный контроль.
Соответствие правил модели Кларка-Вилсона перечисленным принципам показано в табл. 2.4. Как видно из табл. 2.4, принципы 1 (корректность
транзакций) и 4 (разграничение функциональных обязанностей) реализуются
большинством правил, что соответствует основной идее модели.
Таблица 2.4
Правило модели Кларка-Вилсона
С1
С2
Е1
Е2
СЗ
ЕЗ
С4
С5
Е5
Принципы политики контроля целостности, реализуемые правилом
1,6
1
3,4
1, 2, 3,4
4
2
5
1
4
Публикация описания модели Кларка-Вилсона вызвала широкий отклик среди исследователей, занимающихся проблемой контроля целостности.
В ряде научных статей рассматриваются практические аспекты применения
модели, предложены некоторые ее расширения и способы интеграции с другими моделями безопасности.
За пределами рассмотрения проблемы обеспечения целостности информации остались различные формальные описание свойства целостности,
основанные на математических аппаратах теории множеств и процессов.
Среди них и "Основная теорема целостности", для изложения которой в рамках данного пособия потребовалось бы привести в большом объеме вводные
формальные рассуждения, не связанные с проблемой напрямую. Интересующимся следует обратиться к первоисточникам.
Защита памяти
7
ТОКБ Л_5
В АС, в частности в любой ОС, память разделена (по меньшей мере логически) на области, которые используют ее компоненты, а также программы
пользователей. При этом необходимо обеспечить защиту областей памяти от
вмешательства в них посторонних компонентов, т.е. разграничить доступ
приложений к областям памяти, а в многозадачной среде – и к областям памяти друг друга. Кроме того, необходимо решить проблему организации
совместного доступа различных приложений к некоторым областям памяти.
Обычно для этого используется один из трех подходов:
• совместный доступ полностью исключен, возможно только монопольное использование области памяти;
• допустимы только строго оговоренные типы доступа к содержимому
данной области памяти, например согласно таблице вида
Приложение 1
Приложение 2
Приложение 3
Чтение
Запись
Исполнение
Да
Да
Да
Да
Да
Нет
Да
Нет
Нет
• совместный доступ разрешен и ничем не ограничен.
Совместный доступ может быть организован или к оригиналу области
памяти, или предоставлением каждой программе индивидуальной копии области. В последнем случае потребуется осуществлять синхронизацию обновлений области различными приложениями, а в первом - исключение одновременного изменения ее несколькими программами. Следует также учесть,
что в совместное пользование могут быть предоставлены не только данные,
но и исполняемый код. Таким образом, в задачи АС по предоставлению областей памяти в совместное пользование входят:
• организация последовательного, взаимоисключающего доступа нескольких программ к совместно используемым объектам;
• ограничение возможностей совместно используемых программ по
манипулированию информацией различной ценности. Кратко рассмотрим
основные способы защиты памяти.
Барьерные адреса
Барьерный адрес указывает на начало пользовательской области памяти, отделяя ее от области памяти, в которой размещается программы АС и ее
данные (как правило, это области младших адресов). Это напоминает забор,
построенный дачником, чтобы отгородиться от назойливого соседа.
В предположении, что АС размещена в области младших адресов,
можно определить функционирование механизма барьерного адреса следующим образом. При каждом обращении пользовательской программы к
памяти адрес запрашиваемой ячейки сравнивается с барьерным. Допустимыми считаются обращения к ячейкам памяти с адресами, большими барьерного адреса. Программа, которая пытается обратиться к памяти АС (т.е. к
ячейке с адресом, меньшим барьерного) аварийно завершается выдачей поль8
ТОКБ Л_5
зователю сообщения об ошибке.
Значение барьерного адреса может быть представлено константой, записанной в поддерживающей АС аппаратуре, что накладывает ограничения
на максимальный размер самой АС или может привести к неэффективному
использованию ресурсов памяти, если размер АС достаточно мал и она
оставляет неиспользованной часть отведенного ей адресного пространства.
Другой, более гибкий способ задания барьерного адреса – его хранение в
специальном регистре, значение которого устанавливается привилегированной командой в начале работы АС и может динамически изменяться в соответствии с ее потребностями. Последний подход накладывает ограничение на
механизмы адресации, используемые исполняемыми в данной АС программами.
Физические адреса данных загруженной в память программы определяются сложением логических адресов со значением барьерного адреса.
Т.е. предполагается, что логическое адресное пространство программы начинается с нулевого адреса, соответствующего ячейке, начиная с которой программа размещается в памяти.
Если определение физических адресов на основе заданных в программе
логических адресов происходит на этапе компиляции, то для корректной работы программы необходимо, чтобы известный на этапе компиляции барьерный адрес оставался неизменным на протяжении всей работы программы и
при каждом повторном ее запуске. Другими словами, использование программ возможно только, если барьерный адрес задан в качестве константы (в
АС или поддерживающей ее аппаратной платформе), и программа загружается в фрагмент памяти, адрес которого строго задан. В противном случае
изменение барьерного адреса потребовало бы перекомпиляции всех написанных для данной АС программ.
В том случае, когда определение физических адресов происходит в
момент загрузки программы в память, подобного строгого ограничения нет.
Однако сохраняется требование неизменности барьерного адреса в процессе
выполнения программы. При изменении барьерного адреса программу нужно
загрузить в память повторно.
В обоих рассмотренных случаях на этапе выполнения программы адреса ее данных задавались в абсолютном формате (загруженная программа содержала реальные значения физических адресов), что накладывало ограничения на способ изменения барьерного адреса АС. Более гибкий способ перераспределения памяти между АС и приложениями обеспечивает механизм
динамических областей памяти.
Динамические области памяти
Физические адреса программных данных могут вычисляться не только,
как описывалось выше, в момент компиляции или загрузки программы, но и
непосредственно в процессе ее выполнения. При этом логические адреса
данных, как и раньше, начинаются с нулевого, а при обращении к ячейке памяти ее физический адрес вычисляется сложением логического со значением
9
ТОКБ Л_5
барьерного адреса. Таким образом обеспечивается возможность изменения
последнего в ходе выполнения программы, а программы АС и приложение
занимают динамические области памяти.
Рассмотренные выше способы защиты реализуют только разграничение доступа к памяти АС и приложений. Однако в многозадачной системе
необходимо также отдельно защитить данные каждого приложения. Такие
механизмы рассматриваются ниже.
Адресные регистры
Доступная пользовательской программе область памяти может быть
ограничена парой хранящихся в регистрах значений: начальным и конечным
адресом области. При этом каждой программе отводится отдельная область
памяти и отдельная пара адресных регистров.
Один из вариантов использования адресных регистров - это хранение в
них начального и конечного физических адресов области памяти приложения. В этом случае при каждом обращении программы к памяти проверяется
принадлежность адреса заданному содержимым этих регистров промежутку.
Другой способ применения адресных регистров - задание в них базового и предельного адресов области памяти приложения, причем первый является физическим, а второй – логическим. Адрес, по которому происходит
обращение к памяти, сначала сравнивается с содержимым регистра, задающего предельно допустимый логический адрес (напоминание: адресация в
логическом пространстве начинается с нуля). Если указанный в программе
адрес меньше предельного, для получения физического адреса к нему прибавляется значение базового. В противном случае программа аварийно завершается. Такой способ в отличие от предыдущего допускает динамическое
перемещение программы в памяти.
Более надежные способы защиты памяти на основе адресных регистров
предполагают использование двух пар регистров для каждой программы: отдельно для фрагмента кода и данных. При этом запись в первый фрагмент
может быть запрещена для защиты кода от изменения (как предполагается,
непреднамеренного).
Все уже рассмотренные способы защиты памяти обладают одной общей особенностью, а именно, обеспечивают защиту выделенной области памяти, состоящей из последовательно расположенных ячеек. Однако нередко
возникает необходимость более тонко разграничивать доступ к памяти, что
можно реализовать с помощью ключей доступа. Ключ доступа - это устанавливаемый операционной системой атрибут отдельной ячейки памяти, на основе которого затем осуществляется проверка допустимости каждого обращения, например:
Адрес ячейки
Чтение
Запись
Исполнение
000000315
000000316
000000317
Да
Да
Да
Да
Нет
Нет
Нет
Нет
Да
10
ТОКБ Л_5
Другая особенность механизма защиты с применением адресных регистров связана с организацией совместного использования областей памяти.
Две пары регистров (для кода и данных, как говорилось выше) позволяют
эффективно организовать совместное использование только фрагментов кода
(запись в которые запрещена). Для защиты фрагмента данных от непреднамеренного искажения в результате операций записи необходимы дополнительные средства (адресные регистры позволяют контролировать только сам
факт доступа к области памяти, но не конкретный способ осуществления доступа: чтение или запись).
Более совершенные средства защиты памяти обеспечиваются механизмами страничной организации памяти и сегментации.
Страницы и сегменты памяти
При страничной организации памяти все адресное пространство разделяется на блоки фиксированного размера (страницы). Проверка допустимости адресов и преобразование логических адресов в физические при
обращениях к памяти осуществляется с помощью таблицы страниц, каждая
запись которой содержит начальный адрес расположения страницы в памяти.
Логический адрес имеет формат <номер страницы, смещением По номеру
страницы определяется физический адрес ее первой ячейки, к которому затем
прибавляется смещение. С каждой страницей ассоциирован ключ доступа,
определяющий набор допустимых операций (чтение, запись, исполнение).
Такая схема организации памяти поддерживает совместное использование страниц: в таблицах страниц отдельных приложений могут быть
описаны одни и те же страницы физической памяти. Однако более изощренное управление доступом в страничной модели затруднено из-за того,
что на одной странице могут находиться различные по своей природе объекты (например, код и данные некоторой программы).
Смысл сегментной организации памяти заключается в том, чтобы
предоставить индивидуальные (возможно, неодинаковые по размеру) области памяти логически различным частям программы. Например, в отдельные сегменты могут быть помещены данные с различным типом доступа
или код основной части программы и вызываемых ею подпрограмм. Преобразование логических адресов в физические происходит на основе содержимого таблицы сегментов, куда заносятся базовый и предельный адреса каждого сегмента (они обсуждались при описании функционирования адресных
регистров). Логический адрес имеет формат <номер сегмента, смещение>,
похожий на формат, применяемый в страничной адресации. Однако теперь
каждый сегмент содержит однородные объекты, которым необходим одинаковый уровень защиты, так же как и выше, обеспечиваемый ключом доступа.
Возможно совместное использование сегментов данных и кода, отдельные
участки которого (например, процедуры и функции) могут быть предоставлены в совместное использование независимо от основной программы.
11
ТОКБ Л_5
3. Защита от угрозы нарушения целостности информации на уровне
содержания
Защита от угрозы нарушения целостности информации на уровне содержания в обычной практике рассматривается как защита от дезинформации. Пусть у злоумышленника нет возможности воздействовать на отдельные компоненты АС, находящиеся в пределах контролируемой зоны, но
если источники поступающей в нее информации находятся вовне системы,
всегда остается возможность взять их под контроль противоборствующей
стороной. В соответствии с [18] при намеренной дезинформации применяют
как заведомую ложь, так и полуправду, исподволь подталкивающую воспринимающих ее к ложным суждениям. Наиболее распространенными приемами
здесь являются:
• прямое сокрытие фактов;
• тенденциозный подбор данных;
• нарушение логических и временных связей между событиями;
• подача правды в таком контексте (добавлением ложного факта или
намека), чтобы она воспринималась как ложь;
• изложение важнейших данных на ярком фоне отвлекающих внимание сведений;
• смешивание разнородных мнений и фактов;
• изложение данных словами, которые можно истолковывать
по-разному;
• отсутствие упоминания ключевых деталей факта.
Кроме того, в процессе сбора и получения информации возникают искажения, которые чаще всего происходят из-за:
• передачи только части сообщения;
• интерпретации услышанного в соответствии со своими знаниями и
представлениями;
• пропуска фактуры через призму субъективно-личностных отношений. Для успешности борьбы с вероятной дезинформацией следует:
• различать факты и мнения;
• применять дублирующие каналы информации;
• исключать все лишние промежуточные звенья и т.п.
Проблема защиты информации в АС от угрозы нарушения целостности
на уровне содержания информации до сих пор не ставилась, по-видимому, в
силу того, что в качестве автоматизированных систем рассматривались, как
правило, системы типа складского и бухгалтерского учета, в которых изменение содержания одной записи практически не вызывало противоречий в
содержаниях остальных записей. По мере усложнения алгоритмов обработки
информации, расширения применения в повседневной практике экспертных
и самообучающихся систем и т.п. качество вводимой информации начинает
играть все более важную роль. Простейшим примером здесь может служить
программирование на языках типа Пролог, когда задание неверного правила,
12
ТОКБ Л_5
т.е. информации, целостность которой нарушена, может привести к неверному результату (в том числе зацикливанию и зависанию) программы.
Вместе с тем, даже в обычных учетных АС необходимо предусматривать наличие подсистем, проводящих первичный смысловой анализ и в
определенной степени контролирующих работу оператора. Примером простейшей легко реализуемой смысловой проверки является контроль соблюдения диапазона дат. Так, персональный компьютер, хранящийся на складе,
не может быть выпущен раньше 1980 г. Более сложные алгоритмы контроля
связаны со спецификой обрабатываемой информации и технологии ее обработки. Наличие подобных подсистем позволяет защитить информацию в АС
не только от случайных, но и преднамеренных ошибок.
13
Download