Система асинхронной обработки событий для обнаружения неизвестных вредоносных программ

 

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

Область техники

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

Уровень техники

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

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

Для анализа запущенных в компьютерной системе событий также используется технология фильтрации системных событий. Например, подобное устройство описано в заявке US 7,406,199, где процессы, запускающие системные события, подвергаются фильтрации через заранее известные шаблоны и затем проверяются. Алгоритм предыдущего уровня техники, использующий синхронную обработку событий, изображен на Фиг.1.

Данная система основана на том, что событие отпускается на дальнейшую обработку только после проверки процесса, вызвавшего событие. После возникновения системного события в реальном времени на шаге 110 драйвер системы обрабатывает очередь фильтров для данного события на шаге 115. Если событие проходит через фильтр на шаге 120, то данное событие отправляется на проверку модулям системы на шаге 130, и если событие представляет угрозу для компьютерной системы на шаге 135, то процесс, вызвавший событие, останавливается модулем системы на шаге 150. Если же событие не представляет угрозы компьютеру, или оно не прошло через фильтр, то оно отпускается на дальнейшую обработку на шаге 140.

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

Раскрытие полезной модели

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

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

Согласно одному объекту заявленной полезной модели, система асинхронной обработки событий для обнаружения неизвестных вредоносных программ, которая содержит:

средства перехвата, предназначенные для перехвата системных событий;

потоковый обработчик, предназначенный для асинхронной обработки событий путем создания копии событий, полученных от средств перехвата;

средства фильтрации, предназначенные для отбора системных событий, полученных от потокового обработчика по фильтрам;

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

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

В частности для определения степени опасности процесса используются эмулятор или модули сигнатурного детектирования и/или эвристического детектирования.

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

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

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

средства перехвата, предназначенные для перехвата системных событий;

потоковый обработчик, предназначенный для асинхронной обработки событий путем создания копии событий, полученных от средств перехвата;

средства фильтрации, предназначенные для отбора системных событий, полученных от потокового обработчика по фильтрам;

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

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

В частности для определения степени опасности процесса используются эмулятор или модули сигнатурного детектирования и/или эвристического детектирования.

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

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

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

Краткое описание чертежей

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

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

Фиг.2 показывает примерный вариант реализации системы обнаружения вредоносных программ.

Фиг.3 показывает блок-схему асинхронной обработки событий компьютерной системы.

Фиг.4 показывает блок-схему асинхронной обработки системных событий потоковым сканнером.

Фиг.5 показывает блок-схему обработки событий в антивирусном модуле.

Фиг.6 показывает блок-схему выполнения этапа обновления «черных» и «белых» списков.

Фиг.7 показывает примерный вариант реализации системы обнаружения зараженных веб-сайтов.

Фиг.8 показывает примерный вариант реализации системы обнаружения аномалий в конфигурации сети.

Фиг.9 показывает примерный вариант реализации разных уровней настроек пользователей

Описание вариантов осуществления полезной модели

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

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

Базовая система ввода-вывода (BIOS), содержащая основные программы, которые помогают передавать информацию между элементами в компьютере, такую как во время запуска, сохраняется в ROM. Компьютер может дополнительно содержать накопитель на жестком диске для чтения или записи на жесткий диск, накопитель на магнитных дисках для считывания с или записи на сменный магнитный диск, и накопитель на оптических дисках для чтения с или записи на сменный оптический диск, такой как CD-ROM, DVD-ROM или другие оптические носители.

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

Компьютер может также содержать магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные памяти (RAM), постоянные памяти (ROM) и другие виды памяти.

Ряд программных модулей может быть сохранен на жестком диске, магнитном диске, оптическом диске, ROM или RAM, включая операционную систему (например, Windows 2000). Компьютер включает в себя также файловую систему, связанную с или включенную в операционную систему, такую как Windows NT File System (NTFS), одну или более прикладных программ, другие программные модули и данные программ. Пользователь может вводить команды и информацию в компьютер с помощью устройств ввода/вывода, таких как клавиатура и указательное устройство (мышь).

