Анализ операционной системы МСВС на предмет наличия уязвимостей

Принципы построения безопасных информационных систем. Организация ядра ОС МСВС. Начальное тестирование оборудования. Определение способов устранения уязвимостей. Политика безопасности сетевого брандмауэра. Запрещение доступа с некоторых адресов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.04.2012
Размер файла 270,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При входе пользователя в систему программа login проверяет, что пользователь зарегистрирован в системе и знает правильный пароль (если он установлен), образует новый процесс и запускает в нем требуемый для данного пользователя shell. Но перед этим login устанавливает для вновь созданного процесса идентификаторы пользователя и группы, используя для этого информацию, хранящуюся в файлах /etc/passwd и /etc/group. После того, как с процессом связаны идентификаторы пользователя и группы, для этого процесса начинают действовать ограничения для доступа к файлам. Процесс может получить доступ к файлу или выполнить его (если файл содержит выполняемую программу) только в том случае, если хранящиеся при файле ограничения доступа позволяют это сделать. Связанные с процессом идентификаторы передаются создаваемым им процессам, распространяя на них те же ограничения.

Авторизация доступа

Схема авторизации доступа, примененная в UNIX - подобных ОС, проста и удобна и одновременно настолько мощна, что стала фактическим стандартом современных операционных систем.

Под авторизацией доступа мы понимаем действия системы, которые допускают или не допускают доступ данного пользователя к данному файлу в зависимости от прав доступа пользователя и ограничений доступа, установленных для файла.

Поскольку ОС МСВС является многопользовательской операционной системой, в ней всегда будет актуальна проблема авторизации доступа различных пользователей к файлам файловой системы.

Группы пользователей в ОС МСВС

"Доступ" означает не только возможность читать или изменять содержимое отдельных файлов. Это ещё и возможность создавать файлы и/или директории, удалять их, запускать файлы, если они являются исполняемыми, переименовывать их, а также менять все те атрибуты, которые и определяют право доступа.

Прежде всего, надо отметить, что правильнее говорить не о правах пользователя по отношению к какому-нибудь файлу, а о правах процесса (выполняемой программы).

Во-первых, если пользователь и вносит какие-то изменения в файлы или директории, он это делает с помощью каких-то программ (редакторов, оболочек, системных утилит для копирования, удаления файлов и т.п.), которые в момент выполнения являются процессами.

Во-вторых, что более важно, не все программы запускаются пользователями "вручную". Некоторые из них (демоны) запускаются при старте системы. Другие могут запускаться в определенные моменты времени (с помощью программы cron или at), или вызываться по мере необходимости для обслуживания запросов приходящих по сети (обычно их запускает inetd). Кроме того, существует ряд программ, которые для выполнения каких-то вспомогательных действий, сами запускают другие программы (в этом случае говорят, что родительский процесс запустил (породил) дочерний процесс (процесс - потомок)). Этим программам (процессам) также нужно ограничить доступ к файлам.

И, наконец, в-третьих, в некоторых случаях очень полезно, чтобы программа, запущенная пользователем, имела больше прав, чем обычно имеет этот пользователь. Например, обычный пользователь не может даже читать файл, в котором содержатся пароли всех пользователей. В то же время, любой пользователь должен иметь возможность поменять свой личный пароль, не обращаясь для этого к администратору. Но для этого ему надо иметь возможность записать что-то в файл паролей. Значит программа, которая это делает, в некоторый момент выполнения, должна иметь права большие, чем пользователь, который ее запускает.

В ОС МСВС все пользователи объединяются в группы. Причем, каждый пользователь входит, по крайней мере, в одну группу, но может быть членом нескольких различных групп.

Как и индивидуальные пользователи, каждая группа имеет свое имя (Group name) и числовой номер (GroupID). Они однозначно соответствуют друг другу.

Можно сказать, что каждый процесс имеет идентификатор пользователя (UserID). Обычно он совпадает с UserID того пользователя, который запустил этот процесс. Процессы, которые запустились автоматически, тоже имеют UserID, как будто их запустил реальный пользователь. Чей именно UserID получают эти программы обычно определяется теми программами, которые их стартуют (программа-загрузчик, cron, inetd и т.д.). В простейших случаях программы - "потомки" просто наследуют UserID от программы - "родителя", но некоторые "родители" могут запускать программы с другим UserID (не совпадающим с собственным). Некоторые программы в процессе выполнения могут поменять свой UserID и, соответственно, получить права, которые сам пользователь не имел. Для того, чтобы программа могла это сделать, администратор должен "разрешить" ей такое поведение (подробнее об этом будет сказано ниже). Изменение UserID'а делается не только, когда нужно "расширить" права программы, но и наоборот - "сузить" до прав какого-нибудь конкретного пользователя.

Если процесс может изменять свой UserID, то различают реальный UserID и эффективный UserID. Реальный UserID - это идентификатор пользователь, который запустил процесс (или UserID родительского процесса), а эффективный - это новый UserID, который задача получила во время выполнения.

В основном, группы пользователей используются при определении прав доступа к различным файлам и директориям. Можно сказать, что для каждого файла (директории) в ОС МСВС существует его владелец (один из пользователей) и группа "особо допущенных" к этому файлу (директории). При этом владелец файла может задать права доступа к нему (чтение, запись и т.п.) разные для себя, группы "допущенных" и для всех остальных (не входящих в эту группу).

Сам состав групп (список индивидуальных пользователей, входящих в группу) хранится в соответствующей базе данных, а к файлам "привязывается" только номер группы (GroupID).

Файлы и права доступа к ним

Поскольку ОС МСВС - система многопользовательская, в ней предусмотрен механизм, ограничивающий доступ пользователей к файлам и директориям.

Права на файл (или директорию) определяются по эффективному UserID процесса. В простейшем случае, когда UserID не меняется, реальный и эффективный UserID совпадают, то можно говорить просто о процессе обладающем определённым UserID. Или даже просто о правах пользователя (а не процесса) на файл.

Владелец файла и группа "допущенных"

Все пользователи для каждого файла (или директории) делятся на три категории владелец (или хозяин) этого файла, группа "особо допущенных" к этому файлу и все остальные.

