|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Новые функции в Windows Server 2008Дополнительно ко всем уже упомянутым функциям и изменениям в Windows Vista, Windows Server 2008 включает в себя свои собственные функции удаленного рабочего стола: Веб-клиент служб терминалов и Быструю печать служб терминалов. Веб-клиент служб терминалов позволяет при использовании веб-обозревателя просматривать список программ, включенных на удаленном сервере как RemoteApps, и легко запускать их одним нажатием при помощи элемента управления ActiveX удаленного рабочего стола. TS Easy Print позволяет перенаправлять все задания принтеров с удаленной (основной) системы на локальную (клиентскую) систему. Работа Easy Print не требует каких-либо дополнительных драйверов принтеров основной системы или интерактивной работы пользователя для установки устройств. При наличии локального принтера он будет работать на удаленной системе точно так же, как локально.
Контрольные вопросы 1. Для чего используется IIS? 2. Перечислите угрозы безопасности DNS? 3. Для чего предназначен RDP? 4. Перечислите уровни безопасности DNS? 5. Какие новые функции RDP доступны в Windows Vista и Server 2008? Лекция 10. ОБЕСПЕЧЕНИЕ ФИЗИЧЕСКОЙ
Процесс загрузки Все компьютеры семейства х86 загружаются одинаково. Процесс загрузки представляет собой последовательность событий, начинающуюся с включения питания. Обычно после этого начинает выполняться проверка оборудования, известная как POST (Power On Self Test), во время которой подсистемы компьютера проверяются на наличие проблем, мешающих его нормальному функционированию (плохая паять и пр.). После успешного завершения POST запускается небольшая программа-загрузчик, которая, в свою очередь, запускает второй загрузчик, который последовательно просматривает все места, в которых может содержаться загрузочный код ОС, и запускает на выполнение первый найденный. Обнаружив загрузочный сектор, в котором содержится загрузочный код ОС, система перемещает его в память и запускает на выполнение. Для Linux наиболее популярными являются два загрузчика: LILO и GRUB. В других архитектурах, таких как Sparc или Alpha, используются похожие загрузчики: SILO (Sparc) и MILO (Alpha). Загрузчик – это программа, позволяющая пользователю выбрать, какую из установленных на компьютере ОС (или различных ядер Linux) следует загрузить. Получив управление, ядро запускает программу init. Эта программа отвечает за выполнение всех остальных процедур и является родителем всех процессов. LILO Параметры загрузки по умолчанию генерируются в ходе установки Linux и записываются в конфигурационный файл (обычно /etc/lilo.conf). В этом файле хранятся все параметры, необходимые для нормальной загрузки Linux, а также в него могут быть добавлены дополнительные параметры, включая и запуск других ОС. Для того, чтобы изменения вступили в силу, необходимо обновить конфигурационную информацию в загрузочной записи жесткого диска с помощью команды lilo. Возможные параметры файла lilo.conf: · boot=/dev/had – задает устройство, с которого происходит загрузка; · map=/boot/имя файла – карта загрузки. Если этот параметр опущен, то по умолчанию будет использоваться файл /boot/map; · timeout=300 – время ожидания в миллисекундах. Если за этот промежуток времени ничего не выбрано, то будет загружена ОС по умолчанию; · lba32 – позволяет использовать возможности диф32 (32-разрядная адресация блоков диска). Присутствие этого параметра может вызвать проблемы со старыми жесткими дисками без поддержки LBA (Logical Block Addressing, логическая адресация блоков); · image=/boot/vmlinuz-2.4.18-5asp – указывает на ядро Linux. Чаще всего эта строка выглядит как /boot/vmlinuz; · label=linux-2.4.18 – метка или текст, который будет появляться в окне загрузчика; · root=/dev/hda2 – диск, на котором расположена корневая файловая система; · read-only. Для того, чтобы защитить LILO с помощью пароля, в конфигурационном файле после ключевого слова image необходимо добавить строку password=пароль. Пароль устанавливается для каждой системы отдельно, хранится в незашифрованном виде. Если добавить параметр password до описания image, то указанный пароль будет действовать для всех ОС и ядер, загружаемых с помощью LILO. Но пароль запрещает только основную загрузку, а возможность выполнения команд при старте системы сохраняется. Чтобы сделать и это невозможным, необходимо добавить в файл конфигурации lilo.conf после объявления пароля строку с ключевым словом restricted. После вывода приглашения LILO можно определить параметры загрузки ОС. Так как загрузчик LILO написан специально для Linux, он позволяет передавать дополнительные аргументы ядру или программе init. Например, для загрузки в однопользовательском режиме необходимо ввести
LILO Boot: linux 1
или
LILO Boot: linux s
Эти параметры указывают, что при запуске Linux должен быть установлен начальный уровень выполнения 1 или s для однопользовательского режима вместо уровня выполнения по умолчанию. GRUB GRUB является более современным загрузчиком, который был создан Эриком Боленом и в настоящее время поддерживается проектом GNU (http://www.gnu.org/software/grub). По сравнению с LILO, этот загрузчик обладает более широкими возможностями и позволяет использовать команды любого типа после приглашения на ввод команды. Среди возможностей GRUB можно выделить поддержку множества форматов исполняемых файлов, различных файловых систем и загружаемых модулей. Кроме того, GRUB поддерживает "цепочный" механизм для ОС и загрузчиков, не совместимых со спецификацией Multiboot, обеспечивает загрузку ядер, совместимых со спецификацией Mutiboot, имеет удобный меню-ориентированный интерфейс и гибкий интерфейс командной строки. Однако при работе с Grub также возникают некоторые проблемы безопасности. С помощью GRUB также можно задать загрузку Linux в однопользовательском режиме. При этом пользователю предоставляются привилегии root. Для входа в однопользовательский режим пользователю необходимо перезагрузить компьютер, при появлении меню GRUB выбрать интересующий раздел. В следующем открытом окне выбрать строку, которая начинается со слова kernel и добавить в конец этой строки слово single. После загрузки пользователь получит привилегии root. Для того, чтобы предотвратить вход с правами root в однопользовательском режиме без пароля, следует внести изменения в файл /etc/inittab для принудительного вызова команды sulogin при загрузке в однопользовательском режиме.
su:s:wait:/sbin/sulogin
В отличие от LILO, который позволяет выбирать загрузочный образ, GRUB предоставляет полнофункциональный встроенный интерфейс наподобие командного интерпретатора. Для доступа к командному интерпретатору GRUB при появлении начального меню достаточно нажать на клавишу <C>. Появляется приглашение на ввод команд (командная строка grub). Использование GRUB для просмотра файлов C помощью команды cat загрузчик GRUB позволяет просмотреть содержимое файла.
grub> cat /etc/passwd grub> cat /etc/shadow Использование GRUB для получения системной информации С помощью различных команд загрузчик GRUB позволяет злоумышленнику собрать сведения о компьютере. · cat для просмотра файлов; · cmp для сравнения двух файлов; · displayapm для вывода информации об энергопотреблении; · displaymem для получения сведений об оперативной памяти; · find для поиска файлов; · impsprobe для запроса к таблице настройки Intel Multiprocessor Specification; · ioprobe для запроса к портам ввода-вывода; · read для чтения данных из оперативной памяти; · uppermem для отображения объема оперативной памяти. Все эти сведения можно отнести к категории "слишком много предоставляемой информации". Изменение конфигурации GRUB C помощью команд GRUB можно изменить конфигурацию этого загрузчика. Например: · configfile для использования собственного конфигурационного файла; · module для подключения загружаемого модуля; · root и rootnoverify для выбора устройства, с которого будет проводиться загрузка; · savedefault для сохранения текущего режима загрузки; · uppermem для установления размера оперативной памяти. Установка пароля для GRUB Пример конфигурационного файла GRUB /etc/grub.conf:
default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Linux (2.4.18-3) root (hd0,0) kernel /vmlinuz-2.4.18-3 ro root=/dev/hda6 initrd /initrd-2.4.18-3.img
В этом конфигурационном файле загрузчику GRUB задан вывод своего меню на фоне изображения, хранящегося в файле (hd0,0)/grub/splash.xpm.gz. Запись (hd0,0) указывает на каталог /boot. Задержка после вывода меню до загрузки ОС по умолчанию определена длительностью в 10 секунд. Выбранная по умолчанию ОС имеет номер 0 (default=0). Ядро хранится в файле каталога /boot/vmlinuz-2.4.18-3. Модуль, загружающий начальный виртуальный диск (initrd): /boot /initrd-2.4.18-3.img. Установить пароль для работы в командном режиме GRUB можно, добавив его с помощью команды password в файл /etc/grub.conf. По умолчанию права на чтение файла grub.conf предоставляются всем пользователям, доступ к этому файлу следует ограничить. В последних версиях Linux используется хэширование паролей, создать хэшированный пароль в GRUB можно с помощью команды ms5crypt. Зашифрованные файловые системы Шифрование файловых систем может применяться для противодействия многим атакам, целью которых является несанкционированный доступ к информации, хранящейся на жестких дисках компьютера. Наиболее популярные реализации зашифрованных файловых систем: · CFS (http://cache.qualcomm.com) использует NFS-сервер для шифрования полного дерева каталогов; · TCFS (http://www.tcfs.it) развивает концепцию шифрования, принятую в CFS. Обеспечивает более тесную интеграцию и NFS и работает на уровне ядра Linux; · BestCrypt (http://www.jetico.com) позволяет создавать полное зашифрованное дерево каталогов в виртуальной файловой системе, сохраненной в виде одного файла. В состав BestCrypt входят специальные средства для создания, форматирования, монтирования и демонтирования зашифрованных файловых систем. Это коммерческий продукт с доступными исходными кодами для Windows и Linux; · PPDD (http://linux01.gwdg.de/~alatham) позволяет пользователям создавать зашифрованный раздел, который будет выглядеть как обычный файл устройства. Этот файл можно форматировать, монтировать и использовать как обычную файловую систему. Единственное отличие – файл, который содержит дерево каталогов, является зашифрованным. Так как PPDD реализован в виде драйвера устройства, то не требуется специальных средств для форматирования, монтирования или демонтирования зашифрованных файловых систем; · Loopback Encrypted Filesystem (http://www.kerneli.org/) представляет собой часть проекта International Kernel Patch и позволяет реализовать криптографические средства защиты в ядре Linux, Это заплата для ядер версии 2.2 и 2.4, которая позволяет монтировать локальные зашифрованные файловые системы в незашифрованном виде в любой точке локальной системы; · StegFS (http://www.mcdonald.org.uk/StegFS/) зашифровывает данные и размещает их на жестком диске. В отличие от других подобных средств, StegFS не позволяет точно определить место хранения зашифрованной информации. Нарушителю сначала придется выделить нужные данные из общей массы. CFS Каталог CFS является точкой монтирования NFS, связанной с демоном cfsd через порт 3049 (по умолчанию) узла localhost. Демон cfsd является одновременно и сервером NFS, реагирующим на клиентские запросы к точке монтирования (обычно /crypt), и шифровальным механизмом. Он обменивается с файловой системой только зашифрованными данными. Механизм шифрования/дешифрования оказывается прозрачным как для пользователя, так и для ядра. CFS может быть смонтирована в любой директории, или даже поверх другой файловой системы(UFS или NFS). Интерфейс, используемый CFS, является стековидным виртуальным узлом (stackable V-Node). Операционные системы Unix используют виртуальные узлы для обозначения открытых файлов, директорий, устройств и других объектов. Виртуальные узлы скрывают ту часть физической файловой системы, которую используют. Благодаря концепции стыкования виртуальных узлов (V-node stacking), CFS позволяет файловым системам реализовать функцию модульности: когда один V-node интерфейс вызывает другой. Стыкование виртуальных узлов показано на рис. 10.1:
Рис. 10.1. Строение стековидного V-node интерфейса
Каждая v-node операция в CFS вызывает функцию своего нижестоящего уровня для специфических операций над файловой системой. CFS был изначально разработан для Solaris, а затем импортирован в Linux и FreeBSD. CFS работает со всеми директориями и шифрует данные еще до записи их в файловую систему, а дешифрует в обратном порядке. Разработчики CFS также внедрили в свой продукт схему управления ключами (key management scheme), согласной которой лишь root может смонтировать CFS и ключ будет ассоциирован не только с UID, но и с ID сессии. Атакующему придется не только взломать аккаунт, но и заставить свои процессы использовать те же ID сессий, что и пользователь, для получения или изменения ключа. CFS использует для шифрования алгоритм blowfish в режиме CBC. При создании зашифрованных каталогов используются команды cmkdir (позволяет создать каталог CFS везде, где у пользователя есть соответствующие права) и cattach (позволяет получить доступ к содержимому каталога в незашифрованном виде). После ввода команды cnkdir система запрашивает ввод идентификационной фразы, которая будет использоваться для шифрования. Достоинства CFS: · После изменения временно расшифрованных файлов CFS не требует выполнения отдельной процедуры шифрования, и таким образом можно избежать проблемы шифрования с неправильным ключом; · CFS поддерживает тайм-аут после определенного периода неактивности, поэтому временно расшифрованный файл не может случайно оказаться свободно доступным в течении долгого периода времени. Уязвимые места CFS: · CFS – пользовательское приложение и потому участвует в операциях выгрузки и страничного обмена. А это значит, что идентификационные фразы и дешифрованные данные могут временно храниться в файле подкачки. · Ошибочные действия, например отключение рабочего виртуального каталога, приводят к созданию файла дампа, в котором могут храниться идентификационные фразы и другие важные сведения. · Любой виртуальный каталог может быть отключен любым пользователем. TCFS Пакет TCFS (Transparent CFS) так же, как CFS, реализует интерфейс между пользователем и файловой системой, а также взаимодействует с NFS для локальной обработки незашифрованных данных. Кроме того, TCFS гарантирует, что незашифрованные данные не хранятся в файловой системе и не передаются по сети. Однако, в отличие от CFS, в TCFS вместо демона cfsd применяется специальный модуль ядра, в котором реализована файловая система tcfs. Назначением ключей для монтируемых каталогов NFS занимается серверный демон xattrd. Вместо того, чтобы закреплять идентификационные фразы (а значит, и ключи) за каждым зашифрованным каталогом, демон назначает ключи пользователям на основании их паролей. Ключ, применяемый для шифрования и дешифрования, шифруется пользовательским паролем. Как следствие, незашифрованные ключи и данные доступны только в памяти ядра и лишь на короткие промежутки сохраняются в кэше файловой системы (локальная точка монтирования NFS). Но это означает также, что администратор вынужден тратить больше усилий для настройки клиента TCFS в каждой системе (заменить множество утилит, установить заплаты ядра и перекомпилировать его). В частности, нужно инсталлировать обновленную утилиту chattr, которая поддерживает два новых атрибута: X и G. Первый из них применительно к файлу означает, что файл шифруется. Применительно к каталогу атрибут X задает шифрование всех файлов в каталоге и его подкаталогах. Атрибут G означает, что файл или каталог доступен группе TCFS. Чтобы обеспечить шифрование файлов и каталогов, необходимо установить соответствующие атрибуты. Чтобы иметь возможность создавать зашифрованные файлы и каталоги, пользователь должен сгенерировать ключ шифрования и записать его в модуль ядра с помощью утилит tcfsgenkey и tcfsputkey. Уязвимые места TCFS: · расшифрованный ключ иногда хранится в ОЗУ или в кэше файловой системы. Но это происходит только в адресном пространстве ядра и лишь на короткие промежутки времени; · для доступа к ключам шифрования нужно знать лишь пароль пользователя. Разорвать привязку к паролю можно, но на практике это редко выполняется. Безопасное удаление файлов Когда файл удаляется, его содержимое не уничтожается. Вместо этого блоки, занимаемые файлом, просто помечаются как свободные и могут быть использованы повторно. Это означает, что до момента фактической перезаписи данные могут быть считаны с диска низкоуровневыми средствами. То же самое касается данных, временно хранящихся в ОЗУ или дисковом кэш-буфере. Чтобы повысить безопасность удаляемых файлов, можно воспользоваться атрибутом безопасного удаления:
chattr +s secret_file
В результате все блоки файла в процессе удаления будут обнуляться. Защищенные терминалы Некоторые системы можно настроить так, чтобы суперпользователь мог зарегистрироваться в системе только с определенных, "защищенных" терминалов. Рекомендуется запрещать привилегированный вход в систему по таким каналам, как модемы и сетевые псевдотерминалы. Защищенные каналы обычно задаются в виде списка TTY-устройств или с помощью специального ключевого слова в файле конфигурации. В Solaris это файл /etc/default/login, в HP-UX и Red Hat – etc/securetty, во FreeBSD – /etc/ttys.
Контрольные вопросы 1. В чем заключаются различия загрузчиков LILO и GRUB? 2. Для каких целей злоумышленник может использовать программу-загрузчик? 3. Как защитить загрузчик от несанкционированных действий? 4. Какие подходы используются в реализации наиболее распространенных шифрованных файловых систем? 5. Опишите достоинства и недостатки файловой системы CFS. 6. Предложите вариант атаки на файловую систему CFS. 7. Сравните файловые системы CFS и TCFS. 8. Какие существуют альтернативы использованию шифрования дисков? 9. Что такое защищенные терминалы? 10. Как сконфигурировать файл etc/securetty для повышения безопасности системы? Лекция 11. МЕХАНИЗМ АУТЕНТИФИКАЦИИ В ОС UNIX
Второй шаг в защите системы после настройки загрузчика – взятие под контроль пользовательских и групповых учетных записей: принудительный выбор надежных паролей, предоставление доступа только к тем файлам, каталогам и интерпретаторам команд, которые действительно необходимы, и правильное управление учетной записью суперпользователя. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.014 сек.) |