СПОСОБ АВТОМАТИЧЕСКОГО ФОРМИРОВАНИЯ ЭВРИСТИЧЕСКИХ АЛГОРИТМОВ ПОИСКА ВРЕДОНОСНЫХ ОБЪЕКТОВ
METHOD FOR AUTOMATIC GENERATION OF HEURISTIC ALGORITHMS FOR SEARCHING FOR MALICIOUS OBJECTS

Область техники
Настоящее изобретение относится к антивирусным системам, а более конкретно к способам создания и оптимизации эвристических сценариев обнаружения вредоносных приложений.
Уровень техники
В настоящее время распространение вредоносного программного обеспечения (далее ПО) увеличивается, а также увеличивается и вред, который данное ПО наносит компьютерным системам. Существующие системы защиты персональных компьютеров, а также компьютеров в корпоративной сети основаны на обнаружении уже известных угроз. Однако новые угрозы появляются все чаще, и становятся необходимыми методы распознавания неизвестных угроз. С ростом коммуникационных сетей, таких как Интернет, увеличивается потребность в обмене данными, включая все более растущее использование почтовых сообщений, что, в свою очередь, приводит к увеличению частоты заражений компьютеров.
Под угрозами далее будут подразумеваться как различные вредоносные приложения, такие как троянские программы, сетевые черви, вирусы и другое нежелательное ПО, а также ссылки, которые ведут на веб-страницы с вредоносными программами и другим нежелательным ПО, уязвимости в лицензионном ПО и т.д. В список нежелательного ПО можно также включить приложения, предназначенные для совершения финансовых преступлений (Crimeware), отслеживания действий пользователя (Spyware), блокирующих данные или работоспособность компьютера (Ransomware). В настоящее время рост количества вредоносных приложений имеет ярко выраженный экспоненциальный вид, что определяется рядом причин, которые появились в последние годы, а именно рост количества персональных компьютеров, присоединенных к сети Интернет, в которой также происходит бурное развитие различных услуг и сервисов, что привлекает различных мошенников. В то же время возможности антивирусных компаний - как аппаратные ресурсы для обработки новых угроз, так и человеческие (эксперты по анализу угроз), достаточно ограничены и наращивать их теми же темпами, которыми растет количество угроз, невозможно. Одна из причин роста количества новых уникальных вредоносных файлов заключается в массовом развитии коммуникаций, в том числе сети Интернет, и, соответственно, быстром росте количества пользователей. Это, в свою очередь, обуславливает рост различных сервисов, которые предлагаются онлайн (в сети Интернет): интернет-банкинг, виртуальные деньги (такие как WebMoney), ведение журналов и блогов, перенос многих программных структур в веб (уже упоминавшиеся Google Apps могут служить отличным примером). Соответственно, текущее поколение так называемых компьютерных злоумышленников (т.е. людей, которые занимаются противоправной деятельностью с использованием компьютеров) активно использует свои разработки в виде вредоносных приложений и организованных сетевых атак для кражи и вымогательства финансовых средств. В последние годы их деятельность затронула не только банковскую сферу (т.н. банковские троянские программы), но и была направлена на кражу учетных записей к популярным онлайн-играм, а также на вымогательство с помощью класса приложений Trojan-Ransom (http://support.kaspersky.ru/faq/7qicN208637133). Успеху компьютерных злоумышленников и росту количества вредоносных приложений способствует ряд факторов: недостаточная защищенность многих онлайн-сервисов, несовершенство или полное отсутствие законов в ряде стран, касающихся преступлений с использованием компьютеров, а также безграмотность работающих за компьютерами людей в области компьютерной безопасности.
Надо отметить, что существующие методы борьбы с вредоносными приложениями (вирусами, червями, троянскими программами и многими другими), которые, как правило, представлены сигнатурным и эвристическим обнаружением, уже практически исчерпали свой потенциал. Традиционный сигнатурный анализ по-прежнему позволяет быстро и без ошибок определить вредоносное приложение, но только в том случае, если оно известно. Сами сигнатуры постоянно обновляются (на данный момент уже ежечасно), что влечет за собой один очевидный минус - подобная защита заведомо дает некоторое время для распространения вредоносных приложений. С момента начала распространения вредоносного приложения могут пройти часы или даже дни, прежде чем антивирусная компания получит ее образец (как правило, исполняемый файл), проведет анализ, обнаружит вредоносное поведение, занесет в базу данных сигнатур и протестирует базы сигнатур перед выкладыванием их на сервер. Весь этот процесс занимает часы, при этом ситуация постоянно усугубляется тем, что не всегда удается автоматизировать все шаги приведенной схемы обнаружения вредоносного приложения.
Эвристический анализ (http://support.kaspersky.ru/kis2012/tech?qid=208640579) основан на поиске характерных для вредоносных приложений особенностей (фрагментов программного кода, определенных ключей реестра, имен файлов или процессов), однако отладка каждого эвристического сценария проверки занимает длительное время, а, кроме того, всегда остается риск ошибок (ложных срабатываний). Сама же эффективность эвристических методов обнаружения не превышает 60-70% (процент обнаружения неизвестных угроз на момент их появления).
В случае заражения компьютера вредоносным приложением предусмотрены частные персональные решения устранения вредоносного приложения для каждого компьютера. Такое персональное решение строится на сервере антивирусной компании на основе служебной информации о зараженной системе, передаваемой компьютером пользователя на сервер. Представленное решение является индивидуальным и предназначено для решения конкретной проблемы, возникшей на компьютере пользователя. Такое создание решения на основе заранее известных шаблонов раскрывается в патенте US7346928, где описывается система, состоящая из сервера, который получает запросы от множества клиентов на проверку файлов на вирусы. Существуют также системы, которые сначала создают сценарий исследования зараженного компьютера, и на основании исследования создается сценарий лечения. В патенте US7093239 описывается система анализа компьютера, созданная для обнаружения вредоносного кода. Система создает и последовательно анализирует шаблон поведения для каждого приложения, установленного на компьютере, для выявления приложений с вредоносным поведением. Однако предлагаемые решения могут создавать большую нагрузку на сеть из-за большого количества клиентов и растущего количества нового ПО, которое требуется анализировать.
Анализ предшествующего уровня техники показал, что разработанные технологии не рассчитаны на высокий темп роста числа нового ПО и, как следствие, неспособны обеспечить высокий уровень обнаружения вредоносных приложений. Новый подход к применению эвристических алгоритмов позволяет повысить уровень обнаружения вредоносных приложений путем создания и оптимизации эвристических сценариев обнаружения вредоносных приложений.
Раскрытие изобретения
Технический результат настоящего изобретения заключается в повышении уровня обнаружения вредоносных приложений путем создания и оптимизации эвристических сценариев обнаружения вредоносных приложений.
Согласно одному из вариантов реализации предлагается способ создания и оптимизации эвристических сценариев обнаружения вредоносных приложений, содержащий этапы, на которых: производят анализ компьютера на наличие вредоносных приложений, при этом сохраняют результаты анализа в журнал проверки; отправляют журнал проверки на анализ; создают эвристический сценарий обнаружения вредоносных приложений на основании анализа журнала проверки и отправляют сформированный эвристический сценарий обнаружения вредоносных приложений на компьютер; выполняют действия по оптимизации работы сценария, во время которых производят обнаружение ложных срабатываний и/или неизвестных вредоносных приложений; вносят изменения в существующий эвристический сценарий обнаружения вредоносных приложений для исправления ложных срабатываний и/или обнаружения неизвестных вредоносных приложений; отправляют изменения для существующего эвристического сценария обнаружения вредоносных приложений.
В одном из частных вариантов реализации журнал проверки содержит все результаты анализа компьютера на наличие вредоносных приложений, если анализ производится в первый раз.
В еще одном из частных вариантов реализации журнал проверки содержит только информацию о ложных срабатываниях и неизвестном подозрительном ПО, которое было обнаружено с помощью эвристических сценариев обнаружения, если анализ производится во второй или последующие разы.
В другом частном варианте реализации журнал проверки отправляется более чем с одного компьютера из одной локальной сети.
В одном из частных вариантов реализации журнал проверки отправляется только с одного компьютера из одной локальной сети, если компьютеры в сети одной и той же конфигурации и журналы проверки совпадают.
В еще одном из частных вариантов реализации повторная отправка эвристических сценариев обнаружения не происходит целиком, а лишь высылаются изменения в самих сценариях.
В другом частном варианте реализации эвристические сценарии разделяются на общие и частные.
В одном из частных вариантов реализации общие эвристические сценарии могут быть использованы в случае вирусных эпидемий на большом количестве компьютеров, зараженных разными модификациями одних и тех же вредоносных приложений.
В еще одном из частных вариантов реализации частные эвристические сценарии могут быть использованы для обнаружения вредоносных приложений на отдельных компьютерах.
В другом частном варианте реализации журнал проверки содержит метаданные вредоносных приложений.
В одном из частных вариантов реализации метаданными могут быть, по меньшей мере, ключи автозапуска, CLSID, имена системных служб и драйверов, имена файлов.
В еще одном из частных вариантов реализации обнаружение ложных срабатываний происходит с помощью сравнения метаданных вредоносных приложений в журнале проверки с метаданными безопасных объектов.
Краткое описание чертежей
Фиг.1 отображает систему для лечения компьютеров от вредоносных приложений.
Фиг.2 отображает способ работы настоящего изобретения.
Фиг.3 приводит пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Осуществление изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Настоящее изобретение решает задачу нахождения как можно большего количества вредоносного ПО с помощью использования эвристических методов обнаружения, сохраняя при этом минимальный уровень ложных срабатываний и не нагружая сетевой канал чрезмерным количеством обращений к серверу провайдера антивирусных услуг. Стоит отметить, что в настоящее время большая часть ПО является легитимной и, соответственно, безопасной. Таким образом, требуется накопление статистических данных о безопасном (проверенном) ПО для последующего выявления признаков, с помощью которых можно будет исключить как настоящее, так и будущее безопасное ПО из эвристической проверки. С другой стороны, для обнаружения современного вредоносного ПО требуется иметь методы обнаружения, которые позволяют обнаруживать его в 100% случаях, охватывая при этом как существующие версии вредоносного ПО, так и будущие.
Фиг.1 отображает систему для лечения компьютеров от вредоносных приложений. Для решения данной задачи на пользовательских компьютерах 100, на которых может быть найдено вредоносное ПО, проводится проверка с помощью средства проверки (не отображено). Проверка может быть выполнена с помощью известных методов анализа, например метода, описанного в патенте US7540030. Как итог подобной проверки средство проверки получает журнал проверки, в котором записана информация о найденном вредоносном ПО и последствиях его работы. Помимо вредоносного ПО в журнал проверки могут быть занесены и неизвестные (подозрительные) приложения, которые проявляют или проявляли активность, похожую на активность вредоносных приложений (подозрительная активность), как, например, установка в silent режиме (без запросов пользователя и без вывода какой-либо информации на экран), добавление имени файла в список автозапуска при загрузке ОС, запись/изменение файлов в системных папках и т.д. Средство проверки может создавать журнал проверки как в заданный момент времени (например, по требованию пользователя или периодически), так и постоянно пополнять журнал проверки по мере отслеживания системных событий. В журнал проверки включаются такие данные, как: созданные/измененные файлы, созданные/измененные ключи реестра, информация о сетевых соединениях, загруженные библиотеки (такие как DLLs), драйверы, модули расширения, информация об операционной системе (ОС), установленной на компьютере 100 и т.д. Информация может быть доступна с разной степенью детализации, например, в одном из вариантов реализации данные о файлах включают только хеш-суммы файлов, в то время как в другом варианте реализации данные могут включать метаданные о файле, такие как: имя файла, время последнего изменения файла, время линковки, цифровая подпись файла, тип файла, путь размещения файла, атрибуты «только чтение», «архивный», «скрытый», «системный» и т.д.
В качестве подозрительной активности можно привести следующий пример: если приложение Internet Explorer пользователя имеет неизвестную панель инструментов, и контрольная сумма такого исполняемого файла Internet Explorer отличается от контрольной суммы стандартного исполняемого файла Internet Explorer, и он также не соответствует какой-либо действительной записи базе данных безопасного ПО, тогда информация об этой версии Internet Explorer будет помещена в журнал проверки. Однако эта строка инструментов может быть пробной версией продукта стороннего производителя, который не представляет какой-либо вредоносный код, но для такого определения как раз и требуется дополнительный анализ.
Полученные от компьютеров 100 журналы проверки попадают на средство 110 анализа журналов, которое обрабатывает получаемые журналы проверки в зависимости от различных параметров, таких как: тип операционной системы, установленной на компьютере 100; IP-адрес компьютера 100 (дополнительно также с указанием региона); время формирования журнала проверки; информация о наличии у пользователя прав администратора; сведения о установленном антивирусном ПО и актуальности его баз и т.д. Приведенные данные могут быть необходимы для формирования наиболее эффективных эвристических сценариев обнаружения для использования у пользователей из определенных регионов, которые могли столкнуться с эпидемией неизвестного вредоносного ПО. Описанная информация вместе с самим журналом проверки сохраняется в базе данных журналов 120.
Информация из базы данных журналов 120 используется средством 130 создания эвристических сценариев, которое создает эвристические сценарии обнаружения вредоносного ПО, которые будут использованы на компьютерах 100. Для того чтобы избежать большого количества ложных срабатываний, а также повысить эффективность обнаружения вредоносного ПО, используются база данных 150 вредоносных объектов и база данных 140 безопасных объектов. Приведенные базы данных содержат информацию об известном вредоносном ПО (база данных 150 вредоносных объектов), так и обо всем легитимном, т.е. безопасном ПО (база данных 140 безопасных объектов). Подобная информация включает метаданные о файлах (хеш-сумма, размер, название и т.д.), так и более подробную информацию о том, как функционирует то или иное приложение: какие создает/изменяет файлы на диске, создает/изменяет ключи реестра, устанавливает соединения и т.д. Эта информация необходима для сравнения ее с информацией из журнала проверки для того, чтобы можно было, во-первых, исключить те данные, которые относятся к работе безопасного ПО, во-вторых, для выявления информации, которая относится к вредоносному ПО и последствиям его работы. База данных 140 безопасных объектов необходима для того, чтобы исключать из эвристических сценариев процедуры обнаружения объектов, которые относятся к безопасному ПО, исключая тем самым ложные срабатывания.
Информация о вредоносном ПО пополняется путем анализа работы или эмуляции этих приложений на тестовых компьютерах или виртуальных машинах (таких как VirtualPC или VMWare) с последующим аккумулированием всех изменений в ОС и сведений о поведении изучаемого приложения. Информация о безопасном ПО может собираться аналогичным образом, а также предоставляться самими поставщиками этого ПО (т.е. такими компаниями, как Microsoft, Google, Adobe и т.д.) или автоматически собираться с известных сайтов, распространяющих ПО и/или различные обновления к ПО. Кроме того, как для вредоносного ПО, так и для безопасного определяются характерные признаки, которые могут быть использованы для определения еще неизвестных приложений - как вредоносных, так и безопасных.
На основании имеющейся в базе данных 150 вредоносных объектов информации о вредоносном ПО можно корректировать существующие способы обнаружения подобного ПО. Один из примеров подобных способов рассматривается в патенте US 7530106, в котором раскрывает способ присвоения специального рейтинга опасности для каждого исполняемого процесса. С помощью специальной системы правил каждый процесс набирает определенный рейтинг, на основе которого на процесс будут накладываться ограничения, определяемые HIPS-политикой. На основании собранных из журналов проверки сведений выделяется информация, которая относится к определенному вредоносному ПО - например, тому, которое изменяет определенные системные файлы. Рейтинг опасности для такого ПО может быть выставлен в 100% при совпадении метаданных с теми, что были записаны в правиле (например, для однозначной идентификации могут использоваться CLSID). Идентификация вредоносного ПО, как правило, происходит по файлам и ключам реестра, которые требуется удалить, поместить в карантин или восстановить прежнюю незараженную копию (в том случае, если вредоносное ПО изменило важные системные объекты).
Средство 130 создания эвристических сценариев использует базу данных 120 журналов для того, чтобы разрабатывать как общие эвристические сценарии, так и частные. Общие сценарии могут быть использованы в случае вирусных эпидемий на большом количестве компьютеров, зараженных разными модификациями одного и того же вредоносного ПО. Также общие сценарии могут быть использованы в корпоративных сетях с большим количеством компьютеров с одинаковой программно-аппаратной частью. Частные сценарии могут быть использованы для обнаружения вредоносного ПО на отдельных компьютерах.
Можно привести следующие примеры формирования как общих, так и частных эвристических сценариев обнаружения.
Пример частного сценария для обнаружения конкретного вредоносного ПО:
begin
AddEvAlarmByCLSID(′4E1075F4-EEC4-4A86-ADD7-CD5F52858C31′,AScriptName,′2020search.dll′);
AddEvAlarmByCLSID(′FC2493D6-A673-49FE-A2EE-EFE03E95C27C′,AScriptName,′2020search.dll′);
end.
В этом случае сценарий был получен следующим образом:
1. В карантин на одном из компьютеров 100 попадает потенциально вредоносный файл ′2020search.dll′, после чего информация о нем попадает на средство ПО анализа журналов и после обработки этой информации в базу данных 120 журналов.
2. Вредоносность файла подтверждается статистикой (т.е. такой файл встречается не первый раз на компьютерах 100, при этом информации о таком файле нет в базе данных 140 безопасных объектов и т.п.).
3. Средство 130 создания эвристических сценариев выделяет характерные признаки данного файла. В данном примере характерными признаками являются имя файла и CLSID его класса.
4. Производиться контроль ложных срабатываний - проверка отсутствия CLSID в базе данных 140 безопасных объектов.
5. После этого создается вышеобозначенный сценарий.
Подобный сценарий хорошо подходит для распространенного вредоносного ПО, которое можно безошибочно поименовать и классифицировать.
Пример общего эвристического сценария обнаружения вредоносного ПО:
var
FPath: string;
procedure X(AName: string); begin
AddEvAlarmByName(FPath+AName, AScriptName, AName);
end;
begin
FPath:=NormalDir(′%SysDisk%\′);
X(′zpharaoh.exe′);
X(′winstall.exe′);
X(′md.exe′);
X(′lsass.exe′);
…
X(′luklylq.com′);
End
В данном случае происходит кластеризация по метаданным. Основной подход выглядит следующим образом:
1. Берется за основу один из типов метаданных (например - имя файла, находящегося в характерной папке), и делается выборка вредоносных объектов (файлов) с группировкой и подсчетом статистики. Если обнаруживается N файлов с совпадающими метаданными - это потенциальный элемент для сценария (второй фактор - как хорошо определяется подобный файл - если он встречается редко, но плохо поддается обнаружению и часто пропускается при анализе - значит, требуется создание сценария).
2. Делается контрольная проверка - не встречались ли легитимные файлы (безопасные объекты) с такими метаданными - если да, то использовать этот тип метаданных для сценария нельзя. В такой ситуации или используются дополнительные метаданные, или принимается решение о том, что данную разновидность вредоносного приложения по метаданным обнаружить невозможно без риска ложного срабатывания. Пример - вредоносное приложение, подменяющее собой легитимный системный файл.
Часто используемые метаданные в данном случае - ключи автозапуска, CLSID, имена системных служб и драйверов, имена файлов. В данном примере можно трактовать подозрение md.exe как: "известны случаи, когда на ПК пострадавшего в корне системного диска обнаруживался пропущенный антивирусом файл md.exe, который после обнаружения был признан вредоносным. Это распространенное явление, известных чистых объектов (файлов) с таким именем и местоположением не найдено".
Пример по другому типу метаданных - CLSID:
procedure CC(S: string);
begin
AddEvAlarmByCLSID(S, AScriptName,");
end;
begin
CC(′408BD6C-6563-4EA7-8656-9D55DD65AlA′);
CC(′00000012-890E-4AAC-AFD9-EFF6954A34DD′);
CC(′00000231-1000-0010-8000-00AA006D2EA4′);
CC(′00000EFl-0786-4633-87C6-lAA7A44296DA′);
- и таких 350 штук
CC(′FFB51760-344E-4FFB-BFFF-4B18C7AC1D63′);
CC(′FFF5092F-7172-4018-827B-FA5868FB0478′);
CC(′FFFC57DB-1DE3-4303-B24D-CEE6DCDD3D86′);
CC(′FFFFE708-B832-42F1-BAFF-247753B5E452′);
end.
Источник данных для создания таких скриптов - базы данных 120, 150 и 140. Стоит отметить, что любая информация, поступившая с компьютеров 100, обогащает данные базы, так же как и обнаружение любого ложного срабатывания.
Другой пример - обнаружение ActiveSetup записей реестра, которые некоторые вредоносные объекты применяют как необычную форму автозапуска:
procedure CA(S: string);
var
Tmp: string;
begin
Tmp:=RegKeyStrParamRead(′HKLM′, ′Software\Microsoft\Active Setup\Installed Components\′+S, ′StubPath′);
if Tmpo<>′′then
AddEvAlarmByName(Tmp, AScriptName, ExtractFileName(Tmp));
end;
begin
CA(′198BCB9E-A95B-45FF-A89D-5FC22623446C′);
CA(′B38B32A2-D4EB-A6D8-14AB-38ACD8369E3E′);
CA(′QPYMQQFS′);
CA(′{007C0E62-16F7-14AD-4EFB-405E87659967}′);
CA(′{H9I12RB03-АВ-В70-7-11D2-9CBD-0000FS7AH6-9E2121BHJLK}′);
…
end
После того как эвристические сценарии обнаружения были выработаны и переданы на компьютеры 100, они могут быть исполнены, и результаты их работы проверены в соответствии со списками известного вредоносного (blacklist) и безопасного (whitelist) ПО, чтобы удостовериться в правильности выполнения эвристических сценариев. В том случае, если эвристические сценарии были составлены правильно, то их выполнение позволит вылечить компьютеры 100 от всего имеющегося вредоносного ПО, не затронув безопасное ПО. Однако этот идеальный результат чаще всего невозможно достигнуть по ряду причин:
- постоянно появляется новое вредоносное ПО;
- постоянно появляется новое безопасное ПО, а также постоянно обновляется уже известное безопасное ПО;
- как правило, эвристические методы обнаружения не обеспечивают 100% обнаружения неизвестного вредоносного ПО без возникновения ложных срабатываний.
Для решения данных проблем требуется постоянная доработка эвристических сценариев обнаружения. Однако при постоянной работе вышеописанной схемы каналы связи могут быть перегружены информацией с журналами проверки, а также эвристическими сценариями, что особенно актуально для большого количества компьютеров 100. Для решения этой проблемы используются следующие подходы:
- получение полного журнала проверки от компьютера 100 происходит только в первый раз, в дальнейшем пересылается лишь информация о ложных срабатываниях и неизвестном подозрительном ПО, которое было обнаружено с помощью эвристических сценариев обнаружения;
- в корпоративных сетях возможно отправлять журналы проверки не от каждого компьютера одной и той же конфигурации, а только от одного в том случае, если журналы совпадают;
- повторная отправка эвристических сценариев обнаружения не происходит целиком, а лишь высылаются изменения в самих сценариях (difference).
Фиг.2 отображает способ работы настоящего изобретения. На этапе 210 происходит анализ компьютера 100 на наличие вредоносных приложений, формирование журнала проверки и его отправка на средство 110 анализа журналов. На этапе 220 средство 110 анализа журналов выполняет анализ полученного журнала проверки и записывает результаты анализа в базу данных 120 журналов. На этапе 225 определяется, был ли анализ выполнен впервые или нет. В случае положительного ответа на этапе 230 создается эвристический сценарий обнаружения с помощью средства 130 создания эвристических сценариев. В одном из вариантов реализации эвристический сценарий обнаружения создается на основании более чем одного журнала проверки, что позволяет создать более универсальный эвристический сценарий обнаружения, который сможет устранить вредоносные приложения на более чем одном компьютере. Также в еще одном из вариантов реализации на этапе 230 выбирается уже заранее созданный эвристический сценарий обнаружения, который был разработан на основании уже собранных ранее журналов проверки, полученных с других компьютеров 100. На этапе 240 происходит отправка эвристического сценария обнаружения на компьютер 100 с его последующим выполнением.
Если на этапе 225 было обнаружено, что анализ выполнялся уже не в первый раз, то на этапе 250 происходит обнаружение ложных срабатываний и/или неизвестного вредоносного ПО, которое может присутствовать на компьютере 100. Далее на этапе 260 определяется, были ли обнаружены похожие ложные срабатывания и/или неизвестное вредоносное ПО у большого количества пользователей. В различных вариантах реализации под количеством пользователей могут восприниматься различные значения: при анализе небольшого количества компьютеров это может быть значение больше одного, но в рамках рассмотрения миллионов компьютеров оно может составлять десятки. Если было решено, что ложные срабатывания и/или неизвестное вредоносное ПО обнаружено на небольшом количестве компьютеров, то на этапе 270 для них создается новый эвристический сценарий обнаружения, в противном случае на этапе 280 дорабатывается уже существующий эвристический сценарий обнаружения. На этапе 290 происходит отправка эвристического сценария обнаружения на компьютер 100 с его последующим выполнением. Стоит отметить, что повторная отправка эвристических сценариев обнаружения не происходит целиком, а лишь высылаются изменения в самих сценариях (difference).
Фиг.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, представленного на Фиг.7. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
Настоящее описание излагает основной изобретательский замысел автора, который не может быть ограничен теми аппаратными устройствами, которые упоминались ранее. Следует отметить, что аппаратные устройства прежде всего предназначены для решения узкой задачи. С течением времени и с развитием технического прогресса такая задача усложняется или эволюционирует. Появляются новые средства, которые способны выполнить новые требования. В этом смысле следует рассматривать данные аппаратные устройства с точки зрения класса решаемых ими технических задач, а не чисто технической реализации на некой элементной базе.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.