Модель и метод анализа схожести и определения авторства вредоносного кода тема диссертации и автореферата по ВАК РФ 05.13.19, кандидат технических наук Стремоухов, Всеволод Дмитриевич

  • Стремоухов, Всеволод Дмитриевич
  • кандидат технических науккандидат технических наук
  • 2013, Санкт-Петербург
  • Специальность ВАК РФ05.13.19
  • Количество страниц 95
Стремоухов, Всеволод Дмитриевич. Модель и метод анализа схожести и определения авторства вредоносного кода: дис. кандидат технических наук: 05.13.19 - Методы и системы защиты информации, информационная безопасность. Санкт-Петербург. 2013. 95 с.

Оглавление диссертации кандидат технических наук Стремоухов, Всеволод Дмитриевич

Оглавление

Введение

Глава 1: Постановка задачи и анализ существующих методов решения

1.1 Постановка задачи

1.2 Существующие методы решения задачи

1.2.1 Метод на основе энтропийной классификации с помощью сжатия

1.2.2 Частотный анализ

Глава 2: Модель

2.1 Исходные положения

2.2 Формулировка модели

Глава 3: Расчетно-вычислительный комплекс

Глава 4: Анализ модели на основе статистических данных

4.1 Проверка однородности матриц переходных вероятностей

4.2 Проверка эффективности представления матрицы переходных вероятностей в виде двумерного образа

4.3 Проверка эффективности обнаружения авторства

4.4 Анализ увеличения скорости детектирования

4.5 Анализ увеличения коэффициента автоматизации

Список использованной литературы

Рекомендованный список диссертаций по специальности «Методы и системы защиты информации, информационная безопасность», 05.13.19 шифр ВАК

Введение диссертации (часть автореферата) на тему «Модель и метод анализа схожести и определения авторства вредоносного кода»

Введение

В настоящее время эпидемии компьютерных вирусов и других вредоносных программ наносят огромный ущерб различным организациям и отдельным пользователям компьютеров. За последние 15-20 лет распространение вредоносного кода, носившее локальный характер, превратилось в глобальные эпидемии сетевых червей, не требующих для распространения участия пользователей. Работа и функционирование многих структур и организаций тесно связана или полностью зависит от глобальных сетей. Сетевые черви, размножающиеся в неограниченном количестве, забивают каналы передачи информации, тем самым нанося огромные убытки, не говоря уже о том, что код современного червя как правило содержит деструктивную нагрузку, что приводит к потере или утечке важной и конфиденциальной информации.

Современное программное обеспечение также не способствует снижению числа новых эпидемий вредоносных программ. Новые уязвимости в различных программах находят практически каждый день, производители программного обеспечения не всегда оперативно их устраняют, а готовые заплатки устанавливаются очень медленно. Некоторые пользователи и технический персонал сетей никак не заботятся о безопасности собственных компьютеров. Определенную роль в распространении вирусов играет и человеческий фактор: неопытные пользователи, не задумываясь, открывают все почтовые вложения, через которые распространяются многие вредоносные программы. Также многие пользователи не заботятся о регулярном обновлении антивирусных программ.

Однако, без сомнения, одним из основных факторов, стимулирующих распространение вредоносного кода (ВК), является трудность поиска автора - в бинарном объекте трудно найти улики в классическом их понимании. В результате, у вирусописателей создаётся ощущение абсолютной безнаказанности. Новые вредоносные программы появляются каждый день, а случаи обнаружения их создателей единичны и связаны только с наиболее известными образцами вредоносного кода. Безнаказанность, возможность прославиться и применить свои

навыки программирования привлекают многих в создании и распространении вредоносных программ. Для применение к ним соответствующих мер, предусмотренных законодательством необходимо доказать причастность конкретного человека к созданию вредоносной программы. В качестве одного из доказательств в судебных процессах применяется графологическая экспертиза. Было бы удобно, если нечто подобное можно было применить к исполняемому коду.

Проблема определения авторства, распределения различных текстов по заданным категориям с помощью машины и другие подобные задачи достаточно давно интересуют различных ученых: математиков, лингвистов, специалистов по компьютерным технологиям и проблемам искусственного интеллекта. Для естественных языков были разработаны различные методы, позволяющие, в частности, определить авторство того или иного текста. Таких методов несколько, но все они так или иначе сводятся к анализу схожести представленного текста с одним или несколькими текстами, авторство которых заранее известно. Эти методы, после соответствующей доработки, можно применить для исполняемого кода. При наличии образцов кода различных авторов, можно с некоторой степенью вероятности определить, какому автору принадлежит исследуемая вредоносная программа.

Проблема определения авторства вредоносного кода, помимо правоохранительных органов, также остро стоит перед антивирусными компаниями. Одной из основных проблем, стоящих перед современными антивирусными компаниями является обработка так называемого "входного потока" - объектов, поступающих на вход вирусной лаборатории, по каждому из которых необходимо в максимально короткое время вынести вердикт -вредоносный ли это объект. В случае положительного вердикта объект добавляется в вирусную коллекцию, с него снимается сигнатура, которая попадает в антивирусную базу. В современном мире время от появления вредоносного объекта в "дикой среде" до появления его сигнатуры в антивирусной базе на компьютере конечного пользователя исчисляется всего лишь десятками минут и

этот параметр - один из основных, за которых борются антивирусные компании. Проблема заключается в том, что основная часть входного потока - это объекты от авторов, чьи более ранние вредоносные программы уже присутствуют в вирусной коллекции - зачастую аналитику приходится детектировать лишь небольшую модификацию уже имеющегося образца ВК. Для решения данной проблемы создаются утилиты, осуществляющие поиск по коллекции схожих с исследуемым объектом образцов кода. Однако данные утилиты обладают серьёзными недостатками - прежде всего, они ищут крупные участки сходного бинарного кода, в результате чего их эффективность не очень высока, в результате основную работу всё равно выполняет эксперт (аналитик). Формирование более эффективного метода для решения задачи детектирования является основной целью данной работы.

Глава 1: Постановка задачи и анализ существующих методов решения

1.1 Постановка задачи