Это означает, что можно установить права разграничения доступа (три различных набора прав доступа) для каждого файла или директории. Один набор будет определять права пользователя, который является владельцем файла, другой будет определять права для пользователей, которые входят в некую группу, но не являются владельцами, и, наконец, третий набор устанавливает права для всех остальных пользователей, которые не входят в группу "особо допущенных", и не являются владельцем файла.

Следовательно, у каждого файла (директории) есть три атрибута, которые хранятся в заголовке файла и регулируют доступ к нему. В заголовок файла записывается идентификатор пользователя UserID, который считается его владельцем, коим может быть только один определенный пользователь.

Кроме того, в атрибуты записывается идентификатор группы GroupID, который и определяет группу пользователей (особо допущенных) о которой говорилось выше. Каждая такая группа, ее название, GroupID и состав определяется администратором системы. То есть рядовой пользователь, даже если он и является хозяином файла, не может произвольно составить список допущенных, которым он доверяет особые права в отношении к своему файлу. Он может только выбрать подходящую группу из имеющихся, и то, только если он сам входит в эту группу.

И, наконец, в атрибутах файла есть набор битов, который и указывает - кто и что может проделать с этим файлом. Этот набор называется permissions, что можно перевести как права доступа.

2.3 Системы защиты ОС МСВС

RSBAK

RSBAC является самой гибкой и настраиваемой системой с архитектурой GFAC, позволяющая одновременное использование нескольких политик, таких как:

ACL;

мандатные методы;

ролевые модели.

Более того, можно использовать все одновременно - например, закрыть каталог с помощью ACL, а внутри него использовать полномочное разграничение доступа. Все ненужные в данный момент модули могут быть отключены, а при необходимости загружены вновь.

Все вносимые изменения применяются на "лету", что позволяет производить локальные изменения политики без прерывания работы критичных приложений сервера.

Протоколирование находится на самом высоком уровне - возможна тонкая настройка с точностью до пользователя, программы, системного вызова.

RSBAC разграничивает доступ от субъектов к объектам. Субъектом всегда является процесс, действующий со стороны пользователя с определенными атрибутами. Объекты в RSBAC называются Target (Цель). Определяются следующие типы объектов:

FILE

Файлы, включая специальные файлы устройств. Идентифицируются по устройствам и номерам inode.

DIR

Каталоги, идентифицированные по устройствам и номерам inode.

FIFO

Специальные файлы FIFO.

DEV

Устройства, различаемые по типу (char или block), значениям major и minor.

IPC

InterProcess Communication: Semaphores (sem), Messages (msg), Shared Memory (shm), Sockets (sock) и FiFo.

SCD

System Control Data: Объекты затрагивающие всю систему. Цели этого типа являются единственными с фиксированным числом объекта, идентифицируемому по номеру.

USER

Пользователи как объекты, в основном для информации контроля доступа (ACI).

PROCESS

Процессы как объекты.

NONE

Нет объектов, ассоциированных с этим запросом. В некоторых моделях (RC, ACL) это приравнено к SCD-цели "other".

FD

(Только в пользовательской области): Позволяет средствам командной строки делать различие между типами FILE и DIR.

Цели System Control Data (SCD) выглядят следующим образом:

time_strucs

Системный таймер

clock

Системные время и дата

host_id

Имя машины

net_id

Имя домена

ioports

Access Control для прямого доступа к оборудованию

rlimit

Установка ограничения ресурсов процесса

swap

Контроль свопирования

syslog

Системный журнал регистрации событий

rsbac

Данные RSBAC в /proc

rsbaclog

Собственный журнал регистрации событий RSBAC

kmem

Прямой доступ к памяти ядра через proc или устройство

other

(только встроенное в RC и ACL): Подстановка для цели NONE

auth_administration

(только в RC и ACL): AUTH-модель администрирования

Перед тем, как будет разрешен доступ к объекту, производится запрос к средствам Access Control Decision (ADF). Решение о разрешении и запрете доступа принимается в зависимости от типа запроса и цели.

Существует жесткое разделение администратора системы и администратора безопасности. Полномочия root ограничивает администратор безопасности, настраивая соответствующим образом политику. Таким образом, даже если в систему проникнет злоумышленник и получит права root - то он все равно не сможет уничтожить защищаемую информацию или перевести систему в незащищенный режим. С другой стороны, и администратор безопасности - всего лишь обычный пользователь и не может помешать функционированию системы.

В направлении разграничения прав доступа в RSBAC применяется технология создания и поддержки т.н. "chrooted environments" - изолированных сред выполнения. Влияние программ, работающих в таких средах, на другие программы и систему в целом, минимально; даже в случае обнаружения уязвимости, программа, запущенная в такой среде, не представляет угрозы для безопасности остальных компонент системы.

При первом старте ядра RSBAC создается следующая базовая конфигурация защиты:

Все ключевые каталоги с программами и библиотеками переводятся в режим доступа только для запуска либо только для чтения.

Файлы конфигурации, ответственные за добавление пользователей, изменение конфигурации файловой системы и загрузчиков, также доступны только для чтения.

Доступ в каталог /home, где по умолчанию размещены домашние каталоги пользователей, открыт только для пользователей и администратора безопасности (последний конечно же не может заходить в личные каталоги пользователей, так как они закрыты обычными правами системы).

Домашний каталог администратора безопасности вынесен отдельно из /home, закрыт для всех, кроме владельца и при необходимости в нем может быть размещена собственная доверенная программная среда.

В каталоге администратора безопасности размещен набор готовых сценариев на разрешение/запрет добавления пользователей, разрешение/запрет добавления программ, а также сценарий для организации защиты Web сервера.

PAM

Pluggable Authentication Modules (PAM) для ОС МСВС представляет собой набор общедоступных библиотек, которые дают возможность локальному администратору системы выбрать, как прикладные программы опознают пользователей.

PAM представляет промежуточный уровень между прикладной программой и фактическим опознавательным механизмом. Как только программа скомпилирована с поддержкой PAM, любые опознавательные методы, поддерживаемы PAM, будут пригодны для использования программой.

В дополнение к этому PAM может обрабатывать данные сеанса, что другие механизмы делают не очень хорошо. Например, можно легко отвергать доступ систему нормальных пользователей между 6pm и 6am.

