Защита информации в UNIX. Файлы и их атрибуты

advertisement
К.В. Звонарев
Программно-аппаратные
средства обеспечения
информационной безопасности
ТЕМА ЛЕКЦИИ
Защита информации в UNIX. Файлы и их
атрибуты.
Защита информации в UNIX. Файлы и их
атрибуты.
Файлы в UNIX бывают нескольких типов: обычные
файлы, каталоги, файлы устройств, специальные
файлы
(сокеты
и
именованные
каналы),
символические ссылки.
Каждый файл состоит из двух частей:
•Область метаданных (inode). Содержит размер,
формат, атрибуты (права доступа, время создания,
модификации и т.п.) файла, а также информацию о
физическом размещении на диске данных файла.
•Данные файла.
Защита информации в UNIX. Файлы и их
атрибуты.
Имени файла нет ни в самих данных, ни в
метаданных. Имя – атрибут не файла, а файловой
системы. Вместо этого файл имеет уникальный
цифровой идентификатор – inode.
Имена файлов хранятся в файлах специального типа
– каталогах. Имя файла существует только в составе
каталога.
Содержимое файла ставится в соответствие его имени
через идентификатор inode. Механизм соотнесения
имени файла, его метаданных и данных называют
жесткой ссылкой (hardlink).
Защита информации в UNIX. Файлы и их
атрибуты.
Рассмотрим, например, структуру каталога
/home/user1. Данный файл содержит следующую
информацию:
inode
имя_файла
10245
.
12432
..
8672
file1.txt
12567
file2
19672
file3
Еще раз подчеркнем, что каталог это просто файл,
содержащий информацию о находящихся в нем
файлах.
Защита информации в UNIX. Файлы и их
атрибуты.
Свойства имен файлов:
• Имя файла может существовать только в том разделе, что и
inode, с которым он связан жесткой ссылкой.
• На один inode может быть создано произвольное количество
жестких ссылок, т.е. один и тот же файл может выступать под
разными именами, и все они будут равноправными.
Редактирование одного из таких файлов будет менять
содержимое всех остальных файлов, т.к. область данных и
метаданных одинакова для всех таких файлов двойников.
Любой из этих файлов можно удалить, что никак не скажется
на остальных файлах.
• Файл считается удаленным, когда уничтожены все имена,
ссылающиеся на его inode и закрыта последняя программа,
обращающаяся к файлу. Поскольку содержимое файла
оторвано от его имени, восстановление удаленного файла по
его имени невозможно.
Защита информации в UNIX. Файлы и их
атрибуты.
Защита информации в UNIX. Файлы и их
атрибуты.
Два имени файла, связанных жесткой ссылкой с
одним inode, не являются копией один другого, т.к.
при копировании создаются новые области данных и
метаданных.
Для просмотра inode файла можно использовать
команду ls с опцией –i:
Внешне выглядящие по-разному файлы оболочек csh и
tcsh являются одним файлом. В третьей колонке
указывается число жестких ссылок.
Защита информации в UNIX. Файлы и их
атрибуты.
Создать жесткую ссылку можно командой ln:
ln file1 file2
Рассмотрим пример. Перейдем в каталог /home/user1:
cd /home/user1
В этом каталоге создадим файл:
cat > 1.txt
12345
<Ctrl>+<D>
Создадим жесткую ссылку на данный файл в каталоге /home/user2 под
названием 2.txt:
ln /home/user1/1.txt /home/user2/2.txt
Просмотрим содержимое файла 2.txt:
ee /home/user2/2.txt
Оно идентично содержимому файлу 1.txt. Удалим созданный файл 1.txt:
rm /home/user1/1.txt
Удаляется только имя файла из каталога user1, сам же файл остается на диске.
Команда
ee /home/user2/2.txt
отобразит содержимое файла (12345).
Защита информации в UNIX. Файлы и их
атрибуты.
Кроме жестких ссылок в UNIX существуют
символические ссылки (symlinks). Это аналог ярлыков
Windows.
В отличие от жесткой ссылки, символическая ссылка
адресует файл, который, в свою очередь, ссылается
на другой файл. Данные файла, являющегося
символической ссылкой, содержат только имя
целевого файла (с путем).
Команда ln с опцией –s создает символическую
связь:
ln –s имя_файла имя_ссылки
Защита информации в UNIX. Файлы и их
атрибуты.
Рассмотрим следующий пример. Создаем файл:
cat > /home/user1/1.txt
12345
<Ctrl>+<D>
Создаем символическую ссылку:
ln –s /home/user1/1.txt /home/user2/link
Защита информации в UNIX. Файлы и их
атрибуты.
Защита информации в UNIX. Файлы и их
атрибуты.
Выведем содержимое каталога user2:
Символическая ссылка является особым типом файла, об этом
говорит символ l в первой строке.
Размер файла 17 байт (5-я колонка) – в точности равно длине имени
целевого файла /home/user1/1.txt (17 символов).
При просмотре содержимого файла /home/user2/link, мы увидим
содержимое файла /home/user1/1.txt. Аналогично выполнение и
редактирование ссылки будет приводить к выполнению и
редактированию оригинального файла.
В отличие от жесткой ссылки, символическая ссылка может
ссылаться на файлы из другой файловой системы (раздела).
Удаление ссылки не приводит к удалению оригинального файла.
Защита информации в UNIX. Файлы и их
атрибуты.
Файлы в UNIX имеют двух владельцев: пользователя
и группу.
Это дает большую гибкость для
разграничения доступа к файлам.
организации
Создав группу и назначив ее владельцем некоторых
файлов с соответствующими правами доступа, можно
организовать совместный доступ к файлам для
любого состава пользователей.
Затем, чтобы какой-либо пользователь получил
доступ к файлам, его достаточно включить в эту
группу.
Защита информации в UNIX. Файлы и их
атрибуты.
Для просмотра владельцев файлов используется
команда ls –l:
Владельцем-пользователем становится пользователь,
создающий файл (более точно процесс, запущенный
пользователем).
Владелец-группа наследуется от владельца группы
каталога.
В Linux владельцем-группой становится первичная группа пользователя.
Защита информации в UNIX. Файлы и их
атрибуты.
Для изменения владельца файла предназначена команда:
chown newowner file
Данную команду может выполнять только администратор.
Для изменения группы-владельца используется команда:
chgrp newgroup file
Данную команду может выполнять владелец файла, но он
должен быть членом группы newgroup.
Для рекурсивной смены владельца для всех вложенных
файлов и подкаталогов некоторого каталога используется
ключ –R:
chown –R newowner /dir1
Защита информации в UNIX. Файлы и их
атрибуты.
Права доступа можно назначать для:
1. владельца файла
u (user)
2. владельца группы
g (group)
3. всех остальных
o (other)
Существует три права доступа:
1. чтение
r (read)
2. запись (изменение)
w (write)
3. выполнение
x (eXecute)
Защита информации в UNIX. Файлы и их
атрибуты.
Команда ls –l отображает список прав доступа к
файлу:
Защита информации в UNIX. Файлы и их
атрибуты.
Права доступа могут быть изменены только
владельцем файла или администратором. Для
этого используется команда chmod:
u
g 
chmod  
o 
 
