Как объект защиты информации

Вид материалаДокументы

Содержание


Владельцы файлов
Права доступа к файлам
47. Возможности наиболее известных средств совершенствования разграничения доступа ОС Linux.
LIDS обеспечивает следующую защиту
RSBAC (Rule Set Based Access Control for Linux)
48. Сравнительный анализ средств усовершенствования системы разграничения доступа ОС Linux.
49. Подходы к защите информационных систем.
Устойчивость к взлому
Аппаратные ключи
Подобный материал:
1   2   3   4   5   6   7   8
46. Возможности стандартной системы разграничения доступа ОС Linux.

Linux - это многопользовательская ОС. Каждый пользователь получает асcount (регистрируется в системе), который включает имя пользователя, домашний каталог и т.д. В добавление к регистрации реальных людей, регистрируются несколько специальных пользователей, что имеют некоторые привилегии. Важнее всего среди них пользователь - root (суперпользователь, администратор).

Владельцы файлов

Чтобы защитить файлы каждого пользователя от плохого влияния других пользователей, UNIX поддерживает механизм, известный, как система прав доступа к файлам, что основана на дискреционном управлении доступом. Владельцу файла предоставляются привилегированные права доступа к файлу (например, право определять права доступа для других пользователей).

Права доступа к файлам

Права доступа к файлам задаются, обычно, в виде списков контроля доступа (СКД) (Access Control Lists - ACL). В этих списках для каждого возможного субъекта доступа определяется перечень операций, которые он может выполнить над файлом.

Под субъектами доступа понимают пользователей или группы пользователей.Определенные права определенным субъектам доступа (например, суперпользователь, владельцу) присваиваются по умолчанию:

Ø суперпользователь имеет все права;

Ø пользователь-владелец имеет право изменять явно указанные права доступа, атрибуты SUID, SGID и, возможно, передавать владение файлом другому пользователю или группе.

По отношению к символическим связям права доступа вообще не имеют значения. По отношению к каталогам:

- право на чтение дает возможность получить имена файлов, что содержатся в каталоге (и только);

- право на запись дает возможность создавать и удалять файлы в каталоге;- право на выполнение дает возможность:

1) получить атрибуты файлов (если разрешенное чтение каталога);

2) получить доступ к файлам, что содержатся в каталоге (если такое право есть для всех каталогов на пути к данному).

Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится.


47. Возможности наиболее известных средств совершенствования разграничения доступа ОС Linux.


(Linux Intrusion Detection/Defence System – система выявления и защиты от вторжения)

LIDS - это Linux Intrusion Detection/Defence System - система выявления и защиты от вторжения. Это патч для ядра Linux, который добавляет много новых возможностей для повышения безопасности ОС целом. LIDS позволяет запретить или ограничить доступ к файлам и памяти, блочным устройствам, сетевым интерфейсам, запущенным программам и т.д. даже для root’а. Правильнее сказать, именно для root’а, поскольку ограничить доступ для простого пользователя можно и стандартными средствами Linux. Данная система предназначена для защиты от хакера, который воспользовавшись "дирою" в какой-либо программе, получил правая root’а.

LIDS обеспечивает следующую защиту:
  • LIDS может защитить важные файлы и директории на вашем жестком диске независимо от типа файловой системы, так что никто (даже суперпользователь) не сможет их изменить
  • LIDS может также защитить важный процесс от уничтожения.
  • LIDS может защитить любую операцию введения-выведения от несанкционированной программы. Она может также защитить ваш жесткий диск, включая защиту MBR .
  • LIDS может защитить ваши чувствительные файлы в системе, чтоб сберечь их от незарегистрированных пользователей (включая суперпользователя), а также от несанкционированной программы.
  • Посредством LIDS можно запретить загрузку/выгрузку модулей ядра, это защитит систему от запуска модулей-троянов, собранных хакером для собственных нехороших потребностей и т.д.
  • LIDS позволяет запретить перезапуск системы, так что человек, что не находится у непосредственной близости от кнопке RESET, перезагрузить систему не сможет.
  • Выявление сканирования. В LIDS имеется встроенный детектор сканирования портов, что находит большинство известных способов сканирования. Работает этот детектор на уровне ядра, то есть отключить его невозможно.

RSBAC (Rule Set Based Access Control for Linux)