Таким образом, на системе с PAM все, что нужно для затенения паролей: преобразовать файлы паролей и групп и добавить несколько строк в файлы настройки PAM. Данная система дает много гибкости для идентификации пользователя, и будет поддерживать другие свойства в будущем типа цифровых сигнатур.

AIDE

Инсталляция ОС МСВС включает в среднем около 30400 файлов. Администратор не в состоянии проконтролировать целостность всех системных файлов, и если хакер получит доступ к серверу и сможет модифицировать какие-либо файлы, то вы можете об этом не узнать. Для решения этих проблем было создано несколько программ.

Aide работает на самом фундаментальном уровне, защищая сервера и рабочие станции, представляющие основу корпоративной сети. Запускаемая первый раз, она сканирует компьютер и создает базу данных системных файлов, компактный цифровой “снимок” системы в безопасном состоянии. Пользователи могут настраивать aide очень точно, определяя конкретные файлы и каталоги на каждой машине, или создавая стандартный шаблон, который может использоваться на всех машинах предприятия.

Как только такая базовая база данных создана, администратор может запускать aide для проверки целостности системы в любое время. Она сканирует текущую систему и сравнивает результаты со своей базой. aide определяет и рапортует о любых дополнения, удаления и изменениях произошедших среди контролируемых ею файлов. Если изменения правильные, то администратор может обновить базу данных новой информацией. Если были найдены изменения, то администратор будет знать, на какую часть системы было оказано воздействие.

Эта версия aide включает:

Множество уровней сообщений позволяет вам выбрать различную информационность отчетов.

Опция Syslog посылает информация об инициализации и обновлении базы данных, изменении политики, и целостности в syslog.

Производительность базы данных может быть оптимизирована для увеличения эффективности проверки целостности.

Разные разделы отчета могут быть посланы разным получателям.

Поддержка отправки отчетов по почте через SMTP.

Режим тестирования почты для проверки правильности почтовых настроек.

Возможность создания нескольких независимо исполняемых секций с политиками.

Quota

Quota - это административная утилита для мониторинга и ограничения использования дискового пространства пользователями и группами на каждой файловой системе. Существует две возможных способа ограничений использования дисков. Первый, это число inode-ов (число файлов), которым может владеть пользователь или группа. Второй, число дисковых блоков (суммарное пространство в килобайтах), которое может выделяться в использование пользователю или группе. При помощи квот, системный администратор принуждает пользователя не расходовать неограниченный объем дискового пространства. Эта программа оперирует отдельно каждым пользователем и каждой файловой системой, поэтому для каждой файловой системы нужно определять квоты отдельно.

Wipe

Одна из вещей, которые обычно забывают, в том, что если файл удаляется, то реально-то он никуда не денется, и если его не уничтожить каким-то способом, то восстановить данные из него в принципе возможно.

В ОС МСВС есть специализированная программа wipe, которая надежно удаляет данные, перезаписывая файл многократно разными образцами.

Вы можете использовать wipe для файлов или устройств. В первом случае, имя файла и техническая информация о нем удалена не будет, будет уничтожено только его содержимое, после чего файл будет бесполезен для какого-либо восстановления.

PortSentry

Брандмауэры помогают нам защитить сеть от вторжений. С их помощью определяется, какие порты открыть, а какие нет. PortSentry - это программа созданная для определения и ответа на сканирование портов в реальном времени. Когда сканирование обнаружено, могут последовать следующие ответы:

занесение информации об инциденте в системный журнал через syslog().

Компьютер, замеченный в сканировании, автоматически заносится в файл /etc/host.deny для TCP Wrappers.

Локальный компьютер автоматически перенастраивается, чтобы направлять весь трафик от атакующего на несуществующий компьютер.

Локальный компьютер автоматически перенастраивается, чтобы блокировать все пакеты от атакующего пакетным фильтром.

Цель этой программы - дать администратору информацию о том, что их сервер исследуется.

Tcp_Wrappers

По умолчанию, ОС МСВС отвечает на все запросы к имеющимся сервисам. Используя Tcp_Wrappers, вы легко сможете оградить ваш сервер от внешних вторжений, когда это нужно. Используя Tcp_Wrappers, вы легко сможете оградить ваш сервер от внешних вторжений, когда это нужно. Данное средство позволяет запретить доступ с определённых хостов и определите список тех, кому доступ разрешен.

Ipchains

В ОС МСВС присутствует такое программное средство, как утилита ipchains используемая для администрирования firewall-а и IP маскарадинга.

На пути от отправителя к получателю пакет может проходить через промежуточные узлы. В зависимости от информации, которая содержится в заголовке IP-пакета, они могут этот пакет переслать на следующий узел (forward), передать локальной программе для обработки, уничтожить (deny), отвергнуть, т.е. уничтожить и отправить об этом уведомление отправителю (reject). Выбор и осуществление одного из этих действий и называется фильтрацией пакетов.

Возможность фильтрации встроена в ядро ОС МСВС. Firewall или брандмауэр - это программа, которая, основываясь на некоторых правилах, разрешает или запрещает передачу информации, проходящей через нее, с целью ограждения некоторой подсети от внешнего доступа или наоборот, для недопущения выхода наружу. Firewall может определять правомерность передачи информации на основе только заголовков IP-пакетов, а может анализировать и их содержимое, т.е. использовать данные протоколов более высокого уровня.

Маскарадинг - это подмена некоторых параметров в заголовках IP-пакетов, позволяющая машинам, не имеющим реальных IP-адресов, практически полноценно работать в глобальных сетях.

Прозрачное проксирование (transparent proxying) - это переадресация пакетов на другой порт машины. Обычно используется для того, чтобы заставить пользователей из локальной сети пользоваться местным proxy-сервером без дополнительного конфигурирования их клиентских программ.

Парольная защита

Защита паролей должна занимать ведущее место в системе защиты любой ОС.

МСВС обеспечивает защиту паролей с помощью трёх основных механизмов:

шифрование паролей;

механизм затенения (сокрытия) паролей;

механизм PAM.

Рассмотрим отдельные механизмы подробнее.

Во всех UNIX-подобных ОС имеются несколько констант, и одна из них файл /etc/passwd, и как он работает. Проблема с этим состоит в том, что каждый нуждается в доступе к passwd файлу. То есть, зашифрованные пароли доступны всем.