a 
 
- 
 
 
r 
w file1 file2 file3
 
x
u, g, o рассмотрены ранее, a – все классы пользователей
(all), «+» − добавить право, «-» − отнять право, «=» присвоить право (установить указанное право и никакое
иное).
Защита информации в UNIX. Файлы и их
атрибуты.
chmod g-wx 1.txt
− лишит членов группывладельца файла 1.txt права на запись и
выполнение этого файла.
chmod a+w text − предоставит право на запись в
файл text для всех пользователей.
chmod –w text − отнимет у всех (включая
владельца) право на запись.
chmod g+x-w file
− добавляет право на
выполнение для группы и снимает право на запись.
Защита информации в UNIX. Файлы и их
атрибуты.
chmod u=x file − присвоит право на выполнение
файла владельцу (если до выполнения команды у
владельца были следующие права: rw-, то после
выполнения команды права станут такими: --x, т.е.
права на чтение и запись будут удалены).
chmod u+w, og+r-w file1 file2 − добавит
право на запись для владельца, право чтения для
группы и всех остальных, удалит право записи у
всех, кроме владельца.
Возможно рекурсивное применение команды с
ключом –R:
chmod –R g-r /home/user1 − отнимет право на
чтение у группы для каталога /home/user1 и всех
вложенных файлов и подкаталогов.
Защита информации в UNIX. Файлы и их
атрибуты.
В команде chmod можно использовать числовую
маску:
chmod 754 file
u
g
o
rwx r-x r-111 101 100
7
5
4
Это эквивалентно следующей команде:
chmod u=rwx, g=rx, o=r file
Защита информации в UNIX. Файлы и их
атрибуты.
Права доступа для разных типов файлов различны.
Для обычных файлов они очевидны.
Исполняемый
файл
может
быть
как
скомпилированным, так и скриптом (текстовый файл).
В последнем случае кроме права на выполнение
необходимо также и право на чтение.
Для символических ссылок права доступа не имеют
смысла, т.к. контролируются целевым файлом.
Право на изменение файла позволяет изменять
содержимое
файла,
но
не
удалять
или
переименовывать его. Для выполнения данных
действий необходимо право изменения (записи) для
каталога, в котором находится файл.
Защита информации в UNIX. Файлы и их
атрибуты.
Право на чтение для каталога позволяет получать
имена (и только имена) файлов каталога.
Чтобы получить дополнительную информацию о
файлах (например, командой ls –l) системе придется
заглянуть в метаданные файлов, а это требует право на
выполнение для каталога.
Право на выполнение для каталога также потребуется,
чтобы перейти в него (команда cd).
Этим же правом необходимо обладать и для всех
вышележащих каталогов.
Защита информации в UNIX. Файлы и их
атрибуты.
Права r и x действуют независимо.
Комбинацией этих прав можно создавать «темные»
каталоги, файлы которых доступны только в том
случае, если пользователь заранее знает их имена,
поскольку получение списка файлов запрещено.
Это часто используется на FTP-серверах.
Защита информации в UNIX. Файлы и их
атрибуты.
cd /home/user1
mkdir darkdir
ls –l
Превратим его в «темный» каталог:
chmod a-r+x darkdir
Поместим файл в каталог:
cp file1 darkdir
Перейдем в каталог
cd darkdir
и отобразим его содержимое:
В тоже время, можно спокойно просмотреть содержимое
файла, если пользователь знает его имя:
cat file1
Защита информации в UNIX. Файлы и их
атрибуты.
Особого внимания требуют права на запись для
каталога.
Создание и удаление файлов в каталоге требует
изменения его содержимого, а значит права на запись
в каталог.
Самое важное, что при этом не учитываются права
доступа для самого файла.
Т.е. для удаления файла из каталога, не обязательно
иметь какие-либо права доступа к файлу, важно лишь
иметь права записи в каталог.
Защита информации в UNIX. Файлы и их
атрибуты.
Команда
Права для файла
Права для каталога,
содержащего файл
cd /home/user1
−
x
ls /home/user1/*.c
−
r
ls –l /home/user1/*.c
−
rx
cat file.txt
r
x
cat >> file.txt (дозапись файла)
w
x
prog (выполнить
prog)
x
x
prog.csh (выполнить скрипт)
rx
x
rm file (удалить файл в текущем
−
xw
каталоге)
бинарный
файл
Защита информации в UNIX. Файлы и их
атрибуты.
Рассмотрим некоторые особенности проверки прав
доступа к файлам.
Так для пользователя с UID=0 (root) никаких
проверок не выполняется, доступ разрешается ко
всем файлам независимо от установленных
разрешений.
Если операция запрашивается владельцем файла,
то проверяются права доступа для владельца
файла, права доступа группы не проверяются.
даже если пользователь user1 является членом группы
group, он не сможет ни прочитать, ни изменить
содержимое файла. В тоже время остальные члены группы
имеют такую возможность.
Защита информации в UNIX. Файлы и их
атрибуты.
«Бит суидности» − SUID (Set User IDentificator) изменяет
права доступа запускаемой программы.
Обычно запускаемая программа получает права доступа
к системным ресурсам на основании прав доступа
пользователя, запустившего программу.
Установка бита SUID изменяет это правило, назначая
права доступа исходя из прав доступа владельца файла.
Запущенный обычным пользователем исполняемый
файл, владельцем которого является root, получает
неограниченные права доступа к системным ресурсам.
Аналогичный смысл имеет и атрибут SGID (Set Group
IDentificator) применительно к группе владельцу.
Защита информации в UNIX. Файлы и их
атрибуты.
Устанавливаются данные атрибуты командой chmod:
chmod u+s file1
Аналогично и для группы:
chmod g+s file1
Если программа запускает другие задачи, то они будут
наследовать ее права доступа.
Поэтому устанавливать атрибуты SUID и SGID следует
с большой осторожностью и только для программ,
которые не имеют возможности запуска произвольных
задач.
Защита информации в UNIX. Файлы и их
атрибуты.
Рассмотрим типичный пример использования SUID −
программу passwd, которая позволяет пользователю
изменить пароль.
Пароль хранится в файле /etc/passwd или
/etc/master.passwd. Предоставить всем
пользователям право записи в эти файлы нельзя.
Данная проблема решается установкой SUID атрибута
для программы passwd:
Защита информации в UNIX. Файлы и их
атрибуты.
Поскольку владельцем программы passwd является
пользователь root, то кто бы ни запустил утилиту
passwd на выполнение, данная программа получает
права root и, следовательно, может изменять
системные файлы /etc/passwd и /etc/master.passwd.
Требования безопасности для такой программы
должны быть повышенными. Утилита passwd должна
изменять пароль только того пользователя, который
запустил ее, и не должна позволять запуск других
программ.
Защита информации в UNIX. Файлы и их
атрибуты.
Sticky bit применительно к исполняемым файлам
используется редко и означает, что образ такого файла
должен оставаться в памяти после завершения
программы. Последующие запуски данной программы
будут занимать меньше времени.
Применительно к каталогу установка Sticky bit означает
невозможность удаления из него файла кем бы то ни
было, кроме владельца файла. В обычном случае
предоставление права записи в каталог дает слишком
большие полномочия. Имея такое право, пользователь
может удалить любой файл, даже тот, владельцем
которого не является. Установка Sticky bit для каталога
решает данную проблему.
Защита информации в UNIX. Файлы и их
атрибуты.
Примером использования Sticky bit является каталог
/tmp, доступный для записи всем пользователям,
однако удалять пользователи могут только свои
файлы:
Устанавливается sticky bit командой chmod:
chmod +t file
Download