Система и способ блокировки выполнения сценариев
SYSTEM AND METHOD OF BLOCKING SCRIPT EXECUTION

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам блокировки выполнения сценариев.
Уровень техники
Бурное развитие компьютерной техники и информационных технологий привело к массовому использованию пользователями в повседневной жизни электронной коммерции, электронного документооборота, облачных хранилищ и т.д. Например, в настоящее время значительное количество пользователей хранит свою личную и конфиденциальную информацию на компьютерах, а подавляющее большинство предприятий ведет свою финансовую и коммерческую деятельность с использованием электронных устройств и сервисов.
Массовое распространение описанных компьютерных технологий вызвало, в свою очередь, рост числа случаев их использования для мошенничества. Появилось огромное количество разновидностей вредоносных программ, значительно возросло количество поражений ими компьютерных систем. Одни вредоносные программы крадут с компьютерных систем персональные и конфиденциальные данные пользователей (например, логины и пароли, банковские реквизиты, электронные документы), другие формируют из зараженных компьютерных систем так называемые бот-сети (англ. botnet), третьи навязывают пользователям платные услуги.
Для защиты компьютерных систем от вредоносных программ в настоящий момент используется много разнообразных средств - антивирусные программы, сетевые экраны, системы обнаружения вторжения (англ. Intrusion Detection System, IDS) и т.д., позволяющие как эффективно обнаруживать вредоносные программы, так и устранять их. Причем, если для пользователей более важным является эффективное лечение зараженного вредоносной программой компьютера, то для предприятий - высокая оперативность и эффективность обнаружения попыток заражения компьютерных систем.
Большинство существующих решений, в первую очередь, направлено на обнаружение и устранение уже вредоносных программ, поведение или структура которых уже известны. Поэтому, когда компьютерная система оказывается атакована с использованием новой неизвестной вредоносной программой, существующие решения становятся неэффективными.
Например, в публикации US 20150096023 А1 описана технология обнаружения вредоносных файлов, заключающаяся в вычислении нечетких хэш-сумм на основании данных (таких, как идентификаторы и параметры команд, дампы памяти и т.д.), описывающих поведение исследуемого файла, и использование полученных хэш-сумм для определения, является ли исследуемый файл вредоносным, для чего полученные хэш-суммы сравниваются с хэш-суммами ранее обнаруженных и обработанных вредоносных файлов. К недостаткам данной технологии можно отнести следующие:
• неэффективность исследования обфусцированных (англ. software obfuscation) файлов, поскольку вычисленные хэш-суммы по похожим, но обфусцированным файлам, имеют низкую степень схожести;
• неэффективность исследования файлов с защитой от эмуляции, поскольку вычисленные хэш-суммы от таких файлов имеют низкую степень схожести;
• неэффективность обнаружения зараженных компьютерных систем, поскольку описанная технология рассматривает каждый файл индивидуально и независимо от остальных файлов компьютерной системы, поэтому не позволяет обнаруживать сборные вредоносные программы, которые включают в себя несколько файлов, каждый из которых не несет в себе вредоносного функционала.
В другой публикации US 9118703B2 описана технология обнаружения вредоносных программ, схожих по своим характеристикам с доверенными программами посредством формирования нечетких белых списков. Недостаток данной технологии заключается в неэффективности обнаружения зараженных компьютерных систем, поскольку описанная технология рассматривает каждый файл индивидуально и независимо от остальных файлов компьютерной системы, поэтому не позволяет обнаруживать сборные вредоносные программы, которые включают в себя несколько файлов, каждый из которых не несет в себе вредоносного функционала.
Хотя описанные выше способы работы хорошо справляются с задачами обнаружения и блокировки вредоносных программ, поведение или структура которых уже известны, они зачастую не помогают в случае с новыми вредоносными программами, чье поведение не известно, с обфусцированными вредоносными программами. Кроме того, задачи обнаружения заражения компьютерных систем сборными вредоносными программами, которые включают в себя несколько файлов, каждый из которых не несет в себе вредоносного функционала, также представляют большую сложность для описанных выше способов работы.
Настоящее изобретение позволяет решать задачу обнаружения обфусцированных вредоносных программ (а именно вредоносных сценариев), а также обнаружения зараженных вредоносными программами (а именно вредоносными сценариями) компьютерных систем, и блокировки выполнения обнаруженных вредоносных сценариев.
Раскрытие изобретения
Изобретение предназначено для блокировки выполнения сценариев.
Технический результат настоящего изобретения заключается в обеспечении безопасности компьютерной системы, на которой работает клиент, посредством блокировки выполнения сценария, запрашиваемого клиентом с сервера, в случае, если запрашиваемый сценарий признается вредоносным в результате проведенной проверки.
Другой технический результат настоящего изобретения заключается в противодействии внедрению вредоносного сценария на компьютерную систему, на которой работает клиент, с сервера посредством блокировки выполнения сценария, запрашиваемого клиентом с сервера, в случае, если запрашиваемый сценарий признается вредоносным в результате проведенной проверки.
Данный результат достигается с помощью использования системы блокировки выполнения сценария, запрашиваемого клиентом (компонентом клиент-серверной архитектуры) с сервера, которая содержит средство перехвата, предназначенное для перехвата по меньшей мере одного сценария, запрошенного клиентом с сервера, передачи перехваченного сценария средству формирования промежуточного кода, и блокировки выполнения перехваченного сценария при вынесении решения, о том, что перехваченный сценарий является вредоносным; упомянутое средство формирования промежуточного кода, предназначенное для формирования промежуточного кода (англ. bytecode) перехваченного сценария, где промежуточный код представляет собой совокупность команд сценария (англ. opcode), состоящую по меньшей мере из одной команды, содержащейся в перехваченном сценарии, и передачи сформированного промежуточного кода средству вычисления хэш-сумм; упомянутое средство вычисления хэш-сумм, предназначенное для вычисления хэш-суммы от сформированного промежуточного кода и передачи вычисленной хэш-суммы средству поиска; базу данных хэш-сумм, предназначенную для хранения по меньшей мере одной группы, представляющей собой набор данных, включающий в себя по меньшей мере две хэш-суммы, по меньшей мере одну степень схожести (англ. similarity metric) по меньшей мере двух хэш-сумм; упомянутое средство поиска, предназначенное для выборки из базы данных хэш-сумм по меньшей мере одной группы, в которой по меньшей мере одна хэш-сумма имеет с хэш-суммой, вычисленной средством вычисления хэш-сумм, степень схожести согласно установленному пороговому значению схожести, и передачи по меньшей мере одной выбранной группы и степени схожести средству анализа; базу данных шаблонов вердиктов, предназначенную для хранения шаблонов вердикта, при этом каждый шаблон вердикта представляет собой набор данных, включающий в себя по меньшей мере одну упомянутую группу из базы данных хэш-сумм, коэффициент доверия шаблона вердикта, представляющий собой численное значение; упомянутое средство анализа, предназначенное для выборки из базы данных шаблонов вердиктов по меньшей мере одного шаблона вердикта, включающего в себя по меньшей мере одну группу, у которой степень схожести с по меньшей мере одной выбранной средством поиска группой соответствует установленному пороговому значению, и передачи коэффициента доверия шаблона вердикта из выбранного шаблона вердикта и степени схожести средству вынесения вердикта; упомянутое средство вынесения вердикта, предназначенное для вынесения решения о том, является ли сценарий, перехваченный средством перехвата, вредоносным на основании по меньшей мере одного полученного от средства анализа коэффициента доверия шаблона вердикта и по меньшей мере одной степени схожести хэш-сумм, полученной от средства поиска, и передачи вынесенного решения средству перехвата.
В другом частном случае реализации системы в качестве сервера выступает по меньшей мере веб-сервер, содержащий интернет-страницы; файловый сервер, содержащий сценарии.
Еще в одном частном случае реализации системы хэш-сумма вычисляется по меньшей мере путем вычисления нечетких хэш-сумм (англ. fuzzy hash); нечеткого поиска (англ. fuzzy searching).
В другом частном случае реализации системы степень схожести хэш-сумм вычисляется по меньшей мере путем сравнения нечетких хэш-сумм; вычисления метрик для нечеткого поиска (англ. fuzzy searching metric).
Еще в одном частном случае реализации системы степень схожести групп вычисляется по меньшей мере путем нахождения скалярного произведения многомерных векторов, где в качестве элементов многомерных векторов выступают данные, включенные в группы; вычисления метрик для нечеткого поиска (англ. fuzzy searching metric).
В другом частном случае реализации системы шаблоны вердикта из базы данных шаблонов вердиктов совокупно включают в себя все группы из базы данных хэш-сумм.
Еще в одном частном случае реализации системы коэффициент доверия шаблона вердикта, представляет собой численное значение от 0, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются вредоносными, до 1, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются доверенными.
В другом частном случае реализации системы вынесение решения о том, является ли сценарий, перехваченный средством перехвата, вредоносным, осуществляется путем сравнения среднего от произведения по меньшей мере одного коэффициента доверия шаблона вердикта, выбранного средством анализа, и по меньшей мере одной степеней схожести хэш-сумм, вычисленной средством вычисления хэш-сумм с установленным пороговым значением.
Данный результат достигается с помощью использования способа блокировки выполнения сценария, запрашиваемого клиентом (компонентом клиент-серверной архитектуры) с сервера, по которому перехватывают по меньшей мере один сценарий, запрошенный клиентом с сервера; формируют промежуточный код перехваченного сценария; вычисляют хэш-сумму от сформированного промежуточного кода; выбирают из базы данных хэш-сумм по меньшей мере одну группу, в которой по меньшей мере одна хэш-сумма имеет с хэш-суммой, вычисленной на предыдущем этапе, степень схожести согласно установленному порогу схожести; выбирают из базы данных шаблонов вердиктов по меньшей мере один шаблон вердикта, включающего по меньшей мере одну группу, у которой степень схожести с по меньшей мере одной выбранной группой соответствует установленному порогу, и выявляют коэффициент доверия шаблона вердикта для выбранного шаблона вердикта из базы данных шаблонов вердиктов; выносят решение о том, является ли перехваченный на предыдущем этапе сценарий вредоносным на основании по меньшей мере одного коэффициента доверия шаблона вердикта, выбранного на предыдущем этапе и по меньшей мере одной степени схожести хэш-сумм, определенной на предыдущем этапе; блокируют выполнение сценария, перехваченного на предыдущем этапе, согласно вынесенному решению о вредоносности перехваченного сценария.
В другом частном случае реализации способа в качестве сервера выступает по меньшей мере веб-сервер, содержащий интернет-страницы; файловый сервер, содержащий сценарии.
Еще в одном случае реализации способа хэш-сумма вычисляется по меньшей мере путем: вычисления нечетких хэш-сумм; нечеткого поиска.
В другом частном случае реализации способа степень схожести хэш-сумм вычисляется по меньшей мере путем: сравнения нечетких хэш-сумм; вычисления метрик для нечеткого поиска.
Еще в одном случае реализации способа степень схожести групп вычисляется по меньшей мере путем: нахождения скалярного произведения многомерных векторов, где в качестве элементов многомерных векторов выступают данные, включенные в группы; вычисления метрик для нечеткого поиска.
В другом частном случае реализации способа шаблоны вердикта из базы данных шаблонов вердиктов совокупно включают в себя все группы из базы данных хэш-сумм.
Еще в одном случае реализации способа коэффициент доверия шаблона вердикта, представляет собой численное значение от 0, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются вредоносными, до 1, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются доверенными.
В другом частном случае реализации способа вынесение решения о том, является ли сценарий, перехваченный средством перехвата, вредоносным осуществляется путем сравнения среднего от произведения по меньшей мере одного коэффициента доверия шаблона вердикта, выбранного средством анализа, и по меньшей мере одной степеней схожести хэш-сумм, вычисленной средством вычисления хэш-сумм с установленным пороговым значением.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы блокировки выполнения сценариев.
Фиг. 2 представляет структурную схему способа блокировки выполнения сценариев.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносный сценарий - сценарий, способный нанести вред компьютеру или данным пользователя компьютера. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.
Доверенный сценарий - сценарий, который не наносит вреда компьютеру или его пользователю. Доверенным сценарием может считаться сценарий, разработанный доверенным производителем ПО, загруженный из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или сценарий, идентификатор которого (например, MD5 файла сценария) хранится в базе данных доверенных сценариев. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных сценариев.
Фиг. 1 представляет структурную схему системы блокировки выполнения сценария, запрашиваемого клиентом (компонентом клиент-серверной архитектуры) с сервера.
Структурная схема системы блокировки выполнения сценария, запрашиваемого клиентом (компонентом клиент-серверной архитектуры) с сервера состоит из сервера 100, клиента 101, средства перехвата 110, средства формирования промежуточного кода 120, средства вычисления хэш-сумм 130, средства поиска 140, средства анализа 150, средства вынесения вердикта 160, базы данных хэш-сумм 170 и базы данных шаблонов вердиктов 180.
В качестве сервера 100 выступает по меньшей мере
• веб-сервер, содержащий интернет-страницы;
• файловый сервер, содержащий сценарии.
В качестве сценариев могут выступать:
• программы, написанные на языке VBA (англ. Visual Basic for Applications) и размещенные в электронных документах Microsoft Office и т.д.;
• программы, написанные на языке Java;
• программы, написанные на языке ActionScript.
Сценарии могут передаваться от сервера 100 клиенту 101 как:
• в виде файлов (например, документы Microsoft Office, содержащих VBA-код), передаваемых с помощью API-функций от файлового менеджера приложению (например, Microsoft Office), работающему с файлами.
Средство перехвата 110 предназначено для:
• перехвата по меньшей мере одного сценария, запрошенного клиентом 101 с сервера 100,
• передачи перехваченного сценария средству формирования промежуточного кода 120,
• и блокировки выполнения перехваченного сценария при вынесении средством вынесения вердикта 160 решения о том, что перехваченный сценарий является вредоносным.
В одном из вариантов реализации перехват сценариев, передаваемых от сервера 100 клиенту 101, осуществляется с помощью специально разработанного для этой цели драйвера и заключается в перенаправлении канала передачи сценария (например, изменения адреса источника, принимающего данные) с клиента 101 на драйвер. Таким образом сценарий, запрошенный клиентом 101 и передаваемый сервером 100, попадает драйверу, а не клиенту. Например, драйвер, перехватывающий вызов API функции операционной системы recv, отвечающей за получение данных, передаваемых по сети, позволяет получать весь входящий сетевой трафик.
В качестве блокировки выполнения сценария может выступать:
• запрет запуска перехваченного сценария на исполнение за счет перехвата вызова соответствующих API функций;
• замена сценария, предназначенного для выполнения, на заранее подготовленный доверенный сценарий;
• передачи заранее подготовленных данных за место запрашиваемых запускаемым сценарием.
Средство формирования промежуточного кода 120 предназначено для:
• формирования промежуточного кода (англ. bytecode) перехваченного сценария, где промежуточный код представляет собой совокупность команд сценария (англ. opcode), состоящую по меньшей мере из одной команды, содержащейся в перехваченном сценарии;
• и передачи сформированного промежуточного кода средству вычисления хэш-сумм 130.
В одном из вариантов реализации промежуточный код перехваченного сценария формируется следующим способом:
• из сценария выделяется последовательность из всех команд сценария;
• часть команд сценария, не отвечающих за заданный заранее функционал (например, запись данных на диск, работа с объектами файловой системой, запуск приложений и т.д.), удаляется из выделенной последовательности;
• оставшиеся в выделенной последовательности команды сценария объединяются в группы команд, содержащие по меньшей мере по одной команде сценария (например, последовательность команд сценария, отвечающих за запись данных в файл, запуск файла и удаление файла, могут объединяться в одну группу);
• каждой команде сценария или группе команд сценария ставится в соответствие уникальное двухбайтовое значение;
• получившая последовательность двухбайтовых значений представляет собой сформированный промежуточный код.
Средство вычисления хэш-сумм 130 предназначено для
• вычисления хэш-суммы от сформированного промежуточного кода;
• и передачи вычисленной хэш-суммы средству поиска 140.
Хэш-суммы от промежуточного кода вычисляются путем:
• вычисления нечетких хэш-сумм (англ. fuzzy hash), где нечеткая хэш-сумма от данных представляет собой набор хэш-сумм, вычисленных от разных областей данных, по которым вычисляется нечеткая хэш-сумма;
• нечеткого поиска (англ. fuzzy searching), представляющего собой технологию поиска элемента в множестве с использованием структур данных (элементы евклидового пространства, древовидного пространства и т.д.), позволяющую проводить быстрый поиск ближайшего элемента множества к элементу, по которому производится поиск, с малым числом сравнений в любых пространствах.
Средство поиска 140 предназначено для:
• выборки из базы данных хэш-сумм 170 по меньшей мере одной группы, в которой по меньшей мере одна хэш-сумма имеет с хэш-суммой, вычисленной средством вычисления хэш-сумм 130, степень схожести согласную заранее установленному порогу схожести;
• и передачи по меньшей мере одной выбранной группы и определенной степени схожести средству анализа 150;
В качестве степени схожести сравниваемых хэш-сумм выступает численное значение, характеризующее, насколько сравниваемые хэш-суммы схожи друг с другом и определяемое способом сравнения хэш-сумм.
Степень схожести хэш-сумм вычисляется по меньшей мере путем:
• сравнения нечетких хэш-сумм, представляющего собой вычисление численного значения, характеризующего схожесть данных, для которых были рассчитаны хэш-суммы;
• вычисления метрик для нечеткого поиска (англ. fuzzy searching metric), представляющего собой вычисление расстояния между искомым и найденным элементами множества, по которому производится поиск.
Средство анализа 150 предназначено для:
• выборки из базы данных шаблонов вердиктов 180 по меньшей мере одного шаблона вердикта, включающего по меньшей мере одну группу, у которой степень схожести с по меньшей мере одной выбранной средством поиска 140 группой соответствует заранее установленному порогу, где шаблон вердикта представляет собой набор данных, включающий в себя
- по меньшей мере одну группу из базы данных хэш-сумм 170;
- коэффициент доверия шаблона вердикта, представляющий собой численное значение;
• и передачи коэффициента доверия шаблона вердикта из выбранного шаблона вердикта и вычисленной степени схожести средству вынесения вердикта 160.
В одном из вариантов реализации в качестве коэффициента доверия шаблона вердикта может выступать численное значение от 0, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются вредоносными, до 1, означающее, что все сценарии, используемые для получения групп, содержащихся в данном шаблоне вердикта, являются доверенными.
Степень схожести групп вычисляется по меньшей мере путем:
• нахождения скалярного произведения многомерных векторов, где в качестве элементов многомерных векторов выступают данные, включенные в группы;
• вычисления метрик для нечеткого поиска (англ. fuzzy searching metric).
Средство вынесения вердикта 160 предназначено для:
• вынесения решения о том, является ли сценарий, перехваченный средством перехвата 110, вредоносным на основании по меньшей мере одного полученного от средства анализа 150 коэффициента доверия шаблона вердикта и по меньшей мере одной степени схожести хэш-сумм, полученной от средства поиска 140;
• и передачи соответствующего решения средству перехвата 110.
В одном из вариантов реализации вынесение решения о том, является ли сценарий, перехваченный средством перехвата 110, вредоносным, осуществляется путем сравнения среднего от произведения по меньшей мере одного коэффициента доверия шаблона вердикта, выбранного средством анализа 150, и по меньшей мере одной степеней схожести хэш-сумм, вычисленной средством вычисления хэш-сумм 130 с установленным пороговым значением;
База данных хэш-сумм 170 предназначена для:
• хранения по меньшей мере одной группы, представляющей собой набор данных, включающий в себя:
- по меньшей мере две заранее вычисленные хэш-суммы от промежуточного кода вредоносных сценариев,
- по меньшей мере одну степень схожести по меньшей мере двух содержащихся в группе хэш-сумм.
База данных шаблонов вердиктов 180 предназначена для:
• хранения по меньшей мере одного шаблона вердикта, представляющего собой набор данных, включающий в себя
- по меньшей мере одну группу из базы данных хэш-сумм 170;
- коэффициент доверия шаблона вердикта, представляющий собой численное значение.
В одном из вариантов реализации шаблоны вердикта из базы данных шаблонов вердиктов 180 совокупно могут включать в себя все группы из базы данных хэш-сумм 170.
Рассмотрим работу системы блокировки выполнения сценариев на примере блокировки вредоносного сценария, содержащегося в электронном документе Microsoft Word.
Пользователь с помощью клиента 101, в качестве которого выступает текстовой редактор Microsoft Word, делает попытку получить от сервера 100, в качестве которого выступает файловый менеджер, электронный документ c:\mydoc.docx, содержащий вредоносный сценарий, написанный на языке VBA. Средство перехвата 110, в качестве которого выступает драйвер файлового менеджера, перехватывает сценарий открываемого документа и передает его средству формирования промежуточного кода 120. Перехват сценария осуществляется драйвером путем перехвата драйвером вызовов API функций операционной системы CreateFile, ReadFile и т.д., отвечающих за получение данных от файлового менеджера.
Средство промежуточного кода 120 формирует промежуточный код перехваченного сценария. Для этого
• из перехваченного сценария выделяется последовательность из всех команд сценария;
• часть команд сценария, не отвечающих за функционал, отвечающий за запись данных на диск, работа с объектами файловой системой, запуск приложений и т.д. удаляется из выделенной последовательности;
• оставшиеся в выделенной последовательности команды сценария объединяются в группы команд (например, последовательность команд сценария, отвечающих за запись данных в файл, запуск файла и удаление файла, объединяются в одну группу);
• каждой команде сценария или группе команд сценария ставится в соответствие уникальное двухбайтовое значение;
• получившая последовательность двухбайтовых значений представляет собой сформированный промежуточный код.
Средство вычисления хэш-сумм 130 вычисляет от полученного промежуточного кода нечеткую хэш-сумму (например, с помощью open-source алгоритма fuzzyHash), представляющую собой набор данных, содержащий размер блоков, на которые разбивается промежуточный код, и хэш-сумм от этих блоков. После чего передает вычисленную хэш-сумму средству поиска 140.
Средство поиска 140 осуществляет выборку из базы данных хэш-сумм 170 групп хэш-сумм, где группа представляет собой набор данных, включающих в себя:
• заранее вычисленные хэш-суммы от промежуточного кода вредоносных сценариев;
• степени схожести между хэш-суммами, содержащимися в группе.
В процессе выборки из базы данных хэш-сумм 170 для хэш-сумм из каждой группы, содержащейся в базе данных хэш-сумм 170, выполняется нечеткое сравнение (англ. fuzzy searching) с хэш-суммой, полученной от средства вычисления хэш-сумм 130. Результатом нечеткого сравнения двух хэш-сумм является число в диапазоне от 0 до 1, выражающее собой, насколько сравниваемые хэш-суммы схожи между собой, и называемое степенью схожести двух хэш-сумм (например, схожесть нечетких хэш-сумм, вычисленных от промежуточных кодов сценариев, содержащих 10% отличных друг от друга команд сценария, будет равно 0,9). В случае, когда хотя бы одна хэш-сумма из сравниваемой группы имеет степень схожести с полученной от средства вычисления хэш-сумм 130 выше установленного порога (например, 0,85), считается, что группа найдена, а хэш-сумма, полученная от средства вычисления хэш-сумм 130, принадлежит сравниваемой группе. После чего выбранные группы и определенные степени схожести передаются средству анализа 150. При этом так же обновляются и группы в базе данных хэш-сумм 170 - в выбранные группы добавляется хэш-сумма, полученная от средства вычисления хэш-сумм 130. Это позволяет увеличить точность поиска групп для следующих перехваченных сценариев, поскольку обновленные группы содержат больше хэш-сумм вредоносных скриптов. Для перехваченного сценария из файла c:\mydoc.docx были выбраны группы, содержащие хэш-суммы от сценариев, содержащих функционал:
• для группы #1 - запись на диск и выставление атрибутов файла (схожесть 0,98);
• для группы #2 - блокировка диспетчера задач, сокрытие панели задач (схожесть 0,95);
• для группы #3 - удаление файлов (схожесть 0,90);
• для группы #4 - создание окна Windows с использованием средства VBA (схожесть 0,87).
Выбранные группы передаются средству анализа 150.
Средство анализа 150 осуществляет выборку из базы шаблонов вердиктов 180 шаблоны вердикта, включающие в себя полученные от средства поиска 140 группы. В процессе выборки определяется, какие группы содержатся в каждом шаблоне вердикта из базы данных шаблонов вердиктов 180, насколько они схожи с группами, полученными от средства поиска 140. В качестве способа сравнения можно использовать алгоритм нечеткого поиска (англ. fuzzy searching), результатом которого является число в диапазоне от 0 до 1, характеризующее, насколько сравниваемые наборы групп схожи между собой и называемое степенью схожести двух наборов групп. Для групп, полученных от средства поиска 140, были выбраны следующие шаблоны вердикта:
• шаблон # 1 "блокер": коэффициент доверия шаблона 0.1, содержит группы #1 (степень схожести 1.0). #2 (степень схожести 1.0), #3 (степень схожести 0.9);
• шаблон #2 "криптор": коэффициент доверия шаблона 0.3, содержит группы #1 (степень схожести 0.7). #3 (степень схожести 1.0), #4 (степень схожести 0.95).
Коэффициенты доверия шаблона выбранных шаблонов вердикта, а также группы, выбранные средством поиска 140, передаются средству вынесения вердикта 160.
Средство вынесения вердикта 160 выбирает из полученных коэффициентов доверия минимальный (0.1 для шаблона вердикта "блокер"), степень схожести хэш-сумм в группах, содержащихся в выбранном шаблоне (0,9) и вычисляет произведение коэффициента доверия и степени схожести (0,09), после чего сравнивает полученное значение с максимально допустимым значением (например, 0,2), выносит вердикт, что перехваченный сценарий является вредоносным и должен быть заблокирован, и передает решение средству перехвата 110 для блокировки перехваченного сценария. После чего средство перехвата заменяет перехваченный сценарий сценарием-заглушкой, не выполняющим никаких действий и нужным лишь для корректной работы документа Microsoft Word, тем самым блокирует перехваченный сценарий и предотвращает выполнение вредоносного сценария на компьютерной системе пользователя.
Фиг. 2 представляет пример структурной схемы способа блокировки выполнения сценариев.
Структурная схема состоит из этапа, на котором перехватывают сценарий 210, этапа, на котором формируют промежуточный код сценария 220, этапа, на котором вычисляют хэш-сумму от промежуточного кода 230, этапа, на котором выбирают группы из базы данных хэш-сумм 240, этапа, на котором выбирают шаблоны вердикта из базы данных шаблонов вердиктов 250, этапа, на котором выносят решение о вредоносности перехваченного сценария 260, и этапа, на котором блокируют сценарий 270.
На этапе 210 с помощью средства перехвата 110 перехватывают по меньшей мере один сценарий, запрошенного клиентом 101 с сервера 100.
На этапе 220 с помощью средства 120 формируют промежуточный код перехваченного сценария.
На этапе 230 с помощью средства 130 вычисляют хэш-сумму от сформированного промежуточного кода.
На этапе 240 с помощью средства 140 выбирают из базы данных хэш-сумм 170 по меньшей мере одну группу, в которой по меньшей мере одна хэш-сумма имеет с хэш-суммой, вычисленной на этапе 130, степень схожести, согласную установленному порогу схожести.
На этапе 250 с помощью средства 150 выбирают из базы данных шаблонов вердиктов 180 по меньшей мере один шаблон вердикта, включающего по меньшей мере одну группу, у которой степень схожести с по меньшей мере одной выбранной средством поиска 140 группой соответствует установленному порогу.
На этапе 260 с помощью средства 160 выносят решения о том, является ли перехваченный на этапе 210 сценарий вредоносным на основании по меньшей мере одного коэффициента доверия шаблона вердикта, выбранного на этапе 250, и по меньшей мере одной степени схожести хэш-сумм, определенной на этапе 240.
На этапе 270 с помощью средства 110 блокируют перехваченный на этапе 210 сценарий согласно вынесенному решению о вредоносности перехваченного сценария.
Рассмотрим работу способа блокировки выполнения сценариев на примере блокировки вредоносного сценария, содержащегося на странице сайта, просматриваемого пользователем с помощью браузера.
На этапе 220 средство формирования промежуточного кода 120 формирует промежуточный код перехваченного сценария. Для этого из перехваченного сценария выделяются команды операций, связанные с операциями взаимодействия с компьютерной системой пользователя (такими, как запись на диск и т.д.), каждой выделенной операции ставится в соответствие свой двухбайтовый идентификатор (так называемый байт-код) и из полученных идентификаторов собирается последовательность байт, являющаяся промежуточным кодом. После чего средство формирования промежуточного кода 120 передает сформированный промежуточный код средству вычисления хэш-сумм 130.
На этапе 230 средство вычисления хэш-сумм 130 вычисляет от полученного промежуточному коду нечеткую хэш-сумму (например, с помощью open-source алгоритма fuzzyHash), представляющую собой набор данных, содержащий число, характеризующее размер блоков, на которые разбит промежуточный код для подсчета хэш-суммы, и две хэш-суммы, вычисленные по промежуточному коду. После чего передает вычисленную хэш-сумму средству поиска 140.
На этапе 240 средство поиска 140 выбирает из базы данных хэш-сумм 170 группы хэш-сумм. Для этого для хэш-сумм из каждой группы, содержащейся в базе данных хэш-сумм 170, выполняется нечеткое сравнение с хэш-суммой, полученной от средства вычисления хэш-сумм 130. Результатом нечеткого сравнения двух хэш-сумм является число в диапазоне от 0 до 1, выражающее собой, насколько сравниваемые хэш-суммы схожи между собой, и называемое степенью схожести двух хэш-сумм. В случае, когда хотя бы одна хэш-сумма из сравниваемой группы имеет степень схожести с полученной от средства вычисления хэш-сумм 130 выше установленного порога (например, 0,5), считается, что группа найдена, а хэш-сумма, полученная от средства вычисления хэш-сумм 130, принадлежит сравниваемой группе. После чего выбранные группы и определенные степени схожести передаются средству анализа 150. При этом так же обновляются и группы в базе данных хэш-сумм 170 - к выбранным группам добавляется хэш-сумма, полученная от средства вычисления хэш-сумм 130, - это позволяет увеличить эффективность поиска групп для следующих перехваченных сценариев. Для перехваченного сценария с сайта http://tasianits.com были выбраны группы, содержащие хэш-суммы от сценариев, содержащих функционал:
• для группы #1 - записи на диск и исполнение файла на компьютерной системе пользователя (схожесть 0,7);
• для группы #2 - набор операций, используемых уязвимость ActiveX (схожесть 1,0).
На этапе 250 средство анализа 150 выбирает из базы шаблонов вердиктов 180 шаблоны вердикта, включающие в себя полученные от средства поиска 140 группы. Для этого определяется, какие группы содержатся в каждом шаблоне вердикта из базы данных шаблонов вердиктов 180, насколько они схожи с группами, полученные от средства поиска 150. В качестве способа сравнения может использовать алгоритм нечеткого поиска (англ. fuzzy searching), результат которого представляет собой число в диапазоне от 0 до 1, характеризующее, насколько сравниваемые наборы групп схожи между собой, и называемое степенью схожести двух наборов групп. Для групп, полученных от средства поиска 140, были выбраны следующие шаблоны вердикта:
• шаблон #1 "инжектор": коэффициент доверия шаблона 0.0, содержит группы #1 (степень схожести 1.0). #2 (степень схожести 1.0).
Коэффициенты доверия шаблона выбранных шаблонов вердикта передаются средству вынесения вердикта 160.
На этапе 260 средство вынесения вердикта 160 вычисляет на основании полученного коэффициента доверия шаблона и степени схожести произведение коэффициента доверия шаблона (0.0) и степени схожести (0,85), после чего сравнивает полученное значение с максимально допустимым значением (0,15), выносит вердикт, что перехваченный сценарий является вредоносным и должен быть заблокирован и передает решение средству перехвата 110 для блокировки перехваченного сценария. После чего на этапе 270 средства перехвата блокирует перехваченный сценарий, тем самым предотвращая выполнение вредоносного сценария на компьютерной системе пользователя.
Фиг. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.