СПОСОБ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОГО ВЫПОЛНЕНИЯ ФАЙЛА СЦЕНАРИЯ
METHOD OF PROVIDING SAFE EXECUTION OF SCRIPT FILE

Область техники
Изобретение относится к решениям для обеспечения информационной безопасности, а более конкретно к способам выполнения файла сценария.
Уровень техники
В настоящее время существует несколько подходов для защиты компьютера от вредоносного программного обеспечения. В одном из них на компьютере разрешается запуск любых программ, но при этом, например, антивирусное программное обеспечение определяет и блокирует вредоносные программы. Определение может выполняться с помощью поиска сигнатуры программного обеспечения в одной из антивирусных баз, эвристического детектирования, проактивной защиты, шаблонов поведения. Другой подход - запуск только тех программ, которые имеют статус доверенных, при этом недоверенное программное обеспечение блокируется (например, ограничивается его запуск), а также контролируется выполнение программ. Такой подход к обеспечению безопасности часто называют режимом «запрет по умолчанию».
Кроме вредоносных программ вред компьютеру могут причинять и всевозможные файлы, содержащие небезопасные сценарии выполняемых компьютером действий. Сценарии выполняются специальными программами - интерпретаторами, которые понимают формат и синтаксис файла сценария и выполняют определенные действия в системе. При этом программа-интерпретатор, которая и выполняет сценарий, может являться доверенной и выполняться даже в режиме «запрет по умолчанию».
Сама идея обеспечения безопасности при выполнении файла сценария не нова. Так, заявка US 7707634 описывает метод определения наличия вредоносного кода в файле сценария. Производится нормализация содержимого файла сценария, для файла сценария генерируются сигнатуры. Сгенерированные сигнатуры сравниваются с сигнатурами вредоносного программного обеспечения, находящимися в хранилище сигнатур.
Заявка US 8839428 описывает способ определения вредоносного кода в файле сценария, использующего последовательности NOP (англ. no-operation). Последовательность NOP в коде, как известно, является популярным способом атаки на компьютер, связанной с переполнением буфера.
Заявка US 8838992 описывает обучающуюся систему для определения вредоносных файлов сценария. Используются лексические и семантические образцы из вредоносных файлов сценария, в неизвестном файле сценария на основании образцов выделяются атрибуты признаков безопасности, выделенные атрибуты используются для определения безопасности файла сценария.
Существующие системы и способы позволяют лишь частично снизить угрозу безопасности компьютера, создаваемую выполняемыми файлами сценария.
Предлагаемый способ позволяет повысить безопасность компьютера в режиме «запрет по умолчанию» путем контроля выполнения интерпретатором файла сценария.
Сущность изобретения
Технический результат настоящего изобретения заключается в повышении безопасности компьютерной системы при выполнении файлов сценария интерпретаторами. Технический результат достигается с помощью способа выполнения файла сценария, в котором контролируют выполнение интерпретатором действий, согласно определенным политикам ограничений.
Согласно одному из вариантов реализации предоставляется способ выполнения файлов сценария, в котором: определяют по меньшей мере одну политику ограничения для по меньшей мере одного действия, разрешенного в системе по меньшей мере для одного интерпретатора; проверяют доверенность файла сценария и запускают выполнение доверенного файла сценария интерпретатором по результатам положительной проверки; перехватывают по меньшей мере одно действие интерпретатора; анализируют соответствие перехваченного действия по меньшей мере одной политике ограничения действия интерпретатора; на основании анализа выполняют действие согласно по меньшей мере одной политике ограничения.
Согласно одному из частных вариантов реализации доверенность файла сценария проверяется на основании наличия электронной цифровой подписи.
Согласно другому частному варианту реализации политика ограничения действия интерпретатора содержится в контейнере безопасности, при этом контейнер безопасности позволяет контролировать действия интерпретатора в компьютерной системе.
Согласно еще одному частному варианту реализации контейнер безопасности контролирует действия интерпретатора в компьютерной системе путем перехвата API-функций.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит информацию о доверенных файлах сценария.
Согласно еще одному частному варианту реализации выполнение файла сценария блокируется в случае отрицательного результата проверки файла сценария на доверенность.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит список дисковых операций, разрешенных интерпретатору.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит список сетевых операций, разрешенных интерпретатору.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит сетевые политики безопасности.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит запрещенное действие.
Согласно еще одному частному варианту реализации выполнение файла сценария блокируется при выполнении запрещенного действия.
Согласно еще одному частному варианту реализации контейнер безопасности интерпретатора содержит виртуальное действие, соответствующее разрешенному действию.
Согласно еще одному частному варианту реализации выполняют виртуальное действие вместо разрешенного действия.
Согласно еще одному частному варианту реализации одному интерпретатору может соответствовать несколько контейнеров безопасности.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 изображает пример работы интерпретатора с файлом сценария.
Фиг. 2 изображает пример работы интерпретатора с файлом сценария в системе, содержащей приложение безопасности, работающее в режиме «запрет по умолчанию».
Фиг. 3 отображает способ блокировки выполнения интерпретатором файла сценария при выполнении интерпретатором действий, не разрешенных контейнером безопасности интерпретатора.
Фиг. 4 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Стоит отметить, что существуют интерпретаторы по меньшей мере двух типов. Простой интерпретатор анализирует и тут же выполняет (интерпретирует) файл сценария покомандно (или построчно), по мере поступления его исходного кода на вход интерпретатора. Интерпретатор компилирующего типа - это система из компилятора, переводящего исходный код программы в промежуточное представление, например в байт-код, и интерпретатора, который выполняет полученный промежуточный код.
Для обеспечения безопасности компьютера, на котором выполняется файл сценария, с одной стороны необходимо анализировать синтаксис файла сценария, последовательность команд, результат их выполнения, промежуточное представление кода. С другой стороны, вне зависимости от типа и предназначения интерпретатора, интерпретатор - это программа, действия которой можно ограничивать. В системах обеспечения безопасности, работающих в режиме «запрет по умолчанию», для интерпретаторов можно задать допустимые действия и условия их выполнения, после чего контролировать выполнение файла сценария интерпретатором и блокировать (запрещать) все неразрешенные действия. Именно вторая задача решается с помощью настоящего изобретения.
Фиг. 1 изображает пример работы интерпретатора с файлом сценария.
Каждый файл сценария 120 на компьютере исполняется после загрузки операционной системы 110 какой-либо программой-интерпретатором 130.
После запуска файла сценария 120 операционной системой 110 (например, Windows) определяется формат файла сценария 120. Формат файла сценария 120 может быть определен операционной системой 110, например, по расширению файла.
Далее операционная система 110 производит выбор обработчика сценариев или, другими словами, программы-интерпретатора 130. Это может быть сделано, например, с помощью реестра операционной системы 110, в котором хранятся все соответствия и связи форматов файлов с исполняющими их программами. Далее происходит запуск выбранного интерпретатора (обработчика сценариев) 130.
Начинается выполнение сценария. Во время выполнения файла сценария 120 интерпретатор 130 может выполнять операции с локальными ресурсами 150 (например, дисковые операции, запуск приложений), обращаться к внешним ресурсам 160, (например, создавать соединения с сетью интернет, взаимодействовать с серверами баз данных), взаимодействовать с компонентами операционной системы 140 (например, со службами операционной системы) в случае необходимости, выполнять операции над реестром операционной системы, запускать различные процессы и контролировать их выполнение. В частном случае интерпретатор 130 взаимодействует с инструментарием управления операционной системой (например, при помощи Windows Management Instrumentation, WMI). В свою очередь инструментарий управления операционной системой позволяет взаимодействовать с:
- операционной системой;
- приложениями;
- оборудованием;
- сетями;
- другими управляемыми компонентами.
Из вышеописанного можно сделать вывод, что интерпретатор 130 при выполнении файла сценария 120 обладает широкими возможностями взаимодействия с операционной системой 110. Вредоносные сценарии могут причинять вред компьютеру и наносить ущерб данным, находящимся на компьютере. Например, может происходить повреждение данных или утрата их конфиденциальности.
Фиг. 2 изображает пример работы интерпретатора с файлом сценария в системе, содержащей приложение безопасности, работающее в режиме «запрет по умолчанию».
При наличии установленного в операционной системе 110 приложения безопасности 205 (например, антивирусного приложения), которое умеет работать в режиме «запрет по умолчанию», приложением безопасности 205 создается контейнер безопасности 210. Контейнер безопасности 210 позволяет контролировать действия интерпретатора 130 в компьютерной системе согласно политикам ограничения действий 230 для интерпретатора 130, например, путем контроля вызова API-функций (англ. application programming interface, API) или путем замены этих вызовов при их исполнении интерпретатором. Все действия интерпретатора 130, не разрешенные контейнером безопасности, блокируются приложением безопасности 205. Контейнер безопасности 210 содержит политики ограничения действий 230 для интерпретатора 130. В общем случае контейнер безопасности 210 адаптируется приложением безопасности 205 под среду выполнения. Политики ограничения действий 230 зависят от версии операционной системы 110, от типа учетной записи, от аппаратного обеспечения компьютера, от сегмента сети, в котором находится компьютер.
В одном из вариантов реализации контейнер безопасности 210 содержит политики ограничения действий 230, которые определяют ограничения как для действий интерпретатора 130, так и для действий запускаемых им программ. Например, может быть разрешен запуск приложений определенной категории (например, браузеров) или запуск любых дочерних процессов.
В одном из вариантов реализации контейнер безопасности 210 содержит список разрешенных дисковых операций чтения/записи 240. Например, разрешено чтение определенных форматов файлов или любая запись на диск.
В еще одном варианте реализации контейнер безопасности 210 содержит набор разрешенных операций 250 с операционной системой 110 и/или с ее компонентами. Например, правила могут разрешать обращение к реестру операционной системы 110 и его изменение, взаимодействие с сервисами и службами операционной системы 110 (например, определен список разрешенных для взаимодействия с интерпретатором 130 служб), разрешения работы с драйверами, с сервером сценариев операционной системы 110 и с инструментарием управления операционной системой 110.
В еще одном варианте реализации контейнер безопасности 210 определяет разрешенные сетевые операции, регулирующие доступ в сеть 260, для интерпретатора 130. Например, доступ в интернет, разрешенные для доступа сегменты локальной сети, разрешения доступа в зависимости от учетной записи, из-под которой запущен интерпретатор 130.
В одном из вариантов реализации информация о доверенных файлах сценария находится в хранилище доверенных файлов сценария 220. При этом хранилище доверенных файлов сценария 220 может находиться как на компьютере пользователя, так и на сетевом сервере. В одном из вариантов реализации доверенным считается файл сценария 120, который был признан безопасным в результате антивирусной проверки. В другом варианте реализации информация о файле сценария 120 добавляется в хранилище доверенных файлов сценария 220 администратором сети. В еще одном варианте реализации файл сценария 120 считается доверенным, если на других компьютерах сети он был признан доверенным, то есть с использованием технологии «мудрость толпы» (англ. wisdom of the crowd). В еще одном варианте реализации файл сценария 120 считается доверенным, если он был получен от доверенного источника.
В одном из вариантов реализации в хранилище доверенных файлов сценария 220 сохраняется уникальная информация, характеризующая файл сценария 120, например цифровая подпись или хэш-сумма файла. В одном из вариантов реализации в хранилище доверенных файлов сценария 220 вносится информация о пути (расположение на диске или сетевой путь к файлу) и формате доверенного файла сценария.
В частном варианте реализации, если файл сценария 120 в процессе работы в системе изменяется, то информация о нем может храниться в неявном виде. Например, если файл сценария 120 представляет собой текстовый файл (данные внутри файла представлены в текстовом виде построчно), в новой версии сгенерированного файла изменяется несколько строк, то в хранилище доверенных файлов сценария 220 сохраняется хеш-сумма от неизменяемой части файла и номера изменяемых строк.
Контейнер безопасности 210 в частном случае реализации содержит информацию из хранилища доверенных файлов сценария 220, а приложение безопасности 205, используя эту информацию, блокирует запуск недоверенных файлов сценария 120.
В одном из вариантов реализации контейнер безопасности 210 содержит запрещенные действия 280 для интерпретатора 130. В случае выполнения запрещенного действия 280 интерпретатором 130 выполнения всего файла сценария 120 блокируется приложением безопасности 205.
В одном из вариантов реализации контейнер безопасности 210 содержит виртуальные действия 290 для интерпретатора 130. Виртуальное действие соответствует разрешенному действию. В одном из вариантов реализации виртуальное действие 290 представляет собой действие, которое выполняется операционной системой 110 вместо разрешенного действия. Приложение безопасности 205 в данном случае перехватывает выполняемое разрешенное действие интерпретатора 130 и подменяет его виртуальным действием 290. Например, получение данных из сети заменяется чтением данных из файла. В одном из вариантов реализации одному разрешенному действию может соответствовать более одного виртуального действия 290. В другом варианте реализации виртуальное действие определяется как действие, которое не выполняется в операционной системе 110, но результат выполнения генерируется приложением безопасности 205 и возвращается интерпретатору 130. Например, интерпретатор 130 запрашивает запись в реестр, приложение безопасности 205 перехватывает запрос, запись в реестр не выполняется, но интерпретатору 130 возвращается результат, отражающий успешную запись в реестр.
В одном из вариантов реализации для одного интерпретатора 130 создается один контейнер безопасности 210. В другом варианте реализации один контейнер безопасности 210 создается для нескольких интерпретаторов 130. В другом варианте реализации одному интерпретатору 130 может соответствовать несколько контейнеров безопасности 210. При этом, если один контейнер безопасности 210 содержит разрешение, например, на доступ в сеть, а другой контейнер его не содержит, то доступ в сеть блокируется приложением безопасности 205 при работе интерпретатора 130.
В одном из вариантов реализации контейнер безопасности 210 содержит определение разрешений для форматов, неконтролируемых интерпретатором 130. Контролируемым в контексте настоящего изобретения является формат, который может исполняться интерпретатором 130. Например, контейнер безопасности определяет, что интерпретатору 130 разрешено обращаться к файлам неконтролируемых форматов для чтения и записи.
Стоит отметить, что контейнер безопасности 210 может быть изменен, например, администратором сети.
Пример контроля и ограничения выполнения файла сценария 120 в операционной системе 110 представлен ниже.
Операционная система 110 производит попытку запуска файла. Операционная система 110 определяет соответствующий файлу сценариев 120 интерпретатор 130 и выполняет запуск интерпретатора 130. Далее приложение безопасности 205 перехватывает попытку запуска. Приложение безопасности 205 ищет информацию о файле сценария 120 в хранилище доверенных файлов сценария 220. В случае если файл сценария 120 отмечен в хранилище 220 как доверенный, приложение безопасности 205 определяет все контейнеры безопасности, соответствующие интерпретатору 130. Далее приложение безопасности 205 разрешает (не блокирует) начало выполнения файла сценария 120. Во время выполнения файла сценария 120 приложение безопасности 205 перехватывает операции, выполняемые интерпретатором 130. Действия интерпретатора 130, не разрешенные контейнерами безопасности 210, блокируются.
Фиг. 3 отображает способ блокировки выполнения интерпретатором файла сценария при выполнении интерпретатором действий, не разрешенных контейнером безопасности интерпретатора.
На начальном этапе 310 создают контейнер безопасности, содержащий набор политик ограничения действий 230 для интерпретатора 130. В одном из вариантов реализации контейнер безопасности может быть создан с помощью приложения безопасности 205. В частном варианте реализации контейнер безопасности содержит информацию о доверенных файлах сценария 120. В одном из вариантов реализации контейнер безопасности интерпретатора содержит список дисковых операций чтения записи 240, разрешенных интерпретатору 130. В одном из вариантов реализации контейнер безопасности интерпретатора содержит разрешенных операций с операционной системой 250. В еще одном варианте реализации контейнер безопасности интерпретатора содержит список сетевых операций 260. В еще одном варианте реализации контейнер безопасности интерпретатора содержит список запрещенных действий 280. В еще одном варианте реализации контейнер безопасности интерпретатора определяет список виртуальных действий 290 для интерпретатора 130. При этом одному интерпретатору 130 может соответствовать несколько контейнеров безопасности 210.
Далее на этапе 320 проверяют доверенность файла сценария 120. Доверенным файл сценария 120 считается, если уникальная информация, характеризующая файл файла сценария (например, цифровая подпись или хеш-сумма), соответствует информации, хранящейся в контейнере безопасности. Выполнение доверенного файла сценария 120 разрешается. Если файл сценария 120 недоверенный, то его выполнение блокируется 365.
Далее на этапе 330 перехватываются действия интерпретатора с файлом сценария 120. Перехват может осуществляться, например, приложением безопасности 205, которое в частном случае может являться антивирусным программным обеспечением.
Далее на этапе 340 анализируют соответствие перехваченного действия контейнеру безопасности интерпретатора 210. На этапе 345, если перехваченное действие запрещено контейнером безопасности 210, то выполнение файла сценария 210 интерпретатором 130 блокируется 365. На этапе 350, если перехваченное действие не ограничено контейнером безопасности 210, оно выполняется 360. В ином случае выполняют действие 355, применяя ограничения, определенные контейнером безопасности 210. В одном из вариантов реализации выполнение действия блокируется. В другом варианте реализации выполняется виртуальное действие (если действие). Далее происходит возврат к этапу 330, где продолжается перехват действий интерпретатора 130.
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.