Разработки СО РАН - каталоги программ и БД

Поиск по каталогам:

2013-07-11

Назначение: Анализ поведения процессов в ОС Windows. 

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

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

Область применения: Компьютерная безопасность. Защита от вредоносного ПО.

Используемый алгоритм: Анализ поведения процессов с использованием составного обработчика на основе трехслойных персептронов [1].

Основной идеей алгоритма является разделение персептрона-анализатора на несколько (4) атомарных трехслойных персептронов. Например, 17 входов персептрона были разделены на 4 группы: 3, 4, 5, 5. Каждый из таких персептронов имеет свой выход и отвечает за соответствие образа какому-либо признаку (тому признаку, за который отвечает персептрон). В качестве входов используется количество произошедших событий в системе событий определенного класса (использовано 17 типов событий по 1 на каждый вход). Каждый из 4 атомарных персептронов возвращает свой ответ, является ли процесс «своим» или нет. Например, {да, нет, да, да}. Эти ответы согласуются с помощью вектора доверия размерности 4 в финальный ответ всего анализатора как скалярное произведение вектора доверия на вектор ответов. Вектор доверия формируется на этапе обучения анализатора. Данный алгоритм был разработан с целью решения проблемы неэффективности нейронных сетей, когда подавляющее большинство входов равно нулю.         

1. Р.С. Прохоров, Методика бихевиористической классификации процессов в ОС Windows 7 // Информационные технологии и автоматизация управления - Материалы V Всероссийской научно-практической конференции студентов, аспирантов, работников образования и промышленности, Омск, Издательство ОмГТУ, стр 163-165, 23-26 апреля, 2013.        

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

Пример представляет из себя два приложения

  1. Основное приложение (IncinerateService), которое можно зарегистрировать как сервис Windows, а можно просто запускать как консольное приложение. Возможности:
    1. обучение нового агента (Learn)

      для этого администратору необходимо задать список PID'ов целевого процесса и имя нового агента (произвольная строчка, но уникальный идентификатор). когда обучаемый агент получает достаточно информации для работы (настраивается), он сохраняется в репозиторий агентов (c:/program data/incinerate).
    2. запуск обученного агента в состояние слежки за системой (Watch). Из репозитория агентов (c:/program data/incinerate) берется агент по имени из запроса. Данный агент будет искать "свой" процесс среди всех активных процессов и, например, писать в лог определенную информацию (можно задать любую модель поведения)
    3. получение информации обо всех обученных или обучающихся агентах (GetInfo)
  2. Клиентское приложение (IncinerateCmd), работающее с сервисом и подающее ему соответствующие команды (L, W, I). Взаимодействие идет через pipe. Канал открытый.
    1. incicmd -w=<имя_агента> - Запуск слежения за процессами с помощью ранее обученного агента
    2. incicmd -a=<имя_нового_агента> -p=<PID_1,PID_2,...,PID_N> - Запуск обучения агента с новым именем, который будет считать, что все указанные процессы - целевые, а все остальные - чужие.
    3. incicmd -l - Печатает список обучающихся и готовых агентов

Инструментальные средства создания: Visual C# Express

Описание содержимого репозитория

В репозитории https://github.com/Evlikat/incinerate находится полностью компилируемый под  платформу  .NET Framework 3.0+ проект Visual C# Express 2010. Подпроекты в составе:

  1. IncinerateCmd - проект-пример, клиентское приложение, описанное выше. Состоит из одного файла - main'а консольного приложения
  2. IncinerateService - проект-пример, серверное приложение, которое можно зарегистрировать как сервис Windows. Описано выше.
  3. NeuroApplication - проект, содержащий программы-эксперименты для установления эффективности работы алгоритма
  4. NeuroIncinerate - базовый проект, содержащий все необходимые алгоритмы
  5. Sample.Eventing, TraceEvent - дочерние проекты, используются для подключения к системе отслеживания событий Windows (сторонние библиотеки с открытым кодом)
  6. Incinerate - сторонний исторический проект, отношения к алгоритму не имеет (можно игнорировать)

Инструкция по использованию

  1. Запустить IncinerateService/bin/Debug/IncinerateService.exe от имени администратора. Сервис будет запущен как консольное приложение
  2. Запустить IncinerateCmd/bin/Debug/incicmd -a=ИмяНовогоАгента -p=PID'ыЦелевых процессов
  3. Сервис обучит анализатор на заданных процессах. Как только наберется 500 образцов поведения целевых процессов и 2500 образцов любых других процессов, он будет сохранен в c:/ProgramData/Incinerate/ИмяНовогоАгента.agent
  4. Получить список всех агентов с помощью команды incicmd -l
  5. Запустить в режим слежения команда (incicmd -w=ИмяНовогоАгента)
  6. Сервис будет писать в окно PID опознанного процесса. [HARD] - свидетельствует о жестком опознании, то есть высоком уровне уверенности. [SOFT] - указывает, что процесс был опознан, но анализатор "сомневается" тот ли это процесс