RSBAC (Rule Set Based Access Control for Linux - система управления доступом ОС Linux на основе набора правил) - это надстройка над ядром Linux, а также комплект утилит управления, который позволяет создать на базе любого дистрибутива Linux защищенную систему. Реализация механизмов обеспечения безопасности выполнена на уровне ядра системы и позволяет эффективно контролировать все процессы. Системные вызовы, что задевают безопасность, дополняются специальным кодом, что выполняет обращение на центральном компоненте RSBAC. Этот компонент принимает решение о допустимости данного системного вызова на основе многих параметров:

- типа приглашаемого доступа (чтение, запись, выполнение);

- субъекта доступа;- атрибутов субъекта доступа;

- объекта доступа;

- атрибутов объекта доступа.

Функционально RSBAC состоит из нескольких модулей, где центральный компонент принимает комплексное решение, основываясь на результатах, что возвращаются каждым из активных в данный момент модулей (какие модули задействовать, а также в каком объеме, что определяется на этапе настройки системы).

В RSBAC включенные следующие модули, реализующие разные функции в модели управления доступом:

· MAC (Mandatory Access Control). Модуль MAC обеспечивает принудительное управление доступом на основе классической модели Белла-Лападули, цель которой - не допустить перетекания информации из более секретных объектов в менее секретные.

· FC (Functional Control). Данный модуль реализует простую ролевую модель, в которой доступ к системной информации разрешен только администраторам системы, а доступ к информации, связанной с безопасностью, разрешенный только офицерам безопасности.

· SIM (Security Information Modification). Модуль SIM обеспечивает возможность модификации данных, помеченных как «security information», только администраторами безопасности.

· PM (Privacy Model). Данный модуль реализует модель безопасности, направленную на обеспечение частности личных данных. Основная идея заключается в том, чтоб пользователь мог получить доступ к персональным данным только если они ему необходимы для выполнения текущей задачи и если он авторизован на ее выполнение. Кроме того, цель выполнения текущей задачи должна совпадать с целью, для которой эти данные собранные или должно быть получено согласие субъекта этих данных

.· MS (Malware Scan). Этот модуль обеспечивает сканирование всех файлов на наличие вредного кода. Дополнительно, данный модуль может контролировать все запросы на чтение файлов и соединений TCP/UDP. В текущей версии модуль умеет находить вирусы Bliss.A, Bliss.B, VHP-648, Israeli, Eddie2, Dark Avenger и 1704C.

· FF (File Flags). Модуль FF предоставляет механизм установки и проверки флагов на файлы и каталоги. Причем, модифицировать флаги разрешено только офицерам безопасности системы. Пока поддерживаются флаги execute_only (для файлов), read_only (для файлов и каталогов), search_only (для каталогов), secure_delete (для файлов), no_execute (для файлов) и add_inherited (для файлов и каталогов). Значение флагов ясное из их названия и, конечно, знакомое тем, кто пользовался механизмами атрибутов и прав в файловой системе Novell NetWare.

- RC (Role Compatibility). Данный модуль определяет 64 роли и 64 типа для каждого вида объекта. Виды объектов могут быть следующими: file, dir, dev, ipc (interprocess communication), scd (system control data), process. Для каждой роли отношения к разным типам и другим ролям настраивается индивидуально, в зависимости от вида запроса. Используя данный модуль, можно настроить разделение обязанностей, между администраторами избежав при этом назначения избыточных прав.

· AUTH (Authorization Enforcement). У этого модуля задача очень конкретная — контролировать запросы процессов на изменение текущего идентификатора пользователя. Под контролем данного модуля программе недостаточно просто иметь установленный бит suid ей необходимый специальный атрибут, что позволяет такое действие. Причем, он может быть, как глобальным (uid может быть изменен на ком-либо), так и учетным (процесс может изменить свой uid только на определенные).

· ACL (Access Control List). ACL - самый «прикладной модуль» из данного списка. Он определяет, какие субъекты могут получить доступ к данному объекту, и какие типы запросов им разрешены. Субъектом доступа может быть как простой пользователь, так и роль RC и/или группа ACL. Объекты группируются по видам, но каждый имеет собственный список ACL. Если права доступа к объекту не заданы явно, они наследовались от родительского объекта с учетом маски наследования прав. Эффективные права доступа субъекта к объекту состоят из прав, полученных непосредственно, и прав, полученных через назначение на роль или членство в группе ACL. Такой подход к назначению прав покажется очень знакомым специалистам, работающим с NetWare. Более того, утилита управления acl_grant имеет режим совместимости по названиям прав с аналогичной утилитой NetWare.

