В.П. Мельников и др. - Информационная безопасность и защита информации (1022816), страница 60
Текст из файла (страница 60)
Они играют важную роль в превращении имени файла в номер индекса. Каталог— это файл, содержимым которого является набор записей, состоящих из номера индекса и имени файла, включенного в каталог. Составное имя — это строка символов, завершающаяся пустым символом и разделяемая наклонной чертой («/») на несколько компонент. Каждая компонента, кроме последней, должна быть именем каталога, но последняя компонента может быть именем файла, не являющегося каталогом. Имя корневого каталога — «/».
В ОС 13Х1Х длина каждой компоненты определяется 14 символами. Таким образом, вместе с двумя байтами, отводимыми на номер индекса, размер записи каталога составляет 16 байт. Традиционно в файловых системах ОС 13МХ за доступ ко всем типам файлов (файлы, справочники и специальные файлы) отвечают девять бит, которые хранятся в (-узле. Первая группа из трех бит определяет права доступа к файлу для его владельца, вторая — для членов группы владельца, третья— лля всех остальных пользователей.
Например, права доступа «г»»хг-хг — » к файлу означают, что владелец файла имеет полный доступ, члены группы имеют воз- 2б3 можность чтения и выполнения, все остальные имеют возможность только читать данный файл. Для справочника установка бита выполнения «х» означает возможность поиска (извлечения) файлов из этого справочника. Такая система зашиты файлов существует достаточно давно и не вызывает существенных нареканий. Действительно, для того чтобы вручную, т.е. не используя системные вызовы и команды, изменить права доступа к файлу, необходимо иметь доступ к области 1-узлов.
Для того чтобы иметь доступ к области (-узлов, необходимо изменить права доступа специального файла (например, /г(еч/гоо1), биты доступа которого также хранятся в области 1-узлов. Иными словами, если случайно или умышленно не испортить права доступа ко всем файлам системы, установленные по умолчанию (обычно правильно) при инсталляции, то можно с большой степенью вероятности гарантировать безопасность работы системы (в смысле выполнения ПБ).
По принципам построения ОС ())Ч(Х необходим еше четвертый бит, опрелеляющий права на выполнение исполняемого файла. Четвертый бит в самом общем случае интерпретируется как возможнос~ь смены идентификатора пользователя. Его смысловая нагрузка меняется в зависимости от того, в какой группе бит доступа он установлен. Если четвертый бит установлен в группе бит прав доступа владельца (зешЫ), то данная программа выполняется для любого пользователя с правами владельца этого файла. В любой ()МХ-системе таких команд достаточно много.
Приведем тривиальный пример использования незарегистрированного файла с установленным битом ае1иЫ. 1. Один раз, узнав пароль какого-либо пользователя, злоумышленник создает копию командного интерпретатора в своем домашнем справочнике или еще где-нибудь, чтобы его не узнали, например в глубоком дереве в /цзг/1тр (заметим, что рекурсивная работа с деревом весьма ограничена по глубине и составляет величину порядка 15).
2. Делает владельцем файла другого пользователя и его правами устанавливает бит зегцЫ. 3. До тех пор пока данный файл не будет уничтожен, злоумышленник будет пользоваться правами другого пользователя. Очевидно, что если в этом примере злоумышленник случайно один раз узнает пароль суперпользователя, то он будет обладать полностью его правами, Поэтому необходимо регулярно проверять все файловые системы на наличие незарегистрированных файлов с установленным битом зегцЫ. 264 Если четвертый бит установлен в группе бит прав доступа членов группы (зе1яЫ), то данная программа выполняется для любого пользователя с правами членов группы этого файла. Использование бита зе1яиЫ в ()й!!Х-системах встречается гораздо реже, чем бита зе1шд, однако все сказанное относительно возможных угроз при установке бита зегиЫ справедливо для бита зе1яЫ.
Если бит зегя!г! установлен для справочника, то это означает, что для всех файлов, создаваемых пользователем в этом справочнике, групповой идентификатор буде~ установлен таким же, как у справочника. Если четвертый бит установлен в группе бит прав доступа всех остальных пользователей (з1!сКу), то это дает указание операционной системе делать специальный текстовый образ выполняемого файла. На сегодняшний день для выполняемого файла зйсКу бит обычно не используется. Он используется только для справочников. Его установка для справочника означает, что пользователи не имеют права удалять или переименовать файлы других пользователей в этом справочнике. Это необходимо прежде всего для справочников /1гпр и /изг/ 1гпр, чтобы один пользователь случайно или специально не смог повредить процессу работы другого пользователя.
Самой распространенной ошибкой администратора является установка в переменную окружения РАТН значения текущего справочника. Это делается для удобства, чтобы не набирать перед каждой командой текущего справочника символы «,/». Хуже все~о, если это значение установлено в начале (например: РАТН=.:/Ь!и:/цзг/Ь!и:/егс). В этом случае достаточно злоумышленнику поместить в справочник /1гпр или /цвг/1гпр собственные образы наиболее распространенных команд (!з, рз и т.п.) и последствия набора безобидной последовательности команд (например, сг) /1щр; !з) будут трудно предсказуемы. Обычно по умолчанию в переменной окружения РАТН текущий справочник не установлен.
Плохо для системы могут также закончиться попытки запуска неизвестных пользовательских программ из их домашних или общих справочников. 51!сКу бит для справочника может установить только администратор. Очевидно, что он может и удалить файлы любого пользователя в этом справочнике. Для повышения надежности функционирования системы следует установить збсКу биты для всех общих справочников.
Важной особенностью реализации системы защиты информации является очистка битов зе1цЫ, зе1яиЫ и з1!сКу для файлов, в которые производится запись. При этом очистка битов делается даже для файлов, принадлежащих тому же пользователю. Очистка перечисленных битов для справочников не производится. !!екоторые (3)х)!Х-системы (например, Бо!апз) предоставляют дополнительные возможности по управлению правами доступа к 265 файлам путем использования списков управления доступом (Ассезз Сопгго! ЕЫ). Данный механизм позволяет для каждого пользователя или для отдельной группы установить индивидуальные права доступа к заданному файлу. При этом списки доступа сохраняются всеми системными средствами копирования и архивирования. Нельзя сказать, что введение этого механизма принципиально улучшает защиту файлов, но он вносит некоторую гибкость в процедуру Формирования прав доступа к Файлам.
Рассмотрим значение системной переменной шпазК. С ее помощью устанавливаются по умолчанию права доступа к файлу при его создании. Значение переменной цшааК устанавливает, какие биты будут маскироваться. Если значение переменной цгпазК по каким-либо причинам будет изменено, то это может привести к непредсказуемым последствиям. В силу этого каждому пользователю необходимо явным образом прописать значение переменной шпазК в стартовом файле (.ргойе, или .сзпгс, или т.п.). Необходимо правильно установить права доступа к специальным файлам. При этом нужно помнить, что для одного и того же физического устройства могут существовать несколько специальных файлов в зависимое~и от способа доступа (например, /г(еу/ гоог и /деу/ггооГ).
Следуе~ обрастить внимание на обеспечение режима защитны информации при импортировании данных из других систем. В самом общем случае архивныс программы сбрасывают режимы файлов, которые могут повлиять на безопасность системы. Тем нс менее число версий архивных программ и их реализации в различных ()МХ-системах весьма значительно. Например, некоторые версии команды Гаг поддерживают опции, при которых не изменяется принадлежность файла владельцу и группе. Некоторые ()Х1Х- системы позволяют копировать специальные файлы с помощью команды гаг.
С особым вниманием следует пользоваться командой срю, поскольку с ее помощью можно сделать копию файлов с полным сохранением всех битов (зегцЫ, зегяЫ и вйсКу) и принадлежности владельцам и группе. При монтировании файловых систем, созданных или обрабатывавшихся на других системах, могут возникнуть те же проблемы, что и для импортированных файлов. Для файловых систем имеются еще и дополнительные проблемы. Первая проблема — файловая система, перенесенная с другой системы, может быть испорчена. Логические ошибки в файловой системе могут быть исправлены командой (КсК перед монтированием.