Суть механизма сокрытия паролей проста: парольный файл, даже зашифрованный, доступен только системному администратору. Для этого он помещается в файл \etc\shadow, права на чтение которого, принадлежат только системному администратору. Для реализации подобной схемы защиты в МСВС используется набор программных средств Shadow Suite.

Log - файлы и другие формы аудита

Одной из главных частей любой UNIX-системы является протоколирование. В МСВС оно обеспечивается двумя основными программами: sysklogd и klogd, первая предоставляет собой сервис протоколирования программ и приложений, вторая делает то же самое в отношении ядра МСВС. Эти средства позволяют программному обеспечению генерировать сообщения для протоколов, которые затем передаются log daemon и обрабатываются (пишутся в локальный файл, пересылаются на другой сервер, посылаются программе или обрабатываются как-то еще).

klogd обрабатывает ядерные сообщения, в зависимости от конфигурирования, их может быть разное количество.

Резервное копирование и восстановление

Безопасность и надежность сервера вплотную связана с процедурой регулярного резервного копирования. Иногда могут возникать различные повреждения. Они могут быть следствием атак, ошибок аппаратного обеспечения, ошибок администратора, перепадов напряжения и пр. Самый надежный метод резервного копирования это записать данные в место независимое от вашего МСВС сервера.

В ОС МСВС есть программа dump для резервного копирования и восстановления файловых систем.

Основная идея резервного копирования - это создание копий всего, что установлено на вашей системе.

Команда restore выполняет функцию противоположную функции dump. Она восстанавливает файлы и каталоги из резервных копий полученных, программой dump. Может быть восстановлена полная резервная копия файловой системы, а затем и уровни добавочных резервных копий поверх ее. Также может из полной резервной копии или частичной могут быть восстановлены отдельные файлы и каталоги. Вы имеете ряд возможных команд и опций для восстановления данных из резервных копий, полученных программой dump.

3. Определение перечня уязвимостей ОС МСВС

Чтобы правильно оценить уязвимости операционной системы, важно представлять себе круг решаемых ею задач. Когда речь идет об универсальных ОС, к какой относятся и ОС МСВС необходимо определить границы её применения.

Функционирование компьютера, с установленной ОС МСВС возможно в виде:

отдельной рабочей станции, не подключенной к сети (локальный вариант);

рабочей станции, подключенной к сети (сетевой вариант);

сервера (в том числе и сетевого).

В данном случае на защищаемую информацию, обрабатываемую в системе, воздействуют различные факторы, обусловленные наличием уязвимостей в локальных подсистемах, а при работе в сети к ним добавляются еще и уязвимости сетевых сервисов.

Только после проведения подробного исследования можно сделать вывод о степени защищенности ОС МСВС и принять меры, направленные на повышение безопасности системы.

3.1 Локальные уязвимости

Анализ уязвимостей следует проводить с начального этапа работы ОС МСВС - этапа загрузки операционной системы. Процесс загрузки и инициализации ОС протекает автоматически при включении питания или при перезагрузке системы.

Процесс загрузки и запуска ОС МСВС

Во время загрузки, особенно на ее начальных этапах, системы безопасности ОС МСВС еще не запущены. Рассмотрим последовательность этапов загрузки, инициализации и запуска ОС МСВС, начиная с момента включения питания компьютера.

Начальное тестирование оборудования

При включении питания компьютер проводит тестирование аппаратных средств, на предмет обнаружения неисправностей в работе устройств и компонентов системы. Данным процессом управляет BIOS (Basic Input Output System) материнской платы. В ходе проверок определяется объем памяти, установленной на компьютере, диагностика, наличие и работоспособность периферийных устройств (клавиатура, мышь и т. д.).

Некоторые BIOS имеют универсальные пароли для доступа к системе, что позволяет злоумышленнику изменить процедуру загрузки ОС.

Загрузка с различных устройств (floppy-дисковод, CD-ROM) альтернативной ОС, дает возможность получить доступ к конфиденциальным данным, минуя средства защиты ОС МСВС.

Исходный запуск

BIOS загружает в память первый сектор раздела диска, который был указан в настройках как загрузочный, и передает управление на начало загружаемого блока. Для жестких дисков первый сектор содержит так называемую главную загрузочную запись (Master Boot Record). При установке ОС МСВС заменяет главную загрузочную запись собственной, в которой располагается начальный загрузчик, который затем загружает ядро и, собственно, саму операционную систему.

При повреждении главной загрузочной записи становится невозможна загрузка операционной системы и возникает большая вероятность потери информации о структуре жесткого диска.

Процесс инициализации и стартовые сценарии

ОС МСВС использует классический загрузчик Unix систем - LILO (LInux LOader). LILO позволяет гибко настраивать загрузку системы, но это палка о двух концах. LILO позволяет передавать при загрузке некоторые параметры, которые являются опасными с точки зрения защиты информации.

Наиболее опасным является такой режим загрузки ОС как image-name single, который загружает ОС МСВС в однопользовательском режиме. Данный режим представляет собой просто root shell без запроса пароля или каких-то других защитных механизмов. В данном режиме злоумышленник может изменить файлы конфигурации ОС в своих целях.

Сначала загрузчик переводит процессор в защищенный режим работы и загружает все необходимые для старта системы файлы. Затем управление передается функции инициализации ядра операционной системы. При этом выполняется инициализация самого ядра, загруженных драйверов и подсистем управления памятью, безопасностью, процессами и потоками, ввода/вывода. Когда эта стадия завершается, ОС МСВС начинает работу в обычном режиме, в котором обеспечивается идентификация и аутентификация пользователей, разграничение доступа, аудит т.п., то есть система безопасности ОС МСВС начинает функционировать в полном объеме.

Ненадёжность файловой системы

В MCBC посредством VFS (Virtual File System) различные файловые системы увязываются в одно дерево. Одна из файловых систем - начало начал, её корневой каталог root (/). Уже к ней монтируются остальные файловые системы. VFS делает эту конструкцию прозрачной для прикладных программ.

ОС МСВС использует Ext2fs - стандартную файловую систему Unix-подобных ОС. Разберём подробнее её достоинства и недостатки.

