- •Минобрнауки россии
- •Содержание
- •Раздел 1. Современные методы защиты Тема 1. Криптографические методы защиты данных
- •1.1. Основные типы криптографических протоколов
- •1.2 Симметричная и асимметричная криптография.
- •1.3. Подстановочные и перестановочные шифры
- •Рекомендуемая литература:
- •Тема 2. Симметричные криптографические системы
- •2.1. Стандарт шифрования des
- •Режимы использования шифра des
- •Увеличение криптостойкости алгоритма
- •Применение шифра des
- •2.2. Стандарт шифрования гост 28147-89
- •Рекомендуемая литература:
- •Тема 3. Асимметрические криптографические системы
- •3.1. Алгоритм rsa
- •3.2. Шифр Эль-Гамаля
- •3.3. Основные результаты по анализу стойкости
- •Рекомендуемая литература:
- •Раздел 2. Практические вопросы защиты операционных систем Тема 1. Причины существования уязвимостей в Unix-системах
- •1.1. Краткая история Unix
- •1.2. Уязвимости операционных систем
- •1.3. Технология переполнения буфера
- •Рекомендуемая литература:
- •Тема 2. Проекты безопасности для Linux
- •2.1. Проект openwall
- •2.2. Проект pax
- •2.3. Проект medusa
- •Рекомендуемая литература:
- •Тема 3. Мандатные модели в Linux
- •3.1. Rsbac
- •3.2. Type Enforcement
- •3.3. Сравнение rsbac и seLinux.
- •Рекомендуемая литература:
- •Заключение
- •Список литературы
Рекомендуемая литература:
Взлом программного обеспечения: анализ и использование кода / Грэк Хогланд, Гари Мак-Гроу, Под ред. В.Иващенко . М.: Вильямс, 2005, 704c.
Unix: руководство системного администратора / Эви Намет, Гарт Снайдер, Скотт Сибасс, Тренд Р.Хейн, СПб.: Издательская группа BHV, 2002, 928c.
UNIX and Linux System Administration Handbook, 4th Edition / Evi Nemeth, Garth Snyder, Trent R. Hein, Prentice Hall, 2010, 1344c.
Доступный UNIX: Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD / Федорчук А.В, СПб: БХВ-Петербург, 2006, 672c.
Тема 2. Проекты безопасности для Linux
2.1. Проект openwall
Openwall (дословный перевод с английского языка – Открытая Стена) GNU/*/Linux или "Owl" - представляет собой усовершенствованную в плане безопасности операционную систему, использующую Linux и GNU software в качестве основы и совместимую с другими основными дистрибутивами GNU/*/Linux. Owl ориентирована на использование в качестве серверной платформы, распространяется свободно и бесплатно .
Owl действительно предоставляет ряд возможностей помимо попыток быть более безопасной системой.
Прежде всего, Owl можно использовать в качестве основы для установки любого программного обеспечения, существующего для GNU/*/Linux систем. Она предоставляет совместимость с программными пакетами, созданными для других дистрибутивов Linux - например, Red Hat Linux.
Дополнительно, как серверная платформа, Owl включает в себя постоянно расширяющийся набор интернет-сервисов.
Owl использует интегрированную систему сборки, позволяющую собрать всю систему целиком из исходных текстов посредством одной простой команды ("make buildworld").
Owl поддерживает различные процессорные архитектуры (в данный момент это x86, x86-64, SPARC и Alpha), что позволяет вам использовать ее в различных ситуациях и помогает нам более оперативно обнаруживать и исправлять различные программные ошибки, тем самым повышая надежность программных пакетов Owl.
В Linux также имеются ограничения на объем памяти, доступный выполняемому процессу. Сегменты разделяемой памяти могут существовать независимо от процессов, их использующих, что позволяет обойти соответствующие проверки. Включение опции Destroy shared memory segments not in use (Уничтожение сегментов разделяемой памяти не используется) вызывает уничтожение этих сегментов, после того как они становятся невостребованными. Активизация данного режима может привести к неработоспособности некоторых приложений.
Если в системе появляются проблемы с запуском некоторых приложений, необходимо воспользоваться утилитой chstk, позволяющей разрешить отдельным приложениям выполнять соответствующие «незаконные» операции. При этом следует знать, что, при выключении тех или иных механизмов защиты системы, открываются так называемые “бреши”, через которые злоумышленник может проникнуть в систему. Поэтому, если требования по безопасности высоки, лучше отказаться от неизвестных программ.
Owl сочетает в себе ряд возможностей для снижения количества и последствий ошибок в программных компонентах, а также уменьшения возможного вреда от ошибок в стороннем программном обеспечении, которое пользователь может установить на свой компьютер.
Основной используемый метод - активная проверка исходных текстов на предмет наличия программных ошибок. Тем не менее, ввиду их большого объема, проверке подвергаются только "важные" фрагменты - в настоящий момент это код, выполняемый с привилегиями выше, чем у обычного пользователя, или используемый для обработки получаемых из сети данных. Только после соответствующей проверки в Owl включаются многие системные библиотеки, все SUID/SGID программы, все демоны и сетевые сервисы. Остальные программы могут проверяться будучи уже частью Owl. Потенциальные проблемы, обнаруженные в процессе проверки, решаются, или, в клинических случаях, могут быть причиной того, что данный компонент не включается в Owl. В общем случае, качество кода и подход к использованию им привилегий всегда учитываются, когда есть выбор между двумя и более реализациями какой-то определенной возможности. По мере развития проекта многие компоненты будут заменены на наши собственные реализации.
При добавлении пакетов в Owl программные компоненты настраиваются или, если необходимо, модифицируются с целью обеспечения безопасных настроек по умолчанию, применения принципа минимальных привилегий, и реализации разделения доступа. Использование безопасных настроек по умолчанию, когда дополнительные (потенциально опасные!) функции при необходимости нужно включать явно, позволяет нам более тщательно исследовать фрагменты кода, используемые с настройками по умолчанию. Дополнительные утилиты для администрирования системы (owl-control) позволяют управлять различными системными функциями - например, такими, как необязательные SUID/SGID программы - независимо от установки соответствующих пакетов. Для каждого пакета, входящего в Owl, будет документирован статус для оценки риска.
Анализ исходных текстов, будучи предпочтительным методом проверки программного обеспечения, не всегда применим. Обычно, если "дырявая" программа от стороннего разработчика устанавливается на безопасную в остальном систему - извечная борьба снаряда и брони завершается, причем не в вашу пользу. Единственное, что система может обеспечить - то, что возможный несанкционированный доступ будет ограничен привилегиями, которые были у данной программы. Тем не менее, в последнее время разработаны различные методы снижения как вероятности подобных случаев, так и последствий совершившейся атаки на "дырявую" программу. Owl использует некоторые из этих методов в различных частях системы.
Owl использует стойкие криптографические методы в своих базовых компонентах и уже сейчас содержит набор средств для поддержания соответствия политике безопасности (проверка устанавливаемых паролей с помощью pam_passwdqc, сроки действия паролей и учетных записей пользователей, возможность ограничения доступа на основе сетевых адресов) и проверки целостности (mtree). Предоставить широкий спектр средств обеспечения безопасности, доступных "из коробки" - одна из наших основных задач.
За исключением отдельных случаев, не соответствующих нашим целям, Owl пытается сохранять максимальную совместимость с другими основными дистрибутивами GNU/*/Linux на уровне пакетов (в том числе бинарных).
В большинстве случаев, возможна установка готовых бинарных пакетов, предназначенных для определенных версий Red Hat Enterprise Linux, CentOS или Fedora, на компьютер, работающий под управлением Owl. Для Owl 2.0 и Owl 3.0, это относится к пакетам, собранным для RHEL4, CentOS 4 и FC3.