Вся дополнительная информация, которая используется RSBAC, сохраняется в дополнительном каталоге, какой доступный только ядру системы. И зависимость от описанного уровня абстракции выполняемых задач, а необходимой степени защиты выбираются разные сочетания модулей. Можно обойтись списками ACL - для большинства применений этого достаточно, можно защитить системную информацию и существенную с точки зрения безопасности информации, используя ролевую модель.

Система RSBAC четко разграничивает администратора системы и администратора безопасности. Первый занимается по-прежнему - обеспечением корректности функционирования системы. Второй - конфиденциальностью данных. Сам по себе второй администратор - обычный пользователь, который не может удалять системные файлы и переустанавливать программы.

Каждый из администраторов имеет свои атрибуты, каждый имеет исключительное право на их модификацию. Первый всегда администратор системы - если он закроет доступ в некоторый системный каталог, то администратор безопасности даже не сможет до него добраться. Содержание домашнего каталога администратора также в полной неприкосновенности. Второй, но далеко не последней - администратор безопасности - может ограничить первого как по доступу к персональным данным пользователям, так и по изменению некоторых параметров в системе.

Таким образом, выполняется основная задача - жесткое разграничение доступа в системе. Аутентификацией и авторизацией RSBAC не занимается - с подобными задачами успешно исправляются другие средства.

Такой универсальный подход позволяет не только защитить конфиденциальные данные, но, и даны в системе, добавляя дополнительный уровень защиты. Для того чтобы преодолеть барьеры RSBAC нужно получить права администратора безопасности - а это отнюдь не просто.

Security-Enhanced Linux

Вторая система - Security-Enhanced Linux имеет такое же назначение, как RSBAC и также является дополнениями к ядру с набором утилит .

Security-Enhanced Linux обеспечивает гибкую архитектуру принудительного контроля доступа (flexible mandatory асcess control architecture - FLASK) использующий развитой язык описания конфигураций политики безопасности. С использованием этого языка описаний разработанная конфигурация системы, что реализовывает идеологию Type Enforcement -это матрица доступа, организованная в классы эквивалентности. Так как обычная матрица доступа является двухмерной таблицей, по одной осе которой размещаются субъекты доступа (процессы, пользователи), по другой - объекты доступа (файлы, каталоги, устройства и другие ресурсы), а в ячейках на пересечении указываются операции, которые субъект может выполнять над объектом, то в системе с большим количеством сущностей построить такую матрицу может оказаться просто невозможным. Поэтому в данной системе объединяют объекты (похожих по свойствам) и субъекты (похожих по функциям) в классы эквивалентности и строят матрицу для классов, проведя, фактически, типизацию сущностей.

В терминологии данной системы политика безопасности определяет набор доменов и типов. Каждый субъект (процесс) в каждый момент времени, ассоциируемый с определенным доменом, а каждый объект - с определенным типом. Как и в классической матрице, в политике определяются возможные виды доступа доменов к типам и допустимые способы взаимодействия между доменами. В зависимости от типов, что используются, может происходить автоматическое переключение домена.

В политике безопасности также определенный набор ролей. Для пользователей первичная установка роли происходит в процедуре регистрации (login), а переключение роли - посредством команды newrole (в некотором роде аналог su). Системные процессы работают с ролью system_r, обычные пользователи — с ролью usr_r, а для системных администраторов зарезервированная роль sysadm_r.

Для каждой роли в политике безопасности задается набор доменов, в которых допускается работа с этой ролью. Всем предназначенным для пользователя ролям назначается стартовый домен: user_t для роли user_r и sysadm_t для роли sysadm_r. По мере выполнения программ, что запускаются из стартовой оболочки shell, может происходить автоматическое перемещение в другие домены для обеспечения изменения привилегий. Выбор домена, в который должно быть проведено перемещение осуществляется не только исходя из типа программы, что запускается, но и с учетом текущего домена. В частности, при запуске браузера Netscape обычным пользователем (текущий домен user_t), произойдет перемещение в домен user_netscape_t, а при запуске этой же программы администратором (текущий домен sysadm_t) перемещения произойдет в другой домен-sysadm_netscape_t. Такой подход не позволит программе выполнить потенциально опасные действия - соответствующий домен серьезно ограничит права администратора. В обычных дистрибутивах Linux в случае с браузером Netscape проблема развязывалась проще - в настройке по умолчанию программа просто не запускалась с правами root.