Единой и неделимой, с точки зрения обращения к диску порции данных является логический блок, размер которого кратен степени двойки (обычно 1024 или 4096 байт). В логические блоки записываются собственно данные файлов. Но файлы могут быть разной длины, как маленькие, размером меньше логического блока, так и большие, занимающие несколько логических блоков. Чтобы разобраться в мешанине данных (найти по имени нужный файл и нужную порцию данных в нём), а также снабдить файлы атрибутами-метаданными, часть логических блоков играет роль каталогов-списков пар (имя файла, индекс записи метаданных i-node). В начале раздела располагается корневой каталог, который содержит ссылки на другие файлы и каталоги (содержащие ссылки на файлы и каталоги). Так и образуется древовидная структура файловой системы.

Индекс i-node ссылается на запись метаданных. Записи i-node включают в себя перечень атрибутов (размер в байтах, дата создания и модификации, права доступа) и список номеров логических блоков, в которых располагается соответствующий файл данных. В зависимости от размера файла список номеров логических блоков может использовать тот или иной уровень вложенности (используя для этого дополнительные блоки).

Следующий момент-это учёт свободных блоков на диске. Для этого используется таблица, где каждому блоку соответствует один бит. Поиск свободного блока на диске осуществляется линейным просмотром этой таблицы. При занятии и освобождении блока делается соответствующая отметка в таблице.В начале раздела есть загрузочный сектор и блок параметров раздела.

Все ссылки - это целые числа ограниченной разрядности, и от выбора их разрядности зависят ограничения на максимальный размер файла. Для 32-разрядной архитектуры максимальный размер файла в ext2fs - 2 Гбайт, а при размере блока в 1 Кбайт максимальный размер файловой системы в целом - 4 Тбайт.

Теперь посмотрим, какие проблемы в такой файловой системе могут возникать.

Во-первых, файлы могут быть очень маленькими. Но занимать они будут всё равно целый блок. То же самое происходит с “хвостами” файлов. Последствия этого известны - внутренняя фрагментация.

Во-вторых, большие файлы только в начале жизни раздела размещаются в последовательно расположенных логических блоках. Со временем (файлы, занимающие разное число блоков, удаляются, записываются новые, вновь удаляются и т.д.) получается так, что составляющие файл блоки оказываются разбросанными по всему диску - файл становится фрагментированным. Соответственно, при считывании такого файла головкам диска требуется основательно поработать и скорость считывания существенно замедляется.

В-третьих, при увеличении размера диска увеличивается размер таблицы свободных блоков, и с учётом линейного поиска по таблице - этот поиск замедляется пропорционально размеру диска. То же самое происходит и при увеличении числа файлов в каталоге, да и при увеличении размеров самих файлов.

В-четвёртых, при модификации файла помимо записи самых данных нужно внести изменения в записи файловой системы (изменить метаданные, внести изменения в список блоков, пометить занятые блоки). И тут кроется самое страшное. Поскольку эти обращения к диску разнесены во времени (и это ещё усугубляется кэшированием), в том случае, если в момент записи на диск произойдёт отключение или сбой питания, то мало того, что теряются данные, - может разрушиться вся файловая система.

Время, которое тратится на восстановление, может длиться десятки минут, а на больших дисках даже часы. Всё это время, естественно, система неработоспособна - прощай, высокая готовность. Конечно, если ведётся регулярное резервное копирование, то данные конечно можно восстановить, но время потеряно.

Хотя ext2fs достаточно устойчива, неудовлетворённость ею среди пользователей и администраторов зрела уже очень давно. Объёмы дисков растут, повышаются требования к надёжности, ужесточаются требования к скорости восстановления работоспособности после сбоев.

Подбор пароля

Для получения доступа к ресурсам системы каждый пользователь проходит обязательную процедуру идентификации и аутентификации. В ОС МСВС для идентификации используется символическое имя пользователя, а для аутентификации - пароль. Имя пользователя не является секретным, а пароль должен хранится в тайне.

Одной из атак, давно ставшей наиболее популярной, является атака с подбором пароля другого пользователя. Существует множество программ, занимающихся подбором паролей.

Как известно, в файле /etc/passwd лежит ключевая информация о всех пользователях системы, включая его входное имя, пароль, полное имя и т. п. Даже в 70-х годах, когда создавались первые версии UNIX - систем, его разработчикам было понятно, что пароль пользователя нельзя хранить в открытом виде. Была создана схема, благодаря которой целенаправленные атаки смогли реализоваться только спустя несколько десятков лет. Они не пошли по простому пути шифрования пароля по какому-то секретному алгоритму, т. к. рано или поздно этот алгоритм стал бы известен. Был выбран путь необратимого преобразования пароля, когда из исходного пароля путем применения к ней специальной однонаправленной функции хэширования получалось некое значение, из которого никак нельзя получить исходный пароль.

Рассмотрим немного подробнее алгоритм, применяемый в ОС МСВС для преобразования пароля пользователя. Из исходного пароля берутся первые восемь байт. Также выбирается некоторое 12-битное случайное число salt, используемое для операции хэширования. Его необходимость следует из того, чтобы одинаковые пароли (возможно, у разных людей) не выглядели одинаково после хэширования. Затем к этим двум параметрам применяется специальная функция шифрования, дающая на выходе 64-битное значение. Наконец, сам salt преобразуется в два читабельных ASCII-символа, а хэш - в 11 символов. Итак, функция crypt (passwd8, salt) выдает 13-символьную строчку, которая и записывается в файл /etc/passwd.

При входе пользователя в систему вызывается та же функция crypt() с введенным паролем и salt, полученными из /etc/passwd. Если результат функции оказывается равным тому значению, что хранится в файле, то аутентификация считается состоявшейся.

Первое, что приходит в голову потенциальному взломщику - это простейший перебор (brute forse). Берется некоторый набор символов, а затем из них по очереди составляются все комбинации вплоть до 8-символьной длины. К каждой из них применяется crypt(), и результат сравнивается с имеющимся. Естественно, что в эти комбинации и попадет рано или поздно любой пароль пользователя.

Более того, во-первых, этот процесс легко можно распараллелить, а во-вторых, существуют специальные платы, аппаратно выполняющие процесс шифрования, с помощью которых можно еще уменьшить время на несколько порядков.