Целью диссертационной работы является разработка новой модели и метода определения степени схожести и вероятности общего авторства пары бинарных исполняемых объектов. Этот метод должен учитывать особенности устройства компьютерных вредоносных программ и позволять выявить вероятность общего авторства образцов вредоносного кода без участия "эксперта. Модель должна быть достаточно гибкой и универсальной, предоставлять различные параметры, с помощью которых можно настраивать модель для сравнения различных типов вредоносных программ. Программная реализация метода должна быть достаточно быстрой, чтобы её можно было использовать в качестве поисковой машины по коллекции вредоносного кода.

В рассматриваемой работе будем оперировать понятиями частной и конечной задачи.

Частная задача - задача определения наиболее вероятного автора детектируемого сэмпла по коллекции авторов, т. е. из списка авторов, для каждого из которых исследователь располагает минимум одним объектом кода, написанным именно этим автором.

Конечная задача - задача определения независимой вероятности общего авторства пары исполняемых объектов.

Для начала, рассмотрим существующие методы.

1.2 Существующие методы решения задачи

1.2.1 Метод на основе энтропийной классификации с помощью сжатия

Будем рассматривать задачу классификации текста Т относительно текстов, Б1, ..., Бп, характеризующих п авторов. Для этого применяем подход, основанный

на применении так называемой относительной энтропии. Именно, мы определяем характеристику Н(Т|8), которая характеризует энтропию текста Т по отношению к тексту Б. Выбор источника текста Т при наличии текстов 81, ..., Бп, представляющих п источников, осуществляется согласно оценке

<K7-) = argmintfi) (1.1)

о

Для оценки энтропии текста используется способ, называемый «шельфовым» (off-the-shelf) алгоритмом: сжимаем компрессором текст Si и измеряем длину в байтах C(Si) получившегося архива. Затем создаем текст SiT, объединив тексты Si и Т в один объект. Сжимаем SiT и измеряем длину полученного сжатого текста C(SiT) в байтах. Теперь полагаем

Г С№Г)-С(Г)

S. \Т\