Другие устройства ввода могут включать в себя микрофон, джойстик, игровой планшет, спутниковую антенну, сканер или т.п. Эти и другие устройства ввода/вывода соединены с процессором через интерфейс последовательного порта, который соединен с системной шиной. Следует отметить, что эти устройства ввода/вывода могут соединяться с другими интерфейсами, такими как параллельный порт или универсальный последовательный порт (USB). Монитор или другой тип устройства отображения также соединяется с системной шиной через интерфейс, такой как видеоадаптер. Кроме того компьютер может включать в себя другие периферийные устройства вывода, такие как динамики и принтеры.

Компьютер, в котором используются заявленные системы, работает в сетевой среде, использующей логические соединения с одним или более удаленными компьютерами. Удаленный компьютер (или компьютеры) могут быть другими компьютерами, серверами, маршрутизаторами, сетевыми PC, одноранговым устройством или другим общим сетевым узлом. Этот компьютер может быть подсоединен к локальной сети (LAN) или к глобальной сети (WAN), к сети в офисах, Интернету или Интранету.

Когда компьютер используется в сетевой среде LAN, компьютер соединяется с локальной сетью через сетевой интерфейс или адаптер. Когда используется в сетевой среде WAN, компьютер обычно включает в себя модем или другие средства для установления связи через глобальную сеть, такую как Интернет. Модем, который может быть внутренним или внешним, соединяется с системной шиной через интерфейс последовательного порта.

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

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

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

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

Предложенная система, изображенная на Фиг.2, объединяет работу драйвера 220 на уровне операционной системы с различными модулями 250 на уровне приложения с помощью потокового сканера 230, такими как

- система предотвращения вторжений (Host Intrusion Prevention System или HIPS), объединяющая функционал проактивной защиты и сетевого экрана, которая управляет разрешениями на доступ к файлу, реестру, системным правам, и т.д.;

- проактивная система защиты (Proactive Defense Module или PDM) - часть антивируса, предназначенная для детектирования "по поведению", в которой реализован механизм анализа событий, получаемых из ядра операционной системы в реальном времени;

- файрволл (сетевой экран или брандмауэр) и др. компонентами антивирусного продукта.

Потоковый сканер 230 предоставляет возможность создавать и настраивать для каждого модуля 250 собственные фильтры 240 драйверу 220.

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

После того, как драйвер 220 перехватил новое событие 210, он передает его потоковому сканеру 230, который пропускает событие 210 через фильтры 240. Если событие 210 прошло через какой-либо фильтр 240, сканер 230 копирует это событие и помещает копию в очередь событий на обработку модулями системы 250. Оригинальное событие он отпускает на дальнейшую обработку. Блок-схема, описывающая обработку событий 210 потоковым сканером 230, изображена на Фиг.3.

При возникновении события системы на шаге 310 оно перехватывается драйвером для обработки его через множество фильтров различных модулей системы на шаге 320. Если событие проходит через какой-либо фильтр из набора фильтров 240 на шаге 325, то создается копия события на шаге 330, затем эта копия добавляется в очередь событий на шаге 340. После этого оригинальное событие отправляется на дальнейшую обработку на шаге 345. Если же событие не проходит ни через один из фильтров, то оно сразу же отправляется на обработку на шаге 345.

На Фиг.4 изображена блок-схема этапов обработки событий системы 210 модулем 250. Через определенный интервал времени каждый из модулей системы проверяет, есть ли в очереди события, прошедшие через его фильтр на шаге 410. Если события есть на шаге 420, модуль забирает копии событий на обработку на шаге 430, которая заключается в преобразовании события в служебную запись на шаге 440. После этого копия события удаляется из очереди на шаге 450. Служебная запись передается антивирусному ядру на проверку на шаге 460. После проверки выявляется, является ли событие вредоносным действием или нет. Если является, то процесс, создавший событие принудительно останавливается и блокируется.

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

Когда копия события 510 на Фиг.5 передается на обработку антивирусному ядру, применяются методы эвристического и сигнатурного детектирования 520. Можно использовать маленькие сигнатуры для обнаружения вредоносных программ. Такими сигнатурами для определенных вредоносных программ могут быть, например, создание соединения с определенным IP-адресом или создание определенного файла в системной директории. Можно так же регулировать срок жизни сигнатуры и уровень опасности. Также возможен запуск процесса на эмуляторе. Существующие вредоносные программы умеют анализировать, запускаются ли они под эмулятором, или работают в обычном режиме. Если вредоносная программа определит, что она работает под эмулятором, то она изменяет алгоритм своей работы, который не является вредоносным, и поэтому не определится эмулятором как вредоносный. Существующий обход эмуляторов - это основная проблема. Предоставленный метод анализа копии события позволяет избежать этой проблемы, т.к. не используется эмулятор.

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

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

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

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

