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

реклама
ТОКБ_Л_7
Лекция №7. Построение систем защиты от угрозы раскрытия параметров информационной системы
1. Виды воздействий, направленных на раскрытия параметров информационной системы.
2. Направления защиты от воздействий, направленных на раскрытия параметров информационной системы.
1. Виды воздействий, направленных на раскрытия параметров информационной системы
Методы защиты от угрозы раскрытия параметров информационной системы, в принципе, не отличаются от рассмотренных выше методов защиты
конфиденциальности информации. Цель данного раздела – дать представление о тех параметрах АС, раскрытие которых позволит злоумышленнику в
дальнейшем реализовать основные виды угроз: нарушения конфиденциальности информации, нарушения целостности информации и блокирования доступа к информации.
Для того чтобы понять особенности реализации системы защиты АС от
угрозы раскрытия параметров системы, рассмотрим пример, когда злоумышленник пытается реализовать угрозу нарушения конфиденциальности
информации. Пусть злоумышленник получил доступ к МНИ с конфиденциальной информацией. Для того чтобы получить доступ к содержанию
информации, в общем случае он должен обеспечить:
* считывание с МНИ хранящейся на нем информации;
* получение доступа к содержимому логической единицы хранения
информации (файла);
* воспроизведение содержимого файла в штатном режиме;
* экспертную оценку считанной и воспроизведенной информации.
Меры защиты, направленные на противодействие злоумышленнику,
будем рассматривать последовательно, в соответствии с подходом, предложенным в гл.1.
При проведении злоумышленником мероприятий, направленных на
получение информации с МНИ (как правило, это гибкий или жесткий магнитный диск), у него возникает необходимость решения следующих задач.
1. Диагностика состояния носителя, включающая получение:
• необходимых для конкретной ОС элементов формата носителя;
·
признаков инструментальных средств подготовки носителя к использованию;
• характеристики распределения информации по рабочей поверхности носителя;
• признаков удаленной, остаточной и скрытой информации;
• данных о сбойных секторах и недоступных для чтения областей;
• признаков нестандартного форматирования носителя.
2. Профилактика состояния носителя (выявление причин, приведших к
тому или иному состоянию носителя).
1
ТОКБ_Л_7
3. Восстановление рабочего состояния носителя.
4. Восстановление, копирование и преобразование информации на носителе.
Как уже было отмечено, необходимым условием для считывания информации с МНИ является наличие аппаратной, программной и организационной составляющих физического доступа:
• соответствующий заданному носителю привод - наиболее значимый
для физического доступа элемент;
•
соответствующий приводу комплект программ (операционная система, драйверы привода);
• порядок использования программ и привода для считывания в память компьютера содержимого носителя информации.
Чтобы осуществить подбор привода, настройку программного обеспечения и обращение к содержимому МНИ, необходимо провести идентификацию его типа. Для этого используются первичные признаки носителя:
• внешний вид данного носителя;
• информация о типе носителя;
• характеристика данного носителя.
Исходя из описанных возможных действий злоумышленника, необходимо создавать соответствующие защитные меры от разведки параметров системы, а именно не допускать при эксплуатации АС получения потенциальным противником указанных выше сведений.
Если имевшийся в наличии машинный носитель был правильно идентифицирован злоумышленником, для него подобран привод, то с большой
вероятностью ему будет известен формат оригинального носителя, или же
этот формат будет автоматически идентифицирован операционной системой,
допускающей работу с приводом для данного носителя. Например, обычные
3,5" дискеты, как правило, отформатированы в стандарте IBM (MS DOS) на
1,44 Мбайта или 720 Кбайт либо в стандарте Apple Macintosh на 1,44 Мбайта
или 720 Кбайт.
Однако возможно введение произвольных нестандартных способов
разметки носителя, которые могут применяться не только для удобства их
эксплуатации, но и с целью защиты хранящейся информации. Тогда потенциальный злоумышленник будет иметь дело с последовательностью из
нулей и единиц. В этом случае потребуется классификация служебной, содержательной, остаточной и скрытой информации. По своему смыслу эта работа близка к довольно глубокому криптоанализу. Нельзя также исключать и
применение более изощренных криптографических алгоритмов при зашифровании всего содержимого носителя, включая служебные области.
Необходимыми аппаратной, программной и организационной составляющими для доступа к логическим единицам записей на носителях
(файлах) являются соответственно:
• привод для носителя;
• стандартное и специальное программное обеспечение для идентификации формата оригинального машинного носителя (побитовой его ко2
ТОКБ_Л_7
пии);
• методология воссоздания файловой структуры, восстановления удаленной и выявления скрытой информации.
Процедура определения формата носителя на логическом уровне предполагает:
• определение числа и размера кластеров;
• выделение таблицы размещения файлов;
• выделение корневой директории.
Основным критерием того, осуществлен или нет логический доступ,
служит способность злоумышленника выделить каждый файл на доступном
ему машинном носителе. В настоящее время, из-за использования ограниченного числа типов операционных систем и еще меньшего числа способов
размещения файлов на носителях, данная задача для злоумышленника может
считаться решенной. В то же время для отдельных особо критичных АС (при
наличии достаточного количества средств) можно рассмотреть вопрос о разработке уникальной подсистемы взаимодействия с носителем.
Если злоумышленник имеет файл, то ему известно его название с расширением, дата создания, объем, статус (только для чтения и др.). С учетом
того, что существуют различные виды информации (текст, графическое
изображение, звуковой и видеосигнал, программные модули и т.д.), а также
различные способы ее представления, разработаны и активно используются
стандарты оформления (форматы) файлов. Перечень таких форматов очень
широк. Их многообразие объясняется в первую очередь большим количеством соответствующих программных продуктов, функционирующих на различных аппаратных и программных платформах СВТ.
Заранее знать, в каком формате подготовлен файл, не всегда возможно.
Однако для каждого вида информации, представленной в файле, и для каждого формата существуют характерные признаки. Таким образом, задача выявления смысла содержимого файла предполагает определение программного средства, с помощью которого этот файл был подготовлен, включая использованные для зашифрования средства криптографической защиты информации.
В случае применения криптографических средств защиты злоумышленник может применять криптографический анализ.
Отдельным направлением защиты АС является сокрытие логики ее работы и ее защитных функций, реализованных программно или программноаппаратно. Это связано с тем, что большинство атак злоумышленников на
системы защиты и защищаемую ими информацию включают в себя как обязательный этап изучение логики защитных и функциональных механизмов. В
свою очередь, изучение логики программ АС разбивается на три стадии:
« выделение чистого кода программы;
» дизассемблирование;
» семантический анализ.
Выделение чистого кода программ может потребоваться злоумышленнику по следующим причинам:
3
ТОКБ_Л_7
•
предприняты специальные меры для противодействия исследованию этого кода;
• предприняты меры, направленные на преобразование кода в другую
форму, которые не преследуют реализацию противодействия; чаще всего это
архивация или кодирование исходного кода (кодирование может применяться, например, для пересылки данных по электронной почте - в этом случае
код состоит только из печатных символов.
Дизассемблированием называется процесс перевода программы из исполняемых или объектных кодов на язык ассемблера. Задача дизассемблирования практически решена. В настоящее время практически для
всех операционных систем существует много хороших дизассемблеров, почти стопроцентно справляющихся со стандартным кодом. (Дизассемблированный текст может считаться полностью правильным, если при повторном ассемблировании получается исходный код. Аналогично, код считается не содержащим специальных приемов защиты от исследования, если дизассемблер получает полностью правильный текст.) С помощью этапа дизассемблирования поэтому можно проверить качество выполнения этапа получения чистого кода: если дизассемблер не генерирует полностью правильный
код, то тот этап не был закончен.
Семантический анализ программы - исследование программы изучением смысла составляющих ее функций (процедур) в аспекте операционной
среды компьютера. Этот этап является заключительным и позволяет восстановить логику работы программы без исходных текстов. При этом используется вся полученная на предыдущих этапах информация, которая, как уже
отмечалось, может считаться правильной только с некоторой вероятностью,
причем не исключены вообще ложные факты или умозаключения.
Семантический анализ применяется к полученным ассемблерным текстам программы и состоит в нахождении и выделении управляющих конструкций, таких как циклы, подпрограммы и т.п., и основных структур данных. При этом определяются входные и выходные данные, а также реконструируется логика проводимых с ними преобразований.
Семантический анализ программы удобнее всего вести на языке высокого уровня. Однако на сегодняшний день задача о переводе из машинных
кодов на язык высокого уровня (дискомпиляции) в общем случае не имеет
приемлемого решения. Более проработаны вопросы дискомпиляции для языков интерпретирующего типа, таких как Clarion, менее-для языков трансляционного типа, например С.
Как правило анализ кода ведется на уровне команд процессора с использованием таких инструментальных средств, как трассировщики и отладчики. В целом задача семантического исследования исполняемого кода
программ является достаточно трудоемкой и поэтому применима лишь к небольшим участкам кода.
В соответствии с данными подходами к изучению логики работы программ выработаны методы противодействия.
4
ТОКБ_Л_7
2. Направления защиты от воздействий, направленных на раскрытия
параметров информационной системы
Простейшим методом защиты исполняемого кода программы является
его модификация. Самым примитивным способом модификации кода (по
сложности реализации и надёжности) является его упаковка при помощи одной из стандартных программ-упаковщиков: PkLite, Diet и т.д. Подобная защита ненадёжна, но тем не менее позволяет скрыть истинный исполняемый
код, содержащиеся в нём текстовые строки и другую информацию, особенно
если после перекодировки предприняты дополнительные меры защиты, такие
как затирание идентификатора упаковщика и прочей информации, характеризующей метод упаковки.
Более надёжным методом является использование нестандартных упаковщиков. Если в предыдущем случае при удачном определении метода упаковки исполняемый код можно "развернуть", используя готовое средство, то
при неизвестном упаковщике эта операция потребует предварительного анализа исполняемого кода подпрограммы, осуществляющей распаковку программы при её запуске.
Значительно более эффективным методом является шифрование тела
программы и данных. Поскольку целью данного механизма защиты является
обеспечение работы программы в нормальном режиме и предотвращение доступа к истинному исполняемому коду во всех остальных случаях, в качестве
ключа к шифру целесообразно выбирать параметры системы и временные
характеристики её работы, соответствующие именно этому режиму (картину
расположения в памяти, значения системных переменных, режим работы видеоадаптера, взаимодействие с таймером).
Кроме того, модификация может не затрагивать всего кода, а касаться
лишь отдельных команд (наиболее предпочтительны команды передачи
управления, вызовы прерываний или их параметры), а также небольших
фрагментов кода, играющих ключевую роль.
Другим методом защиты исполняемого кода программы является нерегпаментированная передача управления: подмена адреса возврата из подпрограммы, вход и/или выход из подпрограммы посредством команды JMP
или её производных, переход по абсолютному адресу, использование нестандартных точек и способов входа в обработчики прерываний.
Более специализированными являются методы противодействия отладчикам. Это могут быть различные способы модификации кода при работе
программы (совмещение сегмента стека с сегментом кода, шифрование кода
и т.п.), активное противодействие путём периодической проверки и изменения векторов прерываний, в том числе и некорректными способами, блокировка клавиатуры и вывода на экран, контроль времени выполнения отдельных блоков программы, использование специфических особенностей микропроцессоров и т.п.
5
ТОКБ_Л_7
3. Модель контроля целостности Кларка-Вилсона
После того, как сформулировано определение понятия целостности
данных и обсуждены основные принципы построения системы контроля целостности, в качестве примера политики контроля целостности рассмотрим
модель, предложенную Кларком и Вилсоном [25]. Другая известная модель
политики контроля целостности – модель Биба, которую с некоторой степенью условности можно охарактеризовать как интерпретацию модели БеллаЛападулы для случая контроля целостности (подробнее см. в гл. 3).
Модель Кларка-Вилсона появилась в результате проведенного авторами анализа реально применяемых методов обеспечения целостности документооборота в коммерческих компаниях. В отличие от моделей Биба и
Белла-Лападулы, она изначально ориентирована на нужды коммерческих заказчиков, и, по мнению авторов, более адекватна их требованиям, чем предложенная ранее коммерческая интерпретация модели целостности на основе
решеток. Основные понятия рассматриваемой модели - это корректность
транзакций и разграничение функциональных обязанностей. Модель задает
правила функционирования компьютерной системы и определяет две категории объектов данных и два класса операций над ними.
Все содержащиеся в системе данные подразделяются на контролируемые и неконтролируемые элементы данных (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 в соответствии со списками, указанными в пра6
ТОКБ_Л_7
виле С2.
Правило Е2. Система должна поддерживать список разрешенных конкретным пользователям процедур преобразования с указанием допустимого
для каждой ТР и данного пользователя набора обрабатываемых элементов
GDI.
Правило СЗ. Список, определенный правилом С2, должен отвечать
требованию разграничения функциональных обязанностей.
Правило ЕЗ. Система должна аутентифицировать всех пользователей,
пытающихся выполнить какую-либо процедуру преобразования.
Правило С4. Каждая ТР должна записывать в журнал регистрации информацию, достаточную для восстановления полной картины каждого применения этой ТР. Журнал регистрации - это специальный элемент GDI, предназначенный только для добавления в него информации.
Правило С5. Любая ТР, которая обрабатывает элемент UDI, должна
выполнять только корректные преобразования этого элемента, в результате
которых UDI превращается в GDI.
Правило Е4. Только специально уполномоченное лицо может изменять списки, определенные в правилах С2 и Е2. Это лицо не имеет права выполнять какие-либо действия, если оно уполномочено изменять регламентирующие эти действия списки.
Роль каждого из девяти правил модели Кларка-Вилсона в обеспечении
целостности информации можно пояснить, показав, каким из теоретических
принципов политики контроля целостности отвечает данное правило.
Напомним, что первые шесть из сформулированных выше принципов это:
1) корректность транзакций;
2) аутентификация пользователей;
3) минимизация привилегий;
4) разграничение функциональных обязанностей;
5) аудит произошедших событий;
6) объективный контроль.
Соответствие правил модели Кларка-Вилсона перечисленным принципам показано в табл. 2.4. Как видно из табл. 2.4, принципы 1 (корректность
транзакций) и 4 (разграничение функциональных обязанностей) реализуются
большинством правил, что соответствует основной идее модели.
Таблица 1
Правило модели Кларка-Вилсона
С1
С2
Е1
Е2
СЗ
ЕЗ
С4
Принципы политики контроля целостности, реализуемые правилом
1,6
1
3,4
1, 2, 3,4
4
2
5
7
ТОКБ_Л_7
С5
Е5
1
4
Публикация описания модели Кларка-Вилсона вызвала широкий отклик среди исследователей, занимающихся проблемой контроля целостности.
В ряде научных статей рассматриваются практические аспекты применения
модели, предложены некоторые ее расширения и способы интеграции с другими моделями безопасности.
За пределами рассмотрения проблемы обеспечения целостности информации остались различные формальные описание свойства целостности,
основанные на математических аппаратах теории множеств и процессов.
Среди них и "Основная теорема целостности", для изложения которой в рамках данного пособия потребовалось бы привести в большом объеме вводные
формальные рассуждения, не связанные с проблемой напрямую. Интересующимся следует обратиться к первоисточникам.
8
Скачать