Был придуман очевидный метод, основанный на людской психологии. Он следует из того, что человеку нелегко запомнить длинные бессмысленные наборы символов (идеальные в качестве паролей), поэтому он каким-либо путем попробует выбрать их более-менее запоминающимися и/или осмысленными. Ну, а поскольку в любом языке не более 100000 слов, то их перебор займет весьма небольшое время, и от 40 до 80% существующих паролей может быть угадано с помощью такой простой схемы, называемой "атакой по словарю". Тем более, что "под рукой" часто оказывается файл-словарь, обычно используемый программами-корректорами.

ОС МСВС использует механизм так называемого "затенения" (shadowing) файла паролей - он перемещается в другое место и становится недоступным обычным пользователям по чтению.

Иногда функция crypt() заменяется на другую хэш-функцию, и запуск программ - взломщиков ни к чему не приводит. Обычно это алгоритм MD5, скорость которого, приблизительно, в десятки раз меньше.

Однако психологический фактор останется до тех пор, пока с компьютером работает человек. Как правило, пользовательские пароли базируются на осмысленном слове и некотором простом правиле его преобразования. Например: прибавить цифру, прибавить год, перевести через букву в другой регистр, записать слово наоборот, прибавить записанное наоборот слово, записать русское слово латинскими буквами, набрать русское слово на клавиатуре с латинской раскладкой, составить пароль из рядом расположенных на клавиатуре клавиш и т. п.

Не удивительно, если такой пароль будет вскрыт злоумышленником, который вставил в свои программы те правила, по которым может идти преобразование слов. В таких программах как: Crack 4.1, John The Ripper 1.3, эти правила могут быть программируемыми и задаваться с помощью специального языка.

Сохранение защищаемой информации в специальные файлы

При возникновении сбоя в процессе работы, ОС МСВС создает файлы дампа памяти (core) в случае краха системы или какой-либо отдельной программы. Информация из этих файлов затем может быть использована системными администраторами для выяснения причин возникновения внештатной ситуации.

В случае сбоев в операционной системе, в данные файлы записывается полная копия ОЗУ, содержащая полную информацию о системных и пользовательских программах, а также защищаемую информацию, которая обрабатывалась в момент сбоя. Злоумышленник может специально инициировать ситуации, приводящие к краху системы и затем получить доступ к информации через файлы дампа памяти.

3.2 Сетевые уязвимости

В настоящее время локальные компьютеры в больших организациях становятся большой редкостью, что делает актуальным построение эффективной защиты на уровне локальной сети. Более того, надёжность на системном уровне, может быть сведена на нет на сетевом уровне. Защита информации на сетевом уровне имеет определённую специфику, и ещё не может похвастаться такой же гибкостью, как на системном.

Основной особенностью любой распределенной вычислительной системы (РВС) является то, что ее компоненты распределены в пространстве и связь между ними физически осуществляется при помощи сетевых соединений и программно при помощи механизма сообщений. При этом все управляющие сообщения и данные передаются по сетевым соединениям в виде пакетов обмена.

В случае сетевой конфигурации, становится возможен перехват пользовательских имён и паролей. Это заставляет вновь пересматривать задачу аутентификации, но уже в распределённом случае. Кроме аутентификации пользователей, в распределённой системе должна производиться также аутентификация машин - клиентов. Также немаловажное значение имеет аудит событий и своевременное оповещение и реакция на всевозможные нарушения.

Учитывая тот факт, что локальные вычислительные сети многих организаций обычно связаны между собой и имеют выход в Internet, возникает угроза удаленного вторжения и НСД к информации.

Условно можно классифицировать сетевые атаки как:

Пассивные;

Активные.

Рассмотрим подробнее данные типы атак, выясним предполагаемые уязвимости (ОС и сетевых технологий и протоколов) и проанализируем причины успеха удаленных атак.

Пассивные атаки

При пассивных атаках злоумышленник никаким образом не обнаруживают себя и не вступают напрямую во взаимодействие с другими системами. Фактически все сводиться к наблюдению за доступными данными или сессиями связи.

Одной из атак является подслушивание (Sniffing), что представляет собой перехват сетевого потока и его анализе. Для осуществления подслушивания злоумышленнику необходимо иметь доступ к машине, расположенной на пути сетевого потока, который необходимо анализировать, например, к шлюзу или маршрутизатору. При получении достаточных прав на этой машине с помощью специального программного обеспечения сможет просматривать весь трафик, проходящий через данный интерфейс. Второй вариант - злоумышленник получает доступ к машине, которая расположена в одном сегменте сети с системой, которой имеет доступ к сетевому потоку. Например, в сети Ethernet сетевая карта может быть переведена в режим, в котором она будет получать все пакеты, циркулирующие по сети, а не только адресованной ей конкретно.

Поскольку TCP/IP-трафик, как правило, не шифруется, злоумышленник, используя соответствующий инструментарий, может перехватывать TCP/IP-пакеты и извлекать из них имена пользователей и их пароли.

Следует заметить, что данный тип атаки невозможно отследить, не обладая доступом к системе злоумышленника, поскольку сетевой поток не изменяется.

Активные атаки

Целью активных атак является взаимодействие злоумышленника с получателем информации, отправителем и/или промежуточными системами, возможно, модифицируя и/или фильтруя содержимое пакетов. Злоумышленник предпринимает определенные шаги для перехвата и модификации сетевого потока или попыток "притвориться" другой системой.

Существует атака основанная на предсказании TCP sequence number (IP spoofing). В данном случае цель - притвориться другой системой, которой "доверяет" система-жертва, например в случае использования протокола rlogin/rsh для беспарольного входа.

IP Hijacking. Если в случае IP spoofing'а злоумышленник инициировал новое соединение, то в данном случае он перехватывает весь сетевой поток, модифицируя его и фильтруя произвольным образом. Метод является комбинацией подслушивания и IP spoofing'а. В этом случае злоумышленник, прослушивая линию, может взять на себя функции посредника, генерируя корректные пакеты для клиента и сервера и перехватывая их ответы. Метод позволяет полностью обойти такие системы защиты, как, например, одноразовые пароли, поскольку злоумышленник начинает работу уже после того, как произойдет авторизация пользователя.

Пассивное сканирование часто применяется злоумышленником для того, чтобы выяснить, на каких TCP-портах работают демоны, отвечающие на запросы из сети. Обычная программа-сканер последовательно открывает соединения с различными портами. В случае, когда соединение устанавливается, программа сбрасывает его, сообщая номер порта.

