Методы и средства защиты информации. Внимание!!! В книге могут встречаться существенные ошибки (в рисунках и формулах). Они не связаны ни со
Скачать 4.86 Mb.
|
Глава 17. Программные методы защиты Разграничение по спискам осуществляется в том случае , если права пользо - вателей на доступ заданы в виде списков При этом либо для каждого элемента базы задан список пользователей , имеющих право доступа к нему , либо для ка - ждого пользователя задан перечень тех элементов базы , к которым ему разре - шен доступ В любом случае процедура разграничения реализуется в следую - щей последовательности 1. По данным , содержащимся в запросе , выбирается соответствующая строка списка : перечень пользователей , допущенных к запрашиваемому элементу или перечень элементов баз данных , к которым допущен обратившийся с за - просом пользователь 2. В выбранной строке проверяется наличие имени пользователя , обратившего - ся с запросом , или имени элемента базы данных , к которому обращается пользователь 3. По данным проверки принимается решение о допуске к запрашиваемым дан - ным Кроме того , могут предусматриваться санкции за попытку несанкциони - рованного доступа , причем в качестве санкций могут быть приняты следую - щие меры : предупреждение пользователя о том , что им допущены несанк - ционированные действия ; отключение пользователя от системы полностью или на некоторое время ; подача сигнала контрольным органам о попытке не - санкционированных действий Матричное разграничение является более гибким по сравнению с разграни - чением по спискам , поскольку оно позволяет не только регулировать доступ к данным , но и характер выполняемых процедур ( чтение , запись , реконструирова - ние данных и т д .). Обеспечивается это тем , что права пользователей задаются в виде матрицы , по строкам которой представлен список пользователей , а по столбцам — перечень имен элементов базы данных Элементами матрицы яв - ляются коды , каждый из которых содержит информацию о полномочиях соответ - ствующих пользователей относительно соответствующих элементов базы дан - ных Множество возможных прав определяется разрядностью кода Недостатками метода разграничения по матрице полномочий считаются два следующих обстоятельства : для больших систем с большим объемом защи - щаемых данных матрицы полномочий оказываются громоздкими , динамическое ведение матриц в процессе функционирования системы является достаточно сложной процедурой Разграничение доступа по уровням ( кольцам ) секретности заключается в том , что базы ( массивы ) защищаемых данных делятся на части в соответствии с уровнями их секретности Полномочия каждого пользователя задаются макси - мальным уровнем секретности данных , доступ к которым ему разрешен В соот - ветствии с этим пользователю разрешается доступ ко всем данным , уровень секретности которых не выше уровня его полномочий Нетрудно заметить , что такое разграничение является наименее гибким из всех рассмотренных Программы внутренней защиты 345 Страничная организация памяти заключается в разделении объема ОП АС на блоки ( страницы ) фиксированного размера При этом средствами операцион - ной системы организуется управление использованием страниц программами пользователя Любая попытка несанкционированного вхождения в поле страни - цы будет вызывать прерывание Мандатная система доступа или доступ по пропускам заключается в том , что пользователю выдается мандат ( пропуск ) на доступ к соответствующим мас - сивам данных или сегментам памяти При каждом обращении осуществляется проверка наличия мандата Сама процедура разграничения является достаточно простой : предъявляемый мандат сравнивается с эталонным и по результатам сравнения принимается решение о допуске Однако при этом возникают те же трудность , что и при работе с паролями — возможны перехват , разгадывание мандатов и т п Основным средством разграничения доступа в больших банках данных явля - ется программный механизм замков управления доступом Этот механизм по - зволяет объявить любой элемент базы закрытым и присвоить ему персональный замок После этого доступ к данному элементу базы будет разрешен только в том случае , если в запросе будет представлен ключ именно к этому замку Ис - пользуемый язык описания данных позволяет закрыть замком любую структуру на всех иерархических уровнях Сам замок может быть задан в виде постоянного кода , значениями переменной или результатом некоторой процедуры Если за - мок задан константой или значением переменной , то для доступа к данным не - обходимо простое совпадение замка и предъявленного ключа Если же замок задан процедурой , то доступ к данным будет разрешен только в случае получе - ния вполне определенного результата процедуры Разграничение доступа с помощью механизма замков управления доступом считается весьма эффективным методом защиты данных Однако одной этой за - щиты недостаточно В современных автоматизированных банках данных , ориен - тированных на коллективное использование и долговременное хранение инфор - мации , механизм защиты должен быть развитым и многофункциональным Такой механизм должен обладать следующими характеристиками 1. Иметь средства опознавания терминалов и пользователей , причем система опознавания должна быть развитой и надежной 2. Обеспечивать защиту по различным аспектам и на различных уровнях : • по компонентам банка данных , к которым относят компоненты структур данных , компоненты структур памяти , служебные данные , и т д .; • по операциям разграничения доступа и выполнения программ и процедур , разграничения возможностей перемещения данных в оперативной памяти , контроля санкционированности реорганизации баз и т п .; 346 Глава 17. Программные методы защиты • по условиям выполнения операции в зависимости от содержания данных об объектах , в зависимости от входных данных , в зависимости от частоты обращений и т п 3. Обеспечивать разграничение по иерархической системе полномочий , когда пользователь обладает своими полномочиями и полномочиями всех пользо - вателей , занимающих подчиненное положение 4. Иметь возможность криптографического закрытия данных в базах 5. Иметь развитую систему реагирования на попытки несанкционированного дос - тупа ( извещение пользователя , снятие задания , отключение терминала , ис - ключение нарушителя из списка пользователей , подача сигнала тревоги ). 6. Иметь средства спецификации правил защиты как с помощью языка описания данных , так и с помощью автономного языка Программы защиты программ Необходимость защиты программ обусловлена тем , что они могут служить каналом несанкционированного доступа к информации Возможности использо - вания программ для несанкционированного доступа к информации могут быть следствием как несовершенства программ , так и умышленных их изменений Несовершенство программ может быть следствием нечеткости определения функций разрабатываемых программ , недостаточной квалификации программи - стов , несовершенства средств и технологии программирования , отладки и тес - тирования В соответствии с этим необходимо использовать следующие меры по защите программ : • точное и однозначное определение для каждой разрабатываемой программы перечня санкционированных функций ; • использование средств и технологии программирования , минимизирующих ве - роятность наличия дополнительных функциональных возможностей , которые могут быть использованы для несанкционированных действий ; • предупреждение внесения несанкционированных изменений в программе как в процессе их разработки , так и на этапе эксплуатации ; • предупреждение несанкционированного использования программ в процессе функционирования системы При организации защиты программ особое внимание должно уделяться за - щите общесистемных компонентов программного обеспечения и , прежде всего , — операционных систем , систем управления базами данных и программ сете - вых протоколов Наиболее распространенным способом защиты таких компо - нентов является выделение специального режима функционирования процессо - ра ( режима управления ), и изоляции программ пользователей от работы в этом режиме Программы защиты программ 347 Однако совокупности этих мер недостаточно для гарантированного перекрытия всех возможных каналов злоумышленных действий над общесистемными про - граммными компонентами Все рассмотренные средства , во - первых , не гаранти - руют распознавания ( обнаружения ) факта подмены общесистемных компонентов , во - вторых , не обеспечивают защиту от злоумышленных действий системных про - граммистов , и , в - третьих , искусные злоумышленники могут преодолеть такую за - щиту В связи с этим необходимо применять ряд дополнительных мер , основными из которых являются следующие 1. Периодическая проверка программ по контрольным суммам , причем для по - вышения надежности проверок рекомендуется производить как общее ( всего программного комплекса ) контрольное суммирование , так и фрагментарное ( отдельных блоков , отдельных строк , по заданному маршруту ). При этом спо - соб получения контрольной суммы рекомендуется сохранить в тайне 2. Перезагрузка , т е периодическое обновление ранее загружаемых в ОП про - грамм ( или наиболее ответственных их компонентов ), причем команды на об - новление программ должны поддаваться особо защищаемой управляющей программой 3. Организация специальных точек входа , т е нескольких нестандартных ( со - храняемых в тайне и периодически изменяемых ) адресов обращения к про - граммам и их отдельным блокам 4. Дублирование программ с обязательным сравнение перед исполнением , хотя бы двух копий защищаемых программ 5. Криптографическое закрытие программ , причем снятие шифра должно осу - ществляться непосредственно перед использованием Все перечисленные меры сравнительно несложно реализуются программным путем , причем содержание соответствующих программ очевидно Наиболее эффективным методом предупреждения несанкционированного использования программ является метод модульного диалога , суть которого может быть представлена следующим образом При разработке каждого программного модуля в нем предусматриваются не - которые скрытые процедуры ( сложение по модулю некоторых четных разрядов предъявленного кода или т п .). Команды этих процедур шифруются и распола - гаются в определенных местах модуля , сохраняясь в тайне Кроме того , опреде - ляется некоторый код , являющийся функцией содержания модуля ( например , совокупность разрядов , выбранных из процедур модуля в определенном поряд - ке ). Этот код хранится в защищенном поле памяти Тогда при обращении к мо - дулю может быть осуществлена дополнительная проверка , как на санкциониро - ванность обращения , так и на подмену программ и внесения в них несанкциони - рованных изменений Для повышения уровня защиты контрольные процедуры и контрольные коды могут периодически изменяться 348 Глава 17. Программные методы защиты Защита от копирования Система защиты от кодирования или система защиты авторских прав — это комплекс программных или программно - аппаратных решений , обеспечивающих затруднение или запрещение нелегального определения , использования и ( или ) изменения программных продуктов Наиболее часто встречающийся способ распространения программ ( рассыл - ка или передача на магнитных носителях ) накладывает самые жесткие требова - ния на систему защиты При этом у пользователя остается возможность практи - чески неограниченных экспериментов с защищенным программным продуктом Сформулируем некоторые априорные требования , выполнение которых су - щественно повысит надежность системы защиты от копирования • Некопируемость дисков ( если это необходимо по условиям распространения ) автоматическими копировщиками Данный пункт гарантирует , что для пони - мания принципа некопируемости необходимо будет ручное изучение структу - ры диска • Невозможность применения стандартных отладочных средств при изучении ими логики работы защищенных программ без дополнительных манипуляций с кодом программы или без платы аппаратного отладчика В данном случае непрофессионал или программист средней квалификации скорее всего не сможет “ пройти ” защищенную программу отладчиком • Некорректное дизассемблирование защищенной программы или ее сущест - венно важных фрагментов при применении стандартных пакетов Это гаран - тирует , что для дизассемблирования , в лучшем случае , придется писать спе - циальную программу • Невозможность трассировки по существенно важным прерываниям с помо - щью стандартных средств При этом будет скрыт обмен программы с “ внеш - ним миром ”, — диском , DOS и т д • Затрудненность изучения структуры распознавания индивидуальных пара - метров АС или технологического анализа применяемых аппаратных средств защиты Подразумевается необходимость такого выбора индивидуальных параметров , чтобы они редко повторялись и трудно обнаруживались ; в слу - чае применения аппаратных ключей — чтобы их вскрытие не давало сущест - венной информации об их работе Системы защиты от копирования , как правило , состоят из следующих компо - нентов • Модуль проверки недублированной или оригинальной информации — прове - ряет наличие некопируемых признаков на дискете или оригинальной для дан - ной АС информации • По размещению этого модуля можно выделить три основных типа системы защиты Программы_ядра_системы_безопасности'>Программы_ядра_системы_безопасности_349'>Программы ядра системы безопасности 349 • система с “ навесным ” проверочным модулем , созданным по технологии файлового вируса ; • системы с внешним проверочным модулем , вынесенным в отдельную про - грамму ; • системы с внутренними функциями проверки • Модуль защиты от просмотра и анализа логики системы • Модуль согласования с защищенными структурами — обеспечивает пра - вильную работу защищенных программ и адекватное восприятие защищен - ных данных в случае легальных копий Программы ядра системы безопасности Все средства , методы , мероприятия , используемые в АС для ЗИ , должны объ - единяться в единый механизм защиты При этом вполне естественно возникает вопрос об организации управления этим механизмом Для этого в АС выделяется специальный компонент , называемый ядром системы безопасности Комплекс ядра системы безопасности должен выполнять следующие функ - ции : • загрузка программ защиты ; • установка и контроль установки регистров границы зон памяти ; • контроль своевременности и надежности , уничтожения остаточной информа - ции , т е данных , содержащихся на полях ЗУ , после выполнения задания ; • проверка условий разрешения доступа ; • проверка распределения и использования паролей и кодов ; • включение терминалов пользователей в число работающих и выключение их из этого числа после завершения работы или после обнаружения несанкцио - нированной деятельности ; • создание и ведение массивов данных и полномочий пользователей ; • текущий контроль использования данных о полномочиях пользователей ; • некоторые вспомогательные функции Основными функциями ядра системы безопасности являются контроль , реги - страция , уничтожение и сигнализация Программы контроля Основное назначение программы контроля состоит в контроле состояния ос - новных компонентов механизма защиты , соблюдение правил использования за - щищаемых данных и соблюдение правил использования механизма защиты Контроль состояния компонентов механизма защиты заключается в про - верке их исправности и способности выполнять свои функции В простейшем случае программы контроля представляют собой обычные диагностические про - граммы , с помощью которых проверяется работоспособность технических и про - 350 Глава 17. Программные методы защиты граммных средств защиты В развитых вариантах для контроля разрабатывает - ся специальный пакет программ Под регистрацией в современных системах обеспечения безопасности ин - формации понимают совокупность средств и методов , используемых для регу - лярного сбора , фиксации , обработки выдачи сведений о всех запросах , содер - жащих обращение к защищаемым данным Наиболее распространенной формой регистрации является программное ведение специальных регистрационных журналов В регистрационном журнале рекомендуется фиксировать время по - ступления запроса , имя терминала , с которого поступил запрос , и т п события Однако , если не принять специальных мер , то при систематическом сборе оста - точной информации из журналов можно непосредственно получить защищае - мую информацию , а считав пароли , можно замаскироваться под зарегистриро - ванного пользователя и получить несанкционированный доступ к данным в со - ответствии с его полномочиями Поэтому надежная ЗИ невозможна без принятия мер для своевременного уничтожения остаточной информации Такое уничтоже - ние может быть надежно осуществлено двух -, трехкратной записью в соответст - вующих областях памяти произвольной комбинацией нулей и единиц Под аварийным уничтожением информации понимают такое ее уничтожение , которое осуществляется по специальным командам в тех случаях , когда обна - руживается неотвратимая опасность несанкционированного доступа Осуществ - ляется оно программными средствами путем посылки в соответствующие облас - ти памяти комбинаций нулей и единиц Программы сигнализации предназначены , с одной стороны , для предупреж - дения пользователей о необходимости соблюдать предосторожности при работе с секретными данными , а , с другой , — для своевременного предупреждения специалистов службы безопасности , администрации и пользователей АС о не - санкционированных действиях Первый вид сигнализации осуществляется путем автоматического формиро - вания и присвоения специального признака ( грифа секретности ) всем выдавае - мым на печать или устройство отображения документам , содержащим защи - щаемую информацию Второй вид сигнализации осуществляется путем формирования и выдачи ( подачи ) службе безопасности , администрации и пользователям АС специаль - ных сигналов обнаружения попыток несанкционированных действий , следствием которых может быть несанкционированный доступ к защищаемой информации |