Для администраторов в Security-Enhanced Linux заданные достаточно жесткие ограничения. В частности, нельзя зайти в систему отдаленно - при необходимости такой процедуры необходимо сначала провести вход обычным пользователем, а затем переключаться на административную роль посредством команды newrole, что проводит дополнительную аутентификацию. Впрочем, и в большинстве современных Unix-подобных системах администратору также запрещенный отдаленный вход и для этой цели используется команда su. Пример с браузером не случайный - ему уделено особенное внимание в перечне цели политики безопасности. Во избежание выполнения браузером вредного динамического кода (Java-апплеты, сценарии JavaScript), для него определенный специальный домен (точнее, два домена — для пользователей и администраторов), что будет обмежевывать полномочие. Причем, определяются два подтипа: один ограничивает доступ браузера к локальным файлам только чтением, другой допускает запись в них. Политика безопасности должна контролировать разные формы прямого доступа к данным, поэтому в ней определяются разные типы для устройств памяти ядра (kernel memory device), дисковых устройств, специальных файлов в каталоге /proc, а также разные домены для процессов, которым необходимый доступ к этим ресурсам. Обеспечение целостности ядра достигается определением разных типов для загрузочных файлов, объектных файлов модулей, что подключаются, утилит для работы с модулями и файлов конфигурации модулей. Соответствующим процессам, которым нужное право записи в эти файлы, назначаются специальные домены.Системное ПО, файлы конфигурации и журналы также нуждаются в защите. Для этой цели также определяются отдельные типы для системных библиотек, выполняемых файлов, файлов конфигурации и журналов, а работающим с ними программам и ролям назначаются специальные домены.

Запись журналов может вести только система регистрации (syslog), а модификация системного ПО проводится только администраторами. Имеется решение и для уже упомянутой проблемы, свойственной программам с повышенными привилегиями (с установленными флагами suid или sgid). Для таких программ также назначаются отдельные домены, что не позволяют им превысить необходимые полномочия.

Политика безопасности уделяет особенное внимание тщательному разделению процессов по привилегиям и защита привилегированных процессов от выполнения ошибочного или опасного кода. Путем установки атрибута ехecutable только на необходимые для выполнения привилегированным процессом программы, политика безопасности может достичь того, что при входе в привилегированный домен процесса будет разрешено выполнение только стартовой программы для данного домена, динамического компоновщика и системных библиотек, что разделяются. Администратор ограничен выполнением системных программ и программ, созданных им самим — выполнение программ, созданных другими пользователями запрещено. Более того, система минимизирует взаимодействие между обычными предназначенными для пользователя процессами и системными. Только системным процессам и администраторам разрешенный доступ к записям в procfs, что относится к другим доменам; ограничено использование вызова ptrace по отношению к другим процессам и доставка сигналов между разными доменами. При использовании файловой системы также употреблены дополнительных мероприятий осторожности: домашние каталоги администраторов и обычных пользователей отнесены к разным типам; создаваемым в каталогах общего пользования (/tmp и др.) файлам также присваиваются разные типы, в зависимости от домена, который их создал.


48. Сравнительный анализ средств усовершенствования системы разграничения доступа ОС Linux.
  • Сложность. Самой сложной системой является Security-Enhanced Linux (необходимости изучения специального языка конфигурации). Система RSBAC также сложная и это наибольшая ее проблема. Использование сложных моделей доступа требует очень четкого контроля по логике превращений и проверок доступа - малейшая ошибка и путем хитрых комбинаций система теряет контроль над ситуацией.
  • Самой простой из рассмотренных систем имеется LIDS.
  • Гибкость. Наилучшей системой в данном отношении является RSBAC.
  • Универсальность. Security-Enhanced Linux не отмечается универсальностью и более ориентирована на создание специализированных решений (построение маршрутизаторов и сетевых экранов, но непригодная для комфортной работы пользователей). RSBAC предоставляет более универсальные решения.
  • Надежность. За данным критерием RSBAC и Security-Enhanced Linux занимают рядом первые места, но в связи с их сложностью они не нашли такого широкого использования как LIDS.


49. Подходы к защите информационных систем.

Устойчивость к прямому копированию