Одной из атак является использование интересной особенности тестовой программы. Традиционное название данной атаки ping flood. Дело в том, что программа ping, предназначенная для оценки качества линии, имеет ключ для "агрессивного" тестирования. В этом режиме запросы посылаются с максимально возможной скоростью и программа позволяет оценить, как работает сеть при максимальной нагрузке. Случай с ping является частным случаем более общей ситуации, связанный с перегрузкой каналов.

Один из вариантов данной атаки - посылать ICMP echo request - пакеты с исходным адресом, указывающем на жертву, на broadcast-адреса крупных сетей. В результате каждая из машин ответит на этот фальшивый запрос, и машина-отправитель получит больше количество ответов, что приводит, как правило к зависанию или сбою в работе данной системы.

Sun flooding - самая известная атака. Затопление sun-пакетами основано на переполнении очереди сервера, после чего сервер перестает отвечать на запросы пользователей. Суть данной атаки будет заключаться в передаче на атакуемый хост, как можно большего числа ложных TCP-запросов на создание соединения, от имени любого хоста в сети. При этом атакуемая сетевая ОС в зависимости от вычислительной мощности компьютера либо - в худшем случае - практически зависает, либо - в лучшем случае - перестает реагировать на легальные запросы на подключение (отказ в обслуживании).

Атаки типа ping flood, sun flooding как правило используются злоумышленниками для подготовки или маскировки атак типа IP spoofing или IP Hijacking.

Я не рассматриваю атаки типа подмены ARP или DNS -сервера, так как они достаточно сложны в применении, хотя становятся наиболее актуальными в последнее время.

В процессе эксперимента также была выявлена одна принципиальная слабость, присущая ОС МСВС. После передачи около десятка запросов на определенный порт (ftp или telnet) на некоторое время (до нескольких десятков минут) на атакуемом хосте отключался соответствующий данному порту сервер (каждая программа-сервер ожидает запросов на определенном зарезервированном порту), то есть в течение определенного промежутка времени у пользователей не было возможности удаленно подключиться к данному серверу и получить удаленный доступ к его ресурсам. Это связано с переполнением числа одновременно обслуживаемых данным сервером клиентов.

Уязвимости сетевых протоколов

Во многих сетях основными базовыми протоколами удаленного доступа являются telnet и ftp. Для получения доступа к серверу по данным протоколам пользователю необходимо пройти на нем процедуру идентификации и аутентификации. В качестве информации, идентифицирующей пользователя, выступает его идентификатор (имя), а для аутентификации используется пароль. Особенностью протоколов ftp и telnet является то, что пароли и идентификаторы пользователей передаются по сети в открытом, незашифрованном виде. Таким образом, необходимым и достаточным условием для получения удаленного доступа к хостам по протоколам ftp и telnet являются имя и пароль пользователя.

Одним из способов получения паролей и идентификаторов пользователей в сети является анализ сетевого трафика. Сетевой анализ осуществляется с помощью специальной пpогpаммы - анализатоpа пакетов, перехватывающей все пакеты, передаваемые по сегменту сети, и выделяющей среди них те, в которых передаются идентификатоp пользователя и его паpоль. сетевой анализ протоколов ftp и telnet показывает, что telnet разбивает пароль на символы и пересылает их по одному, помещая каждый символ из пароля в соответствующий пакет, а ftp, напротив, пересылает пароль целиком в одном пакете.

Уязвимости распределенной файловой системы

Основная идея распределенной файловой системы состоит в том, чтобы обеспечить совместный доступ к файлам локальной файловой системы для процессов, которые, вообще говоря, выполняются на других компьютерах. Эта идея может быть реализована многими разными способами, однако в среде ОС МСВС все известные подходы основываются на монтировании удаленной файловой системы к одному из каталогов локальной файловой системы. После выполнения этой процедуры файлы, хранимые в удаленной файловой системе, доступны процессам локального компьютера точно таким же образом, как если бы они хранились на локальном дисковом устройстве.

В принципе, такая схема обладает и достоинствами, и недостатками. К достоинствам, конечно, относится то, что при работе в сети можно экономить дисковое пространство, поддерживая совместно используемые информационные ресурсы только в одном экземпляре, её прозрачность для пользователей. С другой стороны, пользователи удаленной файловой системы, неизбежно будут работать с удаленными файлами существенно более медленно, чем с локальными. Кроме того, реальная возможность доступа к удаленному файлу критически зависит от работоспособности сервера и сети.

Уязвимости NIS

NIS (Network Information Server) служит для централизованного управления информационными ресурсами в распределённой среде. NIS строит подобно DNS - сервису древовидную структуру имён объектов в сети, но NIS функционально существенно богаче. Сервис NIS работает на основе набора таблиц или как это ещё называют - административной базы данных, содержащей сведения о машинах, параметрах удалённой загрузки, паролях, ключах аутентификации машин локальной сети, пользователях и группах, подсетях, сетевых масках, адресах Erthnet, сервисах, протоколах, параметрах автоматического монтирования удалённых файловых систем и удалённого вызова процедур (RPC). Данная информация является очень важной с точки зрения безопасности ИС, её надёжная защита с учётом трёх критериев безопасности (конфиденциальность, целостность, доступность) абсолютно необходима.

К сожалению, порочна уже сама положенная в основу данной системы идея “лёгкого доступа к информации”, поэтому она давно является лакомым кусочком для злоумышленников.

Активный NIS-сервер управляет почтовыми псевдонимами (aliases) для доменов NIS. Подобно рассмотренным вариантам атак с помощью псевдонимов локальной почты, можно создать почтовые псевдонимы, которые будут выполнять команды, когда им приходит почта. Типичной уязвимостью является создание псевдонима, который посылает по почте файл паролей, когда на его адрес поступает любое сообщение.

Таким образом, становится ясно, что NIS - ненадежная служба, которая почти не имеет аутентификации клиентов и серверов, и, если атакующий управляет активным NIS-сервером, то он также сможет эффективно управлять хостами клиентов (например, сможет выполнять произвольные команды).

Уязвимости NFS