где (Т| - длина текста Т в байтах. Полученное число Нс(Т|8і) можно использовать совместно в оценке я(Т) в качестве Н(Т|8і). Таким образом, для определения источника Т мы вычисляем Нс(Т|8і), а потом определяем истинный источник Т, выбирая то і, которое соответствует минимальному из чисел Нс(Т|8і).

Вкратце, суть метода состоит в том, чтобы определить тот из образцов кода из коллекции авторов, который при объединении с исследуемым образцов даёт лучший коэффициент сжатия. При этом необходимо выбрать тип компрессора, эффективность которого обратно пропорциональна энтропийной характеристике

сжимаемого текста. Рассмотрим основные алгоритмы сжатия, пригодные для данной задачи:

Фронтальное сжатие - тип дельта-кодирования (delta encoding), где общие префиксы или суффиксы и их длины записываются таким образом, чтобы избегать дублирования данных. Дельта-кодирование применяется как предварительный этап для многих алгоритмов сжатия, к примеру RLE, и в инвертированных индексах поисковых программ. Природа данных, которые будут закодированы, значительно влияет на эффективность сжатия. Дельта-кодирование повышает коэффициент сжатия в том случае, когда данные имеют маленькую или постоянную вариацию (как, к примеру, градиент на изображении); для данных, сгенерированных генератором случайных чисел с равномерным распределением, коэффициент сжатия изменится не сильно. Пример:

Несжатый поток Сжатый поток

Е2 ЕО 4А 84 0 Е2 ЕО 4А 84

Е2 ЕО 4А FD IF ВА 3 FD IF ВА ЕО 7F

ЕО 7F 84 84

Е2 ЕО 4А FD IF FD 5 FD OD

0D 0 97 84 F8

97 84 F8 3 F8 OA OD

97 84 F8 F8 OA 0D 4 7D 97 FC

97 84 F8 F8 7D 97 3 7D 7F

FC 3 A8

97 84 F8 7D 7F 3 FDF8

97 84 F8 А8 2 FC 84 97 84 7F

97 84 F8 FD F8 3 OA АА AA OA

97 84 FC 84 97 84

7F

97 84 FC OA АА АА

OA

Алгоритм Лемпеля-Зива-Велча. Данный алгоритм при сжатии (кодировании) динамически создаёт таблицу преобразования строк: определённым последовательностям символов (словам) ставятся в соответствие группы бит фиксированной длины (обычно 12-битные). Таблица инициализируется всеми 1-символьными строками (в случае 8-битных символов — это 256 записей). По мере кодирования, алгоритм просматривает текст символ за символом, и сохраняет каждую новую, уникальную 2-символьную строку в таблицу в виде пары код/символ, где код ссылается на соответствующий первый символ. После того как новая 2-символьная строка сохранена в таблице, на выход передаётся код первого символа. Когда на входе читается очередной символ, для него по таблице находится уже встречавшаяся строка максимальной длины, после чего в таблице сохраняется код этой строки со следующим символом на входе; на выход выдаётся код этой строки, а следующий символ используется в качестве начала следующей строки. Пример:

Символ Битовый код Новая запись

Т 20= 10100

О 15= 01111 27: ТО

В 2= 00010 28:0В

Е 5= 00101 29: ВЕ

О 15= 01111 30: ЕО

R 18= 10010 31: OR

N 14 = 001110 32: RN

О 15 = 001111 33: NO

Т 20 = 010100 34: ОТ

ТО 27 = 011011 35: TT

ВЕ 29 = 011101 36: TOB

OR 31 =011111 37: BEO

TOB 36= 100100 38: ORT

ЕО 30 = 011110 39: ТОВЕ

1Ш 32 = 100000 40: ЕОЯ

ОТ 34= 100010 41: КМО

# 0 = 000000 42: ОТ#

Алгоритм Шеннона—Фано - использует коды переменной длины: часто встречающийся символ кодируется кодом меньшей длины, редко встречающийся — кодом большей длины. Коды Шеннона — Фано префиксные, то есть никакое кодовое слово не является префиксом любого другого. Код Шеннона — Фано строится с помощью дерева. Построение этого дерева начинается от корня. Всё множество кодируемых элементов соответствует корню дерева (вершине первого уровня). Оно разбивается на два подмножества с примерно одинаковыми суммарными вероятностями. Эти подмножества соответствуют двум вершинам второго уровня, которые соединяются с корнем. Далее каждое из этих подмножеств разбивается на два подмножества с примерно одинаковыми суммарными вероятностями. Им соответствуют вершины третьего уровня. Если подмножество содержит единственный элемент, то ему соответствует концевая вершина кодового дерева; такое подмножество разбиению не подлежит. Подобным образом поступаем до тех пор, пока не получим все концевые вершины. Ветви кодового дерева размечаем символами 1 и 0.

При построении кода Шеннона — Фано разбиение множества элементов может быть произведено, вообще говоря, несколькими способами. Выбор разбиения на уровне п может ухудшить варианты разбиения на следующем уровне (п + 1) и привести к неоптимальности кода в целом. Другими словами, оптимальное поведение на каждом шаге пути ещё не гарантирует оптимальности всей совокупности действий. Поэтому код Шеннона — Фано не является оптимальным в общем смысле, хотя и дает оптимальные результаты при некоторых распределениях вероятностей. Для одного и того же распределения вероятностей можно построить, вообще говоря, несколько кодов Шеннона — Фано, и все они

могут дать различные результаты. Если построить все возможные коды Шеннона — Фано для данного распределения вероятностей, то среди них будут находиться и все коды Хаффмана (см. ниже), то есть оптимальные коды. Пример:

Исходные символы:

А (частота встречаемости 50)

В (частота встречаемости 39)

С (частота встречаемости 18)

О (частота встречаемости 49)

Е (частота встречаемости 35)

Б (частота встречаемости 24)

Результирующее дерево:

Рис. 1.1: пример дерева для алгоритма Шеннона-Фано

Алгоритм Хаффмана — адаптивный алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью.

Алгоритм Хаффмана на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмана (Н-дерево).

1. Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который может быть равен либо вероятности, либо количеству вхождений символа в сжимаемое сообщение.

2. Выбираются два свободных узла дерева с наименьшими весами.

3. Создается их родитель с весом, равным их суммарному весу.

4. Родитель добавляется в список свободных узлов, а два его потомка удаляются из этого списка.

5. Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0.

6. Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.

Адаптивное сжатие, применяемое в данном алгоритме, позволяет не передавать модель сообщения вместе с ним самим и ограничиться одним проходом по сообщению как при кодировании, так и при декодировании.

В создании алгоритма адаптивного кодирования Хаффмана наибольшие сложности возникают при разработке процедуры обновления модели очередным символом. Теоретически можно было бы просто вставить внутрь этой процедуры полное построение дерева кодирования Хаффмана, однако, такой алгоритм сжатия имел бы неприемлемо низкое быстродействие, так как построение Н-дерева — это

слишком большая работа, и производить её при обработке каждого символа неразумно. К счастью, существует способ модифицировать уже существующее Н-дерево так, чтобы отобразить обработку нового символа.

Обновление дерева при считывании очередного символа сообщения состоит из двух операций.

Первая — увеличение веса узлов дерева. Вначале увеличиваем вес листа, соответствующего считанному символу, на единицу. Затем увеличиваем вес родителя, чтобы привести его в соответствие с новыми значениями веса потомков. Этот процесс продолжается до тех пор, пока мы не доберемся до корня дерева. Среднее число операций увеличения веса равно среднему количеству битов, необходимых для того, чтобы закодировать символ.

Вторая операция — перестановка узлов дерева — требуется тогда, когда увеличение веса узла приводит к нарушению свойства упорядоченности, то есть тогда, когда увеличенный вес узла стал больше, чем вес следующего по порядку узла. Если и дальше продолжать обрабатывать увеличение веса, двигаясь к корню дерева, то дерево перестанет быть деревом Хаффмана.

Чтобы сохранить упорядоченность дерева кодирования, алгоритм работает следующим образом. Пусть новый увеличенный вес узла равен W+l. Тогда начинаем двигаться по списку в сторону увеличения веса, пока не найдем последний узел с весом W. Переставим текущий и найденный узлы между собой в списке, восстанавливая таким образом порядок в дереве (при этом родители каждого из узлов тоже изменятся). На этом операция перестановки заканчивается.

После перестановки операция увеличения веса узлов продолжается дальше. Следующий узел, вес которого будет увеличен алгоритмом, — это новый родитель узла, увеличение веса которого вызвало перестановку.

В процессе работы алгоритма сжатия вес узлов в дереве кодирования Хаффмана неуклонно растет. Первая проблема возникает тогда, когда вес корня дерева начинает превосходить вместимость ячейки, в которой он хранится. Как правило, это 16-битовое значение и, следовательно, не может быть больше, чем 65535. Вторая проблема, заслуживающая ещё большего внимания, может возникнуть значительно раньше, когда размер самого длинного кода Хаффмана превосходит вместимость ячейки, которая используется для того, чтобы передать его в выходной поток. Декодеру все равно, какой длины код он декодирует, поскольку он движется сверху вниз по дереву кодирования, выбирая из входного потока по одному биту. Кодер же должен начинать от листа дерева и двигаться вверх к корню, собирая биты, которые нужно передать. Обычно это происходит с переменной типа «целое», и, когда длина кода Хаффмана превосходит размер типа «целое» в битах, наступает переполнение.

Можно доказать, что максимальную длину код Хаффмана для сообщений с одним и тем же входным алфавитом будет иметь, если частоты символов образует последовательность Фибоначчи. Сообщение с частотами символов, равными числам Фибоначчи до Fib (18), — это отличный способ протестировать работу программы сжатия по Хаффману.

Принимая во внимание сказанное выше, алгоритм обновления дерева Хаффмана должен быть изменен следующим образом: при увеличении веса нужно проверять его на достижение допустимого максимума. Если мы достигли максимума, то необходимо «масштабировать» вес, обычно разделив вес листьев на целое число, например, 2, а потом пересчитав вес всех остальных узлов.

Однако при делении веса пополам возникает проблема, связанная с тем, что после выполнения этой операции дерево может изменить свою форму. Объясняется это тем, что мы делим целые числа и при делении отбрасываем дробную часть.

Правильно организованное дерево Хаффмана после масштабирования может иметь форму, значительно отличающуюся от исходной. Это происходит потому, что масштабирование приводит к потере точности нашей статистики. Но со сбором новой статистики последствия этих «ошибок» практически сходят на нет. Масштабирование веса — довольно дорогостоящая операция, так как она приводит к необходимости заново строить все дерево кодирования. Но, так как необходимость в ней возникает относительно редко, то с этим можно смириться.

Масштабирование веса узлов дерева через определенные интервалы дает неожиданный результат. Несмотря на то, что при масштабировании происходит потеря точности статистики, тесты показывают, что оно приводит к лучшим показателям сжатия, чем если бы масштабирование откладывалось. Это можно объяснить тем, что текущие символы сжимаемого потока больше «похожи» на своих близких предшественников, чем на тех, которые встречались намного раньше. Масштабирование приводит к уменьшению влияния «давних» символов на статистику и к увеличению влияния на неё «недавних» символов. Это очень сложно измерить количественно, но, в принципе, масштабирование оказывает положительное влияние на степень сжатия информации. Эксперименты с масштабированием в различных точках процесса сжатия показывают, что степень сжатия сильно зависит от момента масштабирования веса, но не существует правила выбора оптимального момента масштабирования для программы, ориентированной на сжатие любых типов информации.

Пример построения дерева для п = 2:

а 1 ■ Ь 1

Рис. 1.2: пример дерева для алгоритма Хаффмана при п—2

А-закон и ц-закон - алгоритмы аналогового сжатия, используемые в системах цифровой связи Северной Америки и Японии для модификации динамического диапазона аналогового речевого сигнала до оцифровки. Несмотря на то, что в абсолютных величинах коэффициенты сжатия данных алгоритмов применимо к бинарным исполняемым файлам не очень высоки, зависимость коэффициента сжатия от энтропийной характеристики для данных алгоритмов довольно равномерно, что так же позволяет использовать их для энтропийной

классификации. Для примера, уравнение ц-закона: *■(*) =

1п(1 + ^) (1>3)

Фрактальное сжатие — алгоритм сжатия с потерями, основанный на применении систем итерируемых функций (как правило являющимися аффинными преобразованиями). Данный метод применяется, прежде всего, к изображениям (т.

16

к. позволяет получить хорошие коэффициенты сжатия), однако, как и предыдущий метод, обладает зависимостью коэффициента сжатия от энтропийной характеристики близкой к линейной, что также позволяет его использовать для нашей задачи.

Основа метода фрактального кодирования — это обнаружение самоподобных участков в изображении. В соответствии с данным методом изображение разбивается на множество неперекрывающихся ранговых подизображений, и определяется множество перекрывающихся доменных подизображений. Для каждого рангового блока алгоритм кодирования находит наиболее подходящий доменный блок и аффинное преобразование, которое переводит этот доменный блок в данный ранговый блок. Структура изображения отображается в систему ранговых блоков, доменных блоков и преобразований.

Прочие исследованные мной алгоритмы сжатия не соответствуют требованию корреляции коэффициента сжатия к энтропии, близкой к линейной, а значит для энтропийной классификации использоваться не могут.

Модельный эксперимент

Для анализа эффективности данного метода была выполнена его программная реализация и проведено тестирование на имеющейся вирусной коллекции. Ниже представлены примеры под три различные платформы: макровирусы под MSOffice, вирусы под DOS, и 2 исследования ВК под Win32, созданных с использованием компилятора Borland Delphi 4.0 - 5.0.

: : : Исследование 1 : : : : : : Исследование 2.1 :: :

MSOffice Borland Delphi 4.0 - 5.0

объект: объект:

- Virus.MSOffice.Shiver.d - группа 1 - Email-Flooder.Win32.Dmb.01 - группа 3

17

группа 1: фуппа 1:

- Virus.MSWord.Groovie.b Backdoor. Win32.Bionet. 13

- Virus.MSWord.Melissa.bc Email-Flooder.Win32.EBomb.09a

- Virus.MSWord.Nail.b Nuker. Win3 2 .NTKiller. 13

- Virus.MSWord.Natas

группа 2:

группа 2: Backdoor. Win32.HackTack. 120.a

- Virus.MSWord.Antisocial.l Backdoor. Win32.MoonPie. 10

- Virus.MSWord.Hook Backdoor. Win32. Y3KRat. 15.b

- Virus.MSWord.Hope.t

- Virus.MSWord.Slod группа 3:

- Virus.MSWord.Sufnoc Backdoor. Win32.Danton.22

- Virus.MSWord.ThisDocument DoS. Win32.DBomb. 11

группа 3:

- Constructor.MSWord.WMVG

- Virus.MSWord.Karma

- Virus.MSWord.WMVG

: : : Исследование 2.2 :: : : : : Исследование 3 : : :

Borland Delphi 4.0 - 5.0 DOS

объект: объект:

- Backdoor.Win32.Danton.33 - - Virus.DOS.Urod.773 - группа 1

группа 3

группа 1: группа 1: группа 3:

Backdoor. Win32.Bionet. 13 Virus.DOS.Angry.393 Virus.DOS.Animals.2400.b

Email- Virus.DOS.Deviant.547 Virus.DOS.DWI. 1053

Flooder.Win32.EBomb.09a Virus.DOS.Minzdrav.470 Virus.DOS.Eddie.651 .d

Nuker. Win3 2 .NTKiller. 13 Virus.DOS.Morgul.400 Virus.DOS.Nono.1510

Virus.DOS.MREI.313 Virus.DOS.SVC.3103.с

группа 2: Virus.DOS.MRTI.576

Backdoor. Win32.HackTack. 120.a Virus.DOS.Normal.789 группа 4:

Backdoor. Win32.MoonPie. 10 Virus.DOS.SillyC. 187.a IRC-Worm.DOS.Melanie

Backdoor. Win3 2. Y3 KRat. 15 .b IRC-Worm.DOS.Sblive

группа 2: VirTool.DOS.Smm.c

фуппа 3: Virus.DOS.Anti-AV.695 Virus.DOS.Mabuhay.4260

Backdoor. Win32.Danton.22 Virus.DOS Jerusalem.Math Virus.DOS.Melanie.1410

DoS.Win32.DBomb.l 1 Virus.DOS.Koniec.404

Email-Flooder.Win32.Dmb.01 Virus.DOS.Olivia.2374 Virus.DOS.Trivial.Hot.130 Virus.DOS.Vienna.708

В каждой группе выделены ВК, созданные одним автором. В последнем случае в качестве образца брались сначала просто один из ВК, затем модификация ВК, уже участвующего в обработке.

Затем была создана программа, автоматически выполняющая вычисления по формулам, приведенным выше, и выводящая в файл всю статистику, а также наиболее вероятного автора рассматриваемого образца ВК.

Результаты исследования

: : : Исследование 1 : : : : : : Исследование 2.2 :: : 1

объект: объект:

- Vims.MSOffice.Shiver.cl (62976) - - Backdoor.Win32.Danton.33 (586240) -

группа 1 группа 3

группа 1: группа 1:

58201 -70761 386 383 - 538 115

группа 2: группа 2:

34845 - 50326 736 463 - 905 846

группа 3: группа 3:

309560 - 325580 431 041 -567 715

: : : Исследование 2.1 :: : : : : Исследование 3 : : :

объект: объект:

- Email-Flooder.Win32.Dmb.01 (572928) - - Virus.DOS.Urod.773 (10 773) -

группа 3 группа 1

группа 1: группа 1:

386 383 -547 081

3 520 - 4 239

группа 2: группа 2:

736 463 - 882 292

5 400 - 6 293

группа 3: группа 3:

313 972-431 041

8 078 - 8 969

группа 4:

16 770- 17 671

Первая цифра - размер сжатого блока кода каждого автора, вторая - размер этого же сжатого блока с присоединенным к нему опытным образцом. Отношение этих двух величин есть коэффициент Н. Затем по данному коэффициенту

определяем, какому автору принадлежит данный код (чем меньше коэффициент Н, тем вероятнее принадлежность исследуемого образца данному автору).

: : : Исследование 1 : : : : : : Исследование 2.2 : : :

объект: объект:

- У^з.МЗОШсе.БЫуег^ - Backdoor.Win32.Danton.33

группа 1 группа 3

автор 1: Н1 =0.1994410569 "]]Нпип=Н 1 автор 1:Н1=0.2588223 "1 Hmin=H3

автор 2: Н2=0.2458238058 автор автор 2: Н2-0.2889311 автор

автор 3: Н3=0,2543826219 образца - 1 автор 3: Н3=0.2331365 образца - 3

: :: Исследование 2.1 :: : : : : Исследование 3 : : :

объект: объект:

- Email-Flooder.Win32.Dmb.01 - Virus.DOS.Urod.773

группа 3 группа 1

автор 1:Н1=0.2804855 1 Нгшп=НЗ автор 1:Н1=0.0667409 1

автор 2: Н2=0.2545328 автор автор 2: Н2-0.0828924 \ Нтт=Н1

автор 3: Н3=0.2043345 образца - 3 автор 3: Н3=0.0827067 автор

автор 4: Н4=0.0836350 образца - 1

Как видно, при большом пороговом значении вероятности автор как правило определяется верно.

Основным недостатком данного метода является зависимость получаемой вероятности от коллекции авторских объектов, что не позволяет осуществлять быстрый поиск по вирусной коллекции (необходим многократный полный обход всей коллекции).

1.2.2 Частотный анализ

Для очень приблизительного поиска сходных объектов по коллекции в интегрированных средах аналитика используются утилиты частотного поиска. В принципе, суть метода понятна из названия и хорошо известна из базового курса криптоаналитики: метод основывается на предположении о существовании нетривиального статистического распределения отдельных символов и их последовательностей в исполняемых объектах от одного и того же автора. Утверждается, что вероятность появления отдельных значений байтов, а также их порядок подчиняются статистическим закономерностям. Анализируя достаточно длинный сэмпл, можно составить его частотную характеристику.

Важными характеристиками объекта являются повторяемость символов, их пар букв, то есть ш (т-грамм), сочетаемость символов друг с другом и некоторые другие особенности. Примечательно, что эти характеристики являются достаточно устойчивыми.

Идея состоит в подсчете чисел вхождений каждой п' возможных т-грамм в достаточно длинных открытых текстах Т=/,,/2составленных из возможных

значений {ах ,а2,...,ап }. При этом просматриваются подряд идущие т-граммы

объекта:

, ,..., ; /2, ^з,..., /т+1;...; t¡_m+x, tl_m+г(1.4)

Если Ь (а11,а12,...,апп) — число появлений т-граммы аа,а12,...,а1т в объекте Т, а Ь — общее число подсчитанных т-грамм, то при достаточно больших Ь частоты

—--—, для данной т-граммы мало отличаются друг от друга.

1-4

В силу этого, относительную частоту считают приближением вероятности Р (ал,аа,...,а,т ) появления данной т-граммы в случайно выбранном месте объекта (такой подход принят при статистическом определении вероятности).

В общем смысле частоту значений в процентном выражении можно определить следующим образом: подсчитывается сколько раз она встречается в исполняемом объекте, затем полученное число делится на общий размер объекта; для выражения в процентном выражении, еще умножается на 100.

Следует отметить, что несмотря на довольно низкую эффективность метода (используется для самого приблизительного поиска похожих объектов, основной анализ производится вручную), он обладает одним серьёзным преимуществом - с учётом возможности предварительной индексации вирусной коллекции он практически мгновенен - поиск по огромной коллекции занимает доли секунды.

1.2.3 Фрагменто-сигнатурный анализ

Данный метод применяется для упрощения детектирования сэмплов, являющихся незначительными модификациями уже имеющихся образцов ВК. Суть метода в целом аналогична сигнатурному анализу, который составляет основу любого антивируса, с той лишь разницей, что с вредоносной программы снимается не одна однозначная сигнатура, а несколько фрагменто-сигнатур, примерно соответствующих участкам реализации вредоносной нагрузки в теле исполняемого объекта. Оценка схожести рассчитывается на основе количество вхождений фрагменто-сигнатур образца ВК из коллекции в исследуемый сэмпл.

Эффективность данного метода довольно "локальна" - в основном он даёт какие-то результаты только во время массированных эпидемий сетевых червей, когда "in the wild" появляется огромное количество незначительных модификаций одного и того же червя в целях обхода сигнатурного анализатора антивируса. К плюсам метода, как и в предыдущем случае, можно отнести высокую скорость работы вследствие возможности предварительной индексации базы фрагменто-сигнатур.

1.2.4 Эвристический анализ

Заключается в использовании эвристического движка антивируса для поиска объектов по коллекции.

Данный метод здесь приведён, скорее, справочно, так как на практике для поиска по вирусной коллекции он не используется (по очевидным причинам, прежде всего, огромных ресурсозатратах). Однако так же очевидно, что как таковая, конечная задача получения вероятности схожести объектов может быть решена эвристическим анализом. Предполагаю, что с течением времени и дальнейшим увеличением вычислительной мощности ЭВМ эвристические анализаторы найдут своё применение в процессе детектирования. К возможным плюсам можно отнести отсутствие необходимости в разработке инструментария (он уже есть в антивирусе), а также заранее известную статистику по методу (количество ложных срабатываний и т. п. - опять же, накапливается в антивирусных компаниях).

Похожие диссертационные работы по специальности «Методы и системы защиты информации, информационная безопасность», 05.13.19 шифр ВАК

Заключение диссертации по теме «Методы и системы защиты информации, информационная безопасность», Стремоухов, Всеволод Дмитриевич

Результаты исследования : : Исследование 1 : : : : : : Исследование 2.2 :: : 1 объект: объект:

- Vims.MSOffice.Shiver.cl (62976) - - Backdoor.Win32.Danton.33 (586240) группа 1 группа 3 группа 1: группа 1:

58201 -70761 386 383 - 538 115 группа 2: группа 2:

34845 - 50326 736 463 - 905 846 группа 3: группа 3:

309560 - 325580 431 041 -567 715 : : Исследование 2.1 :: : : : : Исследование 3 : : : объект: объект:

- Email-Flooder.Win32.Dmb.01 (572928) - - Virus.DOS.Urod.773 (10 773) группа 3 группа 1 группа 1: группа 1:

386 383 -547 081

3 520 - 4 239 группа 2: группа 2:

736 463 - 882 292

5 400 - 6 293 группа 3: группа 3:

313 972-431 041

8 078 - 8 969 группа 4:

16 770- 17 671

Первая цифра - размер сжатого блока кода каждого автора, вторая - размер этого же сжатого блока с присоединенным к нему опытным образцом. Отношение этих двух величин есть коэффициент Н. Затем по данному коэффициенту определяем, какому автору принадлежит данный код (чем меньше коэффициент Н, тем вероятнее принадлежность исследуемого образца данному автору). : : Исследование 1 : : : : : : Исследование 2.2 : : : объект: объект:

- У^з.МЗОШсе.БЫуег^ - Backdoor.Win32.Danton.33 группа 1 группа 3 автор 1: Н1 =0.1994410569 "]]Нпип=Н 1 автор 1:Н1=0.2588223 "1 Hmin=H3 автор 2: Н2=0.2458238058 автор автор 2: Н2-0.2889311 автор автор 3: Н3=0,2543826219 образца - 1 автор 3: Н3=0.2331365 образца - 3 :: Исследование 2.1 :: : : : : Исследование 3 : : : объект: объект:

- Email-Flooder.Win32.Dmb.01 - Virus.DOS.Urod.773 группа 3 группа 1 автор 1:Н1=0.2804855 1 Нгшп=НЗ автор 1:Н1=0.0667409 1 автор 2: Н2=0.2545328 автор автор 2: Н2-0.0828924 \ Нтт=Н1 автор 3: Н3=0.2043345 образца - 3 автор 3: Н3=0.0827067 автор автор 4: Н4=0.0836350 образца - 1

Как видно, при большом пороговом значении вероятности автор как правило определяется верно.

Основным недостатком данного метода является зависимость получаемой вероятности от коллекции авторских объектов, что не позволяет осуществлять быстрый поиск по вирусной коллекции (необходим многократный полный обход всей коллекции).

1.2.2 Частотный анализ

Для очень приблизительного поиска сходных объектов по коллекции в интегрированных средах аналитика используются утилиты частотного поиска. В принципе, суть метода понятна из названия и хорошо известна из базового курса криптоаналитики: метод основывается на предположении о существовании нетривиального статистического распределения отдельных символов и их последовательностей в исполняемых объектах от одного и того же автора. Утверждается, что вероятность появления отдельных значений байтов, а также их порядок подчиняются статистическим закономерностям. Анализируя достаточно длинный сэмпл, можно составить его частотную характеристику.

Важными характеристиками объекта являются повторяемость символов, их пар букв, то есть ш (т-грамм), сочетаемость символов друг с другом и некоторые другие особенности. Примечательно, что эти характеристики являются достаточно устойчивыми.

Идея состоит в подсчете чисел вхождений каждой п' возможных т-грамм в достаточно длинных открытых текстах Т=/,,/2составленных из возможных значений {ах ,а2,.,ап }. При этом просматриваются подряд идущие т-граммы объекта: ,., ; /2, ^з,., /т+1;.; t¡m+x, tlm+г(1.4)

Если Ь (а11,а12,.,апп) — число появлений т-граммы аа,а12,.,а1т в объекте Т, а Ь — общее число подсчитанных т-грамм, то при достаточно больших Ь частоты

--—, для данной т-граммы мало отличаются друг от друга.

1-4

В силу этого, относительную частоту считают приближением вероятности Р (ал,аа,.,а,т ) появления данной т-граммы в случайно выбранном месте объекта (такой подход принят при статистическом определении вероятности).

В общем смысле частоту значений в процентном выражении можно определить следующим образом: подсчитывается сколько раз она встречается в исполняемом объекте, затем полученное число делится на общий размер объекта; для выражения в процентном выражении, еще умножается на 100.

Следует отметить, что несмотря на довольно низкую эффективность метода (используется для самого приблизительного поиска похожих объектов, основной анализ производится вручную), он обладает одним серьёзным преимуществом - с учётом возможности предварительной индексации вирусной коллекции он практически мгновенен - поиск по огромной коллекции занимает доли секунды.

1.2.3 Фрагменто-сигнатурный анализ

Данный метод применяется для упрощения детектирования сэмплов, являющихся незначительными модификациями уже имеющихся образцов ВК. Суть метода в целом аналогична сигнатурному анализу, который составляет основу любого антивируса, с той лишь разницей, что с вредоносной программы снимается не одна однозначная сигнатура, а несколько фрагменто-сигнатур, примерно соответствующих участкам реализации вредоносной нагрузки в теле исполняемого объекта. Оценка схожести рассчитывается на основе количество вхождений фрагменто-сигнатур образца ВК из коллекции в исследуемый сэмпл.

Эффективность данного метода довольно "локальна" - в основном он даёт какие-то результаты только во время массированных эпидемий сетевых червей, когда "in the wild" появляется огромное количество незначительных модификаций одного и того же червя в целях обхода сигнатурного анализатора антивируса. К плюсам метода, как и в предыдущем случае, можно отнести высокую скорость работы вследствие возможности предварительной индексации базы фрагменто-сигнатур.

1.2.4 Эвристический анализ

Заключается в использовании эвристического движка антивируса для поиска объектов по коллекции.

Данный метод здесь приведён, скорее, справочно, так как на практике для поиска по вирусной коллекции он не используется (по очевидным причинам, прежде всего, огромных ресурсозатратах). Однако так же очевидно, что как таковая, конечная задача получения вероятности схожести объектов может быть решена эвристическим анализом. Предполагаю, что с течением времени и дальнейшим увеличением вычислительной мощности ЭВМ эвристические анализаторы найдут своё применение в процессе детектирования. К возможным плюсам можно отнести отсутствие необходимости в разработке инструментария (он уже есть в антивирусе), а также заранее известную статистику по методу (количество ложных срабатываний и т. п. - опять же, накапливается в антивирусных компаниях).

Глава 2: Модель

2.1 Исходные положения

В диссертационной работе представлена математическая модель определения авторства вредоносного кода на основе анализа матрицы переходных вероятностей цепи Маркова. В представленной модели бинарный исполняемый объект моделируется однородной цепью Маркова, а вероятность общего авторства двух объектов связана со схожестью рельефных образов, сформированных на основе матриц переходных вероятностей.

Для моделирования бинарного исполняемого объекта в этой работе используется однородная цепь Маркова, т.е. такая цепь Маркова, в которой матрица переходных вероятностей не зависит от номера шага. Применение однородной цепи Маркова для моделирования бинарного исполняемого объекта соответствует реальности: в главе 4 будет доказано, что все основные типы вредоносного кода обладают высокой степенью однородности. Некоторые экзотические типы ВК обладают определёнными частотными аномалиями на различных своих участках, но в целом однородность цепи Маркова для подавляющего большинства бинарных объектов сомнения не вызывает. Предполагается, что каждый программист обладает относительно уникальным "почерком" - то есть комплексом используемых приёмов программирования, подходов к структурированию кода, используемых алгоритмов и т. п., что соответствующим образом отражается в уникальных для каждого программиста частотных закономерностях в матрице переходных вероятностей.

В качестве алфавита логично используется множество значений байта - т. е., условно, натуральных чисел на отрезке [0; 255], в качестве словаря над алфавитом байт - совокупность последовательностей заданной длины. Варьируя параметры словаря мы можем подстраивать модель под конкретные типы исполняемых объектов (например, учитывая возможные длины инструкций в машинном языке конкретной подсистемы).

Для анализа степени схожести матрица переходных вероятностей представляется в виде рельефного образа, т. е. где N - размерность словаря, соответственно, коэффициенты матрицы - возбуждения одномерных рецепторов.

Для простоты взята техническая система с очувствлением. Фактическое распределение рецепторных возбуждений по сетчатке глаза, очевидно, и есть рецепторный образ видимой сцены, под которой в работе понимается матрица переходных вероятностей. Фактическое распределение возбуждений в данном случае - поле возбуждений мономерных рецепторов (матрица переходных вероятностей), которое и даёт рельеф, дающий нам представление о фактическом распределении возбуждений рецепторов по всему полю.

В предложенной в данной работе модели, вероятность общего авторства вредоносных программ связана со степенью сходства образов, построенных на основе матриц переходных вероятностей Маркова, посчитанных для данных программ.

В предложенной в данной работе модели учитывается, что некоторую, зачастую значительную часть объёма бинарного исполняемого объекта составляют фрагменты, бесполезные для анализа уникального "почерка" программиста - как правило, это фрагменты структуры исполняемых файлов и код, генерируемый компилятором. При этом оценка объёма таких фрагментов представляет собой вполне разрешимую техническую задачу. Для примера разберём основные типы таких фрагментов для исполняемых файлов подсистемы \vin32 (на текущий момент это самый распространённый класс вредоносных программ):

Список литературы диссертационного исследования кандидат технических наук Стремоухов, Всеволод Дмитриевич, 2013 год

Список использованной литературы

1. J. Wu, S. Vangala, L. Gao, and К. Kwiat. An Effective Architecture and Algorithm for Detecting Worms with Various Scan Techniques. Network and Distributed System Security Symposium, 2004.

2. С. C. Zou, W. Gong, D. Towsley, and L. Gao. The Monitoring and Early Detection of Internet Worms. IEEE/ACM Transactions on Networking, 13(5), 961- 974, October 2005.

3. C. Zou, L. Gao, W. Gong, and D. Towsley. Monitoring and Early Warning of Internet Worms. Proceedings of ACM Conference on Computer and Communications Security (CCS), October, 2003.

4. N. Weaver, S. Staniford, and Vern Paxson. Very Fast Containment of Scanning Worms. Proceedings of the 13th USENIX Security Symposium, August 2004.

5. C. Shannon and D. Moore. The spread of the Witty worm. Proceedings of the IEEE Symposium on Security and Privacy, May, 2004.

6. J. Van Hoogstraten. Blasting Windows: An Analysis of the W32/Blaster Worm. http://www.giac.org/practical/GCIH/JohnVanHoogstratenGCIH.pdf

7. D. Moore, C. Shannon, G.M. Voelker, S. Savage. Internet Quarantine: Requirements for Containing Self-Propagating Code. Infocom 2003.

8. J. Nazario, J. Anderson, R. Wash, C. Connelly. The Future of Internet Worms. Crimelabs Research.

9. C.C. Zou, D. Towsley, W. Gong. Email virus propagation modeling and analysis. Technical Report TR-CSE-03-04 (University of Massachussets, Amherst), 2003

10. S. Chen, Y. Tang. Slowing Down Internet Worms. University of Florida, Department of Computer & Information Science & Engineering.

11.L. Zeltser. The Evolution of Malicious Agents. April 2000.

12. A. Shulman. Web Application Worms: Myth or Reality?. iMPERVA Application Defense Center, 2004.

13.K. Rozinov. Reverse Code Engineering: An In Depth Analysis of the Bagle Virus. August 2004.

14. D. Moore, C. Shannon, and J. Brown. Code-Red: a case study on the spread and victims of an Internet Worm. In Proc. ACM/USENIX Internet Measurement Workshop, France, November, 2002.

15.N. Weaver, V. Paxson, S. Stamford, and R. Cunningham. A Taxonomy of Computer Worms. ACM Workshop on Rapid Malcode, Washington, DC, Oct. 27, 2003.

16.D. Moore, V. Paxson, S. Savage, C. Shannon, S. Staniford, andN. Weaver. Inside the Slammer worm. IEEE Magazine on Security and Privacy, 1(4), July 2003.

17.N. Weaver. Warhol Worms: The Potential for Very Fast Internet Plagues, 2001

18.S. Staniford. Containment of scanning worms in enterprise networks. Journal of

Computer Security, 2003.

19.C. C. Zou, D. Towsley, and W. Gong. Email worm modeling and defense. In Proceedings of 13th International Conference on Computer Communications and Networks (ICCCN'04), October 2004.

20. S. Staniford, D. Moore, V. Paxson, N. Weaver. The Top Speed of Flash Worms. In: Proceedings of ACM Workshop on Rapid Malcode (WORM). (2004)

21.M. Mannan and P.C. van Oorschot. On instant messaging worms, analysis and countermeasures. In Proceedings of the 2005 ACM Workshop on Rapid Malcode, pages 2-11, November 2005.

22.D. Moore, V. Paxson, S. Savage, C. Shannon, S. Staniford, and N. Weaver. The spread of the sapphire/slammer worm. Technical report, CA1DA, ICSI, Silicon Defense, UC Berkeley EECS and UC San Diego CSE, 2003.

23.L. Zhou, L. Zhang, F. McSherry, N. Immorlica, M. Costa and S. Chien. A First Look at Peer-to-Peer Worms: Threats and Defenses. Peer-to-Peer Systems IV, 4th International Workshop (IPTPS), pages 24-35, February 2005.

24.C.C. Zou, W. Gong, D. Towsley. Code Red Worm Propagation Modeling and Analysis. 9th ACM Conf. on Computer and Communication Security, 2002

25. W. Yu, C. Boyer, S. Chellappan and D. Xuan. Peer-to-Peer System based Active Worm Attacks: Modeling and Analysis. Communications, 2005. ICC 2005. 2005

IEEE International Conference on Volume 1, 16-20 May 2005 Page(s):295 - 300 Vol. 1.

26.D. Brumley, Li-Hao Liu, P. Poosankam, and D. Song. Taxonomy and effectiveness of worm defense strategies. TR CMUCS-05-156, 2005.

27. C. W. Wong, S. Bielski, J. M. McCune, and C. Wang. A Study of Mass-mailing Worms. ACM CCS 2nd Workshop on Rapid Malcode (WORM04), October 2004.

28.D. Ellis, J. Aiken, K. Attwood, and S. Tenaglia. A Behavioral Approach to Worm Detection. In Proceedings of the ACM Workshop on Rapid Malcode (WORM), Fairfax,VA, Oct. 2004.

29. S. Staniford, V. Paxson, N. Weaver. How to Own the internet in your spare time. Proceedings of the 11th USENIX Security Symposium (Security '02), 2002.

30.D.M. Kienzle, M.C. Elder. Recent worms: a survey and trends. The 2003 ACM Workshop on Rapid Malcode (WORM-03) Washington, DC, USA, 2003.

31.N.C. Weaver, V. Paxson, A worst-case worm, The Third Annual Workshop for Economics and Information Security (WEIS04), Minnesota, 2004.

32.Боэм Б., Браун Дж., и др. Характеристики качества программного обеспечения, М., Мир, 1981

33.Холстед М.Х. Начала науки о программах. - М.: Финансы и статистика, 1981

34. Goel A., Okumoto К. Time-dependent Error - Detection Rate Model For Software Reliability And Other Performance Measures. - IEEE Trans. On Software Eng., 1979, v. SE-28, №3.

35.Касперский E.B. Компьютерные вирусы: что это такое и как с ними бороться, Москва, СК Пресс, 1998

36.Edward Wilding, Virus Bulletin, July, 1989

37. «Компьютерные вирусы за 5 лет», http://news.proext.eom/sec/l 25 82.html

38. Морозов Н.А. Лингвистические спектры: средство для отличения плагиатов от истинных произведений того или иного известного автора.

Стилеметрический этюд. // Известия отд. русского языка и словестности Имп.Акад.наук, Т.ХХ, кн.4, 1915.

39. Марков A.A. Об одном применении статистического метода. // Известия Имп.Акад.наук, серия VI, Т.Х, N4, 1916, с.239.

40. Марков A.A. Пример статистического исследования над текстом "Евгения Онегина", иллюстрирующий связь испытаний в цепь. // Известия

Имп.Акад.наук, серия VI, Т.Х, N3, 1913, с. 153.

41. От Нестора до Фонвизина. Новые методы определения авторства. М.: Издат. группа ?Прогресс?, 1994.

42. Фоменко В.П., Фоменко Т.Г. Авторский инвариант русских литературных текстов. Предисловие А.Т. Фоменко. // Фоменко А.Т. Новая хронология Греции: Античность в средневековье. Т. 2. М.: Изд-во МГУ, 1996, с.768-820.

43. Ивченко Г.И., Медведев Ю.И. Математическая статистика. 2-е изд. М.: Высшая школа, 1992.

44. А. М. Яглом, И. М. Яглом. Вероятность и информация. — М.: Наука, 1973

45.Томас X. Кормен, Чарльз И. Лейзерсон, Рональд JI. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-е изд. — М.: Вильяме, 2006. — 1296 с. — ISBN 0-07-013151-1

46. Д. Сэломон. Сжатие данных, изображения и звука. — М.: Техносфера, 2004. — 368 с. — 3000 экз. — ISBN 5-94836-027-Х

47. Ананий В. Левитин. Глава 9. Жадные методы: Алгоритм Хаффмана // Алгоритмы: введение в разработку и анализ = Introduction to The Design and Analysis of Algorithms. — M.: Вильяме, 2006. — С. 392—398. — ISBN 0-20174395-7

48. Д. Мастрюков. Д. Мастрюков. Алгоритмы сжатия информации. - Монитор

49. С.Коутинхо. Введение в теорию чисел. Алгоритм RSA. Москва: Постмаркет,

7-8.93

2001.-328 с.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.