МЕТОДЫ DATA MINING В АВТОМАТИЗИРОВАННОМ ПОСТРОЕНИИ ПРОФИЛЯ ПОЛЬЗОВАТЕЛЯ ЗАЩИЩАЕМОЙ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ
М.Л. Гарусев (Российский государственный гуманитарный университет) Научный руководитель - доктор технических наук, профессор Е.Е. Тимонина (Российский государственный гуманитарный университет)
Предложенный автором подход по применению технологии Data Mining для эффективного накопления и обработки данных аудита автоматизированных систем может помочь в решении ряда проблем в предметной области по минимизации привлечения ресурсов людей-экспертов при функционировании системы защиты информации. Data Mining - подвид прикладного направления в отрасли анализа данных -Knowledge Discovery.
Введение
До недавнего времени главной целью служб информационной безопасности являлось обнаружение злоупотреблениями системных или сетевых ресурсов (несанкционированный доступ к ним). Чтобы разрешить эту проблему, предприятия осуществили закупку и инсталляцию огромного количества инструментальных средств защиты, включая межсетевые экраны, системы сканирования защищенности, системы обнаружения вторжений и т.д. В то время как каждая из этих программ обеспечивает необходимую функцию защиты, проблема состоит в большом объеме регистрационных данных, который они накапливают. В сети каждого предприятия работает большое количество компьютеров и сетевых устройств, которые генерируют и накапливают файлы (или базы данных) событий, с которыми они сталкиваются. Эти события обычно достаточно специфичны для каждого вида операционной системы, приложения или сетевого оборудования, и для каждого типа программно-аппаратного комплекса набор событий представляет собой конечное множество. Когда в сети реализуется какая-либо атака на информационные ресурсы (несанкционированный доступ [1, 2]), существует высокая вероятность того, что атакующие злоумышленники оставили в файлах регистрации какие-либо признаки нападения. Отметим также риск бесполезного «шума сообщений» из-за ошибочных срабатывания сенсоров обнаружения вторжений.
Традиционно важной составляющей комплексной системы защиты информации является подсистема защиты от несанкционированного доступа [3], контролирующая доступ пользователей распределенной информационной системы к ее ресурсам. Вся информация о доступе субъектов к объектам сохраняется системой аудита распределенной информационной системы [3]. Проблемой является разнородный формат данных аудита, вызванный гетерогенной средой происхождения информации по безопасности. Различные элементы комплексной системы защиты информации, будучи разработанными различными производителями с использованием различных стандартов, не в состоянии обеспечить унифицированное представление данных аудита для его дальнейшей интеллектуальной обработки.
Решением данной проблемы занимаются так называемые SEM-системы (Security Event Management [4], другие часто встречающиеся названия - Security Management System (SMS) [5], Active Security Management (ASM) [6], Security Information Management (SIM) [7]). В основе построения таких систем лежит принцип консолидированного сбора информации по безопасности в единой точке распределенной информационной системы и ее совместной обработки. Этот подход получил название корреляции событий (event correlation) [8-10]. Базой технологии является возможность оперирования шаблонами событий, находящимися в исходных данных аудита.
При этом на настоящий момент все существующие SEM-системы предлагают подход выработки шаблонов вручную, с помощью людей-экспертов. Все разработчики, как правило, имеют собственные исследовательские команды, задачей которых является анализ форматов данных аудита производителей средств информационной безопасности и их включение в единую SEM-систему.
Решением задачи нахождения шаблонов в первичных данных может служить новейшая технология Knowledge Data Discovery и одна из ее составляющих - технология Data Mining (дословно «разработка данных») [11]. Data Mining - это исследование и обнаружение «машиной» (алгоритмами, средствами искусственного интеллекта) в первичных данных скрытых структур или зависимостей, которые ранее не были известны.
Службы ИБ нуждаются в средствах интеллектуального анализа данных аудита в любой информационной системе, с помощью которых было бы возможно увеличить качество и скорость принятия решений, сократив объем обрабатываемых данных. Под качеством решений понимается то, что система при принятии любого решения пытается учесть как можно больше факторов, влияющих на текущую ситуацию с режимом безопасности. Скорость принятия решений в идеальном случае должна позволять системе являться системой реального времени.
Системы реального времени являются одним из самых важных классов программного обеспечения. Согласно [12], они определяются как системы, имеющие жесткие временные ограничения. При этом выделяются системы on-line, к которым относятся, в частности, многие бизнес-приложения (например, система заказа авиабилетов, которая имеет много рабочих мест и должна быстро обрабатывать большое число запросов), и ПО для встроенных систем управления каким-либо оборудованием (embedded systems). В [13] говорится, что «системы реального времени - это такие системы, в которых правильность работы зависит не только от логических результатов вычислений, но и от времени, затраченного на получение этих результатов».
Таким образом, актуальность выбранной темы для исследования определяется необходимостью разработки языков, обеспечивающих анализ данных аудита в гетерогенных системах при возможных временных ограничениях. На базе этих языков служба безопасности предприятия в режиме реального времени может обнаруживать атаки, что, в свою очередь, требует разработки метода быстрого формирования профилей по различным направлениям функционирования распределенной информационной системы (частный случай - профиль пользователя такой информационной системы).
Новизна темы состоит в переносе концепций распределенных вычислений, развиваемых в рамках сетевых технологий, в сферу защиты информации, т.е. данные концепции переносятся на задачу построения профилей пользователей защищаемой информационной системы предприятия. Базой для решения таких задач является понятие события - сообщения некоторого формата, независимого от аппаратной платформы, в которой произошел инцидент, о причине возникновения данного сообщения.
Использования методов Data Mining для создания языка анализа данных аудита
События в распределенной системе находятся в различных отношениях друг к другу. Самое простое отношение - время возникновения события А перед событием В относительно системных часов. Обычно синхронизация представлена временными метками в событиях. Причинность - другой вид отношений между событиями.
Существует теоретическая предпосылка: событие в системе корреляции событий является причиной другого события в определенных ситуациях; иначе любые два события независимы. Далее мы покажем, как важны причинно-следственные связи для реализации распределенной системы корреляции.
Когда работает система корреляции событий, происходит моделирование какого-то кусочка реального мира, где присутствуют события, составляющие суть функционирования системы, отношения между ними, история их происхождения, а также возникновение сторонних, независимо возникающих событий (например, внешних по отношению к системе). Для удобства дальнейшего изложения назовем некоторую последовательную цепочку событий частично упорядоченным набором событий, потому что различные отношения (т.е. причина и время) между событиями, которые явно представлены в такой истории, являются частично упорядоченными событиями.
Здесь не требуется давать дополнительных пояснений, так как для человека очень естественно оценивать мир в причинно-временных понятиях. Мы рождаемся, чтобы изучать законы окружающего мира, и во многом действуем автоматически, подчиняясь шаблонам поведения, реактивным зависимостям на некоторые раздражители и биологическим циклам.
Если говорить формально о причинности, то можно отметить, что это явление во многом является определяющим для корреляции событий или тревог. Абстрактно, входной поток для системы корреляции представляет собой последовательность сообщений E1 = (T1, S1, D1, M1), E2 = (T2, S2, D2, M2), E3 = (T3, S3, D3, M3), ...., где E -само событие, сообщение, тревога; T - время возникновения события; S - источник события, отправитель сообщения; D - получатель сообщения; M - сама информативная часть события, сообщения.
Для такой последовательности должно выполняться условие Ti < Ti+1. Корреляционный шаблон (correlation pattern) описывает ситуацию, когда можно распознать в потоке определенную последовательность событий внутри некоторого временного окна определенной длины.
Здесь мы первый раз сталкиваемся с шаблонами, которые на самом деле являются вторым столпом теории корреляции. Человек всю свою жизнь наблюдает мир вокруг себя, изучает его структуру, определяя причины каких-либо действий и явлений и связанные с ними эффекты; собирает и документирует повторяющиеся решения, полученные при различных условиях. Эти эмпирические правила, представляющие регулярность поведения некоторого объекта или субъекта, называются «образами», «образцами» или «шаблонами». Визуальные образы, которые мы запоминаем - самое простое выражение концепции шаблонов. Очень много шаблонов сама природа заложила в наше сознание в виде инстинктов: мы наследуем от предков действия и реакции, которые гарантируют нам выживание при определенном наборе внешних воздействий. Другие шаблоны должны быть изучены при развитии человека, в детском саду, школе, университете и т.п. и формируют уже искусственные расширения человеческого сознания. Способность изучать и выявлять шаблоны предоставляет нам человеческие преимущества - приспосабливаться к внешней среде и, приспособившись - уметь ее изменить. Недаром ученые отмечают, что основной навык детей - это подражание. Разумеется, каждое событие обрастает миллионом частных мелочей, зависящих от конкретной ситуации, и эта поверхностная сложность автоматически удаляется нашим сознанием, чтобы добраться до сути события (например, обжечься можно на костре, плите, от раскаленного металла, однако автоматическая реакция на суть явления - ожог - будет одна - человек отдернет руку).
Теория шаблонов получила свое развитие в архитектуре, а первое определение шаблона, которое мы привели выше, было введено К. Александром в работе «The
Theory» в 1977 г. [13]. Именно архитекторы увидели первыми, что из архитектурных элементов можно создавать библиотеки решений и заниматься верификацией сооружений на соответствие определенным типам. А в начале 90-х эта теория пришла в информатику, где получила широчайшее развитие во многих прикладных областях информатики.
Очень интересное применение шаблоны получили в прикладном направлении Data Mining. Особенно активное развитие методы Data Mining получили в области анализа данных, находящихся под управлением СУБД [14]. И это естественно, так как данные в СУБД уже находятся в структурированной форме - разбиты на поля и записи. Сразу же отметим, что все современные средства защиты информации умеют работать с СУБД, а решений, предоставляющих результаты своей работы в неструктурированном виде, практически не осталось на рынке - из-за повсеместного требования унификации и стандартизации различного вида ресурсов. Та модель, которая будет описана далее в статье, также сводит слабо структурированные данные из текстовых файлов аудита к форматированным данным.
Построение модели автоматизированного построения профилей пользователей
Для применения технологии Data Mining нужно создать модель подсистемы защиты информации одной из реальных компьютерных систем. Наша модель будет использовать два метода Data Mining - метод поиска эпизодических или частотных правил (episode rules) [15,16] и метод поиска ассоциативных правил (associate rules) [17]. Это следует из того, что работа пользователя в информационной системе определяется, во-первых, временными зависимостями, а во-вторых - зависимостями в окружающей среде (т.е. отношениями между объектами и субъектами в системе).
Метод поиска эпизодических правил (или поиск эпизодов) поможет нам найти все рекуррентные последовательности в базе данных аудита некоторой информационной системы, причем с учетом временных зависимостей, а ассоциативные правила дадут возможность оценить параметры каких-либо явлений в этой же базе данных.
Основной вид правила эпизода - следующий:
IF определенная комбинация событий наблюдается в период времени T, THEN другой набор событий произойдет внутри этого периода времени Т с определенной вероятностью.
Такое правило в реальной системе может принять вид:
IF системный администратор вошел с консоли и в течение 5 секунд запустил команду «mount /dev/hdb5», THEN он в течение 30 секунд запустит команду резервного копирования «tar» с вероятностью 60%.
При этом в реальном системном журнале, например, некоторой Linux-системы, это может выглядеть следующим образом:
Jan 5 12:00:47 localhost login(pam_unix)[1279]: session opened for user root by (uid=0)
Jan 5 12:00:47 localhost — root[1279]: ROOT LOGIN ON vc/1
Jan 5 12:03:04 localhost execute "mount" (uid=root) with option (mount /dev/hdb5 /backup)
Jan 5 12:03:27 localhost execute "tar" (uid=root) with option (tar acz /backup)
Здесь обратим внимание на то, что эти связанные события находятся в разных строках системного журнала, что затрудняет их обработку, могут различаться временные интервалы между ними, а между строками могут находиться другие записи систе-
мы аудита информационной системы, не имеющие никакого отношения к действиям, совершаемым пользователем root.
Ассоциативные правила имеют следующую форму:
IF событие имеет определенную комбинацию параметров, THEN это событие имеет еще некоторые другие параметры с определенной очевидностью.
В реальной системе это может означать:
IF системный администратор вошел с консоли ttyl в бизнес-часы в рабочий день THEN процесс LOGIN завершился успешно с очевидностью 98%.
Обычно этот метод используют для нахождения так называемого «скрытого» знания, т.е. ищут неочевидные зависимости, с малой очевидностью. Но для целей наблюдения за информацией, накапливаемой подсистемой аудита, мы будем применять этот метод с точностью до наоборот - нас будут интересовать наиболее тривиальные зависимости. Именно из них мы и будем формировать профиль пользователя информационной системы (т.е. новые поступающие данные будут оцениваться на соответствие с правилами с высокой очевидностью (их еще называют тривиальными)).
Для поиска правил эпизода был задействован алгоритм ECLAT [18] в программной реализации одного из исследователей рабочей группы нейронных сетей и систем нечеткой логики Департамента обработки знаний и инжиниринга языков университета Магдебурга К. Боргельта [19]. Это не самая последняя модификация поискового алгоритма, но в своем роде реализации Боргельта являются самыми простыми и оригинальными, поэтому могут служить своего рода отправной точкой для исследователей, создающих свои версии алгоритмов поиска ассоциативных правил и правил эпизодов.
Поиск осуществлялся над системным файлом /var/log/messages операционной системы Linux. Отметим сразу серьезную проблему, которая встала перед автором при исследовании - все алгоритмы, подобные ECLAT, осуществляют перебор в множестве целых чисел (это связано с тем, что все множества в алгоритмах отражаются на бинарные матрицы). Т.е. алгоритм требовал подачи на свой входной интерфейс строк вида:
0 1 9 1 7 1 8 1 0 1 8 12
1 8 1 8 1 9 1 10 11 10 2 0 1 9 13 9 1
9 1 8 12 8 13 8 1 7 1 7 1 8 13 6
0 1 7 1 8
1 9 1 9 1 0
0 1 7 1 8
8 12 8 1 9 13 9 1 7 1 8 1 0 1 0 3 16
16 18 19
В данном случае каждая строка является набором неких событий в пределах одного временного «плавающего» окна. В примере явно видно, что событие, закодированное номером 9, всегда следует за событием, закодированным числом 1; частным вариантом является 8, следующая за 9, и т.п. Чтобы решить проблему с нумерацией, было принято следующее решение: во всех строках файла /var/log/messages удалялись численные значения, которые не являлись повторяющимися (т.е. номера процессов в системе, даты, время и т.п.). После этого строки хешировались с помощью алгоритма MD5 к строкам одного вида и одной же длины, и затем эти хеш-значения последовательно нумеровались.
1) Nov 12 23:58:30 login(pam_unix) [2072] authentication failure; logname= uid=0 euid=0 tty=vc/3 ruser= rhost= user=maka
2) login(pam_unix)[] authentication failure; logname= uid= euid= tty=vc/ ruser= rhost= user=maka
3) 063284d13530d3167b90e5793cf958a6
1) Nov 12 23:58:33 login[2072] FAILED LOGIN 1 FOR maka, Authentication failure
2) login[] FAILED LOGIN FROM (null) Authentication failure
3) 371c4189f3705063ed5b52a9029cd665
1) Nov 12 23:59:00 — maka[2072] = LOGIN ON vc/4 BY maka
2) — maka[] = LOGIN ON vc/4 BY maka
3) eaa10f778958129e990255eaa4a5429a
Такой подход с помощью использования СУБД позволил крайне быстро осуществить уникальную нумерацию строк в файле /var/log/messages и подготовить для алгоритма необходимый формат данных (как известно, СУБД очень быстро обрабатывают строки определенного строгого формата и длины). Результаты работы алгоритма представляются в следующем виде:
12 (13, 76%) 7 12 (13, 76%) 9 12 (13, 76%) 7 9 12 (11, 62%) 1 8 12 (8, 45%) 1 9 12 (8, 45%) 1 8 9 12 (5, 30%) 1 7 12 (5, 30%) 1 7 8 12 (5, 30%) 1 7 9 12 (3, 14%)
FROM (null) FOR maka,
В результате гипотеза была подтверждена - с помощью алгоритма ECLAT действительно были выявлены повторяющиеся закономерности, наличествующие в системе, среди которых, естественно, было много тривиальных - так, например, тривиально очевидными являлись последовательности строк при загрузке операционной системы -они всегда повторяются, за исключением числовых кодов (даты, времени и т.п.). Наличие таких тривиальных последовательностей сразу решило дополнительную задачу контроля неизменности операционной среды, хотя задачей применения ECLAT было только оперативное создание профиля пользователя (без необходимости чистки «мусора» в журналах аудита). Это происходит ввиду того, что изменения конфигурации системы будут также выявлены при анализе последовательностей строк загрузки.
Для опытов было взято окно длительностью в 3 минуты - это значение было подобрано интуитивно, исходя из предположения, что практически все осмысленные группы действий пользователей будут укладываться в этот интервал. При дальнейших исследованиях весьма интересно изменять данный интервал, например в логарифмическом порядке (5 с, 10 с, 30 с, 1 минута, 5 минут, 10 минут), и посмотреть, как ведет себя алгоритм в таких условиях - повышается или понижается точность работы, а также опытным путем установить оптимальные значения для наблюдения за действиями пользователей.
Итак, мы показали возможность построения временного профиля работы пользователя в системе с помощью метода поиска частотных правил. Теперь вооружимся ассоциативными правилами и проверим гипотезу об их применимости к анализу собственно действий пользователя, отражаемых в рамках одного сообщения. Для тестовой
модели были взяты только сообщения о входе пользователя в систему - для наглядности решения. Ниже приведены исходные строки в Linux-системе.
Nov 5 13:40:47 localhost — root[1279]: ROOT LOGIN ON vc/1 Nov 6 10:40:47 localhost — root[1279]: maka LOGIN ON vc/4 Nov 7 03:37:31 localhost login[1160]: FAILED LOGIN 1 FROM (null) FOR root,Authentication failure
Путем несложного скрипта трансформируем их к следующему виду (т.е. сформируем наборы значений в каждой транзакции):
root Monday BusinessHours LOGIN-ON vc/1 maka Tuesday BusinessHours LOGIN-ON vc/3 root Thursday NonBusinessHours LOGIN-FAILED
Это необходимо, так как. все алгоритмы для поиска ассоциативных правил, доступные для использования, работают в формате «Значение 1-пробел-Значение2-пробел-...», при этом естественно, что во всех строках (или транзакциях, как их еще называют в теории, Значение 1 всегда принимает значения из множества пользователей данной вычислительной системы, Значение2 принимает значения из множества дней недели, и т.п.).
Полученный файл далее был передан на обработку алгоритму APRIORI [20], также в программной реализации К. Боргельта [19]. На текущий момент уже придуманы более совершенные и быстрые реализации алгоритма APRIORI, работающие в битовых матрицах, но реализация Боргельта удобна своими входными и выходными форматами. Результатом работы алгоритма стал файл со строками следующего вида:
NonBusinessHours <- Thursday (33.3%, 100.0%) Thursday <- NonBusinessHours (33.3%, 100.0%) LOGIN-FAILED <- Thursday (33.3%, 100.0%) Thursday <- LOGIN-FAILED (33.3%, 100.0%) root <- Thursday (33.3%, 100.0%)
LOGIN-FAILED <- NonBusinessHours (33.3%, 100.0%) NonBusinessHours <- LOGIN-FAILED (33.3%, 100.0%) root <- NonBusinessHours (33.3%, 100.0%) root <- LOGIN-FAILED (33.3%, 100.0%)
Для учебной базы с размерностью в 7000 строк (4 пользователя, 7 дней недели, 2 типа времени суток, 8 входных терминалов), алгоритм выработал чуть более 700 правил за несколько секунд.
Заключение
Фактически в данной работе мы построили модель системы автоматического формирования профиля пользователя, причем для каждого правила в профиле оценена его очевидность. Для проверки модели позже был создан программный код, который в режиме реального времени считывал строки из системного журнала и при появлении строк входа в систему осуществлял сравнение с полученными правилами. Проверка показала, что итоговый набор правил вполне адекватно позволил распознать нетипичное время или дату входа пользователя, нестандартный терминал, а также ошибки, допускаемые при наборе пароля.
Таким образом, показано, что DM-методы и применение корреляции событий вполне способны решать задачи по эффективному снижению нагрузки на компьютеры и людей-экспертов в задаче обработке данных аудита автоматизированных систем.
Литература
1. ГОСТ Р 51241-98. Средства и системы контроля и управления доступом. Классификация. Общие технические требования. Методы испытаний.
2. Гостехкомиссия России, Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения. М., 1992.
3. Гостехкомиссия России, Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации. М., 1992.
4. Mehdizadeh Y. IT Security Event Management, CISSP, GSEC, June 2004. // www. info secwriter s. com/text_re source s/pdf/ SEM. p df
5. Ricoh Group, Information Security, Techical Report, 2004. // http://www.ricoh.com/about/csr/report/pdf2004/15-16.pdf
6. Seung-Hee Oh, Taekyong Nam, Sungwon Sohn. Active Security Management (ASM). Sensor Management Mechanism for Sensor Integrity in Active Security Technology, Electronics and Telecommunications Research Institute, 2002.
7. OpenService Inc., Security Threat Manager. 2005. // http ://www.open. com/products/security-threat-manager .j sp
8. Nygate Y. A., Event correlation using rule and object based techniques, Integrated Network Management IV, Chapman and Hall, London, pp. 278-289, 1995.
9. Bouloutas A.T., Calo S.B., Finkel A., and Katzela I. Distributed fault identification in telecommunication networks. // Journal of Network and Systems Managemen. 1995. V. 3. №.3. P. 295-312.
10. Jakobson G. and Weissman M.D. Alarm correlation. // IEEE Network. 1993. V. 7. № 6. P. 52-59.
11. Fayyad U., Piatetsky-Shapiro G. and Smyth P. From Data Mining to Knowledge Discovery in Databases. // AI MAGAZINE. 1996. FALL. P. 37-54.
12. Braek F., Haugen Th. Engineering Real Time Systems. Prentice Hall International (UK) Ltd. p. 398, 1993.
13. Alexander C. Ishikawa et al. The Theory, Oxford Press, London, 1977.
14. Shapiro A. and Frawley W.J. Knowledge Discovery in Databases. // AAAI Press, Menlo Park, California. 1991. P. 325-345.
15. Agrawal R. and Srikant R. Mining sequential patterns. // Proceedings of the 11th International Conference on Data Engineering (ICDE' 95), Taipei, Taiwan. March 1995. pp. 161Mannila H., Toivonen H. and Verkamo A.I. Discovery of frequent episodes in event sequences, Data Mining and Knowledge Discovery, Vol. 1, No. 3, pp. 259-289, 1997.
17. Agrawal R., Imielinski T. and Swami A. Mining association rules between sets of items in large databases. // P. Buneman and S. Jajodia (eds.), Proceedings of ACM SIGMOD Conference on Management of Data (SIGMOD' 93), ACM, Washington, D C. May 1993. P. 207-216.
18. Zaki M.J., Parthasarathy S. and Li W. A localized algorithm for parallel association mining. // ACM Symposium Parallel Algorithms and Architectures, Jun 1997.
19. http: //fuzzy. cs .uni-magdeburg. de/~borgelt/index. html
20. Borgelt C. and Kruse R. Induction of Association Rules: Apriori Implementation. // 14th Conference on Computational Statistics, Berlin, Germany, Compstat. 2002.