- •В.В. Бакланов
- •Защитные механизмы
- •Операционной системы
- •Екатеринбург
- •Оглавление
- •Введение
- •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»
- •Библиографический список
Контрольные вопросы
-
Чем отличаются системные процессы, «демоны» и пользовательские процессы?
-
Какую информацию можно извлечь из каталога /proc?
-
Как система распределяет процессорное время между конкурирующими процессами? Как на это влияет приоритет процессов?
-
Почему пользователю не разрешается повышать приоритет процессов? Усматриваете ли вы какую-либо опасность в возможности понижения приоритета пользовательских процессов?
-
В консоли, с которой вы работаете, произошло «зависание», вызванное неправильным исполнением одного из ваших процессов. Каким образом можно повлиять на возникшую ситуацию?
-
Какие угрозы безопасности связаны с использованием эффективного идентификатора SUID? Почему администратор должен учитывать и контролиролировать такие файлы?
-
В чем заключается различие между именованным и неименованным каналами? Для чего они используются?
-
Как можно заблокировать и разблокировать пользовательскую консоль?
-
Какие пользовательские атаки на исчерпание ресурсов системы вам известны?
ЛаборАторная работа № 6 «Исследование сетевых возможностей ос Linux»
Лабораторная работа должна выполняться в проводной локальной вычислительной системе звездообразной топологии с концентратором (хабом). Убедитесь в наличии в исследуемой операционной системе Linux штатных утилит ifconfig, netstat, nmap (netmap), nc (netcat) и tcpdump. При отсутствии нужной утилиты самостоятельно либо с помощью преподавателя установите (скопируйте) ее.
-
Внимательно прочитайте задание и справку по синтаксису основных сетевых команд Linux.
-
Зарегистрируйтесь в системе в первой консоли с правами администратора.
-
Зарегистрируйтесь во второй консоли с правами пользователя.
-
Из консоли администратора с помощью команды ifconfig -a выведите на экран данные о текущем состоянии всех сетевых интерфейсов компьютера. Какую информацию из прочитанного вывода вы извлекли? Запомните, как обозначается основной Ethernet-адаптер (он может обозначаться eth0, eth1, eth2), и в дальнейшем используйте в сетевых командах это имя. Далее в тексте задания он упоминается как eth0.
-
Выведите информацию о сетевых интерфейсах с помощью команды netstat –ai, сравните возможности двух использованных утилит.
-
Активизируйте отключенную по умолчанию сетевую службу telnet server. Для этого запустите Midnight Commander, найдите конфигурационный файл /etc/inetd.conf и в режиме редактирования (F4) удалите символ комментария # перед строкой telnet stream tcp nowait, после чего сохраните изменения в файле. Если в системе используется демон xinetd, то активизация протокола производится в конфигурационном файле /etc/xinet.d/telnet, строка disable = no. Затем следует перезапустить систему.
-
Командой
ps –ef | more
выведите список процессов и убедитесь, что сетевой процесс inetd работает. Иначе его нужно запустить вручную командой inetd. Если исследуемая версия ОС не содержит сервера telnet (по причине его явной уязвимости некоторые версии Linux не предусматривают использования этого протокола), соответствующие пункты задания выполните с защищенной программной оболочкой Secure Shell (SSH).
-
Отключите сетевой адаптер командой ifconfig eth0 down (см. справку по сетевым командам). Присвойте сетевому интерфейсу временный MAC-адрес A0:B1:C2:D3:E4:N, где N – двузначный номер компьютера в классе (при использовании в ЛВС одинаковых аппаратных или сетевых адресов возможны коллизии). Подключите адаптер к сети. Убедитесь в том, что его аппаратный адрес изменен.
-
Назначьте основному сетевому интерфейсу компьютера временный IP-адрес и маску подсети. Для этого введите команду
ifconfig eth0 192.168.0.N netmask 255.255.255.0 ,
где N – номер компьютера. Повторным вводом команды ifconfig eth0 убедитесь в том, что запись введенной информации произведена. Присвоенные сетевые адреса будут действовать до перезагрузки компьютера.
-
Проверьте работоспособность петли обратной связи, послав на свой же компьютер эхо-запрос ping 127.0.0.1. Убедившись, что отклики поступают, остановите зондирование комбинацией клавиш Ctrl-C.
-
Присвойте сетевому адаптеру дополнительный IP-адрес 192.168.0.20+N, где N – номер компьютера. Проверьте прохождение ICMP-пакетов между сетевыми адресами на локальном компьютере.
-
Организуйте сеанс telnet на собственном компьютере, используя для этого интерфейс обратной петли или дополнительный IP-адрес. Для этого перейдите в консоль пользователя, наберите команду telnet 127.0.0.1 (или telnet localhost) и после сообщения об успешном соединении введите login и пароль администратора. Почему вам было отказано в доступе? Почему соединение было закрыто? Можно ли считать эти меры надежной защитой, пресекающей передачу опасной информации по каналу связи в открытом виде?
-
Еще раз установите сеанс telnet через петлю обратной связи, используя на этот раз учетную запись обычного пользователя. После установления сеанса просмотрите список каталогов и файлов в нескольких директориях, список процессов и убедитесь, что в «удаленном» режиме доступа вы можете выполнять все команды, которые доступны пользователю, зарегистрированному на удаленном узле.
-
Перейдите в консоль администратора и с помощью команды w или who посмотрите, сколько сейчас пользователей в системе, кто они и с каких терминалов работают. Обратите внимание на то, как обозначаются локальный и удаленный терминалы.
-
С помощью команды netstat –a проконтролируйте список запущенных сервисов и их состояние. Найдите сеанс telnet.
-
Вернитесь в консоль пользователя и завершите локальный сеанс telnet командой exit. Получите сообщение о закрытии сетевого соединения. Проверьте эту информацию с помощью команды netstat.
-
Попробуйте войти на один из компьютеров сети в сеансе telnet (учетные записи пользователей на всех компьютерах должны быть одинаковы). Что потенциально опасного вы можете сделать на удаленном компьютере? Приобретите на удаленном хосте права root. Проверив свои возможности по манипуляции удаленным компьютером, завершите сеанс командой exit.
-
Поскольку на вашем компьютере telnet-сервер активизирован, он тоже может стать объектом доступа. Периодически с помощью команд netstat –a, ps –ef или w проверяйте, не зафиксировали ли они подозрительные соединения, процессы или удаленных пользователей.
-
Войдите на произвольный узел по протоколу Secure Shell (команда ssh с указанием IP-адреса хоста, после запроса необходимо ввести пароль администратора). Проверьте свои возможности по манипуляции удаленным компьютером.
-
С помощью команды arp –a посмотрите таблицу соответствия сетевых и аппаратных адресов. Где расположен ARP-кэш и почему он сейчас пуст?
-
С помощью утилиты ping исследуйте локальную сеть, к которой подключен ваш компьютер в диапазоне адресов, идентифицирующих конкретный компьютер в сети, от 1 до 40 (192.168.0.1/40). Объясните, в чем уязвимость и неудобство такого метода сканирования.
-
Проверьте, обновилась ли после сканирования динамическая ARP-таблица. Если она содержит нужную вам информацию о сети, ее можно сохранить в файле командой arp –a > /home/arp1 (через несколько минут информация о сетевых узлах будет изменена, и если тот или иной сетевой узел не проявляет активности, данные о нем в кэше будут утрачены). С помощью команды
arp –s <IP-адрес> <MAC-адрес>
создайте статическую arp-таблицу. Выясните местоположение этой таблицы.
-
Ознакомьтесь с синтаксисом команды nmap (netmap – карта сети). С помощью утилиты nmap исследуйте локальную сеть, к которой подключен ваш компьютер. Адреса в диапазоне можно вводить с использованием символов-джокеров и через дефис. Что вы можете сказать о полученной информации?
-
Исследуйте различные виды сканирования с помощью утилиты nmap. На этот раз в качестве объекта выберите один из компьютеров. Типы сканирования перечислены в справке по команде nmap. Какую дополнительную информацию о локальной сети вы получили? Каким образом эта утилита определяет тип операционной системы, управляющей сетевым узлом?
-
Отключите ответы своего сетевого адаптера на ARP-запросы других хостов командой