Модуль получает копию события от сканнера на шаге 610. Затем он проверяет событие с помощью средств сигнатурного и эвристического детектирования на шаге 620. Модуль посылает процесс, вызвавший событие, на дальнейшую обработку эмулятором на шаге 630. Модуль проверяет процесс на возможность исполнения анти-эмуляционных трюков и наличие упаковщиков на шаге 640. Анти-эмуляционными трюками называется изменение алгоритма исполнения программы, если процесс понимает, что он исполняется под эмулятором. Упаковщиками же принято называть архивы, в которых могут быть запакованы вредоносные файлы. Модуль создает запись о поведении процесса после его завершения на шаге 650. Модуль принимает решение о том, является ли процесс вредоносным или «чистым» и в зависимости от решения помещает его соответственно в список вредоносных объектов 560 или в список чистых объектов 550 на шаге 660.

Одним из направлений полезной модели для контроля веб-сайтов является модификация системы 500, отслеживающая появление случаев, изображенных на Фиг.7. Это необходимо для контроля и быстрой реакции на сайты, представляющие угрозу. Одним из критериев нахождения зловредных сайтов является массовое обращение за короткий промежуток времени, похожее на эпидемию. На Фиг.7 изображен пример контроля сайтов на небольшом промежутке времени. Сайты 710 и 720 являются сайтами, работающими в нормальном режиме, а к сайту 730 происходит обращение от N различных пользователей 760. При значении N, большем некоторого значения, которое можно считать предельным, можно считать, что сайт 730 заражен вредоносным кодом.

Выявление аномалий может также использоваться для создания системы, изображенной на Фиг.8, где представлен пример корпоративной сети 800. Сеть 800 состоит из множества компьютеров (810-850). Если учитывать, что есть набор настроек компьютеров 890, состоящий из настроек разного уровня компьютерной сети (860, 870), то можно отслеживать аномалии применительно к состоянию компьютеров сети 800. Например, если в сети обнаружена компьютерная система 850 с настройками 880, причем настройки 880 не находятся в наборе 890 настроек корпоративной сети, то можно предположить, что либо компьютер заражен, либо используется не в соответствии с принятыми нормами в корпоративной сети.

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

Используя слепки поведения пользователей, существует возможность создавать ряд настроек, которые пользователь выбирает по умолчанию для работы с приложением. На Фиг.9 изображены примеры уровней настроек для работы с антивирусным приложением. Например, при выборе настроек антивируса 910 пользователь может выбрать настройки базового уровня (Основной 915), настройки среднего уровня (Средний 920), настройки выше среднего (Продвинутый 925), профессиональные настройки (Эскперт 930). Для каждой из настроек проставляются статусы следующих видов защиты:

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

Контроль приложений - технология контролирует работу запущенных приложений и блокирует выполнение опасных операций.

Сетевые атаки - технологии борьбы с возникновением сетевых атак.

Фильтрация спама - методы борьбы со спамом.

Статусы, представленные на Фиг.7, могут быть следующими: высокий, рекомендуемый и ручная настройка.

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

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

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

3. Система по п.1, в которой для определения степени опасности процесса используются эмулятор или модули сигнатурного детектирования и/или эвристического детектирования.

4. Система по п.1, в которой модули обработки событий могут принять решение об остановке данного процесса, основываясь на степень опасности процесса, вызвавшего событие, копия которого рассматривается модулем обработки.

5. Система по п.1, в которой модули обработки событий могут принять решение об ограничении функциональности процесса в зависимости от степени опасности процесса, вызвавшего событие, копия которого рассматривается модулем обработки.

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



 

Похожие патенты:

Изобретение относится к электротехнике и микропроцессорной технике и может быть использовано в технике релейной защиты объектов
Наверх