- •Курс лекций по дисциплине информационная безопасность
- •Протодьяконова г.Ю., Протодьяконов п.С.
- •Коврова с.Е.
- •Содержание
- •Тема 1.2. Роль информатизации в развитии общества .8
- •Пояснительная записка
- •Цели и задачи дисциплины
- •Раздел 1. Информация и информационные ресурсы
- •Тема 1.1. Информация, ее виды и свойства
- •Измерение количества информации
- •1. Вероятностный подход.
- •2. Объемный подход
- •Cвойства информации
- •Тема 1.2. Роль информатизации в развитии общества
- •Тема 1.3. Информационные ресурсы
- •Документирование информации
- •Государственные информационные ресурсы
- •Пользование информационными ресурсами
- •Раздел 2. Информационная безопасность
- •Тема 2.1. Современная ситуация в области информационной безопасности Информационная безопасность. Основные виды и источники атак информации
- •Угроза безопасности информации
- •Виды угроз:
- •Дополнительные виды угроз:
- •Факторы угроз безопасности информации:
- •4. Основные угрозы безопасности информации и нормального функционирования ис :
- •Тема 2.2. Категории информационной безопасности
- •Системы информационной безопасности
- •Тема 2.3. Абстрактные модели защиты информации Защита информации
- •Модели защиты информации
- •Тема 2.4. Обзор наиболее распространенных методов взлома Комплексный поиск возможных методов доступа
- •Терминалы защищенной информационной системы
- •Технологии несанкционированного доступа (нсд)
- •Распространенные техники подбора паролей
- •Раздел 3. Методы и средства защиты информации
- •Тема 3.1. Проблемы защиты информации
- •Защита информации
- •Тема 3.2. Система защиты информации
- •Принципы проектирования систем защиты:
- •Организация работ по защите информации в системах электронной обработки данных
- •Тема 3.3. Защита информации от технических разведок
- •Средства технической разведки
- •Тема 3.4.Способы защиты информации от технических разведок
- •Борьба со скрытыми каналами взаимодействия с информационной сетью Программы-шпионы
- •Тема 3.5. Средства защиты от технических разведок
- •Дезинформация
- •Применение имитационного моделирования
- •Раздел 4. Защита информации при ее обработке техническими средствами
- •Тема 4.1. Технические средства обработки информации (тсои).
- •Классификация тсзи по функциональному назначению
- •Способы обработки данных
- •Комплекс технических средств обработки информации
- •Тема 4.2. Защита информации при ее обработке техническими средствами.
- •I. Организационные защиты информации
- •II.Технические средства и способы защиты информации
- •Аппаратные средства защиты информации
- •Программные средства обеспечения защиты информации
- •Криптографические методы защиты информации
- •III. Защищенные тсои
- •Тема 4.3. Защита информации от утечки за счет пэми и пэмн
- •Развязывающие устройства и приспособления
- •Утечка информации за счет пэмин
- •Тема 4.4. Защита информации от нсд Защита информации от нсд штатными техническими средствами
- •Штатное техническое средство информационного доступа (штс)
- •Доступ к информации
- •II. Компьютерное преступление
- •Нарушители и модель нарушителя правил доступа
- •2. Идентификация
- •3. Аутентификация. Средства аутентификации
- •Тема 4.5. Защита информации от воздействия специальных электронных закладных устройств (аппаратных закладок) и внешних воздействий
- •Тема 4.6. Криптографическая защита информации
- •Кодирование и шифрование
- •Наиболее известные криптосистемы
- •1. Классификация криптосистемы
- •2. Практическое применение
- •Системы потокового шифрования
- •Гост 28147-89 - отечественный стандарт шифрования данных
- •Криптосистема с открытым ключом
- •1. Системы с открытым ключом
- •2. Шифр простой подстановки
- •3. Шифры перестановки
- •4 . Шифр Вижинера
- •Методы перестановки
- •5. Одноразовая система шифрования
- •6. Методы шифрования с симметричным ключом Методы замены
- •Тема 4.7. Методы антивирусной защиты информации
- •Виды и характеристика вирусов
- •Основные классы антивирусных программ
- •Защита от вирусов
- •Раздел 5. Защита информации в информационных системах
- •Тема 5.1.: вычислительные сети и защита информации
- •I. Основные задачи обеспечения безопасности и информации в информационных системах
- •II. Меры по обеспечению сохранности информации. Угрозы безопасности в информации
- •Подходы и принципы сохранности информации
- •Тема 5.2. Защита локальных сетей и операционных систем
- •Уязвимость сетей
- •Тема 5.3. Проблемы защиты информации в интернет
- •1. Ограничения доступа в www серверах
- •2. World Wide Web серверы и проблема безопасности информации
- •3. Java, JavaScript и проблема безопасности
- •Раздел 6. Организационно- правовое обеспечение информационной безопасности
- •Тема 6.1. Информационное право Правовая защита информации
- •1. Право авторства и право собственности информационной системы
- •2. Сертификация информационных систем
- •3 . Защита информации
- •Защита информации и прав субъектов в области информационных систем
- •3. Права и обязанности субъектов в области защиты информации
- •5. Защита права на доступ к информации
- •Тема 6.2. Законодательство в области интеллектуальной собственности
- •Охрана товарных знаков
- •Охрана авторских прав
- •Охрана конфиденциальной информации
- •Органы и защита исключительных прав владельцев объектов ис
- •Тема 6.3. Правовая защита программ и информационных технологий Информационная безопасность Российской Федерации
- •Источники угроз информационной безопасности Российской Федерации
- •Состояние информационной безопасности рф и основные задачи по ее обеспечению
- •Особенности обеспечения информационной безопасности рф в различных сферах общественной жизни
- •Международное сотрудничество рф в области обеспечения информационной безопасности
- •Первоочередные мероприятия по реализации государственной политики обеспечения информационной безопасности Российской Федерации
- •Организационная основа системы обеспечения информационной безопасности Российской Федерации
- •Фз «о правовой охране пргорамм для эвм и баз данных»
- •1. Общие положения
- •2. Исключительные авторские права
- •3. Использование программ для эвм и баз данных
- •4. Защита прав
- •1. Общие положения
- •2. Информационные ресурсы
- •3. Пользование информационными ресурсами
- •4. Информатизация, информационные системы, технологии и средства их обеспечения
- •5. Защита информации и прав субъектов в области информационных процессов и информатизации
- •Терминологический словарь
Тема 5.2. Защита локальных сетей и операционных систем
Рассмотрим слабые стороны ОС и ЛВС:
Уязвимость WINDOWS 2000
Осенью 1999 года компания Microsoft открыла доступ через Internet к нескольким тестовым серверам с бета-версией операционной системы Windows 2000 Server на узле Windows2000test.com, предлагая всем желающим попытаться взломать этот программный продукт.
Несколько недель спустя, после многочисленных успешных атак со стороны хакеров, этот эксперимент был отменен. Правда, следует отметить, что хакерам не удалось достичь уровня операционной системы. Они лишь обнаружили бреши в приложении Guestbook, основанном на использовании Web-технологии и работающем "на переднем крае" операционной системы. Аналогичные результаты были получены в процессе проведения других подобных тестов.
Такие тесты включают множество параметров, и мы не станем обсуждать их реальные возможности по выявлению преимуществ системы безопасности Windows 2000 по сравнению с конкурирующими программными продуктами. Однако в результате такого тестирования совершенно очевидно одно: правильно сконфигурированные серверы под управлением Windows 2000 на уровне операционной системы столь же надежны, как любые другие серверные платформы. Наиболее уязвимым местом этой операционной системы является уровень приложений, посредством которого можно обойти системные средства обеспечения безопасности.
Защищенность Windows 2000 подкреплена множеством новых средств обеспечения безопасности, встроенных в операционные системы Windows нового поколения. К ним относятся реализация собственного протокола IP Security (IPSec), кодирующая файловая система EPS (Encrypting File System), возможность выбора политики безопасности для групп пользователей, шаблоны защиты Security Templates, средство конфигурирования и анализа политики безопасности, а также возможность централизованного удаленного управления на основе использования сервера удаленной аутентификации RADIUS (Remote Authentication Dial-In User Service) и многое другое.
Отказ в обслуживании
Если большинство серьезных атак против операционной системы NT, направленных на генерацию состояния DoS (отказ в обслуживании), предотвращаются с помощью сервисного пакета NT 4 Service Pack 6a, то Win 2000 является сравнительно надежной в этом отношении операционной системой. До сих пор не было обнаружено никаких угроз возникновения условия DoS, даже после тестирования операционной системы на узле win2000test.com.
Атака SYN и бомбардировка IP-пакетами
Internet подтверждает известную истину: жизнь — это игра без правил. Особенно наглядно это проявилось в эксперименте с Win2000test.com, когда согласно правилам атаки DoS были категорически запрещены. Тем не менее, серверы этого узла подверглись массированным атакам IP-пакетами, количество которых значительно превысило возможности серверов по их обработке, а также хорошо известным атакам SYN, приводящим к переполнению очередей в стеке протокола TCP/IP (более подробная информация о специфике этих атак содержится в главе 15).
Контрмеры против атак DoS
Чтобы минимизировать ущерб от подобных атак, необходимо соответствующим образом настроить сетевые шлюзы или брандмауэры (более подробная информация содержится в главе 12). Целесообразно также противостоять таким атакам на уровне отдельных компьютеров. Это сыграет свою роль, если одна из линий обороны будет прорвана. Благодаря эксперименту с узлом Win2000test.com компания Microsoft смогла добавить в операционную систему Windows 2000 несколько новых ключей системного реестра, которые можно использовать для защиты стека протокола TCP/IP от атак DoS. В табл. 6.3 содержится информация о конфигурации параметров системного реестра на серверах win2000test.com (эта таблица создана на основе отчета компании Microsoft, посвященного результатам эксперимента и расположенного по адресу http://www.microsoft.com/security, а также личного общения авторов с группой разработчиков Win2000test. com).
Уязвимость UNIX
Бытует мнение, что стремление получить доступ к системе UNIX в качестве пользователя root столь же неискоренимо, как наркотическая зависимость. Причина интереса к таким привилегиям уходит корнями в те времена, когда система UNIX только появилась на свет, поэтому мы предпримем небольшой исторический экскурс и напомним, как эта система возникла и как развивалась.
Взлом с использованием данных
Обсудив "притчу во языцах" — взлом с помощью подбора паролей, — можно перейти к другому методу, также ставшему стандартом "де факто" при получении удаленного доступа. Этот метод заключается в использовании для взлома определенных данных (data driven attack), отправляемых активной службе, что позволяет получить неожиданные или нежелательные результаты. Конечно, формулировка "неожиданные или нежелательные" достаточно субъективна. Все зависит от того, кто вы — хакер или же программист, разработавший соответствующую службу. С точки зрения взломщика, результат может быть более чем желательным, поскольку в этом случае он сможет получить доступ к интересующему его компьютеру. С точки зрения же программиста, программа, получившая данные, к приему которых она не была готова, выдает нежелательные результаты.
Методы взлома с использованием данных можно разделить на две категории:
атака путем переполнения буфера;
взлом при отсутствии проверки ввода.
Взлом путем переполнения буфера
Состояние переполнения буфера (buffer overflow) возникает тогда, когда пользователь или процесс пытается поместить в буфер (или массив фиксированного размера) данных больше, чем для этого выделено памяти программистом. Подобная ситуация зачастую связана с использованием таких функций языка С, как strcpy (), strcat (} и sprintf (), а также ряда других. Переполнение буфера обычно приводит к генерации ошибки нарушения сегментации. Однако это состояние может вызываться преднамеренно с целью получения доступа к системе.
Вместо возврата управления из функции по нужному адресу выполняется некоторый код взломщика, передаваемый в этом же пакете данных и запускающий команду /bin/sh.
Ассемблерный код очень сильно зависит от архитектуры и используемой операционной системы. Поэтому данные, используемые для переполнения буфера системы Solaris, установленной на компьютерах с процессорами Intel, не имеют ничего общего с данными, предназначенных для взлома системы Solaris компьютеров SPARC.
Очевидно, что взлом с помощью переполнения буфера чрезвычайно опасен. Достаточно сказать, что он не раз использовался во многих успешных попытках получения несанкционированного доступа
Контрмеры: защита от атак с использованием переполнения буфера
Практика безопасного кодирования
Лучшим методом зашиты от переполнения буфера является практика кодирования, учитывающего все требования обеспечения безопасности. Хотя на практике невозможно спроектировать и запрограммировать систему таким образом, чтобы в ней не было ни одной ошибки, существуют подходы, способные минимизировать вероятность возникновения переполнения буфера..
Рассмотрите возможность использования безопасного компилятора, такого, например, как StackGuard, разработанного в рамках проекта Immunix . В этом компиляторе используется подход, заключающийся в "вакцинации" программ во время компиляции, что позволяет свести к минимуму риск возникновения переполнения буфера. Кроме того, к механизмам защиты относится динамическая библиотека libsafe, предназначенная для перехвата вызовов уязвимых функций на уровне операционной системы
Используйте безопасные процедуры, такие как fget(), strncpy() и strncat () и проверяйте коды возврата системных вызовов.
Уменьшите количество кода, запускаемого с привилегиями root. Этого можно достичь за счет минимизации использования программ, которым требуются права SUID суперпользователя. Если даже злоумышленнику удастся успешно применить к такой программе атаку с переполнением стека, то ему все равно придется повышать полученные привилегии до уровня root.
Применяйте все модули обновления, предоставляемые поставщиком программного обеспечения.
Тестирование и аудит каждой программы
Очень важно выполнять тестирование и аудит каждой программы. Одним из лучших примеров тестирования и аудита кода UNIX является проект OpenBSD (www.openbsd.org), которым руководит Тео де Раадт (Theo de Raadt). Программисты, работающие над проектом OpenBSD, постоянно проверяют и перепроверяют исходный код друг друга и уже исправили сотни ошибок, которые могут привести к переполнению буфера, не говоря уже о более серьезных проблемах, имеющих отношение к безопасности.
Отключение неиспользуемых или потенциально опасных служб
Использовать TCP-оболочки (tcpd) и xinetd (http://www. synack.net/xinetd/) для того, чтобы можно было применить избирательные списки управления доступом на уровне служб, а также воспользоваться дополнительным возможностями регистрации событий. Оцените возможность использования режима фильтрации пакетов на уровне ядра, поддержка которого уже стала стандартной для большинства бесплатных операционных систем UNIX (например, ipchains или netf liter для Linux, ipf для BSD). Хорошие рекомендации по использованию ipchains для обеспечения безопасности можно найти по адресу http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html. Пакет ipf Даррена Рида (Darren Reed) является одним из лучших и может быть добавлен во многие версии системы UNIX. Для получения об этом пакете более подробной информации обращайтесь по адресу http: //www.obfuscation. rg/ ipf / ipf-howto. html.
Отключение режима поддержки выполнения стека
Отключение режима поддержки выполнения стека (stack execution) обеспечивает защиту каждой программы от взлома с помощью переполнения буфера. Это обеспечивает защиту от скрытого использования уязвимых мест. Для Linux имеется модуль обновления, позволяющий отключить режим поддержки выполнения стека, который можно применять в системах с ядром версий 2.0.x и 2.2.x Первым разработал такой модуль хакер Solar Desinger (http://www.false.com). Этот модуль обновления, ценный в основном для программистов, можно найти по адресу http: //www. openwall. com/linux/.
Для системы Solaris версии 2.6 и 7 включить поддержку режима, запрещающего выполнение стека (no-stack execution). Это позволит обезопасить систему Solaris от применения множества методов взлома, приводящих к переполнению буфера. Хотя прикладной двоичный интерфейс (ABI — Application Binary Interface) компаний Intel и SPARC позволяет выполнять код, находящийся в сегменте стека, большинство программ будет работать вполне корректно даже при отключенном стеке. По умолчанию в системах Solaris 2.6 и 7 режим выполнения стека включен. Для того чтобы отключить поддержку этого режима, добавьте следующую строку в файл /etc/system file.
set noexec_user_stack=l
set noexec_user_stack_log=l
Отключив этот режим, обычно можно зарегистрировать любую программу, которая попытается выполнить код. помещенный в стек, и таким образом можно остановить взломщиков с низкой квалификацией. Однако опытные взломщики чрезвычайно изобретательны и вполне могут написать код (и воспользоваться им), который приведет к переполнению буфера с последующим взломом системы, несмотря на то, что в ней запрещено выполнение стека.
В то время как многие администраторы изо всех сил пытаются предотвратить переполнение стека, отключив режим выполнения помещенного в него кода, их подстерегают другие опасности, причиной которых является несовершенный код
Взлом при отсутствии проверки ввода
Для осуществления такой атаки необходимо, чтобы выполнялись следующие условия:
Программа не в состоянии распознать синтаксически некорректные данные.
Модуль воспринимает посторонние данные.
Модуль не в состоянии обработать ситуацию отсутствия определенных полей.
Возникает ошибка корреляции значений полей.
Контрмеры
Одним из лучших способов превентивной защиты является разработка программ с учетом требований обеспечения безопасности.
Отмычки
Поскольку взломанная система представляет собой ценность для злоумышленника прежде всего как плацдарм для проникновения в другие компьютеры, для него очень важно разместить на взломанной машине и как можно лучше спрятать свой "набор отмычек". Такой набор для системы UNIX обычно состоит их четырех групп инструментов, адаптированных под конкретную платформу и версию операционной системы: (1) программы типа "троянский конь", например такие, как измененные версии login, netstat и ps; (2) программы, предназначенные для создания "потайных ходов", например, вставки inetd; (3) программы перехвата потока данных в сети; (4) программы очистки системных журналов.