Основой любой защиты можно считать ее способность к идентификации носителя, с которым она попала к пользователю. И не просто к идентификации, а к способности отличить данный носитель от нелегальной копии. Причем, уровень защиты на данном этапе должен быть такими, чтобы та условная метка или характеристика, которая была присуща данному носителю, не воспроизводилась любыми средствами битового копирования. Эффективность данного этапа определяет стойкость защиты к элементарному копированию, когда пользователю достаточно запустить CloneCD, и не о чем больше не думать. Следует отметить, что многие системы защиты используют различные физические метки, по которым программа сможет идентифицировать подлинность носителя. Как правило, физически установленные метки плохо копируются, но неплохо эмулируются специальными драйверами, что делает защиту, основанную только на физических метках, очень уязвимой. Еще, как правило, все системы защиты представляют собой "вставную челюсть". То есть модуль, который отвечает за идентификацию диска, в большинстве случаев не может противостоять хакерской атаке, в то время как менее важные участки кода оказываются хорошо защищенными.

Наиболее эффективным можно считать способ, при котором на диск не наносятся специальные метки, то есть, когда диск спокойно можно копировать, и распространять его содержимое, но старт будет производиться только при наличии оригинального диска.

Подобные защиты основываются на том факте, что любой диск (СD/DVD/R/RW) имеет ряд уникальных характеристик, присущих только одному диску, и эти характеристики теряются при копировании на другой диск. Их реализация в конкретных системах (Star-Force, Tages) остается тайной за семью печатями.


Устойчивость к взлому

Второй по счету, но не по важности компонент защиты - это устойчивость к взлому. Если защиту не удается обойти копированием и эмулированием, хакеру необходимо при помощи механизмов дизассемблирования и пошаговой отладки просканировать приложение, выделить логику защиты и нейтрализовать ее. Соответственно, если у защиты имеется надежный способ работы с метками (или с характеристиками носителя), но модуль идентификации не защищен должным образом, то подобную систему нет смысла использовать, так как она не выдержит даже минимальной хакерской атаки.

Аппаратные ключи

Часто для реализации нераспространения продукта при его эксплуатации используются электронные ключи (HASP) или Sentinel. HASP представляет собой программно-аппаратный комплекс содержащий код, процедуры или любые другие уникальные данные, по которым защита может идентифицировать легальность запуска.

Электронный ключ - это современное средство защиты от незаконного копирования программ и несанкционированного доступа к ним. Защита состоит в том, что программа не работает в отсутствие электронного ключа, к которому она привязана. Сейчас электронные ключи становятся все более функциональными и предоставляют разработчику все больше разнообразных возможностей защиты программного обеспечения и данных.

Основой ключей HASP является специализированная заказная микросхема (микроконтроллер) - ASIC (Application Specific Integrated Circuit), имеющая уникальный для каждого ключа алгоритм работы.

Принцип защиты состоит в том, что в процессе выполнения защищённая программа опрашивает подключённый к компьютеру ключ HASP. Если HASP возвращает правильный ответ и работает по требуемому алгоритму, программа выполняется нормально. В противном случае (по усмотрению), она может завершаться, переключаться в демонстрационный режим или блокировать доступ к каким-либо функциям программы.

Большинство моделей ключей HASP имеют энергонезависимую программно-перезаписываемую память (так называемую EEPROM). В зависимости от реализации HASP память может быть от одного до четырех килобитов).

Наличие энергонезависимой памяти дает возможность программировать HASP, размещая внутри модуля различные процедуры, либо хранить дополнительные ключи, а также:

· управлять доступом к различным программным модулям и пакетам программ;

· назначать каждому пользователю защищенных программ уникальный номер;

· сдавать программы в аренду и распространять их демо-версии с ограничением количества запусков;

· хранить в ключе пароли, фрагменты кода программы, значения переменных и другую важную информацию.

У каждого ключа HASP с памятью имеется уникальный опознавательный номер, или идентификатор (ID-number), доступный для считывания защищёнными программами. Идентификаторы позволяют различать пользователей программы. Проверяя в программе идентификатор HASP, пользователь имеет возможность предпринимать те или иные действия в зависимости от наличия конкретного ключа. Идентификатор присваивается электронному ключу в процессе изготовления, что делает невозможным его замену, но гарантирует надежную защиту от повтора. С использованием идентификатора можно шифровать содержимое памяти и использовать возможность ее дистанционного перепрограммирования.

Система HASP позволяет защищать программное обеспечение двумя различными способами: автоматически (стандартно) и вручную (через специальный API).