Методы цифрового анализа текстовых сообщений для идентификации спама
Вид материала | Документы |
СтАтический анализ кода архитектуры x86 Эксперименты с моделями «простых» криптосистем |
- Использование методов категоризации текстовых привязок и анализа графов для идентификации, 76.45kb.
- «Явление спама и борьба с ним», 264.65kb.
- Задачи и их решение Стандартные и нестандартные задачи Задачи «на работу» Задачи «на, 157.13kb.
- «Тайный смысл даты рождения: Нумерология и будущее.», 527.12kb.
- Федеральный закон, 98.81kb.
- Кий отчет, который содержит количественный и качественный анализ сообщений, попавших, 4199.36kb.
- «Система идентификации личности по отпечаткам пальцев. Подсистема анализа изображения», 1781kb.
- И. А. Терейковский Применение семантического анализа содержимого электронных писем, 279.31kb.
- Российская федерация федеральная служба по интеллектуальной собственности, патентам, 19.54kb.
- 1. А. Т. Фоменко. Методы статистического анализа нарративных текстов и приложения, 141.9kb.
СтАтический анализ кода архитектуры x86
А.В.Корюкалов, Л.Ю.Ротков
Нижегородский госуниверситет
Одним из основных преимуществ статического анализа является возможность анализировать код без его исполнения. Такой анализ часто используется для обнаружения вредоносного кода в программном обеспечении и в современных программах-антивирусах представлен методом, основанном на поиске сигнатур в исполняемом коде. Суть этого метода заключается в поиске последовательности кода (сигнатуры), свойственной конкретному вирусу или другой вредоносной программе. При проверке в программах ищутся сигнатуры из базы. Данный метод анализа имеет следующие недостатки:
- Сигнатура вырабатывается специалистами компании только после обращения от потерпевшего.
- Для каждой вредоносной программы необходима своя сигнатура (одна или несколько).
- В случае вирусов с непостоянным кодом не всегда возможно учесть все варианты кода допустимым числом сигнатур.
- Невозможно распознать неизвестный вирус.
Таким образом, существует необходимость в автоматизированном решении, позволяющем идентифицировать ранее неизвестные вредоносные программы.
Статический анализ исполняемого кода включает в себя следующие задачи:
- Дизассемблирование кода – преобразование машинных кодов инструкций в их мнемоническое представление.
- Построение управляющего графа – наглядное графическое представление может сделать анализ существенно эффективнее и сократить затраты на определение логических связей между процедурами программы.
- Ручной или автоматизированный анализ кода и/или управляющего графа исследуемой программы.
В рассмотренных работах по проблемам статического анализа исполняемого кода описаны некоторые сложности и решения вышеприведенных задач.
В [7] описываются сложности, возникающие при дизассемблировании кода архитектуры X86, и подходы к преобразованию исполняемого кода таким образом, чтобы часть его инструкций дизассемблировалась неверно. Эти подходы строятся на том, что у архитектуры X86 инструкции не имеют постоянной длины и для вычисления границ инструкции необходимо проанализировать несколько ее частей. Таким образом, если один раз неправильно вычислить начало инструкции, то несколько инструкций будут дизассемблированы неверно.
При использовании режима косвенной адресации в инструкциях передачи управления (когда адрес назначения задается с использованием регистра процессора или участка памяти) необходим дополнительный анализ объектов данных, участвующих в вычислении адреса. В [1] описывается применение метода анализа набора значений (value-set analysis) для получения переоцененного набора значений, который в каждой точке программы может содержать каждый объект данных.
Рассматривая задачу анализа исполняемого кода применительно к вредоносным программам, необходимо учитывать, что авторы вредоносного кода часто маскируют системные вызовы и границы процедур кода при помощи комбинации инструкций работы со стеком. В [5], [6] и [8] описываются методы поиска таких преобразований.
В [2], [3] и [4] описаны идеи автоматизированного поиска некого «поведения», свойственного вредоносному коду, которое представлено шаблоном. При анализе по определенным правилам сравнивается участок кода программы и шаблоны из библиотеки с учетом структуры управляющего графа, последовательностей инструкций и системных вызовов. Качество такого анализа зависит от принципов составления библиотеки шаблонов. Исследования в данной области могут быть направлены на определение этих принципов и поиск условий, при которых код может считаться удовлетворяющим шаблону.
- Balakrishnan G., Reps T. Analyzing memory accesses in x86 executables. //In Proceedings of the International Conference on Compiler Construction (CC'04), volume 2985 of LNCS, pages 5—23 (2004).
- Bergeron J., Debbabi M., Desharnais J., Erhioui M.M., Lavoie Y., Tawbi N. Static detection of malicious code in executable programs. //In Proceedings of the International Symposium on Requirements Engineering for Information Security (2001).
- Christodorescu M., Jha S., Seshia S.A., Song D., Bryant R.E. Semantics-aware malware detection. //In Proceedings of the 2005 IEEE Symposium on Security and Privacy, pages 32—46 (2005).
- Christodrescu M., Jha S. Static Analysis of Executables to Detect Malicious Patterns. //In Proceedings of the 12th USENIX Security Symposium, pages 169—186 (2003).
- Lakhotia A., Kumar E. U. Abstracting Stack to Detect Obfuscated Calls in Binaries. //In Proceedings of the Fourth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'04), pages17—26 (2004).
- Lakhotia A., Kumar E. U., Venable M. A Method for Detecting Obfuscated Calls in Malicious Binaries. //IEEE Transactions on Software Engineering, Volume 31, Number 11, November 2005, pages 955—968.
- Linn C., Debray S. Obfuscation of Executable Code to Improve Resistance to Static Disassembly. //In Proceedings of the 10th ACM Conference on Computer and Communications Security (CCS), pages 290—299 (2003).
- Venable M., Chouchane M. R., Karim M. E., Lakhotia A. Analyzing Memory Accesses in Obfuscated x86 Executables. //In Proceedings of the Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA), pages 1—18 (2005).
Эксперименты с моделями «простых» криптосистем
А.А.Горбунов1), К.Г.Кирьянов1), А.А.Новокрещенов2)
1)Нижегородский госуниверситет,
2)Нижегородский государственный технический университет
С помощью подхода, базирующегося на описании блоков шифратора и дешифратора криптосистем (КС) в виде q-уровневых линейных цифровых автоматов (ЛЦА) на языке ABCD-формализма [1], зачастую для целого ряда задач удается получить адекватную математическую модель (ММ), оставаясь при этом в рамках настоящих моделей простых систем. Суть указанного подхода заключается в том, что системы уравнений ЛЦА на языке ABCD-формализма для шифратора, канала связи без задержки и дешифратора представляются в виде:
. (1)
Здесь входным сигналом u(t) является открытый текст, сигналом y(t) = u*(t) – шифротекст, сигналом y*(t) – восстановленное сообщение; матрицы дешифратора однозначным образом определяются по имеющимся матрицам шифратора (если D-1) по следующим формулам:
A* = [A-BD-1C], B* = [BD-1], C* = [-D-1C], D* = [D-1], x0* = x0 . (1a)
Подобным же образом можно учесть и наличие в канале связи задержки шифрованного сигнала на тактов. При этом блок канала связи, наряду с блоками шифратора и дешифратора, также представляется в виде дискретной динамической системы (ДДС), с выхода которой в течение первых тактов снимается нулевой сигнал, после чего – сигнал, тождественный входному, но задержанный во времени на отсчетов. Соотношения (1а) для построения ММ дешифратора по модели шифратора в ABCD-формализме в этом случае обобщаются (если D-1 и A*-1) следующим образом:
A* = [A-BD-1C], B* = [BD-1], C* = [-D-1C], D* = [D-1], x0* = (A*-1) x0 . (1б)
В настоящей работе была реализована компьютерная программа, эмулирующая поведение блоков шифратора, канала связи и дешифратора КС как ДДС, модель которой записывается на языке ABCD-формализма, и проводились компьютерные эксперименты по моделированию частных случаев криптосистем с конкретными характеристиками с целью разработки подходов к их тестированию. Данная программная реализация КС допускает работу в различных алгебраических структурах (АС): поле вещественных чисел, на множестве целых чисел, в АС конечных полей Галуа GF(q).
Тестирование программной реализации криптосистем заключалось:
- в автоматическом контроле соответствия размерностей матриц, описывающих тестируемую ММ, размерностям входного и выходного текстовых сигналов (могущих являться как скалярными, так и векторными);
- в проверке правильности заполнения матриц, векторов текстовых сигналов только элементами, допустимыми в выбранной АС;
- в автоматическом определении по имеющимся матрицам, описывающим ММ шифратора в ABCD-формализме, матриц, определяющих модель дешифратора в том же формализме;
- в проверке соответствия текстового сигнала, поступающего на вход шифратора, текстовому сигналу, снимаемому с выхода дешифратора.
Проводилось тестирование ММ ряда КС, функционирующих в различных АС. В качестве примера далее приведены результаты моделирования в ABCD-формализме работы одной из возможных КС, функционирующей в АС GF(q=4), для которой величина задержки в канале связи выбрана равной = 5 тактам.
Модель шифратора КС представлена в виде ЛЦА с параметрами:
. (2)
В соответствии с формулами (1б) можно построить ММ дешифратора (т.к. D-1 и A* -1) со следующими параметрами ЛЦА:
. (3)
В качестве тестовых сообщения u1 и ключа u2 , подаваемых в на векторный вход шифратора соответственно взяты изученные ранее характерные участки генетического текста длиной M = 958.
. (4)
С выхода шифрующего ЛЦА снимается векторный шифротекст, который, после задержки по времени на 5 тактов в канале передачи данных, поступает на вход дешифратора:
. (5)
Блок дешифратора восстанавливает следующий текст:
. (6)
Соответствующие компоненты сигналов (4) и (6) идентичны с точностью до сдвига по времени, что говорит о корректном функционировании рассмотренной модели КС.
- Горбунов А.А., Кирьянов К.Г. Динамические модели криптосистем с закрытым ключом. Синтез дешифраторов. //Вестник ННГУ им. Н.И. Лобачевского. Серия «Радиофизика». Вып. 2. Н. Новгород: ННГУ, 2004, С.24