Замечания к использованию

  1. Если агент плохо опознает целевые процессы, то возможно его удалить и обучить заново. Повторять до желаемого уровня уверенности
  2. Агент также можно "отрегулировать" с помощью необходимого уровня доверия данному агенту. Файл IncinerateService/Core/AgentRegistry.cs содержит константы для "регулировки" агентов. После внесения изменения программу необходимо перекомпилировать
2013-06-14

Назначение - интерактивная иллюстрация задач по преобразованию списков.

Область применения - для сопровождения курсов лекций по языкам программирования Pascal и C++. 

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

Функциональные возможности - в программе реализованы 4 задачи по перестановке узлов однонаправленного списка. Каждая задача представлена набором статических схем, сменяющих друг друга на одном поле. Каждой статической схеме соответствует выделенный оператор выведенного на экран кода задачи. С помощью переключателя код на языке Pascal можно заменить кодом на языке C++.

Инструментальные средства создания - программа написана на языке Java с ипользованием среды Eclipse.

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

2013-06-14

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

Область применения - В рентгеновском электронно-зондовом микроанализе для оценки локальности проводимых измерений, выбора условия генерации рентгеновского излучения и для проведения ZAF–коррекции результатов измерений интенсивностей рентгеновских характеристических линий при количественном микроанализе материалов.

Используемый алгоритм - В основе заложена аналитическая модель функции рентгеновского характеристического излучения по массовой толщине образца φ(ρz), представленная в работах [1,2]. Модель φ(ρz) учитывает: наличие обратно рассеянных первичных электронов; влияние неупругого рассеяния электронов пучка на распределение в образцах с низким значением среднего атомного номера; пространственную симметрию протекания процесса многократного рассеяния относительно положения координаты максимума распределения   поглощенных электронов пучка.

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

Использованные источники:

  1. Михеев Н.Н., Степович М.А., Широкова Е.В. // Известия РАН. Серия физическая. 2010. Т. 74. № 7. С.1043 – 1049.
  2. Михеев Н.Н., Степович М.А., Широкова Е.В. // Известия РАН. Серия физическая. 2012. Т. 76. № 9. С.1086 – 1089.

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

Инструментальные средства создания - Mathcad 7.0 PRO

2013-06-13

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

Область применения - для иллюстрации лекций по высшей математике и тренировки студентов при электронном решении задач интегрирования.

Используемый алгоритм - различные варианты обработки строк на языке Java и их кодирование с целью графического представления процесса решения.

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

Инструментальные средства создания - программы написаны на языке Java с использованием среды Eclipse.

Группа файлов, необходимая для выполнения двух программ, содержит пакетный файл Paket.bat. После его загрузки появляются необходимые комментарии для работы с программами.  

2013-06-11

 Программа предназначена для приближенного вычисления вероятностей связности всех пар вершин графа с низконадежными ребрами.

В основе программы лежат асимптотические отношения, параметры которых определяются с помощью разработанных модифицированных алгоритмов Флойда-Стейнберга. Алгоритм заключается в определении минимального числа ребер в путях между всеми парами вершин на основе матрицы смежности с помощью модификации известного алгоритма Флойда. Модификация заключается в изменении начальных данных длины ребра на 0 и 1,  что уменьшает количество необходимых итераций. Далее определяются соответствующие числа минимальных путей для всех пар вершин на основе специально полученных формул, представленных в работе [1].

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

Программа может быть использована при исследовании различных случайных сетей и проектировании новых информационно-технических систем.        [1]  "Асимптотика вероятности связности графа с низконадёжными рёбрами", Прикладная дискретная математика, 2013, № 1, 93–98.  

В отличие от программ аналогичного типа данная программа позволяет:

1. Определять вероятности связности всех пар вершин графа произвольного вида;

2. Использовать новые, модифицированные алгоритмы, уменьшая вычислительную сложность;

3. Не требовать высоких технических характеристик к используемым аппаратным средствам.

Функциональные ограничения - в силу используемых формул вероятность связности ребра должна быть меньше чем 0,01.

Исходя из удобства, не рекомендуется использовать программу для графов с количеством вершин более 100.

Программа разработана на Object Pascal  в среде разработки Delphi 7.