СИСТЕМА ПОПОЛНЕНИЯ АНТИВИРУСНЫХ БАЗ ПРИ ОБНАРУЖЕНИИ НЕИЗВЕСТНЫХ ВРЕДОНОСНЫХ КОМПОНЕНТ

Область техники
Полезная модель относится к системам противодействия компьютерным вирусам, а именно к технологиям пополнения антивирусных баз при обнаружении неизвестных вредоносных компонент.
Уровень техники
В настоящее время активно развиваются всевозможные средства передачи информации и данных через компьютерные сети, в том числе и растут объемы электронной почтовой пересылки. Вместе с тем растут и риски по заражению вирусами компьютеров и компьютерных сетей через такие средства связи, чему следует уделять соответствующее внимание. Вирусные угрозы принимают различные формы, но, по сути, остаются компьютерными вирусами - троянскими программами, червями и другими видами вредоносного кода.
Различные системы для обнаружения и предотвращения распространения вредоносных программ уже были описаны в таких патентах и заявках как US 7310817, US 7058975, US 20030120947, US 6772345, WO 03052564, US 20050188272. Однако, эти системы не способны бороться с теми вредоносными программами, которые представляют не один файл, а несколько модулей, каждый из которых выполняет определенную функцию.
Серьезность ситуации с подобными программами в настоящее время нельзя недооценивать, так как многокомпонентные вредоносные программы представляют серьезную опасность, ведь при заражении компьютера они действуют следующим образом: небольшая программа-загрузчик попадает в компьютерную систему, после чего связывается с сервером и загружает вторую программу-загрузчик, которая загружает вредоносные компоненты общим числом 10-20 компонент. Такие компоненты предназначены для рассылки спама, троянов, сбора личных данных и пр. После выхода в свет нового вредоносного вируса проходит некоторое время, пока антивирусные базы данных будут обновлены с учетом новой угрозы.
При этом часть из множества компонент уже описана в антивирусных базах данных, которые предоставляются поставщиками антивирусных систем защиты. Однако, не все из таких компонент удается достаточно оперативно добавить в антивирусную базу данных, а значит в компьютерной системе будут опознаны только те из вредоносных компонент, которые описаны в антивирусной базе данных. После окончания лечения антивирусная система ложно предполагает, что все угрозы устранены, а тем временем некоторые из компонент вредоносной программы остаются в компьютерной системе и продолжают беспрепятственно работать. Более того, некоторые из этих компонент способны распознать, что антивирусная система защиты удалила часть компонент вредоносной программы, чтобы затем скачать и установить их снова. Таким образом, пользователь попадает в замкнутый круг до тех пор, пока поставщик антивирусной системы не обновит свои базы для обнаружения всех компонент вредоносной программы.
Таким образом, необходимо разработать систему для защиты от подобных ситуаций, когда в систему загружаются многокомпонентные вирусы, и не все их компоненты распознаются антивирусной системой, что приводит к длительным и безуспешным попыткам вылечить их.
Раскрытие полезной модели
Настоящая полезная модель предназначена для пополнения антивирусных баз путем обнаружения неизвестных вредоносных компонент в компьютерной системе.
Технический результат заключается в пополнении антивирусных баз путем обнаружения неизвестных вредоносных компонент в компьютерной системе. Этот результат достигается за счет использования системы, которая содержит:
монитор событий, предназначенный для отслеживания событий, происходящих в операционной системе, связанный с подсистемой ведения журнала;
подсистему ведения журнала, предназначенную для обнаружения подозрительных событий из событий, происходящих в операционной системе, связанная с модулем анализа и антивирусной системой;
модуль анализа, предназначенный для отслеживания истории произошедших событий создания процессов и дочерних процессов, и выстраивания иерархии родитель-потомок, связанный с антивирусной системой;
антивирусную систему, предназначенную для: проверки исполняемых компьютерных файлов компьютера; после обнаружения известной вредоносной компоненты обращения к модулю анализа для определения, в каком событии участвовала найденная вредоносная компонента, используя иерархию типа родитель-потомок; создания информации о списке процессов-участников события, в котором участвовала найденная вредоносная компонента, а также созданных или измененных файлов, и процессов, запущенных из таких файлов, на основе связей в иерархии родитель-потомок; завершения всех активных процессов-участников, принадлежащих событию, в котором участвовала найденная вредоносная компонента; удаления или помещения в карантин исполняемых файлов, которые использовались в рамках события, в котором участвовала найденная вредоносная компонента; при этом антивирусная система связана с сервером обновлений баз данных антивирусной системы;
сервер обновлений баз данных антивирусной системы, предназначенный для использования полученной от антивирусной системы информации о списке процессов-участников события, в котором участвовала найденная вредоносная компонента, а также созданных или измененных файлов, и процессов, запущенных из таких файлов, для пополнения антивирусных баз данных с учетом обнаружения неизвестных вредоносных компонент, исходя из полученной информации от антивирусной системы.
В одном из вариантов реализации события, происходящие в операционной системе, могут быть события, связанные с созданием, изменением исполняемых файлов, изменениями в системном реестре.
В частном варианте реализации дополнительно присутствует подсистема хранения резервных копий, связанная с монитором событий и антивирусной системой, предназначенная для сохранения файлов перед их изменением.
В еще одном частном варианте антивирусная система восстанавливает файлы из подсистемы хранения резервных копий при их изменении вредоносными компонентами.
В другом частном варианте подозрительными событиями являются те, которые имеют определенный уровень опасности с точки зрения антивирусной системы и могут быть действиями, которые включают попытки создания и/или изменения файлов в системных папках, изменение или удаление важных веток реестра, работа с процессами, скачивание файлов из сети без предупреждения пользователя.
В еще одном частном варианте сервер обновлений баз данных антивирусной системы обновляет базы данных у всех пользователей после пополнения антивирусных баз данных с учетом обнаружения неизвестных вредоносных компонент.
Дополнительные преимущества полезной модели будут раскрыты далее в ходе описания вариантов реализации полезной модели. Также отметим, что все материалы данного описания направлены на детальное описание того технического предложения, которое изложено в формуле полезной модели.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящей полезной модели будут раскрыты дальше в описании со ссылками на прилагаемые чертежи.
Фиг.1 отображает пример реализации полезной модели.
Фиг.2 отображает последовательность реализуемых шагов, исполняемых настоящим техническим решением.
Фиг.3 показывает отслеживание событий, выявленных случаев вредоносной деятельности в системе.
Фиг.4, отображает дополнительные подробности механизма выявления взаимосвязей между объектами и исполняемыми файлами/процессами.
Фиг.5 отображает примерную схему компьютера общего назначения, на котором развертывается настоящее техническое решение.
Описание вариантов осуществления полезной модели
Основные преимущества настоящего решения вытекают из ведения журнала всех событий связанных с подозрительными файлами таким образом, что случай заражения вредоносной программой может быть реконструирован по записям журнала, если не все компоненты вредоносного программного обеспечения были известны заранее антивирусной системе. Интерес представляют попытки записи в системный реестр или создания и/или модификации исполнимых файлов, таких как. ехе файлы, сценарии (скрипты), пакетные командные файлы и т.п. С журналом таких событий оказывается возможным реконструировать цепь событий прошлого на нужную дату, а не только выявлять факты заражения или замещения некоторых файлов с относительно высокой вероятностью содержания вредоносных или зараженных файлов.
Отметим также, что количество подобных исполнимых файлов в типичной компьютерной системе достигает нескольких сотен исполняемых файлов. Попытки записи в такие файлы достаточно сложны по сравнению с записью в обычный файл. Таким образом, большинство компьютеров содержат сотни и тысячи файлов в любой момент времени (например, при поиске в Интернет браузером создается множество маленьких файлов), но такие файлы не предназначены для исполнения, и в общем случае не представляют интереса в рамках рассматриваемой задачи. С другой стороны, попытки создания новых файлов представляют собой достаточно редкие события (пользователи редко скачивают и устанавливают новые программы - это достаточно редкое событие, которое обычно выполняется пользователем чаще всего только при первоначальной настройке компьютера или при переустановке операционной системы).
Аналогично, попытки изменения существующего исполняемого файла тоже достаточно необычны. Большинство исправлений системы, выпускаемых корпорацией Майкрософт, которые касаются операционной системы или иного программного обеспечения, например, MS Word, MS Excel и т.п., достаточно редки. С учетом сказанного, файл журнала событий обновления и записи программ не будет иметь слишком большой размер.
При выявлении заражения следует подтвердить факт инфицирования с помощью выявления хотя бы одного известного вредоносного компонента. Впоследствии, реконструируют события для определения исходного момента проникновения угрозы в компьютерную систему. Другими словами, определяют процесс-родитель, который создал файл (или, если вредоносный компонент расположен в памяти, определяют процесс, который создал такой вредоносный или инфицированный процесс). Также выявляют все исполняемые файлы и процессы, созданные и измененные процессом-родителем, или участвовавшие в дереве иерархии взаимодействий с подозреваемым процессом. В результате создается список всех процессов, контактировавших с известным зараженным процессом.
В большинстве случаев создание множества таких файлов за короткий момент времени, когда появляется несколько известных вредоносных файлов, с высокой вероятностью означает, что остальные файлы также являются вредоносными, даже если они неизвестны как вредоносные для антивирусной системы. Такие подозрительные файлы можно удалить или поместить в карантин, или они могут быть посланы антивирусной компании для анализа, и/или пользователь на свое усмотрение может удалить такие файлы (при выводе уведомления о событии инфицирования). Таким образом, обнаружив неизвестные вредоносные компоненты, можно вычислить их хеш сразу же, после чего отправить эту информацию антивирусной компании. Дополнительно можно также определить, какие файлы были изменены неизвестными вредоносными компонентами с целью определения потенциальных уязвимостей в уже существующем лицензионном программном обеспечении (ПО). Подобная информация может быть использована для скорейшего обновления антивирусных баз с целью обнаружения неизвестных вредоносных компонент у всех остальных пользователей.
Отметим, что целью полезной модели все же является другая проблема, которая возникает после заражения и после перезагрузки системы. В таком случае теряется любая информация, которая связана с событиями, которые происходили до перезагрузки. Обычно не удается восстановить события, предшествовавшие такому редкому инциденту, и остается только надеяться, что все вредоносные компоненты были известны антивирусной системе, от которых успешно избавились. Таким образом, если произошла перезагрузка системы, то файлы журналов способны пролить свет на происходившие перед этим события и позволят удалить недавно установленные новые компоненты, или восстановить из резервных копий те из исполняемых программных файлов, которые необходимы операционной системе или приложениям пользователя. В этой области антивирусные технологии касаются компьютерных экспертиз, которые пытаются реконструировать последовательность событий компьютерной системы, которая была заражена. Часто компьютерные расследования представляют из себя трудоемкий процесс, точность которого сильно зависит от полноты информации в файлах журнала, описывающей хронологию событий по созданию файлов, их модификации и созданию процессов, включая иерархию родитель-потомок взаимосвязей. Подобная информация может быть представлена в виде иерархического дерева, что делает в итоге задачу компьютерного расследования гораздо легче.
На фиг.1 представлен пример реализации полезной модели. Как отображено на фиг.1, в компьютерной системе монитор событий 104 установлен таким образом, чтобы отслеживать все события 107 по созданию, изменению исполняемых файлов, записям в системный реестр, и другие действия, которые происходят в операционной системе 106. Монитор событий 104 производит обнаружение подозрительных событий, ведет запись событий в журнал событий аудита 102 и проводит сохранение версий файлов перед их изменением в виде резервных копий 105. Подозрительные события могут быть определены заранее - это могут быть события, которые имеют определенный уровень опасности с точки зрения антивирусной системы 101. Подобными событиями могут быть попытки создания и/или изменения файлов в системных папках, изменение или удаление важных веток реестра, работа с процессами, скачивание файлов из сети без предупреждения пользователя и т.д. Журнал событий аудита 102 используется модулем анализа 103, который используется для отслеживания истории произошедших событий создания процессов и дочерних процессов (потомков), и выстраивания иерархии родитель-предок и так далее. Антивирусная система 101 отвечает за выявление присутствия известных вредоносных программ. Также при помощи журнала событий аудита 102 и модуля анализа 103 антивирусная система 101 удаляет, помещает в карантин, или излечивает зараженные файлы. Например, если был заражен файл, который необходим операционной системе, такой как системный файл, используемый в ходе загрузки операционной системы (например, процесс Explorer), то антивирусная система 101 восстанавливает доверенную версию такого файла из резервной копии 105. Антивирусная система 101 использует антивирусную базу данных 108, которая содержит данные о вредоносных программных файлах, и добавляет те из файлов, которые были выявлены в ходе расследования, как части одного события, если такие файлы еще не были отмечены как вредоносные программные компоненты. После чего антивирусная система 101 выполняет перезагрузку с доверенного устройства хранения.
Далее антивирусная система 101 соединяется посредством сети, например, используя интернет 109, с антивирусным сервером 110, который принадлежит поставщику антивирусного программного обеспечения, для передачи информации, которая описывает событие (например, передают копию файла журнала, копию вредоносных компонент или предполагаемых вредоносных компонент прежде не известных, но участвовавших в подозрительном событии). Таким образом, можно сформировать пакет, содержащий информацию обо всех взаимосвязанных вредоносных компонентах, а также о тех файлах или ветках реестра, которые были изменены в ходе их работы.
После этого антивирусный сервер 110 может выслать описание (например, хеш) неизвестных вредоносных компонент остальным пользователям, для которых можно сразу же организовать проверку на наличие ранее необнаруженных вредоносных компонент, а также восстановить поврежденные файлы из резервных копий 105.
Фиг.2 описывает последовательность действий, используемых настоящим техническим решением. Как представлено на фиг.2, система ожидает наступления события, такого, которое задействует системный интерфейс прикладного программирования (API) в блоке поиска вызовов API (позиция 201) при создании или изменении файла, или при записи в системный реестр. Если подобное событие было обнаружено подсистемой фильтрации (позиция 202), то его обрабатывают при помощи фильтра 203, т.е. определяют степень опасности (подозрительности) события. Если подсистема наблюдения 204 выявляет, что обрабатываемое событие подозрительное, т.к. затрагивает исполняемый файл или ключи системного реестра, то параметры этого события записывают в базу данных или журнал событий 102 (позиция 205), после чего управление передается блоку поиска вызовов API 201. Стоит отметить, что события могут обрабатываться как одно за другим, так и учитывая взаимосвязи между ними - например, можно отдельно прослеживать вызовы API от выбранного процесса. Подобным образом, можно определить потенциально опасное поведение, когда неизвестная вредоносная программа начинает скачивать остальные компоненты на жесткий диск, которые затем могут начать выполнять другой вредоносный функционал.
Фиг.3 отображает обработку события, которое связано с вредоносной активностью. Выявление вредоносного программного обеспечения осуществляется на этапе 301 при помощи антивирусной системы 101. На этапе 302 приступают к анализу для обнаружения файлов, которые могли быть затронуты выявленным вредоносным программным обеспечением. На этапе 303 по записям событий из журнала событий создают перечень файлов, связанных с событием, также в перечне указываются процессы, которые были созданы или модифицированы такими файлами, также как и потомки таких процессов. На этапе 304 пользователь оповещается о присутствии таких файлов, после чего запрашиваются дальнейшие действия системы. На этапе 305 зараженные файлы или вредоносные программные компоненты обезвреживают, например, удаляют, помещают в карантин, или завершают зараженный или вредоносный процесс, или восстанавливают файл из доверенной резервной копии. На этапе 306 информацию об обнаруженных вредоносных компонентах дополнительно отсылают на сервер антивирусной компании, после чего будут обновлены антивирусные базы, о чем будут оповещены оставшиеся пользователи.
Фиг.4 отображает дополнительные подробности, процесса выявления объектов, связанных с событием (см. этап 303 на фиг.3). Как отображено на фиг.4, этап 401 выполняет выявление всех взаимосвязей между объектами, заподозренными по результатам записей журнала событий 102. На этапе 402 компьютер проверяется на предмет еще не обработанных объектов, которые следует обработать. На этапе 403 выбирают следующий такой необработанный объект. На этапе 404 время создания объекта или его модификации сравнивают, чтобы определить, насколько оно близко со временем, когда произошло подозрительное событие. К этапу 405 определяются все связанные с объектом файлы в базе данных событий 105. На этапе 406 строят иерархию связей родитель-потомок для объекта. На этапе 407 смотрят, что есть такие взаимосвязи, и тогда на этапе 408 сохраняют взаимосвязи и идентификаторы объектов. После чего обработка возвращается на этап 402.
Фиг.5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, оперативное запоминающее устройство (ОЗУ) 25. Основную систему ввода/вывода (BIOS), содержащую основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс привода магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20. Настоящее описание раскрывает реализацию системы, которая использует жесткий диск, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации, которые способны хранить данные в доступной для чтения компьютером форме (кассеты с магнитной лентой, карты памяти flash, цифровые диски, картриджи Бернулли, память с произвольным доступом (ОЗУ), постоянные запоминающие устройства (ПЗУ), и т.п.).
Некоторые из программных модулей, в том числе операционная система 35, хранятся на жестком диске, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25. Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35 и дополнительные программные приложения 37, другие программные модули 38 и программные данные 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятор «мышь» 42). Другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, спутниковая тарелка, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к центральному процессору 21 через последовательный порт 46, который в свою очередь подсоединен в системной шине, но могут быть подключены иным способом, например, параллельный порт, игровой порт или универсальную последовательную шину (USB). Монитор 47 или иной тип устройства отображения, также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен иными периферийными устройствами вывода (не отображены), например, колонки принтер и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется логическое соединение с другим, или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами, серверами, роутерами, сетевыми станциями, пиринговыми устройствами или иным сетевым узлом, и по обыкновению, имеют большинство или все из упомянутых элементов описанных ранее при объяснении существа персонального компьютера 20, представленной на фиг.5 лишь только как устройство хранения 50 с приложениями 37'. Логические соединения подразумевают локальную вычислительную сеть (LAN) 51 и глобальную вычислительную сеть (WAN) 52, Такие сети являются обычным офисным оборудованием, а также применяются в корпоративных компьютерных сетях, внутренних сетях компаний и Интернет.
При использовании LAN сетей, персональный компьютер 20 подсоединен к локальной сети 51 через сетевой адаптер или интерфейс 53.
При использовании WAN сетей, персональный компьютер 20 имеет модем 54 или иные средства установления связи с глобальной вычислительной сетью 52, такой как Интернет. Модем 54, который является внутренним или внешним, подключен к системной шине 23 посредством последовательного порта 46. В сетевом окружении программные модули раскрытых персональных компьютеров 20, или части таких программ, хранят в удаленных устройствах хранения данных. Следует уточнить, что сетевые соединения являются лишь примерными, и не обязаны отображать точную сетевую конфигурацию сети, т.е. в действительности существуют иные способы установления логического соединения, иными техническими средствами связи одного компьютера с другим.
Настоящее описание излагает основной изобретательский замысел авторов, который не может быть ограничен теми аппаратными устройствами, которые упоминались ранее. Следует отметить, что аппаратные устройства, прежде всего, предназначены для решения узкой задачи. С течением времени и с развитием технического прогресса такая узкая задача усложняется или эволюционирует. Появляются новые средства, которые способны выполнить новые требования. В этом смысле следует рассматривать такие аппаратные устройства с точки зрения класса решаемого ими технических задач, а не чисто технической реализации на некой элементной базе.