Содержание к диссертации
Введение
Глава 1. Выбор предмета исследования 10
1.1. Понятие удаленной атаки на хосты Internet 10
1.2. Особенности удаленных атак 14
1.3. Классификация удаленных атак 16
1.3.1. Анализ сетевого трафика 16
1.3.2. Подмена доверенного объекта или субъекта распределенной вычислительной системы 18
1.3.3. Ложный объект распределенной вычислительной системы 19
1.3.4. Отказ в обслуживании или атаки DoS (Denial of
Service) 20
1.4. Выводы 21
Глава 2. Содержательная постановка задачи 24
2.1. Схема установки ТСР-соединения 24
2.2. Определение начального значения идентификатора ТСР-соединения 27
2.3. TCP SYN flood 32
2.4. Схема типовой удаленной атаки типа «Подмена доверенного субъекта ТСР-соединения» 33
2.5. Подготовка к атаке. Измерение статистических параметров сети 37
Глава 3. Формальная постановка задачи 39
3.1. Этап разведки 41
3.2. Построение математической модели атаки 44
3.3. Вероятность успешности атаки при использовании различных статистических моделей 46
3.4. Выводы 59
Глава 4. Возможные практические реализации разработанного формального аппарата 60
4.1. Алгоритм обнаружения атаки 61
4.1.1. Имитация действий хакера 64
4.1.2. Функции сервера 65
4.1.3. Интерфейс приложения 68
4.2. Возможный способ предотвращения атаки 71
4.3. Выводы 77
Заключение 78
Библиография 80
- Классификация удаленных атак
- Определение начального значения идентификатора ТСР-соединения
- Построение математической модели атаки
- Имитация действий хакера
Введение к работе
Данная диссертационная работа посвящена построению формального аппарата для создания средств обнаружения удаленных атак на узлы глобальных компьютерных сетей на этапе их исполнения и разработки принципов построения защиты от подобного рода атак.
Необходимость постоянной заботы о создании и совершенствовании средств защиты сети и информации в ней» содержащейся общепризнанна [2, 12, 50 - 55]. Проблема же создания инструментов рассмотренного в диссертационной работе типа, возникла в связи с тем, что все существующие в настоящее время средства защиты і компьютерной сети от атак, какого угодно класса, основаны либо на превентивных запретительных мерах, либо на апостериорных оценках событий [6, 7, 40], приведших к нарушению нормальной работы сети [38, 39]. Эти меры, ограничивая возможности^ пользователям сети и, создавая і тем самым, некоторые для них неудобства, позволяют, в большинстве случаев, узнать об'имевшей,1 место удаленной атаке на охраняемый сервер, иногда - установить ее источник [1; 8, 9, 21]. Так, например, наиболее близкой к рассмотренному в данной работе способу защиты узлов компьютерной сети, является система для наблюдения за компьютерной сетью, описанная в патенте US 5,796,942. Эта система, предназначенная для наблюдения за компьютерной сетью независимо от сетевого сервера, содержит:
сетевой драйвер для сбора данных в сети, которые не обязательно адресованы системе сетевого наблюдения;
управляющий процесс для получения данных от сетевого драйвера и хранения указанных данных в реальном времени;
множество файлов записи для получения и хранения данных до последующей обработки;
процесс сканирования для назначения одного из указанного множества файлов записи в качестве получающего файла при чтении данных других файлов, из множества файлов записи и для использования указанных данных, чтобы воссоздать множество потоков данных в сеансах сетевых соединений, причем* указанные потоки, данных в сетевых соединениях обеспечивают последовательную, реконструкцию сетевого трафика данных, организованного в сеансе сетевого соединения;
сканер сеанса для чтения данных в интервале одного* из указанного множества сеансов сетевых соединений;
набор правил выявления стереотипов данных, которые, будучи обнаружены, вызовут включение сигнала тревоги;
средства для определенных ответных действий в случае выявления данных, соответствующих заданным правилам.
Эта система для наблюдения за. компьютерной! сетью, ориентирована на тотальный контроль сетевого трафика данных в> локальных вычислительных сетях, в первую очередь - для, наблюдения за поведением легальных пользователей этих сетей. Как следует из формулы патента, для обнаружения попыток несанкционированного доступа к ресурсам абонентов компьютерной сети, система обеспечивает реконструкцию потоков данных, передаваемых в сеансах сетевых соединений, иг последовательное чтение данных, передаваемых в различных сеансах сетевых соединений, причем проверке в соответствии с набором правил, выполняемой для выявления попыток несанкционированного доступа
к ресурсам абонентов, подвергаются непосредственно сами передаваемые данные.
Кроме того, система предъявляет для своей реализации довольно высокие требования к используемому оборудованию.
Систем же, способных в режиме реального времени анализировать ситуацию, идентифицировать ее как, возможно, нештатную и предоставляющих возможность мгновенной на нее реакции, по результатам патентного поиска, проведенного в 2000 году и судя по материалам открытой печати в последующие годы, нет [31].
Такими соображениями аргументирована актуальность рассмотренной в диссертации проблемы.
Для решения поставленной в диссертационной* работе задачи, была построена- математическая модель оптимального поведения интервента при организации атаки, делающего успех атаки наиболее вероятным. А тогда» системы защиты от атаки строится на отслеживании создания условий* ее успешности, что позволяет немедленную на нее реакцию и, таким образом - защиту в реальном времени, либо намеренном искажении ситуации в сети для того, чтоб условия успешной атаки не могли быть созданы. Научная новизна работы заключается в:
разработке математической> модели удаленной сетевой атаки, позволяющей создание на ее основе инструментальных средств обнаружения нештатной ситуации выбранного для исследования типа и защиты узлов компьютерной сети;
алгоритмической реализации средств защиты сети на основе разработанного математического аппарата.
Характеризуя практическую ценность диссертационной работы, следует сказать, что разработанные математические модели могут
7 быть без изменений использованы для» построения системы обнаружения удаленной сетевой атаки выбранного типа после уточнения параметров используемой операционной системы и статистических характеристик защищаемого фрагмента и организации защиты узлов компьютерной сети. Выводы, сделанные после обсуждения разработанного формализма, могут быть без труда использованы для обоснованного предложения других -превентивных- мер защиты сети.
Первая глава диссертации посвящена обоснованию выбора класса атак, для которых строится зашита. В этом разделе работы приведен подробный анализ классов удаленных атак на узлы компьютерной сети, причем, классификация проводится с различных точек зрения на проблему безопасности сети. Из всего множества удаленных атак для более подробного изучения была- выбран класс, известный как удаленная атака "Подмена одного из субъектов TCP-соединения в сети Internet (hijacking)", схема которой впервыебыла использована, Кевином Митником для атаки на'Суперкомпьютерный центр в» Сан-Диего 12 декабря 1994і года. Показано, во-первых, что опасность атаки по данной схеме по-прежнему? реальна* и в настоящее время. Во-вторых, это один из тех классов- атак, для которых, в принципе возможно построение системы защиты в реальном времени. Поэтому в данной работе уделено особое внимание механизму реализации атаки, а также особенностям идентификации пакетов в существующей реализации TCP (Transmission Control Protocol), послужившим причиной возникновения атак подобного рода. В этом же разделе работы определены основные понятия, которыми оперирует теория компьютерной безопасности, описаны типы удаленных атак и причины их возникновения.
Во второй главе работы детально рассмотрена схема удаленной атаки "Подмена одного из субъектов TCP-соединения в сети Internet (hijacking)", нормальная работа фрагмента сети в соответствии с TCP/IP протоколом и особенности протокола, позволившие организацию удаленной сетевой атаки. Рассматриваются все фазы атаки - предварительный' анализ характеристики системы-жертвы, особенности и важность разведывательной акции, непосредственно предшествующей нападению, особенности поведения интервента при исполнении атаки. Т.е., вторая, глава посвящена неформальной, содержательной постановке задачи.
Следующая, третья глава диссертации посвящена формальному рассмотрению задачи построения модели удаленной сетевой атаки, позволяющей разработать эффективную защиту атакуемого. хоста. Рассматриваются раздельно две фазы атаки - фазы разведки и фазы собственно^ атаки. Строится формальная модель, позволяющая судить о вероятности успеха всего комплекса атакующих мероприятий, и, таким образом, выяснение условий, которые должны вызывать реакцию защищаемого сервера.*
В * этом» же разделе работы состоятельность разработанного аппарата иллюстрируется возможными і реализациями -экспоненциальным равномерным распределением! статистических характеристик сети [4, 5,24, 25, 35].
Четвертая» глава посвящена описанию возможных реализаций созданного инструментария, их пользовательский интерфейс. Содержание главы можно воспринимать и как имеющую, в некотором смысле, иллюстративный характер.
Результаты работы переданы НПО РТК для обеспечения одной из функций разработанного в этой организации сетевого фильтра.
9 Основные результаты работы представлялись на международной конференции в июне 2003 года: Seventh Int. Workshop on New approches to Hiigh-Tech: Nondestructive Testing and Computer Simulations in Science and Engineering. Vol.7, pp. F21-23. и конференции «Математика и безопасность информационных технологий (МаБИТ-03)», МГУ им. М.В.Ломоносова, 23-24 октября 2003г.
По материалам диссертации опубликовано шесть работ, в том числе - две статьи и тезисы докладов на четырех международных и общероссийских конференциях.
Структура и объем диссертации: работа состоит из введения, четырех глав, заключения и библиографии, включающей 66 наименований. Объем диссертации 86 страниц. В работе приведено 36 рисунков.
Классификация удаленных атак
Данный тип удаленного типового воздействия на систему заключается в прослушивании, каналов связи. Данный тип атак возможен потому, что в распределенной ВС связь между объектами осуществляется по сетевым соединениям, а не по выделенному физическому каналу связи. Т.е. все данные и управляющие сообщения передаются в виде пакетов обмена. Такое прослушивание (сетевой анализ) позволяет изучить логику работы распределенной вычислительной системы, т. е. получить взаимно однозначное соответствие событий, происходящих в системе, и команд, пересылаемых друг другу ее объектами, в момент появлений этих событий. Достигается путем перехвата и анализа.пакетов обмена на канальном уровне. Позволяет также перехватить поток данных, которыми обмениваются объекты распределенной вычислительной системы.
По сути, такая атака является пассивным "наблюдением" за работой системы, осуществляемом без обратной связи. В результате злоумышленник может: - перехватить поток данных, т.е. осуществить несанкционированный доступ к информации, которой обмениваются сетевые абоненты, - установить! логику работы системы, и использовать полученную информацию, в. том числе имя! и- пароль пользователя, пересылаемые в» незащищенном «виде, для подготовки и осуществления других атак на систему:
Но при таком воздействии отсутствует возможность модификации передаваемых данных.
Сам по себе такой вид атак не наносит прямого ущерба, разве что может вызвать раздражение. Но оставлять такие попытки, без внимания не следует. Поскольку ICMP- и ТСР-прослушивание является общепринятым методом исследования сети перед непосредственной попыткой проникновения, представляется важным своевременно выявить факт прослушивания.
Основными методами выявления являются: - использование сетевых программ выявления вторжений как, например Network Flight Recorder (NFR), - для защиты отдельного узла можно успешно использовать утилиты UNIX, позволяющие выявлять и регистрировать попытки прослушивания [36].
К возможности, осуществления данного класса атак приводят недостатки протоколов семейства TCP/IP, а именно недостаточная идентификация1 и аутентификация удаленных объектов распределенной ВС. Реализация удаленных атак данного типа обычно состоит в передаче пакетов обмена с атакующего объекта. на цель атаки от имени доверенного субъекта взаимодействия.
В общем виде, для адресации сообщений в распределенных ВС используется сетевой адрес, который уникален для каждого объекта системы (аппаратный адрес сетевого адаптера OSI используется на канальном уровне, а сетевой адрес IP - на сетевом). Однако сетевой адрес подделывается достаточно легко и в этом кроется основная причина реальности подобных атак.
Рассматриваемая атака может быть реализована, как при установленном виртуальном канале, так и без такового. В первом случае атака заключается в присвоении интервентом прав доверенного субъекта взаимодействия, легально подключившегося к объекту системы, что дает ему возможность вести диалог от имени доверенного субъекта.
Определение начального значения идентификатора ТСР-соединения
Используя приведенную схему организации диалога, возможны, по крайней мере, два способа организации атаки - вмешаться в организованный диалог, выдав себя за одного из собеседников, или установить новое соединение от чужого имени - от имени доверенного субъекта.
При любом,способе организации атаки интервент столкнется с необходимостью решить несколько проблем: проблемой исключения из диалога собеседника, от имени которого будет продолжаться или организовываться диалог; проблемой идентификации пакетов, способных поддержать диалог. И если первая проблема решается относительно просто - рассмотрим это несколько позже, то вторая содержит внутри себя несколько других.
Первая из них - закон формирования идентификаторов пакетов. В случае, когда интервент вмешивается в уже установленное соединение, это - и закон формирования ISSa, и закон формирования ISSb. Если интервент сам инициирует соединение от имени доверенного субъекта, достаточным оказывается знания одного лишь закона - закона формирования ISSb.
В большинстве операционных систем используется времязависимый алгоритм генерации начального значения идентификатора TCP-соединения. Например, в ОС Windows NT 4.0 значение ISN увеличивается на 10 примерно каждую миллисекунду, то есть для Windows NT справедлива следующая формула: ISN«10 msec, где msec — текущее время в миллисекундах. Таким образом, атакующий имеет принципиальную возможность определить с той или иной степенью точности вид функции, описывающей закон получения ISN. Например, можно предложить следующий обобщенный вид функции, описывающий времязависимый закон получения ISN: ISN = F (mcsec), где mcsec — время в микросекундах.
Справедливо ли обобщение о линейности от времени закона формирования ISN? Так, первое сообщение о TCP [59] предполагало генерацию ISN увеличением счетчика на единицу каждые 4 миллисекунды. Многие современные операционные системы используют этот принцип до сих пор [28].
После известной атаки Кевина Митника, ставшей побудительным мотивом данной работы, создатели операционных систем сделали попытку отказаться от алгоритма, предложенного в RFC793 [43]. Например, в некоторых операционных системах семейства BSD счетчик каждую секунду увеличивается на некоторую константу, случайным образом, выбираемую при каждой загрузке системы, и, повторно, увеличивается еще на одну константу, при каждом открытии, соединения. Заметим, что такая схема не вносит существенных корректив в сделанные выше предположения о характере закона формирования ISN.
Современные ядра ОС Linux используют более сложный, алгоритм формирования ISN [29, 41]. К текущему значению счетчика каждые четыре миллисекунды прибавляется единица, но при каждом установлении нового соединения, ISN устанавливается равным «Счетчикул+F (мой_адрес, мой__порт, удаленный_адрес, удаленный_порт), где F - некоторая функция, установление вида которой, как считается, невозможно для внешнего наблюдателя. Если, как это часто бывает, в качестве F выбирается одностороння криптографическая хэш-функция, а в качестве одного из параметров - некоторое случайное число, то установить закон формирования ISN, действительно, может оказаться довольно сложной проблемой. Пример вида этой функции представлен на ниже приведенном рисунке.
Отметим так же попытку компании Microsoft сделать генерацию ISN «более случайной», реализованную в ОС Windows NT 4.0 ServisPack 4 и постигшую разработчиков неудачу. Генерируемые этим алгоритмом ISN оказывались иногда совпадающими с идентификаторами других соединений, что приводило к сбоям в сети и вынудило компанию вернуться линейному закону формирования ISN уже в ОС Windows NT 4.0 ServisPack 5. Этот же закон без изменений появился и в Windows 2000 (Рис.3.)
Построение математической модели атаки
Зависимость 1(и) при А=5 Если сделать мало правдоподобное предположение о равномерном характере распределения статистических характеристик сети, оказывается, что хакер имеет, так же как и в предыдущем случае, довольно маленькие шансы на успех операции. Пусть
График зависимости вероятности Р удачной атаки от интервала времени между отправкой первой и второй серий пакетов и, которым может манипулировать хакер, представлен на следующем рисунке.
Видно, что такой характер распределения времени задержки в сети оставляет интервенту существенно меньшие шансы на успех операции, но ставит его в довольно жесткие временные рамки при организации атаки.
Учет последних результатов убеждает в исключительной важности надежности результатов, предварившей атаку разведки.
Поскольку формальная модель, приведенная в разделе «Формальная постановка задачи. Этап разведки», особенно после подстановки в выражения выбранных распределений, довольно громоздка, а ее «ручной» анализ непрозрачен, рассмотрим результаты численных экспериментов, проведенных над формальной моделью.
Если в качестве параметров эксперимента взять Ni=1000, N2=5000, Т=10 и t=9 (где все обозначения параметров соответствуют принятым в этой работе и введены в начале этой главы), то, как и следовало ожидать, с ростом А, растет и вероятность существования в серии пакета с нужным идентификационным номером.
Если же, а это естественно, ограничивать Л/ - N с двух сторон, то вероятность того, что пакет с нужным идентификационным номером содержится в серии из Ал/ пакетов при заданных границах промежутка номеров, может быть получена из соображений: где Amjn - минимальный номер пакета в серии, a AN - по-прежнему длина серии пакетов.
Тогда для входных параметров эксперимента: Ni=1000, N2=5000, Т=10, t=9, а А - параметр выбранного распределения, статистическая характеристике сети, - равном 10, вероятность того, что пакет с нужным идентификационным номером не выходит за пределы предугаданных номеров (SN:[5353 - 5453]) при длине серии AN = 100, довольно высока, как это видно из нижеприведенного рисунка. Рис. 15. N 1000, N2=5000, Т=10, t=9, Л =10, Nmin=-90 При существенном сокращении времени, отводимом на «разведку», как это можно видеть на рис. 16., вероятность успешности атаки так же существенно падает, как этого и следовало бы ожидать. И, наоборот, при кратном увеличении t, наличие пакета с нужным идентификационным номером почти гарантировано, как это видно из рис.17, но это, однако, еще не означает гарантию успеха атаки, как это ясно из приводившихся ранее рассуждений об ограниченности времени атаки.
Из рассмотрения приведенных графиков следует и еще один -практический - вывод. Близким к оптимальному следует считать такое поведение интервента, когда через минимально возможное время после окончания «разведки» - нескольких (часто - двух) запросов на установление TCP-соединения, сделанных от собственного имени, следует атакующий пакет. Тогда операционная система жертвы имеет возможность сохранить ІР-адреса хостов, сделавших несколько (неудовлетворенных) приглашений к диалогу и, таким образом, появляется возможность с большой вероятностью обнаружить имя интервента.
Из приведенных выше формальных рассуждений следуют очень важные практические выводы [61-66]:
1. для достижения успеха атаки интервент должен действовать по определенному алгоритму, который однозначно определяется параметрами атакуемой системы (сегмента сети). Это дает возможность определить момент начала атаки.
2. для достижения успеха атаки поведение атакуемого сегмента сети должно быть предсказуемо. Таким образом, сделав поведение сегмента слабо предсказуемым, можно снизить вероятность успеха атаки при любых действиях интервента.
Имитация действий хакера
Клиентская часть приложения имитирует действия хакера, опираясь на изложенный механизм атаки по схеме "Подмена одного из субъектов TCP-соединения в сети Internet (hijacking)".
При непосредственном осуществлении атаки хакеру необходимо выполнить следующие действия: - на соответствующий порт сервера послать первую серию ТСР-пакетов в количестве, определяемом используемой на атакуемом сервере операционной системой; - через некоторый» интервал» времени, оптимальное значение которого определяется с помощью формул, полученных в главе 3, послать вторую серию TCP-пакетов в том же количестве, что и предыдущую;
Все перечисленные выше действия хакера (точнее -имитирующему действия хакера клиенту приложения) позволяют ему нелегально подключиться к серверу на правах авторизованного пользователя и получить возможность выполнения на нем команд. Эти действия и. реализованы программно в клиентской части приложения. Последующие действия злоумышленника (в, частности, выполнение каких-либо команд на сервере),1 которые, естественно, необходимы при реализации атаки, нас не интересуют, поскольку предложенный в разделе 4:1. алгоритм,1 позволяет обнаружить попытку атаки уже на данном, еще безопасном; этапе и предупредить-об этом администратора сервера.
Серверная часть приложения организовывает прослушивание указанного пользователем порта, принимает и обрабатывает в соответствии с алгоритмом, описанном в разделе 4.1, каждый і приходящий на него TCP-пакет. При возникновении исключительной ситуации, вызванной клиентом, сервер выдает соответствующее предупреждение о попытке атаки.
В терминах сервера исключительной ситуацией является приход двух серий пакетов в количестве, определяемом используемой на сервере операционной системой, разделенных интервалом времени, оптимальное значение которого определяется с помощью рассуждений, проведенных в разделе 4. При этом интервал времени между приходом пакетов в каждой серии определяется минимальным временем обработки одного пакета в данной вычислительной системе, в частном случае — временем обработки одного пакета, стоящего в очереди и находящегося в буфере, т. е. является достаточно малым.
Для. наглядности представления, в окне серверной части-приложения графически отображается входящий сетевой трафик. При этом по горизонтальной оси X откладывается порядковый номер полученного пакета, а по вертикальной оси Y — интервал времени1 между приходом обрабатываемого и предыдущего пакетов. Точки, соответствующие двум пришедшим друг за другом пакетам, соединяются отрезком:
На следующем рисунке изображен график, получающийся в результате возникновения исключительной ситуации на сервере, вызванной клиентом. На рисунке видны две серии пакетов с небольшими интервалами времени прихода, о чем свидетельствуют точки графика, Y-координаты которых расположены в нижней части графика. Пик на графике указывает на интервал времени, разделяющий две серии пакетов.
Клиент - серверное был построен как стандартный интерфейс Windows-приложений, включающий строку меню, панель инструментов, диалоговые окна, пиктограмму.
Пункт меню Main приложения TCPProtect содержит следующие основные команды:
Listen — выбирается на сервере, открывает диалоговое окно, изображенное на рис. 28, запрашивает номер порта, который необходимо прослушивать на предмет подключения клиента и получения ТСР-пакетов.
Connect — выбирается на клиенте, открывает диалоговое окно, аналогичное изображенному на рис. 28, запрашивает номер порта сервера, к которому необходимо подключиться, и осуществляет попытку подключения.
Start Normal Sender — выбирается на клиенте, имитирует обычный режим работы сервера, посылая на сервер TCP-пакеты с псевдослучайным временем задержки.
Stop Normal Sender — выбирается на клиенте, прекращает имитацию обычного режима работы сервера, т. е. посылку на сервер TCP-пакеты с псевдослучайным временем задержки.
Start Attack — выбирается на клиенте, имитирует действия хакера при реализации атаки по схеме "Подмена одного из субъектов TCP-соединения в сети Internet (hijacking)", т. е. организует посылку двух серий пакетов с псевдослучайным интервалом времени между сериями, определяемым с помощью метода, предложенного в разделе 4.1.
Для имитации работы интервента, на машине клиента: В файле PROTECT.INI указывается IP-адрес машины, которая будет являться сервером.
Запускается приложение TCPProtect на машине, которая будет являться сервером, т. е. на которую будет совершаться нападение.
Запускается приложение TCPProtect на машине, которая будет являться клиентом, т. е. с которой будут имитироваться действия хакера.
На сервере следует выбрать команду Main, Listen или нажать кнопку Listen на панели инструментов. В появляющемся диалоговом окне следует указать номер порта, который необходимо прослушивать. В строке заголовка окна появится надпись Waiting for connection.
На клиенте выберите команду Main, Connect или нажмите кнопку Connect на панели инструментов. В появившемся диалоговом окне укажите номер порта сервера, к которому необходимо подключиться.
При удачной попытке подключения будет выведено окно с сообщением об этом. В случае возникновения ошибки при подключении, пользователь также будет уведомлен об этом с помощью окна сообщения.
Чтобы сымитировать действия хакера, на клиенте выберите команду Main, Start Attack или нажмите кнопку Start Attack на панели инструментов.
При завершении отправки двух серий пакетов появится окно с сообщением об этом.
При обнаружении атаки на сервере появится системное окно сообщения, изображенное на рисунке 29. При этом, учитывая важность данного сообщения, это окно будет выведено на передний план, т. е. не будет перекрыто ни одним другим окно приложения (модальное диалоговое окно Windows).