NFS (Network File System) разрабатывалась как система, пригодная к использованию не только на разных аппаратных, но и на разных операционных платформах. В архитектурном отношении в NFS выделяются три основные части: протокол, серверная часть и клиентская часть. Клиентская часть NFS, представляющая собой средство XDR (External Data Representation), взаимодействует с серверной частью системы на основе механизма RPC (Remote Procedure Calls).NFS является серьёзным источником угроз для безопасности ОС. Самая высокая степень риска связана с локальными машинами, которым официально разрешено монтировать файловые системы, так как в их распоряжении оказывается довольно много методов доступа к файлам принадлежащим другим пользователям.

Главная уязвимости NFS находится в системе аутентификации, согласно которой проверка пользователя осуществляется на основании его IP-адреса при монтировании. Пользователю передается идентификационный ключ (magic cookie), включаемый во все последующие RPC-запросы и не изменяющийся до момента размонтирования.

3.3 Причины успеха удаленных атак на распределенные ВС

Недостаточная идентификация и аутентификация

Проблема идентификации и аутентификации субъектов и объектов РВС имеет чрезвычайно важное значение. От успеха ее решения зависит безопасность распределенной ВС в целом. Отсутствие определенной заранее выработанной концепции и принципа идентификации объектов РВС в целом оставляют атакующему потенциальные возможности для компрометации объектов системы.

Отсутствие в РВС полной информации о ее объектах

В системе с заложенной в нее неопределенностью существуют потенциальные возможности внесения в систему ложного объекта и выдачи одного объекта системы за другой. Это объясняется тем, что, являясь следствием неопределенности системы, алгоритмы удаленного поиска несут в себе потенциальную угрозу, состоящую в том, что на посланный запрос может прийти ложный ответ, в котором вместо информации о запрашиваемом объекте будет информация о ложном объекте. Вследствие этого распределенная ВС с заложенной неопределенностью является потенциально опасной системой и может подвергаться удаленным атакам.

Отсутствие выделенного канала связи между объектами РВС

Результатом анализа сетевого трафика является, во-первых, выяснение логики работы распределенной системы и, во-вторых, перехват потока информации, которой обмениваются объекты системы.

Потенциальную возможность проведения атак данного типа дает наличие широковещательной среды передачи данных или отсутствие выделенного канала связи между объектами РВС.

Отсутствие контроля за маршрутом сообщений

Если в РВС не предусмотрены возможности контроля за маршрутом сообщения, то адрес отправителя сообщения оказывается ничем не подтвержден. Таким образом, в системе будет существовать возможность отправки сообщения от имени любого объекта системы.

Отсутствие в РВС криптозащиты сообщений

В распределенных ВС связь между объектами системы осуществляется по каналам связи. Поэтому всегда существует принципиальная возможность для атакующего прослушать канал и получить несанкционированный доступ к информации, которой обмениваются по сети ее абоненты.

Отсутствие криптозащиты в базовых протоколах

В существующих базовых протоколах семейства TCP/IP, обеспечивающих взаимодействие на сетевом - сеансовом уровнях, не предусмотрена возможность шифрования сообщений. При этом базовые протоколы прикладного уровня (FTP, TELNET, HTTP и др.) также не предусматривали никакого шифрования сообщений.

Определение компонентов ОС МСВС, создающих уязвимости

Операционная система ОС МСВС проектировалась на основе принципов построения открытых систем. Она состоит из ядра и различных компонентов, каждый из которых реализует определенные функции.


Подобные документы

  • Концепция адаптивного управления безопасностью. Средства анализа защищенности сетевых протоколов и сервисов. Компоненты и архитектура IDS. Классификация систем обнаружения атак. Поиск уязвимостей в современных системах IDS. Методы реагирования на атаки.

    курсовая работа [488,5 K], добавлен 13.12.2011

  • Анализ рисков информационной безопасности. Идентификация уязвимостей активов. Оценка существующих и планируемых средств защиты. Комплекс проектируемых нормативно-правовых и организационно-административных средств обеспечения информационной безопасности.

    дипломная работа [1,1 M], добавлен 03.04.2013

  • Анализ потенциальных уязвимостей материала, размещенного на сайте. Анализ потенциальных уязвимостей материала с использованием методов шифрования и стеганографии. Использование водяного знака для защиты изображений. Разработка php-скрипта для защиты.

    курсовая работа [4,2 M], добавлен 11.05.2014

  • Анализ уязвимостей в многопоточных программах, написанных на языке С++. Создание программного обеспечения, выполняющего анализ многопоточных программ, написанных на С++, на предмет наличия в них ошибок синхронизации типа "гонки" и "заброшенные замки".

    курсовая работа [755,9 K], добавлен 20.09.2016

  • Несовершенство операционных систем и программного обеспечения как причина ущерба, нанесенного мировой экономике компьютерными злоумышленниками. Безопасность операционной системы. Положительные и отрицательные стороны Microsoft Basline Sequrity Analyzer.

    курсовая работа [1,6 M], добавлен 03.08.2014

  • Предпосылки создания системы безопасности персональных данных. Угрозы информационной безопасности. Источники несанкционированного доступа в ИСПДн. Устройство информационных систем персональных данных. Средства защиты информации. Политика безопасности.

    курсовая работа [319,1 K], добавлен 07.10.2016

  • Структурная организация операционной системы на основе различных программных модулей. Функции, выполняемые модулями ядра. Модули операционной системы, оформленные в виде утилит. Ядро в привилегированном режиме. Многослойная структура ядра системы.

    презентация [705,2 K], добавлен 16.01.2012

  • Мобильная система Вооруженных Сил - защищенная операционная система общего назначения. Изоляция и защита пользователей друг от друга. Правила допуска в систему. Привилегированные и непривилегированные пользователи. Способы проверки безопасности.

    учебное пособие [1,7 M], добавлен 09.06.2009

  • История развития и отличительные признаки UNIX-системы. Основы информационной безопасности и особенности настройки исследуемой операционной системы, ее достоинства, недостатки и базовые права доступа. Общая характеристика безопасности ядра UNIX.

    реферат [599,5 K], добавлен 18.09.2013

  • Анализ серверных операционных систем на базе ядра Linux. Подходы к построению маршрутизации и оценка полученных результатов. Установка операционной системы CentOS 6.6 и закономерности ее настройки. Принципы и основные этапы тестирования созданного шлюза.

    курсовая работа [2,9 M], добавлен 19.11.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.