Система и способ обнаружения вредоносных компьютерных систем
SYSTEM AND METHOD FOR DETECTING HARMFUL COMPUTER SYSTEMS

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения вредоносных компьютерных систем.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования этих устройств в разнообразных сферах деятельности и для решения огромного количества задач (от интернет-серфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак, таких как отказ в обслуживании (англ. Denial of Service, DDOS), или для перебора паролей методом грубой силы (англ. bruteforce), на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.
Для борьбы с вредоносными программами (то есть для обнаружения вредоносных программ, предотвращения заражения и восстановления компьютерных систем, зараженных вредоносными программами) применяются специализированные программы - антивирусные приложения. Для обнаружения всего многообразия вредоносных программ антивирусные программы используют разнообразные технологии, такие как:
• сигнатурный анализ - поиск соответствий какого-либо участка кода анализируемой программы известному коду (сигнатуре) из базы данных сигнатур вредоносных программ;
• эвристический анализ - эмуляция работы анализируемой программы, создание журналов эмуляции (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных эмуляций вредоносных программ;
• белые и черные списки - поиск вычисленной контрольной суммы от анализируемой программы (или ее частей) в базе данных контрольных сумм вредоносных программ (черные списки) или базе данных контрольных сумм легальных программ (белые списки);
• проактивную защиту - перехват вызовов API-функций запущенной в системе анализируемой программы, создания журналов работы анализируемой программы (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных вызовов вредоносных программ.
В свою очередь, вредоносные программы все чаще и чаще используют методы противодействия обнаружению антивирусными программами своего присутствия на зараженных компьютерных системах, такие как:
• усложнение поведения для борьбы с эвристическим анализом - использование большого количества операций или вызовов API-функций, применение которых не влияет на результаты работы ввода-вывода программы, но мешающее ее эмуляции антивирусными программами;
• отслеживание поведения сторонних программ для борьбы с проактивной защитой - постоянное отслеживание поведения сторонних программ в операционной системе, поиск антивирусных программ и противодействие им (например, сокрытие или подмена своего кода для анализа).
Используя разнообразные средства, такие как генераторы кода (программы-конструкторы, позволяющие автоматически создавать вредоносные программы, обладающие заданным злоумышленником функционалом), обфускаторы (программы, позволяющие изменять исполнимый код программ, тем самым усложняя их анализ, без изменения их функциональности), упаковщики (программные модули, внедряемые в программы, шифрующие исполнимый код программ и расшифровывающие его при запуске) и так далее, злоумышленники получают возможность быстро и без лишних усилий создавать и распространять большое количество новых, не обнаруживаемых антивирусами версий своих вредоносных программ.
Таким образом, даже с установленными антивирусами пользовательские компьютеры могут подвергнуться успешному заражению, поскольку антивирус, отслеживающий поведение или структуру всех приложений, установленных на пользовательских компьютерах, не может обнаружить новые модификации или новые разновидности вредоносных приложений. Тем не менее, как бы вредоносные программы не пытались скрыть свое присутствие на компьютерах пользователей, они продолжают выполнять свою вредоносную деятельность, которая, даже будучи скрытой, присутствует на компьютерах и оставляет следы. Именно по оставленным следам, по нехарактерному поведению приложений в отдельности и всей компьютерной системы в целом можно пытаться отслеживать вредоносные приложения.
Особо стоит отметить целевые кибератаки (англ. Advanced Persistent Threat, APT) - технологию атак на выбранные компьютерные системы (внутренние сети крупных предприятий, базы данных корпораций, личные данные огромного числа пользователей, хранящиеся централизованно, например банковские или паспортные данные и т.д.). Для реализации описанной технологии злоумышленники должны обладать современным уровнем специальных знаний и значительными ресурсами, которые позволяют им создавать возможности для достижения целей посредством различных векторов нападения (например, информационных, физических и обманных). Эти цели обычно включают установление и расширение своего присутствия внутри информационно-технологической инфраструктуры целевой организации для осуществления намерений извлечения информации, срыва или создания помех критическим аспектам выполняемой задачи, программы или службы; либо для того, чтобы занять позицию, позволяющую осуществить эти намерения в будущем. Целевая кибератака, как «развитая устойчивая угроза»: добивается своих целей неоднократно в течение длительного времени; адаптируется к усилиям защищающихся оказать угрозе сопротивление; имеет установку сохранить уровень проникновения в целевой инфраструктуре, требуемый для осуществления намерений.
Например, для того чтобы саботировать работу предприятия, снизить эффективность работы его информационных систем или совершенно их блокировать, злоумышленникам необходимо знать, как упомянутые компьютерные системы работают, какое оборудование используется, какие приложения на упомянутом оборудовании работает, какие средства защиты используются, какими сильными и слабыми сторонами обладают. В результате такой информационной подготовки злоумышленники способны создать такие вредоносные программы, которые будут невидимыми для антивирусных приложений, работающих на стороне атакуемой компьютерной системы, применить такие способы внедрения созданных вредоносных программ, что не останется никаких следов такого внедрения.
Основной принцип обнаружения таких целевых кибератак - обнаружение вредоносной активности, осуществляемой на защищаемой компьютерной системе.
В публикации US 7673341 B2 описана технология обнаружения вредоносной активности на компьютере с помощью анализа сетевой активности, а также поведения программ на компьютере. Отслеживается история работы приложений от появления на компьютере до начала использования и далее. Описанная технология хорошо справляется с вредоносными программами, осуществляющими вредоносную деятельность с использованием компьютерной сети, даже в случае, когда такие вредоносные приложения скрывают себя от обнаружения, поскольку скрыть сетевую активность невозможно. Тем не менее главным недостатком описанной технологии является то, что вредоносное приложение обнаруживается уже после осуществления сетевой активности, а, значит, компьютерной системе пользователя уже может быть нанесен непоправимый урон (например, приложение-шпион похитило конфиденциальные данные и отправило злоумышленникам).
Хотя описанный выше способ работы справляются с задачами обнаружения известных вредоносных (как по структуре, так и по поведению) приложений, а также новых вредоносных приложений, но с уже известным поведением, они не справляются с задачами обнаружения маскирующихся, никак не проявляющих себя приложений, направленных на преодоление известных средств защиты.
Настоящее изобретение позволяет решать задачу обнаружения вредоносных компьютерных систем, т.е. систем, на которых осуществляется вредоносная активность, даже в случаях, когда источники упомянутой вредоносной активности остаются скрытыми, а сами вредоносные приложения оказывают активное противодействие известным средствам защиты.
Раскрытие изобретения
Технический результат настоящего изобретения заключается в выявлении вредоносных компьютерных систем за счет использования системы признания компьютерной системы вредоносной, при этом вредоносной компьютерной системой является компьютерная система, на которой работают вредоносные приложения.
Данный результат достигается с помощью использования системы признания компьютерной системы вредоносной, где вредоносная компьютерная система - компьютерная система, на которой осуществляется вредоносная активность, то есть действия, выполняемые вредоносными приложениями, которая содержит: средство сбора характеристик, предназначенное для: сбора характеристик компьютерной системы, где характеристика компьютерной системы представляет собой совокупность различных свойств компьютерной системы, определяющих совокупность действий, выполняемых компьютерной системой, при этом в качестве характеристики компьютерной системы выступает по меньшей мере: характеристика вычислительных ресурсов компьютерной системы; характеристика программного обеспечения, работающего на компьютерной системе; характеристика данных, обрабатываемых на компьютерной системе; передачи собранных характеристик средству построения пространства связей; средство построения пространства связей, предназначенное для: определения связей между полученными характеристиками компьютерной системы, где связь представляет собой зависимость изменения значений одной характеристики при изменении значений другой характеристики; определения временной зависимости состояния компьютерной системы на основании анализа определенных связей, где состояние компьютерной системы характеризуется совокупностью определенных ранее связей между полученными характеристиками компьютерной системы, а временная зависимость состояния компьютерной системы представляет собой правила, описывающие изменения значений характеристик, описывающих состояние компьютерной системы, от времени; передачи определенной временной зависимости состояния компьютерной системы средству идентификации; средство идентификации, предназначенное для: определения состояния компьютерной системы на основании анализа полученной временной зависимости состояния компьютерной системы; сравнения определенного состояния компьютерной системы с по меньшей мере одним заранее определенным шаблоном состояния компьютерной системы, представляющим собой по меньшей мере: состояние вредоносной компьютерной системы, где вредоносная компьютерная система - компьютерная система, на которой осуществляется вредоносная активность, то есть действия, выполняемые вредоносными приложениями; состояние легальной компьютерной системы, где легальная компьютерная система - компьютерная система, на которой не осуществляется вредоносная активность; передачи результата сравнения средству анализа; средство анализа, предназначенное для: определения степени вредоносности компьютерной системы на основании анализа полученного результата сравнения состояния компьютерной системы с заранее определенным шаблоном состояния компьютерной системы; вынесение вердикта о признании компьютерной системы вредоносной по результатам сравнения определенной степени вредоносности компьютерной системы с установленным пороговым значением.
В другом частном случае реализации системы в качестве характеристик компьютерной системы выступают по меньшей мере: характеристики вычислительных ресурсов компьютерной системы, в качестве которых выступают по меньшей мере: оперативная память компьютерной системы; производительность компьютерной системы; характеристики сетевого окружения; характеристики программного обеспечения, работающего на компьютерной системе, в качестве которых выступают по меньшей мере: идентификаторы приложений, работающих в компьютерной системе; идентификаторы файлов, входящих в состав приложений; записи из файлов настройки приложений, работающих в компьютерной системе; связи между приложениями, характеризующие то, какие приложения и каким способом обмениваются данными; характеристики данных, обрабатываемых на компьютерной системе, в качестве которых выступают по меньшей мере: идентификаторы источника и приемника данных; тип данных; способ передачи данных.
Еще в одном частном случае реализации системы результат сравнения состояний компьютерных систем представляет собой скалярное произведение многомерных векторов, где каждая компонента многомерного вектора представляет собой численное значение одной из характеристик сравниваемых компьютерных систем.
В другом частном случае реализации системы степень вредоносности компьютерной системы представляет собой численное значение, полученное как результат сравнения состояний компьютерных систем, характеризующее по меньшей мере: степень отличия от заранее определенной легальной компьютерной системы; степень схожести с заранее определенной вредоносной компьютерной системой.
Данный результат достигается с помощью использования способа признания компьютерной системы вредоносной, где вредоносная компьютерная система - компьютерная система, на которой осуществляется вредоносная активность, то есть действия, выполняемые вредоносными приложениями, при этом способ содержит этапы, которые реализуются с помощью средств из системы признания компьютерной системы вредоносной и на которых: собирают характеристики компьютерной системы, где характеристика компьютерной системы представляет собой совокупность различных свойств компьютерной системы, определяющих совокупность действий, выполняемых компьютерной системой, при этом в качестве характеристики компьютерной системы выступает по меньшей мере: характеристика вычислительных ресурсов компьютерной системы; характеристика программного обеспечения, работающего на компьютерной системе; характеристика данных, обрабатываемых на компьютерной системе; определяют связи между собранными на предыдущем этапе характеристиками компьютерной системы, где связь представляет собой зависимость изменения значений одной характеристики при изменении значений другой характеристики; определяют временную зависимость состояния компьютерной системы на основании анализа определенных на предыдущем этапе связей, где состояние компьютерной системы характеризуется совокупностью определенных ранее связей между собранными на первом этапе характеристиками компьютерной системы, а временная зависимость состояния компьютерной системы представляет собой правила, описывающие изменения значений характеристик, описывающих состояние компьютерной системы, от времени; определяют состояние компьютерной системы на основании анализа определенной на предыдущем этапе временной зависимости состояния компьютерной системы; сравнивают определенное на предыдущем этапе состояние компьютерной системы с по меньшей мере одним заранее определенным шаблоном состояния компьютерной системы, представляющим собой по меньшей мере: состояние вредоносной компьютерной системы, где вредоносная компьютерная система - компьютерная система, на которой осуществляется вредоносная активность, то есть действия, выполняемые вредоносными приложениями; состояние легальной компьютерной системы, где легальная компьютерная система - компьютерная система, на которой не осуществляется вредоносная активность; определяют степень вредоносности компьютерной системы на основании анализа полученного результата сравнения состояния компьютерной системы с заранее определенным шаблоном состояния компьютерной системы, выполненного на предыдущем этапе; выносят вердикт о признании компьютерной системы вредоносной по результатам сравнения, определенной на предыдущем этапе, степени вредоносности компьютерной системы с установленным пороговым значением.
В другом частном случае реализации способа в качестве характеристик компьютерной системы выступают по меньшей мере: характеристики вычислительных ресурсов компьютерной системы, в качестве которых выступают по меньшей мере: оперативная память компьютерной системы; производительность компьютерной системы; характеристики сетевого окружения; характеристики программного обеспечения, работающего на компьютерной системе, в качестве которых выступают по меньшей мере: идентификаторы приложений, работающих в компьютерной системе; идентификаторы файлов, входящих в состав приложений; записи из файлов настройки приложений, работающих в компьютерной системе; связи между приложениями, характеризующие то, какие приложения и каким способом обмениваются данными; характеристики данных, обрабатываемых на компьютерной системе, в качестве которых выступают по меньшей мере: идентификаторы источника и приемника данных; тип данных; способ передачи данных.
Еще в одном частном случае реализации способа результат сравнения состояний компьютерных систем представляет собой скалярное произведение многомерных векторов, где каждая компонента многомерного вектора представляет собой численное значение одной из характеристик сравниваемых компьютерных систем.
В другом частном случае реализации способа степень вредоносности компьютерной системы представляет собой численное значение, полученное как результат сравнения состояний компьютерных систем, характеризующее по меньшей мере: степень отличия от заранее определенной легальной компьютерной системы; степень схожести с заранее определенной вредоносной компьютерной системой.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обнаружения вредоносных компьютерных систем.
Фиг. 2 представляет структурную схему способа обнаружения вредоносных компьютерных систем.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносное приложение (англ. malware, malicious software) - любое программное обеспечение, предназначенное для получения несанкционированного доступа к вычислительным ресурсам компьютерной системы или к информации, хранимой на компьютерной системе, с целью несанкционированного использования ресурсов компьютерной системы или причинения вреда (нанесения ущерба) владельцу информации и/или владельцу компьютерной системы путем копирования, искажения, удаления или подмены информации.
Вредоносная активность - действия, выполняемые вредоносными приложениями во время их исполнения.
Вредоносная компьютерная система - компьютерная система, на которой осуществляется вредоносная активность.
Легальная компьютерная система - компьютерная система, на которой не осуществляется вредоносная активность.
Характеристика компьютерной системы - совокупность различных свойств компьютерной системы, определяющих одно из действий, выполняемых компьютерной системой.
Например, в качестве характеристики компьютерной системы может выступать быстродействие компьютерной системы, заключающееся в том, сколько времени компьютерной системой будет затрачено для выполнения некоторого заранее установленного действия. Быстродействие компьютерной системы является совокупностью следующих свойств:
• производительность центрального процессора (измеряемая в операциях в секунду);
• скорость обмена данными с оперативной памятью (измеряемая в байтах в секунду);
• скорость обмена данными с внешними носителями информации (измеряемая в байтах в секунду);
и является безразмерной величиной, нормализованной относительно быстродействия эталонной компьютерной системы.
В качестве другой характеристики компьютерной системы может выступать количество одновременно работающих в компьютерной системе приложений. При этом в отличие от предыдущего примера упомянутая характеристика описывается лишь одним свойством компьютерной системы, а именно доступной оперативной памятью (измеряемой в байтах).
Состояние компьютерной системы - совокупность характеристик компьютерной системы, способных описать действия приложений, работающих на компьютерной системе, в зависимости от доступных вычислительных ресурсов компьютерной системы и для предоставленного набора данных.
Шаблон состояния компьютерной системы - заранее подготовленная совокупность части характеристик известной компьютерной системы, достаточная для описания совокупности действий приложений, работающих на компьютерной системе.
Фиг. 1 представляет структурную схему системы обнаружения вредоносных компьютерных систем.
Структурная схема системы обнаружения вредоносных компьютерных систем состоит из средства сбора характеристик 101, средства построения пространства связей 102, средства идентификации 103, средства анализа 104, хранилища связей 111 и хранилища шаблонов 112.
Средство сбора характеристик 101 предназначено для:
• сбора характеристик компьютерной системы;
• передачи собранных характеристик средству построения пространства связей 102.
При этом в качестве характеристик компьютерной системы могут выступать:
• характеристики вычислительных ресурсов компьютерной системы;
• характеристики программного обеспечения, работающего на компьютерной системе;
• характеристики данных, обрабатываемых на компьютерной системе.
При этом в качестве характеристик вычислительных ресурсов компьютерной системы могут выступать:
• оперативная память компьютерной системы;
• производительность компьютерной системы;
• характеристики сетевого окружения.
При этом в качестве характеристик программного обеспечения, работающего на компьютерной системе, могут выступать:
• идентификаторы приложений, работающих в компьютерной системе, а также файлов, входящих в состав упомянутых приложений (например, имена, полные пути к исполнимым файлам или контрольные суммы от исполнимых файлов);
• записи из файлов настройки приложений, работающих в компьютерной системе (например, записи в реестре или записи в ini-файлах);
• связи между приложениями, характеризующие то, какие приложения и каким способом обмениваются данными.
При этом в качестве характеристик данных, обрабатываемых на компьютерной системе, могут выступать:
• идентификаторы источника и приемника данных (например, имена приложений, между которыми происходит обмен данными);
• тип данных (например, файлы баз данных, изображения и т.п.);
• способ передачи данных (например, передача данных по компьютерной сети или от приложения к приложению с использованием методов межпроцессного взаимодействия).
В качестве примера рассмотрим следующую компьютерную систему: на персональном компьютере, предназначенном для банковского работника, осуществляющего работу с базами данных, в которых хранятся клиентские персональные данные, установлена операционная система «Windows 10», приложение для работы с базами данных «SQL Server Management Studio», браузер «Internet Edge», офисный пакет приложений «Microsoft Office» и набор дополнительных утилит от разных разработчиков. Средство сбора характеристик 101 собирает следующие характеристики:
• характеристики вычислительных ресурсов компьютерной системы пользователя:
объем доступной оперативной памяти (8 ГБ);
объем локальных и сетевых дисков (С: 120 ГБ, D: 500 ГБ, Z: 10 ТБ);
производительность центрального процессора компьютерной системы (10 ГФЛОП);
пропускная способность компьютерной сети (100 Мбит/с);
• характеристики программного обеспечения, работающего на компьютерной системе пользователя (на примере «Internet Edge»):
пути, по которым установлены приложения (C:\Program Files\Internet Edge\edge.exe, …);
частота запуска и время работы установленных приложений (30 раз за сессию: 8:30:17-8:34:05, 8:46:56-9:01:30, …);
статистика выполняемых функций установленных приложений (WriteFile: 13757, ReadFile: 76446, CreateSocket: 5561, …);
статистика использования установленными приложениями вычислительных ресурсов компьютерной системы, в том числе:
объем использованной оперативной памяти (1034 МБ);
уровень загрузки центрального процессора компьютерной системы (7.56%);
сетевые адреса, с которыми происходит обмен данными (192.168.17.1, 192.168.34.56, …);
объем данных, считываемых с носителей информации или записываемых на них (in: 5641 МБ, out: 675 МБ);
• характеристики сетевого окружения:
сетевые адреса, с которыми происходит обмен данными (192.168.17.1, 192.168.34.56, …);
скорость обмена данными по сетевым адресам (192.168.17.1: 30 МБ/с, 192.168.34.56: 15 МБ/с);
• пользовательская активность:
какие приложения запускал пользователь (SQL Server Management Studio);
какие элементы графического интерфейса установленных приложений были использованы (Dialog: ID=12145, Button: ID=17,87).
Например, средство сбора характеристик 101 в любой момент времени может собрать все характеристики, однозначно описывающие текущее состояние компьютерной системы, т.е. будут определены все установленные приложения, файлы, входящие в состав упомянутых приложений, а также процессы, которые происходили во время работы упомянутых приложений.
Средство построения пространства связей 102 предназначено для:
• определения связей между полученными характеристиками компьютерной системы, где связь представляет собой зависимость изменения значений одной характеристики при изменении значений другой характеристики;
• определения временной зависимости состояния компьютерной системы на основании анализа определенных связей, где состояние компьютерной системы характеризуется совокупностью определенных связей, а временная зависимость состояния компьютерной системы представляет собой правила, описывающие изменения значений характеристик, описывающих состояние компьютерной системы, от времени;
• передачи определенной временной зависимости состояния компьютерной системы средству идентификации 103.
При этом анализ определенных ранее связей между полученными характеристиками компьютерной системы при определении временной зависимости состояния компьютерной системы заключается в:
• выявлении зависимости изменения значений одной характеристики, участвующей в описании состояния компьютерной системы, от времени, используя уже известные зависимости этой характеристики от других характеристик, для которых, в свою очередь, уже установлены зависимости от времени;
• составлении правил изменения значений упомянутой характеристики по выявленной зависимости значений упомянутой характеристики от времени.
При этом определенные связи могут дополняться связями, полученными из хранилища связей 111, а также определенные связи могут сохраняться в хранилище связей 111, для того, чтобы при очередном определении связей (например, при изменении состояния компьютерной системы) сохраненные связи были использованы.
Например, описанным выше способом можно сохранять связи легальной компьютерной системы и сравнивать со связями вредоносной компьютерной системы.
При этом значения всех собранных средством сбора характеристик 101 характеристик можно представить в виде точек многомерного пространства, в котором каждое измерение представляет собой одну характеристику. Совокупность упомянутых точек в таком случае описывает некоторую поверхность. Выбирая нужные характеристики, можно получить из описанной поверхности проекцию в пространстве выбранных характеристик. Если описанная проекция характеризует состояние компьютерной системы в целом, то полученная проекция будет характеризовать изменение состояния системы по выбранным характеристикам.
Например, в качестве собранных характеристик могут выступать: а) объем оперативной памяти и б) порядок начала работы приложения в компьютерной системе. Каждое запускаемое приложение б) использует определенный объем оперативной памяти а), таким образом объем доступной оперативной памяти с каждым новым запускаемым приложением уменьшается. Если построить двумерную зависимость доступного объема оперативной памяти от количества работающих в компьютерной системе приложений, то получится характерная убывающая зависимость вида: М~, где М - объем доступной оперативной памяти, N - количество работающих в компьютерной системе приложений,  - среднее количество работающих в компьютерной системе приложений, при которой компьютерная система может функционировать. При этом полученная зависимость будет слабо изменяться при неизменной компьютерной системе (не устанавливаются новые приложения) или слабо измененной компьютерной системе (были установлены приложения, не часто используемые или слабо влияющие на работу компьютерной системы).
Каждая собранная характеристика может иметь несколько значений, зависящих от времени работы компьютерной системы. Определенные таким образом связи между характеристиками могут также меняться со временем.
Например, объем оперативной памяти может никак не зависеть от количества операций, выполняемых процессором компьютерной системы до определенного момента времени, когда на компьютерной системе запускается приложение обработки изображений или подбора паролей. Но после запуска упомянутого приложения зависимость объема оперативной памяти от количества операций, выполняемых процессором, становится обратной (М~, где N - количество выполненных операций).
Анализ временных зависимостей позволяет отслеживать нестандартное поведение компьютерной системы, что может означать, что в системе работает вредоносное программное обеспечение. Например, изменение объема оперативной памяти до определенного момента характеризовалось низкопериодичными колебаниями (т.е. относительно редко по требованию работающих приложений операционной системой выделялись или освобождались большие объемы оперативной памяти), но затем такие колебания стали высокопериодичными (т.е. часто по требованию работающих приложений операционной системой стали выделяться или освобождаться небольшие объемы оперативной памяти). Это может означать, что в компьютерной системе начало работать приложение, производящее небольшое количество операций с памятью и тут же передающее результат работы другому приложению или сохраняющему его на жесткий диск, что не являются поведением, свойственным легальным приложениям. Однако такое поведение свойственно некоторым видам вредоносных приложений (например, так называемым Trojan-Spy - вредоносным программам, занимающимся сбором конфиденциальных данных с компьютеров пользователей).
Средство идентификации 103 предназначено для:
• определения состояния компьютерной системы для на основании анализа полученной временной зависимости состояния компьютерной системы;
• выборки из хранилища шаблонов 112 шаблонов состояний компьютерной системы, представляющих собой:
состояние легальной компьютерной системы;
состояние вредоносной компьютерной системы;
• сравнения определенного состояния компьютерной системы с выбранными шаблонами;
• передачи результата сравнения средству анализа 104.
При этом состояние компьютерной системы может определяться:
• при срабатывании ряда правил на изменения компьютерной системы:
приложение начало работу;
приложение завершило работу;
были вызваны заранее выбранные API-функции;
• периодично, через установленные моменты времени.
При этом в хранилище шаблонов 112 могут храниться шаблоны состояний компьютерной системы, представляющие собой состояния компьютерной системы, характеризующие заранее выбранное поведение компьютерной системы.
Например, шаблон состояний компьютерной системы может содержать только характеристики, описывающие сетевую активность приложений, и таким образом состояние компьютерной системы будет характеризовать только поведение компьютерной системы при обмене данными по компьютерной сети.
При этом из хранилища шаблонов 112 выбираются шаблоны состояний компьютерной системы в зависимости от сработавшего ранее правила на изменение компьютерной системы.
Например, в случае, когда в компьютерной системе начало работать приложение, выбирается шаблон состояний компьютерной системы, который содержит характеристики, описывающие инициализацию приложения в операционной системе.
При этом результат сравнения состояний компьютерных систем может представлять собой числовое значение от 0 (в случае, когда оба состояния компьютерной системы представляют собой совокупности одних и тех же характеристик компьютерной системы, при этом значения упомянутых характеристик компьютерной системы для обоих состояний равны) до 1 (в случае, когда одно состояние компьютерной системы является совокупностью характеристик компьютерной системы, отличных от характеристик, совокупность которых составляет второе состояние компьютерной системы).
Например, каждое состояние компьютерной системы может быть представлено как многомерный вектор, где в качестве компонент выступают характеристики компьютерной системы, описывающие состояния компьютерной системы. В этом случае, сравнение двух состояний компьютерной системы может заключаться в вычислении скалярного произведения двух многомерных векторов, каждый из которых представляет собой одно из состояний компьютерной системы, а результат такого сравнения - представляет число, показывающее, насколько один вектор отклоняется от второго (0 - состояния компьютерной системы идентичны, ±π - состояния компьютерной системы максимально отличны).
Средство анализа 104 предназначено для:
• определения степени вредоносности компьютерной системы на основании анализа полученного результата сравнения состояния компьютерной системы с выбранными шаблонами;
• вынесение вердикта о признании компьютерной системы вредоносной по результатам сравнения определенной степени вредоносности компьютерной системы с установленным пороговым значением.
При этом степень вредоносности компьютерной системы может представлять собой численное значение, полученное как результат сравнения состояний компьютерных систем, характеризующее:
• степень отличия от заранее определенной легальной компьютерной системы;
• степень схожести с заранее определенной вредоносной компьютерной системой.
Например, в результате сравнения определенного состояния компьютерной системы с заранее заданным состоянием легальной компьютерной системы, на которую устанавливается новое программное обеспечение, была вычислена степень вредоносности 0.01 (т.е. компьютерная система с большой степенью вероятности является легальной), но с другой стороны в результате сравнения с заранее заданным состоянием вредоносной компьютерной системы, на которой работает вредоносное приложение, обеспечивающее удаленное управление компьютером жертвы (backdoor) была вычислена степень вредоносности 0.5 (высокий показатель, но не достаточный для того, чтобы признать компьютерную систему вредоносной), что совместно с тем, что на компьютерной системе идет установка программного обеспечения, дало степень вредоносности 0.9, что приводит к тому, что анализируемая компьютерная система признается вредоносной.
Хранилище связей 111 предназначено для:
• хранения связей между собранными средством сбора характеристик 101 характеристиками компьютерной системы;
• предоставления упомянутых связей средству построения пространства связей 102.
Хранилище шаблонов 112 предназначено для:
• хранения шаблонов, представляющих собой заранее определенные:
состояния легальной компьютерной системы;
состояния вредоносной компьютерной системы;
• предоставления упомянутых шаблонов средству идентификации 103.
При этом шаблоны могут заранее:
• выбираться из состояний компьютерных систем на основании выбранных политик безопасности (т.е. что именно и каким образом разрешено выполнять на компьютерной системе);
• выбираться из состояний компьютерных систем пользователей на основании результатов антивирусной проверки компьютеров пользователей (от компьютеров, которые признаются зараженными вредоносными приложениями, получаются состояния вредоносных компьютерных систем, а от компьютеров, которые признаются легальными, получаются состояния легальных компьютерных систем);
• определяться как состояния анализируемой компьютерной системы, полученные ранее (например, в случае, когда в компьютерную систему длительное время не вносят изменений или вносимые изменения незначительны).
Рассмотрим систему обнаружения вредоносных компьютерных систем на примере анализа компьютерной системы, на которой в течение длительного времени работал пользователь #1, обрабатывая документы «Microsoft Word», а с определенного момента удаленно на компьютерной системе работал пользователь #2 (злоумышленник), в числе прочего посещающий вредоносные сайты и скачивающий и запускающий вредоносные приложения, предназначенные для кражи приватных данных пользователей.
Изначально упомянутая компьютерная система являлась легальной, т.е. на ней не осуществлялась вредоносная активность. При работе пользователя #1 в компьютерной система с документами «Microsoft Word» производился регулярный сбор характеристик компьютерных систем, таких как используемый объем оперативной памяти, уровень загрузки центрального процессора в зависимости от действий пользователя на компьютерной системе, свойства сетевых соединений, сетевые адреса с которыми происходит обмен данными, свойства данных, передаваемых по компьютерной сети (объем, тип, структура и т.д.). Из собранных характеристик компьютерной системы выбирались характеристики, описывающие выполняемые пользователем #1 действия, т.е. характеристики, связанные с обработкой документов «Microsoft Word» (например, характеристики, изменение значений которых зависело от изменения значений характеристик, описывающих работу «Microsoft Word», такие как объем данных, передаваемых «Microsoft Word» на сетевой диск, сетевые адреса, посещаемые пользователем, скачанные по ним документы «Microsoft Word» и т.д.), работой самого приложения «Microsoft Word» (например, сетевые адреса, с которых происходило скачивание обновлений «Microsoft Word»). Со временем на основании собранных данных было определено состояние легальной компьютерной системы, представляющее собой совокупность выбранных характеристик компьютерной системы.
Все значения выбранных характеристик, полученных в определенный момент времени, можно представить в виде множества точек, расположенных в многомерном пространстве, где каждая выбранная выше характеристика представляет собой одно из измерений упомянутого пространства. Это множество точек образует замкнутую поверхность (которую можно назвать «поверхностью состояния компьютерной системы»), охватывающую область пространства, точки которого характеризуют одно из легальных состояний компьютерной системы (которую можно назвать «областью легальных состояний компьютерной системы»), т.е. состояний компьютерной системы, полученной при работе пользователя #1, а точки вне охватываемой упомянутой поверхностью области - состояния компьютерной системы, активность на которой отлична от той, которую осуществлял пользователь #1. Любое действие пользователя #1 в компьютерной системе приводит к изменениям значений выбранных характеристик, что, в свою очередь, отражается на «поверхности состояний компьютерной системы», в итоге имеется старое состояние компьютерной системы, описываемое «поверхностью состояний компьютерной системы» #t1.1 и новое состояние компьютерной системы, описываемое «поверхностью состояний компьютерной системы» #t1.2. Можно утверждать, что степень отличия «поверхности состояний компьютерной системы» #t2 от «поверхности состояний легальной компьютерной системы» t1 характеризует степень вредоносности компьютерной системы на момент времени t1.2.
В то время, когда в компьютерной системе работал пользователь #1, в результате сравнения состояние компьютерной системы с шаблоном состояния легальной компьютерной системы давало степень вредоносности компьютерной системы, равную 0.05, сравнение с шаблоном состояния вредоносной компьютерной системы - степень вредоносности 0.01. Таким образом, компьютерная система, в которой работал пользователь #1, признавалась легальной.
В случае, когда в компьютерной системе работал пользователь #2, он регулярно посещал вредоносные сайты, скачивал и запускал вредоносные приложения с упомянутых сайтов. Изменение поведения пользователя отразилось и на поведении компьютерной системы, поскольку стали использоваться дополнительные функции для работы с удаленно расположенными файлами (например, запуск браузеров, заход на вредоносные сайты и т.д.). В определенный момент с одного из сетевых адресов в компьютерную систему было скачано, установлено и запущено вредоносное приложение, которое стало собирать приватные данные и передавать их по компьютерной сети. Такая активность привела к изменению значений многих характеристик компьютерной системы, что, в свою очередь, сильно отразилось на получаемом состоянии компьютерной системы. Если представить все значения характеристик в виде точек многомерного пространства, где в качестве размерностей выступают характеристики компьютерной системы, как это было описано выше, то поверхность («поверхность текущего состояния компьютерной системы»), сформированная из точек в момент, когда в компьютерной системе работало упомянутое вредоносное приложение, существенно отличалась от поверхности («поверхность легального состояния компьютерной системы»), сформированной из точек в момент, когда компьютерная система была легальной. Это отличие выражалось в том, что «область легальных состояний компьютерной системы» и «область текущих состояний компьютерной системы» имеют малый объем общей области по сравнению со своими полными объемами.
В результате сравнения состояния компьютерной системы с шаблоном состояния легальной компьютерной системы дало степень вредоносности компьютерной системы, равную 0.50, сравнение с шаблоном состояния вредоносной компьютерной системы - степень вредоносности 0.80. Таким образом компьютерная система, в которой работал пользователь #2, была признана вредоносной.
Фиг. 2 представляет структурную схему способа обнаружения вредоносных компьютерных систем.
Структурная схема способа обнаружения вредоносных компьютерных систем содержит этап 201, на котором собирают характеристики компьютерной системы, этап 202, на котором определяют связи между характеристиками компьютерной системы, этап 203, на котором определяют временную зависимость состояния компьютерной системы, этап 204, на котором определяют состояние компьютерной системы, этап 205, на котором сравнивают характеристики компьютерных систем, этап 206, на котором определяют степень вредоносности компьютерной системы, этап 207, на котором выносят вердикт.
На этапе 201 собирают характеристики компьютерной системы.
При этом в качестве характеристик компьютерной системы могут выступать:
• характеристики вычислительных ресурсов компьютерной системы;
• характеристики программного обеспечения, работающего на компьютерной системе;
• характеристики данных, обрабатываемых на компьютерной системе.
При этом в качестве характеристик вычислительных ресурсов компьютерной системы может выступать:
• оперативная память компьютерной системы;
• производительность компьютерной системы;
• характеристики сетевого окружения.
При этом в качестве характеристик программного обеспечения, работающего на компьютерной системе, могут выступать:
• идентификаторы приложений, работающих в компьютерной системе, а также файлов, входящих в состав упомянутых приложений (например, имена, полные пути к исполнимым файлам или контрольные суммы от исполнимых файлов);
• записи из файлов настройки приложений, работающих в компьютерной системе (например, записи в реестре или записи в ini-файлах);
• связи между приложениями, характеризующие то, какие приложения и каким способом обмениваются данными.
При этом в качестве характеристик данных, обрабатываемых на компьютерной системе, могут выступать:
• идентификаторы источника и приемника данных (например, имена приложений, между которыми происходит обмен данными);
• тип данных (например, файлы баз данных, изображения и т.п.);
• способ передачи данных (например, передача данных по компьютерной сети или от приложения к приложению с использованием методов межпроцессного взаимодействия).
На этапе 202 определяют связи между собранными на этапе 201 характеристиками компьютерной системы, где связь представляет собой зависимость изменения значений одной характеристики при изменении значений другой характеристики.
При этом анализ определенных ранее связей между собранными на этапе 201 характеристиками компьютерной системы при определении временной зависимости состояния компьютерной системы заключается в:
• выявлении зависимости изменения значений одной характеристики, участвующей в описании состояния компьютерной системы, от времени, используя уже известные зависимости этой характеристики от других характеристик, для которых, в свою очередь, уже установлены зависимости от времени;
• составлении правил изменения значений упомянутой характеристики по выявленной зависимости значений упомянутой характеристики от времени.
При этом определенные связи могут дополняться связями, полученными из хранилища связей 111, а также определенные связи могут сохраняться в хранилище связей 111 для того, чтобы при очередном определении связей (например, при изменении состояния компьютерной системы) сохраненные связи были использованы.
При этом значения всех собранных на этапе 201 характеристик можно представить в виде точек многомерного пространства, в котором каждое измерение представляет собой одну характеристику. Совокупность упомянутых точек в таком случае описывает некоторую поверхность. Выбирая нужные характеристики, можно получить из описанной поверхности проекцию в пространстве выбранных характеристик. Если описанная проекция характеризует состояние компьютерной системы в целом, то полученная проекция будет характеризовать изменение состояния системы по выбранным характеристикам.
Каждая собранная на этапе 201 характеристика может иметь несколько значений, зависящих от времени работы компьютерной системы. Определенные таким образом связи между характеристиками могут также меняться со временем.
На этапе 203 определяют временную зависимость состояния компьютерной системы на основании анализа определенных на этапе 202 связей, где состояние компьютерной системы характеризуется совокупностью определенных связей, а временная зависимость состояния компьютерной системы представляет собой правила, описывающие изменения значений характеристик, описывающих состояние компьютерной системы, от времени.
Анализ временных зависимостей позволяет отслеживать нестандартное поведение компьютерной системы, что может означать, что в системе работает вредоносное программное обеспечение.
На этапе 204 определяют состояние компьютерной системы на основании анализа определенной на этапе 203 временной зависимости состояния компьютерной системы.
При этом состояние компьютерной системы может определяться:
• при срабатывании ряда правил на изменения компьютерной системы:
приложение начало работу;
приложение завершило работу;
были вызваны заранее выбранные API-функции;
• периодично, через установленные моменты времени.
На этапе 205 сравнивают характеристики компьютерных систем. С этой целью:
• выбирают из хранилища шаблонов 112 шаблоны состояний компьютерной системы, представляющие собой:
состояние легальной компьютерной системы;
состояние вредоносной компьютерной системы;
• сравнивают определенное на этапе 204 состояние компьютерной системы с выбранными шаблонами.
При этом шаблоны могут заранее:
• выбираться из состояний компьютерных систем на основании выбранных политик безопасности (т.е. что именно и каким образом разрешено выполнять на компьютерной системе);
• выбираться из состояний компьютерных систем пользователей на основании результатов антивирусной проверки компьютеров пользователей (от компьютеров, которые признаются зараженными вредоносными приложениями, получаются состояния вредоносных компьютерных систем, а от компьютеров, которые признаются легальными, получаются состояния легальных компьютерных систем);
• определяться как состояния анализируемой компьютерной системы, полученные ранее (например, в случае, когда в компьютерную систему длительное время не вносят изменений, или вносимые изменения незначительны).
При этом в хранилище шаблонов 112 могут храниться шаблоны состояний компьютерной системы, представляющие собой состояния компьютерной системы, характеризующие заранее выбранное поведение компьютерной системы.
При этом из хранилища шаблонов 112 могут выбираться шаблоны состояний компьютерной системы в зависимости от сработанного ранее правила на изменение компьютерной системы.
При этом результат сравнения состояний компьютерных систем может представлять собой числовое значение от 0 (в случае, когда оба состояния компьютерной системы представляют собой совокупности одних и тех же характеристик компьютерной системы, при этом значения упомянутых характеристик компьютерной системы для обоих состояний равны) до 1 (в случае, когда одно состояние компьютерной системы является совокупностью характеристик компьютерной системы, отличных от характеристик, совокупность которых составляет второе состояние компьютерной системы).
На этапе 206 определяют степень вредоносности компьютерной системы на основании анализа результата сравнения состояний компьютерной системы, полученного на этапе 205.
При этом степень вредоносности компьютерной системы может представлять собой численное значение, полученное как результат сравнения состояний компьютерных систем, характеризующее:
• степень отличия от заранее определенной легальной компьютерной системы;
• степень схожести с заранее определенной вредоносной компьютерной системой.
На этапе 207 выносят вердикт о признании компьютерной системы вредоносной по результатам сравнения определенной на этапе 206 степени вредоносности компьютерной системы с установленным пороговым значением.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована как любая известная из уровня техники шинная структура, содержащая, в свою очередь, память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20, в свою очередь, содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который, в свою очередь, подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.