СПОСОБ АВТОМАТИЧЕСКОЙ НАСТРОЙКИ СРЕДСТВА БЕЗОПАСНОСТИ
METHOD FOR AUTOMATIC ADJUSTMENT OF SECURITY MEANS

Область техники
Настоящее изобретение относится к способам обеспечения безопасности компьютерных систем и более конкретно к способам автоматической настройки средств безопасности во время исполнения прикладных программ.
Уровень техники
Для обеспечения максимального уровня защищенности компьютерных систем (КС) от постоянно растущего количества угроз компьютерной безопасности производители средств безопасности КС и сетей постоянно развивают и совершенствуют методы обнаружения вредоносных программ и их компонент. Вместе с этим повышается ресурсоемкость решений безопасности и количество их возможных настроек. Таким образом, формируется новая техническая задача в области обеспечения безопасности КС - оптимизировать работу средств безопасности в зависимости от конфигурации КС для каждого доверенного пользовательского приложения или группы приложений. Оптимизация позволяет исключить ошибки обнаружения, не производить дополнительные малоэффективные проверки с целью минимизации использования ресурсов, а также правильно настроить компоненты средства безопасности, чтобы пользовательское приложение работало без дополнительных ресурсных ограничений и конфликтов со средством безопасности. При этом оптимизация не должна понижать необходимый уровень безопасности, обеспечиваемый средствами безопасности КС. Процесс оптимизации должен быть полностью автоматизирован или проходить с минимальным участием пользователя (администратора). Это, в частности, не позволяет реализовать принцип минимально возможных привилегий, заключающийся в том, что доверенное приложение должно получать не полные привилегии, а ограниченный набор прав, необходимых для нормального функционирования.
В большинстве существующих систем безопасности, осуществляющих контроль приложений, процесс оптимизации ограничен обновлением черных и белых списков приложений, который не позволяет дифференцировать настройки для двух доверенных приложений, находящихся в белом списке.
Из уровня техники известны системы, в которых для некоторых программ применяют отдельные политики безопасности. Примером таких приложений являются почтовые клиенты, для безопасности которых повышают уровень сетевой защиты за счет увеличения мощности сетевых фильтров и применяют детальную проверку вложенных в письма файлов на наличие вредоносных объектов. Другим примером оптимизации контроля приложений является работа антивируса в специальном режиме во время работы игрового приложения. При этом антивирусная служба потребляет минимально возможное количество вычислительных ресурсов, откладывает запуск запланированных задач и изменяет ряд других настроек, чтобы не создавать конфликтов с игровым приложением.
Средство компьютерной безопасности, в частности, антивирус имеет ограниченное количество настроек. Формирование базы данных настроек и их применение в зависимости от конфигурации, пользователя, месторасположения КС и других факторов является тривиальной задачей, если соответствующая настройка формируется администратором КС вручную или задается прямым соответствием, например, с помощью таблицы или набора экспертных правил. Так, из уровня техники известны сервисы, позволяющие настраивать средства контроля доступа путем загрузки соответствующих профилей с удаленного сервера администрирования, описанные в публикациях US 7197550, US 20070209076. Предложенные в описаниях решения осуществляют настройку системы безопасности, в частности настройку системы контроля доступа, основываясь на информации о пользователе и работающем приложении. В отличие от существующей техники, описанное далее изобретение позволяет произвести более точную настройку безопасности компьютера пользователя за счет автоматизации процесса анализа пользовательского приложения и конфигурации системы, что позволяет сократить потребление вычислительных ресурсов компьютера пользователя и при этом применить эффективные меры защиты в отношении приложения и непосредственно хоста.
В US 7979849 и US 20110314343 описаны средства тестирования программных продуктов, основанные на исследовании графических интерфейсов и программных процессов. Отличительной особенностью заявляемого изобретения является усовершенствованный способ исследования программы не только с помощью ведения журналов событий, но и с помощью эмуляции различных условий исполнения программ, сбора статистики и симуляции воздействий на интерфейс программы.
Анализ предшествующего уровня техники и возможностей, которые появляются при их комбинировании, позволяют получить новый результат, а именно способ автоматической настройки средства безопасности. Отличительные особенности и характерные признаки настоящего изобретения более подробно раскрываются в описании вариантов осуществления.
Сущность изобретения
Настоящее изобретение предназначено для автоматизации процесса настройки средства безопасности во время работы прикладной программы с учетом функциональных особенностей данной программы.
Технический результат настоящего изобретения заключается в модификации средства безопасности для приоритизации выполняемых средством безопасности операций во время исполнения прикладной программы.
Применение изобретения на практике позволяет автоматически изменять настройки средства безопасности в зависимости от конфигурации компьютерной системы и ее изменений. При запуске приложения автоматически применяются определенные настройки средства безопасности, которые к тому же варьируются в зависимости от факторов, характеризующих текущее состояние компьютерной системы.
Технический результат достигается за счет анализа процессов исполнения прикладной программы и средства безопасности, совместно исполняющихся на компьютерной системе при различных конфигурациях компьютерной системы.
Способ автоматической модификации средства безопасности состоит из этапов, на которых: (а) проверяют приложение на соответствие критериям безопасности; (б) если приложение соответствует критериям безопасности, то приложение запускают на исполнение в тестовом режиме; (в) переключают сценарии исполнения приложения; (г) регистрируют операции, выполняемые средством безопасности во время исполнения сценариев приложения, при этом регистрируют операции, связанные с исполняемым приложением; (д) определяют приоритеты для зарегистрированных операций; (е) формируют набор инструкций, производящих модификацию средства безопасности, при этом модификация средства безопасности обеспечивает выполнение операций средством безопасности в зависимости от упомянутого приоритета; (ж) модифицируют средство безопасности путем исполнения сформированного набора инструкций.
Способ исследования приложений для автоматической настройки средства безопасности состоит из этапов, на которых: (а) приложение запускают на исполнение в реальном режиме, по меньшей мере, на одной компьютерной системе; (б) определяют сценарий исполнения приложения в реальном режиме; (в) регистрируют операции, выполняемые средством безопасности во время исполнения сценария приложения, при этом регистрируют операции, связанные с исполняемым приложением; (г) проверяют приложение на соответствие критериям безопасности; (д) если приложение соответствует критериям безопасности, то для зарегистрированных операций определяют приоритеты; (е) формируют набор инструкций, производящих модификацию средства безопасности, при этом модификация средства безопасности обеспечивает выполнение операций средством безопасности в зависимости от упомянутого приоритета; (ж) модифицируют средство безопасности путем исполнения сформированного набора инструкций.
В различных вариантах реализации в качестве критериев безопасности используют каждое или совокупность следующих условий: наличие цифровой подписи приложения; отсутствие вредоносных объектов в приложении; отсутствие уязвимостей в приложении; соответствие рейтинга безопасности доверенному.
Тестовый режим исполнения приложения в одном из вариантов осуществления реализуют за счет исполнения приложения в эмулируемой среде. Другим вариантом реализации тестового режима является применение симулятора действий пользователя компьютерной системы при исполнении приложения. Тестовый режим исполнения приложения в частном варианте реализован с применением симулятора действий пользователя компьютерной системы при исполнении приложения в эмулируемой среде.
Реальный режим исполнения приложения в одном из вариантов реализации осуществляется за счет исполнения приложения на процессоре и в памяти компьютерной системы при взаимодействии пользователя компьютерной системы с приложением.
Переключение сценариев исполнения приложения в различных вариантах реализации осуществляется путем изменения настройки приложения и/или путем вызова, по меньшей мере, одной пользовательской функции приложения. Сценарий исполнения приложения в частном варианте реализации определяется настройкой приложения и/или вызовом, по меньшей мере, одной пользовательской функции приложения.
Регистрация операций приложения и средства безопасности в одном из вариантов реализации включает перехват вызовов функций операционной системы.
Приоритеты выполняемых средством безопасности операций в частном варианте реализации определяют таким образом, что минимальное значение приоритета соответствует исключению операции. Максимальное значение приоритета в частном варианте реализации соответствует проведению операции при первой технической возможности.
Способ автоматической модификации средства безопасности и способ исследования приложений для автоматической настройки средства безопасности в различных конфигурациях компьютерной системы и компьютерной сети реализуются на одной или нескольких компьютерных системах. В случае, когда способ реализован, по меньшей мере, на двух компьютерных системах, исполнение приложения осуществляется на компьютерной системе, отличной от той, где установлено средство безопасности.
Для применения сформированного набора инструкций на компьютерных системах, отличных от той, для которой применялся способ автоматической модификации средства безопасности, частный вариант реализации дополнительно включает этап, на котором сохраняют сформированный набор инструкций.
Краткое описание прилагаемых чертежей
Сопровождающие чертежи, которые включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами, на которых:
Фиг.1 показывает функциональную схему системы анализа совместимости приложения и антивируса.
Фиг.2 показывает схему управления автоматической настройкой в корпоративной сети.
Фиг.3 показывает способ автоматической настройки средства безопасности.
Фиг.4 показывает алгоритм настройки средства безопасности в процессе работы КС.
Фиг.5 показывает пример компьютерной системы общего назначения.
Описание предпочтительных вариантов осуществления
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Прикладная программа или приложение - программа, предназначенная для выполнения определенных пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем. В большинстве операционных систем прикладные программы не могут обращаться к ресурсам КС напрямую, а взаимодействуют с оборудованием и системными ресурсами посредством операционной системы. Компьютерной программой называется совокупность последовательности команд, предназначенных для управления устройствами КС с целью реализации определенного алгоритма, и данных, используемых при выполнении этих команд. В контексте данного документа будут рассматриваться программы типа приложений, т.е. программы, имеющие, по меньшей мере, консольный интерфейс управления и решающие определенные пользовательские задачи. Примером прикладных программ являются офисные программы для работы с электронными документами, коммуникаторы, веб-браузеры, компьютерные игры и многие другие приложения.
Каждое приложение для решения пользовательских задач использует различные системные ресурсы, в том числе устройства, файлы, системные сервисы, доступ к которым осуществляется через API-функции (Application Programming Interface) операционной системы или среды исполнения. Каждое приложение имеет множество настроек, функциональных возможностей, доступных пользователю или администратору через некоторый интерфейс.
Существует множество способов организации интерфейсов. Первым способом организации взаимодействия пользователя с ЭВМ является текстовый пользовательский интерфейс. Примером такого интерфейса является консоль управления, посредством которой осуществляется ввод информации и указание команд. При этом отображение информации осуществляется также в текстовом или псевдографическом формате. В текстовом интерфейсе реализованы все базовые элементы управления программой-меню, кнопки, переключатели, флажки, выпадающие списки, полосы прокрутки и так далее.
Управление приложением может также осуществляться без использования пользовательского интерфейса. Для этого применяются средства администрирования или производится непосредственная модификация ресурсов приложения (файлов, ключей реестра, процесса, памяти и т.д.). Для внесения изменений в работу приложения может быть получена определенная команда как локальная, так и сетевая, изменены файлы приложения, например, файл конфигурации.
Исполнение приложения с определенным набором настроек с момента воздействия на приложение управляющего сигнала и до момента завершения обработки приложением данного сигнала будет определяться как сценарий исполнения приложения в рамках данного описания. Функционал приложения может быть представлен как набор из конечного числа сценариев. Подобное логическое разделение приложения на функциональные блоки позволяет получить более явное представление о возможностях и функциях программы при тестировании неизвестного приложения. Информация о том, какие функции используются и какие ресурсы необходимы для корректной работы программы, позволяет настроить работу средства безопасности более точно. Далее в описании будет более подробно описана взаимосвязь функциональных возможностей приложения и настроек компонент защиты, входящих в состав средства безопасности.
Для надежного обеспечения безопасности КС необходимо внедрение системы безопасности, состоящей из программно-аппаратных модулей, установленных как на КС, так и на внешних сетевых узлах. Под узлами сети понимаются компьютеры, серверы и сетевое оборудование, обеспечивающее связь компьютеров и серверов. Оптимизация работы системы безопасности для совместной работы с приложением предполагает проведение тонкой настройки всех составных модулей.
Средства безопасности в зависимости от их специализации предназначены для проверки файлов на наличие вредоносных объектов, фильтрации сетевого трафика, анализа программных процессов, фильтрации почтовых сообщений, защиты от несанкционированного доступа, предотвращения вторжений, обнаружения аномалий в сети и других. Такое разнообразие средств защиты объясняется постоянным ростом вредоносных программ, атак на корпоративные вычислительные сети и появлением новых видов угроз, направленных на новые ресурсы сети.
В качестве примера далее будет рассмотрена настройка средства безопасности, установленного на той же КС, на которой исполняется приложение. В других вариантах реализации функционал приложения может влиять также на оптимизацию параметров работы средства безопасности, установленного на другом сетевом узле, отличном от того, где исполняется данное приложение.
Ключевым элементом защиты КС является антивирус. Современные антивирусные решения включают в себя функционал, выходящий за рамки проверки файлов на содержание вредоносного кода. В данном документе антивирус следует рассматривать как синоним средству безопасности для КС. В зависимости от версии антивирусного средства функциональные возможности включают защиту КС, защиту информации, родительский контроль, модули управления и синхронизации с другими средствами безопасности.
Защита КС предназначена для борьбы против известных и новых угроз, сетевых атак, мошенничества, спама и нежелательной информации. Каждый тип угроз обрабатывается отдельным компонентом защиты. Независимо друг от друга можно включать и выключать компоненты защиты, а также настраивать их работу. В дополнение к постоянной защите, реализуемой компонентами защиты, формируются задачи периодической проверки КС, чтобы исключить возможность распространения вредоносных программ, которые не были обнаружены на первых этапах проверки.
Защиту КС в реальном времени осуществляют такие компоненты,
как:
файловый антивирус, который проверяет все открываемые, сохраняемые и запускаемые файлы на КС и на всех подключенных дисках;
почтовый антивирус, который проверяет входящие и исходящие почтовые сообщения;
веб-антивирус, который контролирует выполнение скриптов на вебсайтах, проверяет веб-трафик и блокирует доступ к опасным веб-сайтам;
IM-антивирус, который обеспечивает безопасность обмена быстрыми сообщениями;
компонент проактивной защиты, который позволяет предотвратить выполнение вредоносной операции, основываясь на контроле и анализе поведения всех программ, установленных на КС.
компонент контроля приложений, который регулирует деятельность программ, в том числе управляет доступом приложений к различным ресурсам, исходя из того, к какой группе компонент относит данную программу;
сетевой экран, который обеспечивает безопасность работы в локальных сетях и Интернете, фильтруя сетевой трафик и блокируя аномальную активность;
анти-спам, который проверяет все входящие почтовые сообщения на наличие спама.
Защита информации подразумевает под собой соблюдение целостности, конфиденциальности и доступности данных и обеспечивается следующими функциями антивируса:
резервное копирование, позволяющее создавать резервные копии данных в специальном хранилище и в случае потери данных восстанавливать данные;
шифрование данных, обеспечивающее дополнительную защиту конфиденциальным данным, помещая данные в зашифрованные контейнеры или производя полное шифрование дисков;
менеджер паролей, хранящий пароли от учетных записей в Интернете, программах и баз данных в специальном защищенном пространстве.
Компонент родительского контроля дает возможность установить гибкие ограничения доступа к интернет-ресурсам и программам, а также вести отчетность активностей пользователей на КС.
Центр управления используется в тех случаях, когда пользователь работает в домашней сети из нескольких КС, и необходим для обеспечения равновысокого уровня безопасности каждого устройства сети. Модули управления и синхронизации осуществляют обновление антивирусных баз и компонент, управляют задачами проверки и инцидентами безопасности, аккумулируют отчеты о работе антивирусных служб и обеспечивают удаленное управление ими.
Каждый из перечисленных компонент антивируса имеет определенные настройки, которые можно изменить. Помимо того, что компонент может быть включен или выключен, также существует возможность изменить параметры его работы. В основе большинства средств обнаружения лежат правила, основанные на четком и нечетком сравнении. Поэтому настройка компонент включает в себя, по меньшей мере, изменение списков сигнатур вредоносных объектов и угроз и/или изменение пороговых значений для анализаторов. Более тонкая настройка, заключающаяся в изменении алгоритмов обнаружения, осуществляется путем обновления компонент антивируса.
Как правило, каждый компонент антивируса анализирует определенный тип объектов, таким образом, обновление сигнатур объектов соответствующего класса будет являться настройкой одного или нескольких компонент антивируса.
Можно выделить несколько основных типов объектов, которые обрабатываются анализаторами для выявления вредоносного функционала или угрозы: адрес ресурса, сетевой пакет, файл, сообщение (электронное письмо), устройство, программный процесс (поток, операция). Каждый из данных типов может быть охарактеризован набором параметров.
Для файла данными параметрами являются: имя, размер, хеш-сумма, цифровая подпись, путь к файлу на диске, платформа для открытия или запуска файла и др. По набору параметров можно с большой вероятностью идентифицировать необходимый файл. Для идентификации исполняемого файла также используют эвристические анализаторы, которые основаны на поведенческих сигнатурах. Поведенческие сигнатуры могут быть различными, например, ими могут быть строки исходных кодов, трассы выполнения программ или графы вызовов.
Сетевой пакет характеризуется протоколом передачи данных, содержимым заголовков и телом пакета (содержимым поля данных). Третий тип объектов, адрес ресурса, который указывает расположение вредоносного или нежелательного объекта, задается почтовым адресом, сетевым адресом, доменным именем, именем хоста, физическим адресом, сетевым портом и др. Также отдельно стоит выделить такой тип, как учетная запись, под которой работает пользователь. Это может быть полезно для ограничения прав для данного пользователя.
Под электронным письмом понимается почтовое сообщение, сообщение ICQ, Skype, Messenger и других сервисов быстрого обмена сообщениями. Данные объекты исследуются на предмет спама с помощью лексических и графических сигнатур и фильтруются по почтовым адресам отправителей (получателей).
Еще одним типом объекта, который может быть занесен в черный или белый список, является устройство. Под устройством в данном контексте понимается внешнее запоминающее устройство, устройство ввода/вывода, мультимедийные средства, например, плеер или фотоаппарат. Их можно идентифицировать по серийному номеру, производителю и модели.
Контроль приложений основывается на ведении и анализе истории операций, выполняемых приложением. Хоть данный метод защиты относится к эвристическим методам обнаружения, а не к сигнатурным, правила, используемые при оценке безопасности приложения, накладываются на операции и ресурсы приложения. Таким образом, стоит выделить еще один тип объектов, которые обрабатываются антивирусом - программные процессы. Под этим типом понимаются отдельные операции или наборы операций, составляющие одно или несколько системных событий компьютера, например, вызов функции операционной системы, прямое обращение к устройству, чтение памяти и другие действия.
Вышеперечисленная классификация объектов, хранящихся в белых и черных списках антивирусной базы, служит примером и не ограничивает перечень хранящихся в базе объектов.
В процессе работы приложения антивирус в зависимости от сценариев исполнения приложения будет обрабатывать различные типы объектов, перечисленные выше. Данное изобретение позволяет сократить количество действий, выполняемых антивирусом для проверки работы приложения, в том случае если приложение признано доверенным. При этом полное отключение компонент защиты в процессе работы доверенного приложения может привести к заражению, потере данных и нанесению другого ущерба для пользователя или компании, поэтому настройка должна быть произведена на основании исследования приложения и адаптирована под сценарий исполнения приложения. Решение этой нетривиальной задачи позволяет обеспечить эффективную защиту КС и информации, обрабатываемой на КС, сокращая при этом количество затрачиваемых вычислительных ресурсов.
Для определения степени доверия приложения существует ряд критериев, каждому или части из которых приложение должно соответствовать. К критериям безопасности приложения относятся следующие факторы: наличие цифровой подписи; репутация правообладателя объекта; статистика по использованию данного объекта, собранная с множества КС; отсутствие признаков известных вредоносных или нежелательных объектов; отсутствие критических уязвимостей в текущей версии приложения; проведенная экспертиза приложения в антивирусной лаборатории. Данный список критериев приведен в качестве примера и не является исчерпывающем.
Пользователь или администратор может редактировать список доверенных приложений, добавляя или удаляя приложения из него, а также изменять критерии автоматического добавления приложения в список доверенных приложений. Пример правила, установленного пользователем или администратором, может выглядеть так: «Добавлять в список доверенных приложений все программы, выпущенные компанией Microsoft» или «Исключать из списка доверенных приложений все программы без цифровой подписи».
Другим вариантом использования заявленного изобретения является настройка антивируса для обеспечения безопасности работы критически важных приложений. К подобным приложениям могут относиться клиентские программы для осуществления финансовых операций, программы, обрабатывающие конфиденциальную информацию или плохо защищенные программы. В этом случае приложение может являться доверенным, но требует постоянного контроля. Если включить все компоненты антивируса одновременно на максимальный уровень защиты (установить максимальную глубину проверок), нагрузка на процессор и память возрастут настолько, что это в различные промежутки времени будет создавать проблемы для реализации пользовательских задач. При этом часть функционала антивируса в зависимости от текущих сценариев исполнения приложения не будет приносить полезный вклад в повышение уровня безопасности КС и обрабатываемых данных. Обеспечение эффективного уровня защиты с минимальным потреблением вычислительных ресурсов для критически важных приложений является второй задачей, которую решает данное изобретение.
Рассмотрим более подробно процесс анализа совместимости приложения и антивируса на функциональной схеме одного из вариантов реализации, показанной на Фиг.1. Предложенный вариант реализации предполагает исполнение приложения 120 в реальной или эмулируемой компьютерной системе, но данный пример не ограничивает применение концепции тестирования совместимости приложения и средства безопасности в статическом режиме, например, с применением дизассемблирования и семантического анализа.
Взаимодействуя с приложением 120 через интерфейс 121 или внося непосредственные изменения в код приложения 120, пользователь 100 и администратор могут совершать управление приложением: производить настройку, вызывать функции приложения, устанавливать и обновлять компоненты приложения и т.д. Действия пользователя 100 могут быть воспроизведены искусственным путем с помощью симулятора 110. В процессе исполнения приложение взаимодействует с файловой системой 191 - читает и записывает, создает и удаляет файлы; с сетевыми интерфейсами 193 - принимает и отправляет данные по сети; с устройствами ввода-вывода 194 - обрабатывает введенные с клавиатуры или с помощью манипуляторов данные; с службами ОС 192 и с другими программными и аппаратными компонентами компьютера. Взаимодействие приложения с компонентами осуществляется через API-функции операционной системы 125. Именно вызываемые API-функции определяют функционал, реализованный в приложении, а также используются антивирусом для анализа безопасности приложения и обрабатываемых данных.
Большинство антивирусов перехватывают вызовы функций операционной системы, внедряя собственный обработчик 131. Это может быть реализовано различными способами: установкой драйвера, модификацией ядра операционной системы и другими известными способами. При этом антивирус может обрабатывать ограниченный набор вызовов функций, который включает критические функции, используемые злоумышленниками для совершения вредоносных действий. На схеме изображен регистратор 141, который также предназначен для отслеживания последовательности выполняемых действий приложением, однако не ограничивается определенным списком операций, а регистрирует все выполняемые действия приложения. В других вариантах реализации антивирусный обработчик 131 и регистратор 141 реализуются в одном модуле.
Получив от обработчика 131 информацию о перехваченном вызове API-функции, антивирус 130 осуществляет проверку непосредственно самого действия и объектов, к которым данное действие адресуется. Например, приложение осуществляет операцию с файлом, тогда антивирус проверяет доступ приложения и пользователя к файлу, возможность чтения и модификации данного файла приложением, наличие в файле вредоносных или потенциально опасных объектов. В процессе работы антивируса 130 и приложения ведутся журналы операций антивируса и приложения. Журналы 150, 151 синхронизируются таким образом, что операции приложения и операции антивируса связаны причинно-следственным отношением. Это означает, что каждому действию антивируса можно сопоставить действие или набор действий приложения, которые явились основанием для проверки антивирусом. Ведение журналов 150, 151 позволяет определить обратную взаимосвязь, чтобы установить, какие действия с приложением приведут к срабатыванию антивируса, и, более конкретно, к срабатыванию определенного компонента антивируса.
Для доверенных приложений работу антивируса можно оптимизировать, добавив используемые приложением ресурсы в список доверенных объектов, которые будут исключаться из задач проверок. Задать возможные упрощения в работе антивируса во время обеспечения безопасности приложения можно с помощью экспертных правил, которые пополняются специалистами по информационной безопасности. При этом важно отметить, что специальная настройка антивируса не просто исключает доверенные объекты из проверок, а настраивает компоненты в зависимости от типа объекта и функциональной нагрузки (некоторыми компонентами проверка исключается, некоторыми усиливается, для остальных указывается глубина проверки).
Как было отмечено ранее, настройка компонент антивируса не ограничивается обновлением сигнатурных баз. Также могут быть скорректированы правила работы отдельных модулей. Большой вклад в оптимизацию работы антивируса можно внести, изменяя правила и параметры средств контроля приложений. Например, технология, основанная на оценке репутационного рейтинга программного процесса, имеет большое количество настраиваемых параметров, которая в различных вариантах реализации применяется во многих современных антивирусах. Более подробное описание технологии имеется в публикации патента на полезную модель RU 101233.
Применение репутационных методов обнаружения угроз позволяет разделять программы, не только на доверенные и вредоносные, но и определять потенциально опасные программы, на которые накладываются ограничения в зависимости от значения рейтинга, который, как правило, выражается в относительных величинах и составляет от «0» до «100» процентов. Рейтинг имеет две составляющие: статическую и динамическую. Перед запуском файла модуль контроля приложений анализирует следующие параметры: имя файла, размер файла, местонахождение файла, параметры сжатия, источники файла. Эти критерии определяют статический рейтинг файла. Таким образом, применение данного изобретения позволит исключить полностью или существенно сократить процесс расчета статической составляющей рейтинга для доверенного приложения. В процессе исполнения приложения (на хосте или в эмуляторе) рассчитывается вторая составляющая рейтинга - динамическая. Для этого модуль контроля приложений отслеживает действия программы и оценивает риск опасности для каждой из них по предустановленным критериям оценки. Для доверенных приложений применение описываемого изобретения может заключаться в изменении критериев оценки, например, в сокращении размера риска, проставляемого каждому фиксированному действию или набору действий приложения. Попытка записи и чтения памяти другого процесса, создание исполняемых файлов, попытка модификации системных файлов и системного реестра, обработка конфиденциальной информации, удаление файлов за пределами каталога приложения, регистрация драйвера и службы и многие другие подозрительные с точки зрения компьютерной безопасности действия повышают динамическую составляющую рейтинга. При этом для доверенного приложения применение описываемой технологии тонкой настройки позволит сократить количество проверок, исключив некоторые операции из факторов оценки рейтинга. Получив суммарный рейтинг, антивирус ограничивает те процессы, рейтинг которых слишком велик (т.е. они потенциально опасны).
Для ограничения использования ресурсов применяется система IPS (Intrusion Prevention System - система предотвращения вторжений, объединяющая функционал проактивной защиты и сетевого экрана, которая управляет разрешениями на доступ к файлу, реестру, системным правам и т.д.). Для опасных процессов можно запретить использовать сеть и доступ в Интернет, ограничить использование памяти и т.д. У каждого правила простановки рейтингов есть собственные параметры, такие как идентификатор, API-функция, условия для аргументов (которые задают промежуток значений для того или иного уровня опасности в процентном соотношении), оценка в процентах по количеству операций (1, 2-3, больше 3 операций), решение о возможности признать процесс вредоносным на основании этого правила. Тонкая настройка антивируса для доверенного приложения может указать перечень идентификаторов правил, по которым будут контролироваться работа приложения и накладываться ограничения, а также может изменять параметры правила, например, указать, что ни одно из правил не может признать файл вредоносным.
Далее будут приведены примеры по тонкой настройке антивируса под приложения различных типов, с которыми антивирус чаще всего вступает в конфликт из-за функций приложения, близких к аномальным или вредоносным.
Для сетевых утилит, типа сканер сети, антивирус часто выдает ошибки о ложном срабатывании, т.к. приложения данного типа производят действия, аналогичные программам вредоносного характера, которые собирают информацию о конфигурации сети, осуществляют поиск уязвимостей для заражения и эксплуатации компьютеров. При работе подобных приложений необходимо отключить компонент защиты от сетевых атак и проверку трафика веб-антивирусом.
Особенность приложений для распределенного обмена файлами (Torrent-клиенты) заключается в генерации большого объема входящего и исходящего сетевого трафика, активном чтении и записи файлов с диска и на диск соответственно. Таким образом, оптимизация антивируса, проверяющего работу torrent-клиента, должна исключить проверку временных и загружаемых файлов. Для каждой КС параметры приложения, такие как каталог размещения на диске, конфигурационный файл приложения, версия и другие параметры могут различаться. Автоматизировать сбор информации о данном конкретном приложении и адаптировать настройку можно, например, с помощью сценария (скрипта). Сценарий сначала осуществляет поиск ключей реестра, каталогов и файлов, считывает необходимые для применения настройки данные, и затем на основании собранной информации применяет настройку антивируса с учетом особенностей данной КС. Для адаптации антивируса под функционал и настройку приложения распределенного обмена файлами скрипт выполняет следующие действия:
- определяется, запущено ли приложение;
- сканируются каталоги приложения для поиска конфигурационных файлов;
- определяются каталоги временных файлов и загружаемых файлов, после чего каталоги добавляются в список исключений при сканировании файлов антивирусом при обращении;
- определяются открытые приложением порты соединений и добавляются исключения в сетевой экран;
- устанавливается максимальный уровень (глубина) проверки загруженных файлов при открытии файлов другим приложением.
Возможность адаптировать настройки в автоматическом режиме является не единственным положительным эффектом использования сценариев автонастройки. Периодический запуск скриптов позволяет выявлять изменения в конфигурации приложений, например, при изменении каталогов хранимых файлов или версии приложения, и применять актуальные настройки для средства безопасности.
Еще одним показательным примером использования сценариев тонкой настройки является конфигурация антивируса на сервере базы данных для защиты от сетевых атак и несанкционированного доступа. Для построения эффективной и не ресурсоемкой защиты нужно определить: основные службы для работы базы данных, открытые порты и доступные для подключения сетевые адреса. Рассмотрим пример конфигурации антивируса для работы с сервером баз данных Oracle.
На сервере базы данных Oracle, как правило, установлено несколько служебных компонент. Определить список установленных компонент Oracle можно путем анализа ключа реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle. Данный ключ также содержит информацию о путях к корневым каталогам сервера, хранящим конфигурационные файлы listener.ora и tnsnames.ora. В первом файле хранятся параметры настройки подключений (какие порты и на каких интерфейсах сервер прослушивает), во втором - параметры настройки для клиента (параметры подключения клиентов).
По полученной информации из ключа реестра и конфигурационных файлов настраиваются компоненты антивируса, отвечающие за контроль приложений и веб-антивирус (фильтрация трафика). При этом фильтрация соединений может быть настроена таким образом, что настроенные соединения будут проходить свободно без проверки, а все остальные будут по умолчанию блокироваться веб-антивирусом.
На Фиг.2 показана схема управления автоматической настройкой в корпоративной сети, объединяющей КС (201, 202) и подключенной к серверу тонкой настройки 203. На КС (201, 202) установлены приложения (211-216) и средства безопасности 220. При этом приложения, установленные на различных КС, могут отличаться, по меньшей мере, версией или настройками. Компьютерная система 201 имеет установленные приложения А 211, В 212, С 213, а компьютерная система 202 - приложения X 214, Y 215, Z 216. Если на каждой КС применить одну и ту же политику безопасности, включающую настройку компонентов антивируса, обеспечиваемый уровень безопасности для двух КС с различными установленными приложениями будет отличаться при прочих равных обстоятельствах (аппаратной конфигурации). Различия между вычислительными ресурсами КС также должны учитываться при выборе политики безопасности. Обеспечение оптимальной с точки зрения ресурсоемкости, но эффективной с точки зрения безопасности настройки для средства безопасности осуществляет модуль тонкой настройки 230. Данный модуль может быть выполнен как отдельный сервер, являться частью сервера администрирования или может быть установлен на каждую КС. Модуль тонкой настройки осуществляет сбор информации о КС, после чего проводит поиск необходимых сценариев настройки в экспертной базе данных 232, создает соответствующую задачу изменения конфигурации КС и/или средства безопасности 220 (антивируса) с помощью средства формирования задач настройки 231. Когда задача начинает выполняться, сценарий настройки исполняется или передается на исполнение на КС в зависимости от того, установлен ли модуль тонкой настройки на КС или на удаленном сервере соответственно.
Экспертная база данных 232, используемая локально в рамках сети или отдельных устройств, хранит экспертные данные: сценарии настройки, правила, по которым осуществляется выбор необходимого сценария, и другие вспомогательные данные, необходимые для настройки КС и антивируса. В базу данных 232 выборочно загружается только необходимая информация из глобальной базы данных 244, поддерживаемой сервером тонкой настройки 203. Выбор загружаемых данных зависит от используемых в сети или на компьютере программ, географического положения, поддерживаемых версий средств безопасности.
Экспертные данные формируются на сервере тонкой настройки 203. Экспертиза приложения осуществляется с учетом статистической информации и системных журналов, загружаемых в средство сбора журналов 241. Другим вариантом анализа приложения является изучение совместимости приложения и антивируса в тестовой среде исполнения 242, реализуемой, например, с помощью симулятора ПО. Применение различных методов анализа совместимости приложения и антивируса в совокупности позволяет определить весь функционал приложения, выделить те функции приложения, которые вызывают срабатывания антивируса, и адаптировать средство безопасности под данный тип приложений или под каждое определенное приложение (версию приложения). Результаты обработки журналов и исполнения приложения в тестовой среде исполнения используются для обновления антивирусной базы данных сигнатурами белых (безопасных) и черных (вредоносных) объектов и для тонкой настройки доверенных и критических приложений. Сценарии (наборы инструкций настройки), примеры которых описаны выше, создает генератор сценариев настроек 160. Сценарии могут быть применены на компьютерах различной конфигурации. Входными параметрами для сценария являются: объем оперативной памяти, мощность процессора, версия приложения, расположение приложения на диске, модель средства безопасности (версия антивируса), параметры текущей настройки средства безопасности. Определив соответствующие параметры для КС, на которой проводится автоматическая настройка, сценарий обновляет списки белых и черных объектов (которые обрабатываются данной версией антивируса), устанавливает регуляторы модулей антивируса в соответствующие входным параметрам значения. Например, для компьютера с большой производительностью и для приложения с функцией загрузки файлов с удаленных источников глубина файловой проверки будет установлена максимальная, а для компьютера с небольшим объемом оперативной памяти и доверенного приложения с функцией проигрывания медиа-файлов с удаленного ресурса фильтрация трафика с проверенных сетевых адресов может быть отключена. Полученные сценарии настройки и метаданные к ним заносятся в глобальную базу данных, откуда загружаются в экспертные базы данных. Метаданные сценариев содержат: идентификатор, приложение или тип приложений, для которых сценарий осуществляет настройку, платформу, для которой написан скрипт, время выпуска сценария, показатели эффективности применения сценария, описание выполняемых модификаций и другую информацию, характеризующую данный сценарий.
На Фиг.3 изображен алгоритм способа автоматической настройки средства безопасности. Способ начинает работу при обнаружении нового неизвестного приложения, например, при загрузке приложения на компьютер пользователя 300. Инициировать начало работы способа можно также сканированием хранилищ для программ, оповещением от производителя ПО о выходе нового приложения, ручным запуском. После этого приложение должно быть проверено на соответствие критериями безопасности 305, чтобы определить является ли приложение доверенным. В случае несоответствия приложения критериями безопасности оно признается вредоносным, после чего процесс оптимизации настроек завершается на шаге 345. Если приложение прошло проверку и признано доверенным на шаге 310 начинается процесс исследования совместимости приложения и антивируса с различными настройками. При исполнении сценария приложения на этапе 315 регистрируются операции средства безопасности, связанные с операцией или набором операций, выполняемых приложением. Параллельно ведется журнал исполнения приложения. После того, как сценарий приложения отработан, исследование проводится для другого сценария исполнения приложения 325. Переключение сценария исполнения, как было отмечено ранее, осуществляется изменением настроек приложения, запуском пользовательской функции приложения и другими операциями. После того, как параллельная работа антивируса и приложения проанализированы (полностью или частично), для зарегистрированных операций антивируса определяются приоритеты 330. Приоритет операции фактически означает насколько необходимо оставить данную операцию и соответствующую функцию антивируса для обеспечения высокого уровня безопасности. Максимальный приоритет соответствует тем операциям антивируса, которые нельзя будет отключить даже при минимальных ресурсных возможностях компьютера и при полном соответствии приложения критериям безопасности. Минимальный приоритет операции означает, что соответствующая функция практически не вносит полезного вклада в обеспечение безопасности компьютерной системы при проверке работы доверенного приложения. Функции, состоящие из операций с минимальным приоритетом, исключают из функционала антивируса при проверке объектов данного приложения, но они могут быть вновь подключены, в случае, если на это будет хватать вычислительных ресурсов. Приоритет, отличный от минимального и максимального значения, означает зависимость операции и параметров соответствующего модуля антивируса от параметров компьютерной системы, которые сценарий настройки в дальнейшем будет определять и использовать в качестве входных параметров. Определение приоритета операции может быть реализовано применением экспертных систем (применение правил прямого соответствия значения приоритета и операции или типа операции); применением систем нечеткой логики, когда значение приоритета определяется множеством факторов с различными весовыми коэффициентами и другими методами функциональной зависимости.
Зарегистрированные операции и соответствующие им рассчитанные приоритеты транслируются в настройки средства безопасности на этапе 335. Настройки во множестве вариантов реализации могут представлять файлы или записи различных форматов: конфигурационный файл, файл разметки, набор управляющих команд. В предложенном примере реализации, настройки представляют собой набор инструкций (скрипт, сценарий). Данный формат позволяет хранить большое множество настроек и динамически определять необходимую настройку в зависимости от значений входных параметров.
После того, как сценарий настройки создан на этапе 335, он передается сначала в глобальную базу данных 224, затем в экспертную базу данных 232, и после этого инструкции сценария применяются 340 на КС. На этом этапе процесс оптимизации настроек антивируса для доверенных приложений завершается 345.
На Фиг.4 показан алгоритм настройки средства безопасности в процессе работы КС в зависимости от различных факторов. Устанавливаемые пользователем или администратором настройки и применяемые к КС политики безопасности в существующих системах статичны (не изменяются и не подстраиваются по работу КС) или имеют ограниченный перечень вариаций и большое время обновления (по отношению к скорости изменения состояний компьютера). Создание точных (тонких) настроек и применение сценариев настройки позволяет реагировать на изменения в КС и изменять параметры настройки, чтобы не создавать большую вычислительную нагрузку и постоянно поддерживать высокий уровень безопасности компьютера, данных, приложения и сети, к которой подключена КС. После того, как определены необходимые для данного компьютера настройки, на него загружаются наборы инструкций (сценарии) для настройки средства безопасности под каждое доверенное и критичное приложение, установленное на компьютер на шаге 400. Далее производится оценка вычислительных ресурсов КС на шаге 410, доступных в текущем промежутке времени, и определяются текущие сценарии исполнения приложений (настройки, режим работы, пользовательская функция) 420. Этапы 410 и 420 могут произвести сценарий настройки или другой компонент, например служба операционной системы, который передаст информацию инструкциям настройки в виде входного параметра. Далее в зависимости от определенных на предыдущих этапах значений параметров применяются на шаге 430 максимально подходящие для текущей ситуации настройки. Режим работы приложения, нагрузка на компьютерную систему могут поменяться независимо от системы безопасности. При обнаружении изменений сценария исполнения приложения 440 или при изменении количества доступных средству безопасности вычислительных ресурсов 450 сценарий настройки пересматривает и в случае необходимости изменяет настройки средства безопасности (параметры политики безопасности) в соответствии с логикой, которая заложена в сценарий настройки в процессе его генерации. При этом подстройка средства безопасности в зависимости от приведенных атрибутов показана для примера. Сценарий настройки может также варьировать параметры настройки в зависимости от следующих факторов: авторизованный пользователь компьютера, список запущенных программ, географическое расположение компьютера, зафиксированные эпидемии, срабатывание средства безопасности (возможно, даже в отношении другого приложения) и т.д.
Далее описан пример компьютерной системы, архитектура которой лежит в основе сервера администрирования, персонального устройства и компьютерной системы, элементы которой воспроизводит эмулятор.
Фиг.5 представляет пример КС общего назначения, персональный компьютер или сервер 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, представленного на Фиг.5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в КВС, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.