- •В.В. Бакланов
- •Защитные механизмы
- •Операционной системы
- •Екатеринбург
- •Оглавление
- •Введение
- •1. Пользователи и их права
- •Учетные записи пользователей и работа с ними
- •Video::18:
- •Ivanov:X:1002:101::/home/ivanov:/bin/bash
- •1.2. Процедура регистрации и ее безопасность
- •VI /etc/passwd
- •Initrd /boot/initrd.Img–2.6.18–5–686
- •Права доступа к файлам
- •Комбинированные права доступа
- •1.5. Решение практических задач на разграничение доступа
- •Использование механизма sudo
- •2. Безопасное управление процессами
- •2.1. Общие сведения о процессах
- •Virtual memory (kbytes, -V) unlimited
- •2.2. Средства наблюдения за процессами
- •2.3. Переменные окружения
- •2.4. Способы автоматического запуска и остановки программ
- •Id:3:initdefault:
- •Id:3:initdefault:
- •2.5. Периодически запускаемые процессы
- •2.6. Запуск и остановка программ в интерактивном и фоновом режимах
- •2.7. Средства взаимодействия между процессами
- •2.8. Перенаправление ввода/вывода
- •2.9. Файловая система /proc как «зеркало» процессов
- •2.10. Терминальный режим и консольные атаки
- •16:10:12 Up 15 min, 4 users, load average: 0,00, 0,00, 0,01
- •Ivanov tty2 - 16:07 3:08 0.01s 0.01s -sh
- •Ivanov tty2 2008-11-05 16:07
- •2.11. Сокрытие процессов
- •2.12. Аудит событий и его безопасность
- •3. Работа с объектами файловой системы
- •3.1. Действия над обычными файлами
- •3.2. Работа со специальными файлами устройств
- •255 Heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
- •255 Heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
- •255 Heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
- •16 Heads, 32 sectors/track, 988 cylinders, total 505856 sectors
- •3.3. Монтирование файловых систем
- •3.4. Копирование и запись данных
- •2,0,0 200) 'Ata ' 'wdc wd3200bevt-2' '11.0' Disk
- •1000,0,0 100000) 'Hl-dt-st' 'dvdram gma-4082n' 'pt06' Removable cd-rom
- •3.5. Использование «жестких» и символических ссылок
- •4. Безопасность файловых систем ext*fs
- •4.1. Архитектура файловых систем ext*fs
- •Inode count: 438048
- •Inodes per group: 8112
- •Inode blocks per group: 507
- •Inode: 131329 (0x00020101)
- •Indirect block:
- •131329 Drwxr-xr-X 2 root root 4096 Мар 18 17:42
- •Inode: 527744 (0x00080d80)
- •Indirect block:
- •0X024f9040 73 79 6e 63 0a 00 00 00 : 00 00 00 00 00 00 00 00 sync............
- •4.2. Временные отметки файлов
- •4.3. Алгоритмы логического удаления и восстановления файлов
- •Сетевые возможности операционных систем linux
- •5.1. Контроль и настройка сетевых интерфейсов
- •Inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
- •Interrupt:5 Base address:0x4000
- •Inet addr:127.0.0.1 Mask:255.0.0.0
- •Ifconfig eth0 -arp
- •Inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
- •Interrupt:5 Base address:0x4000
- •Ifconfig eth0 promisc -arp
- •Iwconfig ath0 mode adhoc channel 1 essid “abcd”
- •5.2. Разведка сети
- •5.3. Перехват и анализ сетевого трафика
- •Лабораторный практикум
- •Общие требования
- •Памятка обучаемым
- •Выполнение работы
- •Лабораторная работа № 2 «Исследование архитектуры файловых систем ext*fs»
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 4 «Реализация политики разграничения доступа средствами ос Linux»
- •Временная нейтрализация парольной защиты
- •Контрольные вопросы
- •Лабораторная работа № 5 «Исследование процессов в ос Linux» Подготовка к работе
- •Наблюдение за файловой системой /proc
- •Просмотр и анализ информации о процессах
- •Управление процессами
- •Работа с консолями
- •Работа с каналами
- •Исследование опасных команд
- •Контрольные вопросы
- •ЛаборАторная работа № 6 «Исследование сетевых возможностей ос Linux»
- •Ifconfig eth0 –arp
- •Контрольные вопросы
- •Лабораторная работа № 7 «Исследование беспроводной сети WiFi под управлением ос Linux»
- •Interrupt:19
- •Inet addr:127.0.0.1 Mask:255.0.0.0
- •Iwconfig ath0 channel 1 essid "abcd"
- •Iwlist ath1 scan
- •Iwconfig ath0 key off
- •Iwconfig ath0 key 0123-4567-89ab-cdef
- •Контрольные вопросы
- •Лабораторная работа № 8 «Наблюдение и аудит в ос Linux»
- •Библиографический список
VI /etc/passwd
После завершения нельзя сразу перезагружать компьютер. Требуется восстановить исключительный режим чтения:
mount –o remount,ro /
После перезагрузки утилита fsck обнаружит неполадки в файловой системе и устроит ее внеплановую проверку, после которой, скорее всего, автоматически перезагрузит систему. После перезагрузки можно войти в систему без пароля.
Загрузчик GRUB (GRand Unified Bootloader) имеет собственный текстовый редактор, который может заменить интерпретатор команд. Перейти в режим редактирования конфигурационного файла системного загрузчика можно с помощью команды e. После этого в окно загрузчика будет выведено несколько строк подобного типа:
root (hd0,0)
kernel /boot/vmlinuz–2.6.18–5–686 root = /dev/hda1 ro
Initrd /boot/initrd.Img–2.6.18–5–686
savedefault
Опция root определяет текущее корневое устройство при загрузке системы. Параметры (hd0,0)указывают на фиксированный машинный носитель (магнитный диск) и раздел на нем. Опция kernel используется для загрузки ядра. Ее параметр указывает полный путь к файлу, который является ядром. Опция initrd сообщает, где находится образ виртуального диска, и имеет значения только на компьютерах со SCSI–дисками.
Выбираем строку kernel и опять вводим команду e. После этого в конец строки после пробела можно добавить ключевое слово single или цифру 1, указав на необходимость загрузки системы в однопользовательском режиме. Далее нажимаем <Enter>, попадаем в предыдущее меню и вводим команду b для загрузки.
Если загрузка не удалась, следует попробовать после слова single и пробела ввести метку и опцию ядра init=/bin/bash, указывая на необходимость загрузки командного интерпретатора. После его загрузки следует повторить команды, ранее перечисленные для LILO.
Для того чтобы не позволить пользователю, присутствующему при загрузке системы, стать ее администратором, рекомендуется отредактировать конфигурационные файлы загрузчиков, в том числе предусматривая установку дополнительных паролей, которые будут запрашиваться при попытке пользователя на этапе загрузки перейти в интерактивный режим.
В наши планы не входит рассмотрение устройства и функционирования загрузчиков. Достаточно сказать, что критичные настройки безопасности расположены в конфигурационных файлах lilo.conf, grub.conf и др. Они традиционно представляют собой строки, содержащие разнообразные параметры и их значения. К параметрам, обеспечивающим безопасность загрузки, относятся следующие:
-
prompt – включает ввод приглашения при загрузке без ожидания каких-либо нажатий клавиш. Если не предполагается выбирать одну из нескольких загружаемых систем, само приглашение будет совершенно лишней любезностью;
-
timeout=50 – время ожидания 5 сек. Из тех же соображений тайм–аут можно приравнять к нулю;
-
passwd=12345.
В файле /etc/lilo.conf дополнительный пароль на интерактивную загрузку хранится в открытом виде, поэтому администратору надлежит защитить файл от возможности чтения пользователями.
Если мультисистемная загрузка или тайм-аут в конфигурационных фалах /etc/lilo.conf, /boot/grub/grub.conf или /boot/grub /menu.lst не предусмотрены, существует возможность загрузить операционную систему Linux со сменного носителя. Наиболее компактные загрузочные варианты, пригодные для нейтрализации парольной защиты, могут поместиться даже на одну дискету. Вполне естественно, что загружаемая система не запрашивает никаких паролей и в благодарность превращает пользователя, запустившего ее, в администратора. После этого можно монтировать раздел Linux на фиксированном диске и манипулировать парольными файлами и доступной информацией.
Использование прав суперпользователя само по себе потенциально опасно для системы, поэтому администратор в обыденных ситуациях, когда вводить привилегированные команды не требуется, должен использовать права обычного пользователя. Для этого администратор может зарезервировать для себя какую-либо учетную запись либо, в крайнем случае, использовать зарегистрированные имена других пользователей. Изменить права доступа можно с помощью утилиты su (substitute user – подстановка пользователя).
Если администратор вводит команду su с именем зарегистрированного пользователя, он становится им мгновенно, без запроса пароля. Для трансформации root может даже использовать заблокированную учетную запись пользователя – если приказывает суперпользователь, система не обращает внимания на такие пустяки. Для того чтобы повысить свой рейтинг и вновь стать администратором, ему вновь необходимо ввести команду su без аргументов, а после запроса ввести пароль root. В некоторых дистрибутивах возврат прав администратора не сопровождается запросом пароля – это явная угроза безопасности, допущенная программистами. Впрочем, как будет показано ниже, возврат статуса администратора без ввода пароля возможен и иным путем.
Использование таких утилит, как su, находится под пристальным вниманием системы и по умолчанию протоколируется в один из файлов аудита. Исполняемый файл с именем su обычно является объектом атак со стороны вирмейкеров. Если злоумышленнику удается внедрить в систему фальшивую программу su и обеспечить ее запуск при обращении к этой утилите, он может перехватить многие пароли, включая пароль суперпользователя.
Многие авторы указывают на необходимость ликвидации самого имени root или присвоения ему UID с произвольным номером, мотивируя это тем, что нарушитель, внедрившийся в систему в качестве пользователя, будучи не в силах обнаружить сеанс администратора, не станет атаковать систему. Автор не берется судить, насколько повлияет на поведение нарушителя присутствие пользователя с именем root. Но то, что нарушитель якобы не в силах найти в числе работающих пользователей администратора, – сущая фантазия. Любому пользователю доступны утилиты w и id, и с их помощью нетрудно вывести список пользователей и определить, кто из них имеет UID=0.
А вот соображение относительно опасности блокирования учетной записи root, высказанное Д. Бэндлом [3], полностью справедливо. Подлинный администратор системы, использующий другое имя, может оказаться беспомощным в случае блокировки консоли, если блокирующая программа будет запрашивать только пароль. Причина заключается в простоте алгоритма и лености программистов. Первая учетная запись с нулевым третьим полем, найденная в файле /etc/passwd, будет считаться единственной. Примитивная маскировка подлинного администратора окажется более продуманной, если учетная запись root будет перемещена в файле паролей ниже. Опять же, как и в случае с утилитой id, не стоит забывать, что файл /etc/passwd доступен для чтения и анализа любому пользователю.