ВОПРОСЫ ЗАЩИТЫ ИНФОРМАЦИИ
УДК 004.056
ВАРИАНТ СИСТЕМЫ ОПЕРАТИВНОГО ОБНАРУЖЕНИЯ
MALWARE
В. Л. Токарев, А. А. Сычугов
Предлагается метод обнаружения вредоносных программ, основанный на использовании обучаемых детекторов, каждый из которых срабатывает при появлении одного, ему присущему признака вредоносной программы. Множество таких детекторов позволяет организовать систему оперативного обнаружения вредоносного программного обеспечения.
Ключевые слова: вредоносное программное обеспечение, оперативное обнаружение, обучение детекторов.
Введение. Вредоносные программы (Malware) - программы проявляющие нежелательную активность на компьютере (рекламные окна, непонятное поведение компьютера и браузера, сайтов в Интернете), часто устанавливающиеся без ведома пользователей и сложные в удалении. Вредоносное программное обеспечение инфицирует компьютер и собирает личные данные, получает доступ к программам или к сети, является причиной сбоев в работе системы.
На сегодняшний день разработано и успешно используется множество утилит, и сканеров уязвимостей [1-6], позволяющих, если не обнаружить, то помочь в поиске вредоносных программ в компьютерной системе. В качестве примера, можно привести такие приложения, как Microsoft Process Explorer, HiJackThis от Trend Micro, Microsoft Baseline Security Analyzer, SUPERAntiSpyware, Anti-Malware от Malwarebyte и др. Тем не менее, остается открытым вопрос обнаружения вредоносных программ в режиме реального времени. Особую остроту решения этой задачи приобретает в связи с распространением и развитием опасных вредоносных программ [7]. Поэтому задача оперативного обнаружения вредоносного программного обеспечения остается актуальной.
186
В настоящее время исследования в этой области ведутся крупными зарубежными коммерческими компаниями. Общий подход, лежащий в основе этих исследований, заключается в поиске методов анализа, позволяющих оперативно (в режиме on-line) обнаруживать появление вредоносной программы. В данной статье предлагается метод, основанный на использовании обучаемых детекторов, каждый из которых срабатывает при появлении одного, ему присущему признака вредоносной программы. Множество таких детекторов способно образовать систему быстрого обнаружения вредоносного программного обеспечения.
Признаки вредоносных программ. Любую Malware можно отнести к одному из классов
1) явные - Malware самостоятельно проявляет заметную активность;
2) косвенные - другие программы начинают выводить сообщения об ошибках или вести себя нестандартно из-за присутствия на компьютере Malware;
3) скрытые - ни явных, ни косвенных проявлений Malware не имеет.
К примерам явных Malware можно отнести рекламные и им подобные программы: при проникновении на компьютер, они сразу себя обнаруживают, что позволяет пользователю оперативно принять меры, например, отключить компьютер от сети, воспрепятствовав дальнейшему распространению Malware. К их признакам можно отнести следущие.
1.1 Изменение настроек браузера (изменение стартовой страницы браузера, стандартной страницы поиска, несанкционированное открытие новых окон, ведущих на определенные сайты и т.п.), если восстановленные настройки снова меняются после перезагрузки компьютера. Такое изменение является признаком проникновения рекламной или троянской программы, которая направляет пользователя на сайт, содержащий Malware.
1.2 Всплывающие и другие сообщения, похожие на стандартные служебные сообщения операционной системы и содержащие гиперссылки или кнопки для перехода на замаскированный вредоносный сайт.
1.3 Получение множества системных сообщений об ошибке.
1.4 Несанкционированное соединение с Интернетом: Сетевой экран сообщает, что некое приложение пытается соединиться с Интернетом, игнорируя настройки, или пытается установить соединение с Интернетом через дорогого провайдера (в результате владелец компьютера получит счет на внушительную сумму).
1.5 Пропажа или несанкционированное изменение файлов или папок.
1.6 Компьютер часто зависает, или программы стали выполняться
медленно.
Признаками проявлений косвенных Malware могут быть следующие.
2.1 Блокирование антивируса: многие Malware пытаются выгрузить антивирус из памяти или даже удалить файлы антивируса с дисков компьютера.
2.2 Блокирование антивирусных сайтов: другие Malware нейтрализуют только возможность обновления антивирусных средств, т.е. не блокируют доступ в Интернет целиком, а только доступ к сайтам и серверам обновлений наиболее известных производителей антивирусов.
2.3 Сбои в системе или в работе других программ, что проявляется появлением сообщений о необычных ошибках.
2.4 Почтовые уведомления. Если на компьютере появилась Malware, рассылающая инфицированные почтовые сообщения, то они могут быть обнаружены на одном из серверов в Интернете.
2.5 Происходит неожиданный запуск программ (загорается индикатор доступа к жесткому диску, хотя пользователь не запускал никаких программ).
2.6 При включении компьютера операционная система не загружается.
Наиболее сложно обнаружить скрытые Malware, не обладающие указанными выше признаками оперативных проявлений.
Для обнаружения таких Malware обычно используют признаки их деятельности, например:
3.1 наличие в памяти подозрительных процессов;
3.2 наличие на компьютере подозрительных файлов;
3.3 наличие подозрительных ключей в системном реестре Windows;
3.4 подозрительная сетевая активность.
Подозрительные процессы (3.1) или файлы (3.2) - процессы или файлы, назначение которых пользователю неизвестно (нет информации о процессе ни в документации к операционной системе, ни в открытых источниках сети Интернет). Основной проблемой является автозапуск таких процессов или файлов.
Системный реестр (3.3) делится на несколько веток (пять или шесть, в зависимости от версии операционной системы). C точки зрения автозапуска наиболее важны две ветки: 1) HKEY_CURRENT_USER - ветка ключей, относящихся к текущему пользователю (часто сокращенно обозначается как HKCU); 2) HKEY_LOCAL_MACHINE - ветка ключей, относящихся к компьютеру в целом (обозначается как HKLM);
Для настройки автозапуска в реестре Windows предназначено несколько ключей.
Первая группа находится в ключе HKCU\Software\Microsoft\ Wind ows\CurrentVersion, и все ключи, относящиеся к автозагрузке. Эти программы запускаются только при входе в систему текущего пользователя. В зависимости от операционной системы это могут быть ключи:
Run - основной ключ автозапуска;
188
RunOnce - служебный ключ для программ, которым требуется запуститься только один раз;
RunServices - ключ для запуска служб в Windows;
Другая группа находится в ключе HKLMYSoftwareY MicrosoftYWindowsYCurrentVersion, т. е. в аналогичном ключе, но в настройках, относящихся к компьютеру в целом, а значит, ко всем пользователям. Это ключи: RunServicesOnce, Run, RunOnce, RunServices и RunServicesOnce - служебный ключ для служб, которым требуется однократный запуск.
Каждая запись в ключе автозапуска соответствует одной запускаемой программе. Запись состоит из имени записи, типа записи (для параметров автозапуска тип записи - строковый, обозначается как REG_SZ) и значения, которое и является строкой запуска, т. е. включает имя исполняемого файла и параметры командной строки.
Стандартными для операционной системы Windows являются следующие строки запуска (таблица).
Стандартные строки запуска ОС Windows
Имя Значение
KernelFaultCheck %systemroot%\system32\dumprep 0 - k
Synchronization Manager mobsync.exe \ logon
LoadPowerProfile Rundll32.exe Powprof.dll, LoadCurrentPwrScheme
ScanRegistry C:\WINDOWS\scanregw.exe/autorun
SistemTray SysTray.exe
TaskMonitor C:\WINDOWS\taskmon.exe
CTFMON.EXE C:\WINDOWS\system32\ctfmon.exe
Во всех версиях Windows стандартной программной оболочкой является explorer.exe. Если в строке shell указано что-то отличное от explorer.exe, это с большой вероятностью Malware. Кроме того, существуют легальные программы, являющиеся альтернативными программными оболочками Windows, которые могут изменять значение параметра shell в файле system.ini. Параметры стандартной оболочки задаются в реестре, в ключе HKLMYSoftwareY MicrosoftYWindows NT\CurrentVersion\Winlogon в параметре Shell. Значение этого параметра также в подавляющем большинстве случаев должно быть explorer.exe.
Системная утилита msconfig.exe, имеющаяся в составе Windows, предоставляет информацию обо всех источниках объектов автозапуска. В папке «Автозагрузка» собраны данные о запускаемых программах из реестра и меню Пуск. В колонке Элемент автозагрузки приводится имя записи в реестре или имя ярлыка в меню Пуск. В колонке Команда - строка запус-
189
ка программы, в колонке Расположение - ключ реестра, в котором расположена соответствующая запись, или Common Startup - для ярлыков меню Пуск. Данные о настройках конфигурационных файлов (system.ini и win.ini) расположены на одноименных закладках.
Кроме этого имеется папка «Службы», содержащая информацию о запускаемых службах в Windows. А в качестве служб могут регистрироваться и некоторые Malware.
Сетевая активность (3.4) может рассматриваться как результат проявления Malware. Черви используют сеть для распространения Malware, троянские программы - для загрузки дополнительных компонентов и отсылки информации злоумышленнику.
Некоторые типы троянских программ специально предназначены для обеспечения удаленного управления зараженным компьютером, открывая определенный порт к компьютеру по сети со стороны злоумышленника.
Каждый компьютер обладает IP-адресом, на который этому компьютеру можно передавать данные. Но если на компьютере имеется несколько программ, работающих с сетью (например, почтовый сервер и вебсервер), как определить, какие данные какой программе предназначены? Для этого и используются порты.
За каждой программой, ожидающей данные из сети, закрепляется определенное число - номер порта, а данные, пересылаемые на компьютер, кроме адреса компьютера содержат также и номер порта. Почтовый сервер использует порт 25 для приема исходящих писем от почтовых клиентов. Веб-сервер использует порт 80 для приема соединений от браузеров. При этом, две программы не могут использовать один и тот же порт.
Вредоносные программы для приема команд или данных от злоумышленника используют определенный порт, постоянно ожидая сигналов на этот порт (программа слушает порт). Определить, какие порты слушаются на компьютере можно при помощи команды netstat, результатом выполнения которой будут значения определенных параметров.
Из рассмотренного можно сделать вывод, что существует определенный набор признаков, такой, что наличие хотя бы одного из них (а еще лучше, некоторой их совокупности), может с некоторой степенью достоверности свидетельствовать о появлении в компьютерной системе Malware. Отсюда, задача заключается в обеспечении оперативного обнаружения этих признаков в автоматическом режиме.
Эту задачу предлагается решить с помощью программных средств -детекторов наличия определенного признака, на входы, которых поступают данные о выполняемых на компьютере процессах, а на выходе образуются два значения: 1) наличие/отсутствие определенного признака 2) степень достоверности значения признака.
Детекторы. Как следует из рассмотренного выше, для обнаружения признаков требуются три вида детекторов: детекторы-триггеры, детекторы-процедуры и детекторы-функции.
Первый вид непосредственно определяет наличие или отсутствие признака и срабатывает только при наличии соответсвующего признака. Например, детектор обнаружения блокирования антивируса:
d21 =t2l(P211 Ú P212 ) где p211- попытка выгрузки антивируса из памяти; p212- попытка удаления антивируса с диска компьютера; t21()- операция срабатывания, если попытка имеет место.
Или, например, в строке shell указано что-то, но не explorer.exe: d33 = t21 (shell Ф explorer.exe)
Детекторы второго вида представляют собой выполняемые процедуры. Например, детектор обнаружения подозрительного процесса
d31 = т31(р1,р2 )
где p - процедура обнаружение процесса, находящегося в состоянии «готовность», т.е. имеющего все его необходимые атрибуты: размер и расположение адресного пространства, программный счетчик, приоритет, учетные данные (идентификатор процесса, общее время использования процессора т. д.); сведения об устройствах ввода-вывода, связанных с процессом (какие устройства закреплены за процессом), таблицу открытых файлов и т.п.); р2 - процедура сравнения указанных атрибутов с аналогичными атрибутами процессов из списка разрешенных для данной компьютерной системы; t31()- операция срабатывания, если процедура не обнаружила в списке разрешенных процессов процесса с такими атрибутами.
Детекторы третьего вида представляют собой модели типа MISO, значение выхода которой является некоторой функцией ее входов. Например, признак подозрительной сетевой активности
d341 = /341(p1'p2 '"О,
где /341( p1'p2'...) - функция, определяющая наличие/отсутствие Malware по параметрам p1,p2,..., характеризующим активность сети, определяемые из заголовков сетевых пакетов захваченных программой (сниффером).
Такой классификатор /341 представляет собой MISO-модель, вырабатывающую два значения: логический вывод о наличии Malware или о его отсутствии и оценку достоверности получаемого вывода.
Другой пример, детектор, анализирующий результаты выполнения команды netstat /a /о (или аналогичных ей):
d342 = /342(P1,P2,...,P5)
где /342 - модель (программа), определяющая, какие порты слушаются на компьютере.
Утилита определяет пять параметров:
р1 - имя (указывается используемый протокол: либо TCP (протокол управления передачей данных), либо UDP (протокол пользовательских да-таграмм);
р2 - локальный адрес (Local Address) из двух компонентов: первая часть — имя компьютера, вторая — либо номер порта, либо имя службы;
р3 - внешний адрес (Foreign Address): для действующих подключений это имя или IP-адрес удаленной машины, затем номер используемого порта, для незадействованных подключений указывает ":0";
р4 - состояние (State) - показывает состояние подключений. Если для процессов сервера "LISTENING", это означает, что данный процесс открыл порты и находится в ожидании входящего подключения. Для подключений, исходящих от защищаемого компьютера (например, веб-браузер, загружающий страницу, или действующий сеанс Telnet (протокол сети связи)) - ESTABLISHED (Установлено);
р4 - идентификатор процесса (PID), это идентификатор приложения или службы, ответственной за открытие порта.
В качестве детекторов третьего типа предлагается использовать обучаемые нечеткие модели (ОНМ). Основным преимуществом ОНМ является возможность их обучения с целью создания гибкой адаптивной системы обнаружения Malware. Это позволяет построение профиля компьютерной системы и отдельного пользователя в режиме нормального функционирования (отсутствия в компьютере Malware). В этом режиме настраиваются параметры каждого детектора и система "запоминает" их состояния. Отклонения от этих состояний анализируются детектором, результатом которого является выработка указанных двух значений. Обучение каждого детектора выполняется на отдельном множестве данных - тех данных, изменения которых могут свидетельствовать о наличии или отсутствии отдельного признака.
Для рассмотренных выше признаков в качестве основы таких детекторов предлагается использовать обучаемую нечеткую реляционную модель:
d. = rj о A, rj i R, R:A ® D,
где d. - оценка значения признака Malware, d. e D; А = {Ai, A2,..., An} -нечеткие множества, отражающие вектор значений входных данных (параметров), с вектором значений принадлежности Ua (х), i = 1,...,п; 0 -
Ai
композиционное правило нечеткого вывода; rj - (nxl) - вектор-строка матрицы отношения R: А®D: rj = (rj1 r.2 ••• r.n) r.k e [0,l].
При заданном (полученным в результате обучения) векторе значений принадлежностей Ua (p), i = 1,...,n результатом нечеткого вывода,
Ai
полученного с помощью поэлементно реализованного правила композиции, является вектор значений принадлежности Ud (D)e [0,1].
Одним из достоинств нечеткой реляционной модели является то, что в процессе их настройки (обучения) изменяются только элементы г/ = (у гу2 • • • гуп) гук е [0,1] реляционной матрицы Я, а лингвистические термы антецедентов и консеквентов остаются неизменными.
Система обнаружения вредоносных программ. Такую систему, построенную на основе предложенных детекторов можно структурно представить рисунком.
Классификатор строится как дизъюнктор (с предварительной фильтрацией получаемых оценок)
а — ^ ^, 8 — Н (в),
к—1 j
где р - общее число детекторов; а - решение; 8 - степень уверенности в достоверности полученного решения.
Структура системы обнаружения вредоносных программ
Получение «1» с любого детектора инициирует выдачу сообщения а о появлении Малаге.
Кроме того, система периодически выполняет анализ функционирования детекторов: если за определенный период времени детектор не выдал признака Малаге, то у него понижается порог срабатывания (для детекторов-триггеров) или выполняется процедура его модификации (для детекторов-процедур) или переобучения (корректировки значений матрицы Я для детекторов-функций). В целом, это процесс адаптации системы к реальным условиям.
Экспериментальная проверка предложенной системы показала результаты, сравнимые с использованием нейронных сетей для обнаружения Малаге [6]. Общая доля распознанных Малаге различных типов составляет от 85 до 93 % .
Предложенная система, в первую очередь, требует обучения по выборкам данным, как содержащих Malware, так и гарантированно их не содержащих. Чем больше различных Malware будет присутствовать в обучающих выборках данных, тем больше будет вероятность их обнаружения в рабочем режиме.
Основными достоинствами предложенной системы обнаружения является следующие. Во-первых, простота вычислительных операций, присущая использованию аппарата нечетких множеств, что и обеспечивает оперативность обнаружения. Во-вторых, возможность учета большого количества различных признаков, не смотря на их разнотипность, что обеспечивает сравнительно высокую достоверность обнаружения присутствия вредоносной программы в компьютерной системе. И, наконец, предложенная структура системы способна соответствовать основным требованиям [8] к системе защиты от вредоносных программ.
К недостаткам системы можно отнести то обстоятельство, что качество системы напрямую зависит от организации и качества ее обучения -от получения обучающих выборок данных, как в режиме нормального функционирования программного обеспечения (при отсутствии Malware), так и при наличии Malware; от качества фильтрации выборок данных с целью исключения аномалий, не связанных с наличием Malware; и от объема выборок данных.
Данная работа поддержана грантом РФФИ №16-07-01008.
Список литературы
1. Подпружников Ю.В. Классификация методов обнаружения неизвестного вредоносного программного обеспечения // Современные тенденции технических наук: материалы междунар. науч. конф. Уфа: Лето, 2011. С. 22-25.
2. Rabaiotti J. Counter Intrusion Software: Malware Detection using Process Behaviour Classification and Machine Learning // [Электронный ресурс] URL: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.102.2417 &rep=rep1& type=pdf (Дата обращение: 7.10.2017).
3. Макаров В.Ф. Основные методы исследования программных средств скрытого информационного воздействия // Безопасность информационных технологий. 2009. № 4. С. 11-17.
4. Kotenko I. Intrusion detection in unlabeled data with one-class Support Vector Machines // Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA 2004). Lecture Notes in Informatics (LNI). No. 46. Dortmund, Germany, 2004. P. 71-82.
6. Kim C. Effective detector set generation and evolution for artificial immune system // Proc. of International conference on computational science (ICCS 2004). Springer-Verlag, 2004. P. 491-498.
7. Дроботун Е.Б. Анализ активности и тенденций развития вредоносных программ типа «Блокиратор-шифровальщик файлов» // Программные продукты и системы. 2016. №2 (114). С. 77 - 82.
8. Медведев В.В. Возможность выработки требований к системе защиты от вредоносных программ // Прикладная информатика. 2015. №3(57), С. 76 - 87.
Токарев Вячеслав Леонидович, д-р техн. наук, проф., [email protected], Россия, Тула, Тульский государственный университет,
Сычугов Алексей Алексеевич, канд. техн. наук, доц., зав. кафедрой, xru2003@list. ru, Россия, Тула, Тульский государственный университет
MALWARE DETECTION USING IMMUNE DETECTORS V.L. Tokarev, A.A. Sychugov
The paper proposes a method of malware detection based on the use of the trained detectors, each of which is triggered if you receive one, it is inherent characteristic of malware. Many such detectors are capable of forming a system of operational detection of malware.
Key words: malware, real-time detection, training detectors.
Tokarev Vjacheslav Leonydovich, doctor of technical sciences, professor, toka-rev22@yandex. ru, Russia, Tula, Tula State University,
Sychugov Alecsey Alekseevich, candidate of technical sciences, docent, head of chair, [email protected], Russia, Tula, Tula State University