Содержание к диссертации
Введение
Глава 1. Анализ состояния проблемы и постановка задачи исследования 5
1.1. Уязвимости web-сайтов 5
1.2 Технологии разработки систем защиты сетей и сетевых приложений .. 11
1.3 Обзор систем защиты сетей и сетевых приложений 19
1.4 Задачи диссертационного исследования 37
1.5 Выводы 38
Глава 2. Разработка модели и алгоритмов обнаружения автоматизированных средств копирования 39
2.1 Анализ свойств объекта защиты 39
2.2 Анализ внешних факторов 42
2.3 Разработка алгоритмов вычисления показателей 54
2.4 Алгоритмы принятия решений 61
2.5 Выводы 66
Глава 3. Постановка и проведение модельного эксперимента 67
3.1. Проектирование и разработка системы моделирования 68
3.2 Проведение модельного эксперимента 81
3.3 Выводы 106
Глава 4. Разработка спецификаций системы защиты контента 107
4.1 Подсистема мониторинга характеристик пользователя 108
4.2 Подсистема регистрации пользовательских характеристик и расчета показателей 111
4.3 Подсистема классификации пользователей 114
4.4 Подсистема предотвращения автоматизированного копирования 115
4.5 Пример практической реализации 117
4.6 Выводы 119
Заключение 120
Список литературы 122
- Технологии разработки систем защиты сетей и сетевых приложений
- Анализ внешних факторов
- Проектирование и разработка системы моделирования
- Подсистема регистрации пользовательских характеристик и расчета показателей
Введение к работе
Наиболее характерной чертой настоящего времени является стремительное технологическое развитие глобальной компьютерной сети. Этот рост сопровождается появлением проблем, для решения которых требуется научный подход. Такого рода проблемой является непредусмотренное использование отдельными пользователями функциональных возможностей информационных ресурсов в сети Интернет,
В частности, в сети стали появляться информационно-справочные ресурсы, которые на определенных условиях предоставляют своим пользователям доступ к значительным массивам информации, имеющей определенную стоимость. Достаточно высокая пропускная способность современных каналов связи позволяет заинтересованным пользователям, с помощью самостоятельно-написанных программ, совершать полное копирование информационного наполнения (контента) web-сайтов. Например, владельцы конкурирующих электронных магазинов могут быть заинтересованы в бесплатном получении описания товаров друг у друга. Как видно из примера, в подобных случаях защитить информацию, просто убрав ее из свободного доступа, нельзя.
Исследование поведения обычных пользователей web-приложений и пользователей, использующих автоматизированные средства копирования (АСК), позволит разработать методы выявления копирующих программ среди пользователей.
Целью диссертационной работы является разработка системы, которая в автоматическом режиме позволит распознавать по каким-либо признакам попытки полного или частичного копирования контента web-сайта и своевременно их блокировать. При этом система не должна препятствовать работе обычных пользователей.
Технологии разработки систем защиты сетей и сетевых приложений
Предположим, что объект исследования достаточно хорошо защищен и способен отразить типичные сетевые и серверные атаки. Также предположим, что к ресурсу могут получить доступ исключительно зарегистрированные пользователи.
В этом идеальном случае открытыми остаются только данные. Не всегда можно быть уверенным, что пользователь законопослушен и не будет использовать информацию не по назначению, даже если она защищена авторскими правами. Тем более что, пользователь может быть гражданином или представителем компании другого государства, несвязанного международным договором о защите авторских прав. Не редки ситуации, когда владелец ресурса заинтересован в личном участии пользователей в процессе работы с информацией (реклама, участие в форумах, опросах и т.д.). Пользователь может скопировать для своих нужл лишь какую-то незначительную часть базы данных. Порой эту информацию ресурсы предоставляют за определенную плату. Причем, как правило, плата взимается лишь за право использования ресурса, а не за определенное количество информации. Использование автоматизированных средств копирования, способных заместить человека на этапе копирования информации, в приведенных выше случаях может быть крайне нежелательным.
Еще одна опасность от использования такого рода автоматических программных средств на протяжении долгого времени и/или с высокой скоростью заключается в том, что недобросовестный пользователь получит полную копию базы данных, которая, в свою очередь, может использоваться для создания аналогичного сервиса. Это, безусловно, приведет к серьезным финансовым потерям владельцев оригинальной базы данных.
Технологии разработки систем защиты сетей и сетевых приложений Исторически сложилось, что технологии, по которым строятся системы обнаружения атак (intrusion detection systems) принято условно делить на две категории: обнаружение аномального поведения (anomaly detection) и обнаружение злоупотреблений (misuse detection). Однако в практической деятельности применяется другая классификация, учитывающая принципы практической реализации таких систем - обнаружение атак на уровне сети (network-based) и на уровне хоста (host-based). Первые системы анализируют сетевой трафик и работают на уровне сети или web-сервера в реальном времени, в то время как вторые - регистрационные журналы операционной системы или приложения. Каждый из классов имеет свои достоинства и недостатки, но об этом чуть позже. Необходимо заметить, что лишь некоторые системы обнаружения атак могут быть однозначно отнесены к одному из названных классов. Как правило, они включают в себе возможности нескольких категорий. Тем не менее, эта классификация отражает ключевые возможности, отличающие одну систему обнаружения атак от другой.
Технология, по которой построены данные системы, основана на гипотезе, что аномальное поведение пользователя (т.е. атака или какое-нибудь враждебное действие) часто проявляется как отклонение от нормального поведения. Примером аномального поведения может служить большое число соединений за короткий промежуток времени, высокая загрузка центрального процессора или использование периферийных устройств, которые обычно не задействуются пользователем. Если бы мы смогли описать профиль нормального поведения пользователя, то любое отклонение от него можно охарактеризовать как аномальное поведение. Однако аномальное поведение не всегда является атакой. Например, одновременная посылка большого числа запросов об активности станций от администратора системы сетевого управления. Многие системы обнаружения атак идентифицируют этот пример, как атаку типа "отказ в обслуживании" ("denial of service"). С учетом этого факта можно заметить, что возможны два крайних случая при эксплуатации системы: Обнаружение аномального поведения, которое не является атакой, и отнесение его к классу атак. Пропуск атаки, которая не подпадает под определение аномального повеления. Этот случай гораздо опасен, чем ложное отнесение аномального поведения к классу атак. Поэтому при настройке и эксплуатации систем этой категории администраторы сталкиваются со следующими проблемами: Построение профиля пользователя. Трудно формализуемая и трудоемкая задача, требующая от администратора большой предварительной работы. Определение граничных значений характеристик поведения пользователя для снижения вероятности появления одного из двух вышеназванных крайних случаев. Именно этой технологии была посвящена первая публикация, датированная 1980 годом (автор - J.P. Anderson, 51). Она описывала модель обнаружения аномального поведения на основе данных в регистрационных журналах. Эта работа сосредотачивала свое внимание на разработке алгоритмов автономного (offline) анализа журналов регистрации операционной системы. В настоящий момент эта технология не получила широкого распространения и ни в одной коммерчески распространяемой системе она не используется. Связано это с тем, что эта технология красиво выглядит в теории, но сложна в реализации. Однако сейчас наметился постепенный возврат к ней. Многие эксперты считают, что в реализации обнаружения аномального поведения уже не будет допущено столько ошибок. Будут учтены уроки, полученные в результате исследований систем обнаружения злоупотреблений.
Анализ внешних факторов
АСК, могут возвращать нестандартные параметры профиля пользователя; параметры могут регулярно меняться (например, если используются несколько компьютеров). Также, злоумышленник может выбирать для своих действий ночное время, несвойственное для большинства пользователей. Все эти и другие признаки можно отслеживать. Для реіпения задачи обнаружения АСК может быть полезно отслеживать следующие ситуации:
Пользователь для запуска АСК использует разные компьютеры; Пользователь использует автоматизированное средство копирования, которое не способно формировать стандартные ответы, свойственные обычным браузерам. Для этого потребуется хранить значения, характеризующие профиль каждого пользователя, зарегистрированные в предыдущий вход пользователя в систему. Помимо этого, необходимо вести справочники возможных значений для каждого параметра. Такой справочник, должен содержать статистическую информацию о количестве пользователей, у которых было обнаружено такое значение в профиле. Это позволит выделять пользователей, имеющих необычные значения в параметрах системы. Исходя из предположения, что в большинстве случаев обычный пользователь для подключения к системе используют свой рабочий компьютер (один и тот же), то можно рассчитывать, что его основные характеристики (компьютер, ПО, метод подключения) будут относительно стабильны. Каждый пользователь, устанавливая соединение с web-сервером, инициирует создание нового контекста пользователя - сессии. Все сессии на web-сервере имеют свой уникальный идентификатор. Все дальнейшие действия пользователя производятся в рамках созданной сессии. Пользователь имеет возможность: Совершать переходы от одной страницы web-сервера к другой (чтение информации); Покидать web-сервер в любой момент времени. В свою очередь, каждый переход характеризуется следующими свойствами; Уникальный идентификатор перехода; Номер перехода в сессии; Страница, с которой совершается переход (SI -S7); Страница, к которой совершается переход (S1-S7; S8 - выход); Продолжительность паузы между соседними переходами; Анализ поведения пользователя в системе играет ключевую роль в классификации пользователей. Одной из важнейших характеристик пользователя является последовательность его переходов от одной страницы к другой. Следует отметить, что отнюдь не все переходы предусмотрены штатной системой навигации. Переход пользователя с одной страницы на другую является фактически сменой состояния системы относительно пользователя, которая происходит по его требованию. Система имеет 8 состояний; Не все состояния сообщающиеся (если какое-либо состояние Sx достижимо из Sy, то эти состояния являются сообщающимися); Состояние S8 (выход из системы) является поглощающим. Состояние S8 достижимо из любого другого состояния. В процессе поиска и сбора информации, пользователь коптентпого web-сайта совершает переходы, которые обусловлены внутренними связями сайта -гиперссылками. Структура типичного контентного сайта такова, что пользователю приходится перемещаться от верхнего уровня к нижнему. Тем самым он с каждым шагом уточняет свой запрос. Верхние уровни являются по своей сути классификаторами, а нижний уровень предоставляет пользователю искомую информацию. Помимо этого, контентный сайт может содержать дополнительные ветви. В нашем примере - это функция сравнения двух записей. Естественно, что для сайта, еще на этапе его проектирования, предусматриваются основные маршруты, по которым будут перемешаться пользователи. Понятно, что наиболее нагруженными страницами сайта будут как раз страницы самого нижнего уровня, поскольку именно они содержат то, что требуется пользователям - информация. Далее на диаграмме схематично показаны основные маршруты для модели сайта: Большинство основных маршрутов ведут в состояние S4 (просмотр записи). Со страницы S4 пользователь либо снова переходит на ту же страницу, либо возвращается на более высокие уровни, чтобы выбрать другой класс записи. Альтернативные маршруты - это последовательности переходов, которые пользователи могут совершать, не стремясь к достижению основных страниц. В нашем случае это переходы к странице дополнительной информации и сравнения записей. Возможность совершать циклические переходы обусловлена технологией динамических страниц. Пользователь может просматривать множество записей из разных классов пользуясь предусмотренной на сайте навигацией {гиперссылками) и при этом оставаться на одной и той же странице. Дело в том, что такие страницы формируются непосредственно в момент обращения к ним. А данные, которые появятся на этой странице, зависят только от параметров, которые передаются на сервер в момент обращения к странице. Такие переходы далее будут называться циклическими. Циклические маршруты также достаточно типичны для пользователя. Однако нам необходимо будет отличать беспрерывный перебор от просмотра серии соседних записей.
Проектирование и разработка системы моделирования
Для проведения необходимого количества практических экспериментов с разработанной моделью необходим инструмент, позволяющий автоматизировать процесс моделирования. Была разработана система, которая, имитируя web-сервер, регистрирует вход виртуальных пользователей и "отслеживает" переходы этих пользователей из одного состояния системы в другое.
Моделирование пользователей производится в пределах заданного интервала времени. Разработанное приложение использует принцип multithrcad (множество параллельных процессов), что позволяет одновременно моделировать поведение сразу нескольких пользователей — каждый пользователь живет в своем собственном выделенном процессе. Эта особенность максимально приближает систему моделирования к реальной жизни.
Поведение множества моделируемых пользователей определяет набор входных параметров: Матрица вероятностей переходов пользователя; Матрица вероятностей переходов АСК; Матрица вероятностей посещаемости по часам в сутках (два варианта); Матрица вероятностей посещаемости по дням недели; Матрица вероятностей продолжительности просмотра страниц web-сайта; Период моделируемого времени; Количество системных итераций (попыток); Максимально допустимое количество переходов пользователями, В процессе эксперимента заполняется база данных, анализируя которую, система вычисляет следующие параметры: Количество пользователей; Общее количество выполненных переходов (просмотренных страниц) всеми пользователями; Среднее количество переходов за сессию; Максимальное количество переходов за сессию; Количество непредусмотренных переходов; Количество предусмотренных переходов; Отношение непредусмотренных переходов к предусмотренным; Среднее количество итераций в цикле; Максимальное количество итераций в цикле; Суммарное количество итераций; Среднее количество циклов в сессии; Максимальное количество циклов в сессии. Для тех экспериментов, где это необходимо, система вычисляет нормы продолжительности сессии для каждого перехода. Вслед за вычислением приведенных параметров, система производит вычисление показателей КЗ-К8. Для разработки системы моделирования использовалась следующая технологическая платформа; Microsoft Visual Studio .NET 2003; Microsoft SQL Server 2000. Система моделирования реализована в соответствии с концепцией многослойной архитектуры. В нашем случае это три слоя: data presentation (представление данных), application logic (логика приложения) и data services (обслуживание данных). Слой представления данных был реализован в Windows приложении, которое позволяет пользователю вносить изменения во входные параметры, конфигурировать модель. Посредством приложения осуществляется запуск системы и контроль хода исполнения. Здесь же пользователь системы может просматривать определенную часть результатов моделирования. Слой логики приложения реализован в .NET компонентах. Именно здесь реализованы алгоритмы псевдослучайной генерации характеристик и поведения пользователей. В этом слое системы компоненты взаимодействуют как с пользовательским интерфейсом, так и с базой данных. Слой обслуживания данных обеспечивает хранение, обновление и извлечение данных. Здесь же реализуется вся функциональность по обработке и анализу данных. Например, поиск и подсчет количества циклов и переходов внутри циклов. Спой data services реализован на базе MS SQL Server 2000. Функции по извлечению, хранению и анализу данных реализованы в хранимых процедурах. Для повышения производительности системы слои были физически разнесены на два сервера. Data presentation и application logic были установлены на одном, a data services на другом сервере. Это позволило распределить нагрузку на системы более равномерно, что повысило производительность примерно на 50%. На определенном этапе потребовалось произвести более масштабный анализ сформированных в процессе моделирования данных. Windows-приложения для этого было не достаточно и было принято решение использовать технологию OLAP, что вполне допустимо для выбранной архитектуры. Был создан куб: Измерения: идентификатор пользователя; Размерности: Время (День, час, минута); Страница-источник; Страница-назначение; Количество переходов. С помощью построенного OLAP куба, динамически формируются выборки данных со следующими распределениями: Посещения пользователями сайта по часам и дням недели; Количества переходов в сессии; Переходов между состояниями системы.
Подсистема регистрации пользовательских характеристик и расчета показателей
С момента появления пользователя на сайте, web-сервер создает для него отдельный процесс - сессию. Сессия длится до тех пор, пока пользователь не покинет сайт. Сервер тоже может завершить сессию, например, если превышен лимит по времени- На протяжении сессии, сервер сопровождает пользователя, протоколируя в журналах регистрации все его действия - переходы и обмен данными. В рамках сессии, сервер может хранить для пользователя какие-либо данные, предусмотренные логикой сайта. Для электронного магазина это может быть содержимое виртуальной корзины, в которую пользователь откладывает понравившиеся товары.
Сбор данных о сессии происходит дискретно - только в моменты перехода (или обновления страницы). В связи с этим, нет необходимости как-то дорабатывать страницы сайта. Сбор данных, характеризующих поведение пользователя, можно осуществлять путем взаимодействия непосредственно с web-сервером. В зависимости от типа сервера, возможны различные варианты. Самый простой путь - это анализ журналов регистрации. Однако этот метод имеет несколько существенных недостатков, а именно: Необходимо постоянно читать журнал в ожидании появления новой записи; Многие сервера какое-то время накапливают информацию о событиях в памяти и вносят новые записи в журналы с некоторой задержкой. Такие популярные web-сервера, как Apache и MS Internet Information Server имеют программные интерфейсы, которые позволяют собирать оперативные данные о событиях на сервере в реальном времени. Наиболее оптимальным инструментом для решения поставленной задачи при использовании web-сервера IIS являются ISAPI-фильтры. Это реализуемые разработчиками программные компоненты, которые пропускают через себя все события, происходящие на сервере. Такой компонент узнает о произошедшем событии даже раньше самого сервера, тем самым, обеспечивая максимальную скорость доставки информации. Разумеется, ISAPI-фильтры могут не только собирать информацию, но и изменять ее, анализировать и т.д.
Для анализа поведения пользователя необходимо обеспечить оперативный сбор следующих данных: Идентификатор пользователя; Время перехода; Страница, на которую осуществляется переход; Данные, переданные методами POST или GET; Перечисленные выше данные подсистема получает в момент каждого перехода каждого пользователя. 4.2 Подсистема регистрации пользовательских характеристик и расчета показателей В функции подсистемы регистрации пользовательских характеристик и расчета показателей входят следующие операции: Прием данных из других подсистем; Анализ данных; 112 Расчет показателей на основе полученных данных; Накопление и регулярный статистических данных, 4.2Л Профиль пользователя Принимая информацию о профиле пользователей, необходимо, основываясь на полученных данных, выполнять расчет двух статических показателей. Для вычисления коэффициента изменения профиля необходимо выполнить следующие операции: Найти пользователя в системе; Сравнить изменения в характеристиках профиля; Обновить профиль; Передать рассчитанный показатель изменения профиля в систему принятия решений. Для вычисления показателя отклонения от среднестатистического профиля необходимо выполнить следующую последовательность действий (по отдельности для каждой из 16 характеристик): Определяется рейтинг для каждого значения; Вычисляется показатель отклонения от среднестатистического профиля; Обновляются справочники рейтингов, В данной работе алгоритмы обнаружения АСК используют статистические данные - нормы, которые определяются перед началом эксплуатации индивидуально для каждого сайта: Рейтинги характеристик клиентского ПО (К2); Норма продолжительности для данного перехода (Кб); Норма цикличности (К7). Рейтинги характеристик клиентского ПО могут быть определены на этапе опытной эксплуатации системы- Нормы продолжительности и цикличности рекомендуется определять исходя из прогноза маршрутов основной массы пользователей. В дальнейшем, в процессе эксплуатации системы, нормы могут быть изменены, но при этом необходимо будет произвести переобучение нейросети. Для расчета норм необходимо собрать следующие данные: Среднестатистическое количество переходов за сессию; Среднестатистическая продолжительность сессии; Среднестатистическое количество циклических переходов; Среднестатистическая длительность сессии для п переходов, где п Є (1; допустимый для данного сайта максимум). На протяжении всей сессии пользователя, подсистема хранит информацию о переходах пользователя. На основе рассчитанных норм и этих данных в момент каждого перехода подсистема перерасчитывает динамические показатели и передает их в подсистему принятия решений (РЗ). Когда приходит информация, что сессия пользователя завершена, то собранные динамические данные удаляются. Динамические характеристики поведения пользователей используются только на протяжении сессии. Даже в самые напряженные часы работы web-сервера одновременно открытых сессий бывает сравнительно не много. Все это позволяет хранить динамические данные только в оперативной памяти и не использовать базу данных.