×
09.06.2019
219.017.7ae6

АВТОМАТИЧЕСКОЕ ОБНАРУЖЕНИЕ УЯЗВИМЫХ ФАЙЛОВ И УСТАНОВКА ЗАПЛАТОК НА НИХ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002358313
Дата охранного документа
10.06.2009
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к вычислительной технике и может быть использовано для обеспечения безопасности бинарных программных файлов. В изобретении описаны системы и способы, которые дают возможность устанавливать заплатки от уязвимостей (слабых мест) безопасности в бинарных файлах. Обнаружение и установка заплаток на уязвимые бинарные файлы являются автоматическими, надежными, свободными от ухудшений и исчерпывающими в сетях неограниченного размера. Надежное обнаружение уязвимых бинарных файлов (например, в операционных системах, прикладных программах и т.п.) достигается путем использования бинарных сигнатур, которые связаны с обнаруженными уязвимостями безопасности. Отделение заплаток безопасности от обычных пакетов обновления обеспечивает возможность выработки не ухудшающих исправлений уязвимостей безопасности в бинарных файлах. 14 н. и 10 з.п. ф-лы, 7 ил.
Реферат Свернуть Развернуть

Область техники

Настоящее описание в общем случае относится к установке “заплаток” на файлы, и более конкретно, к автоматическому, исчерпывающему, надежному и свободному от ухудшений способу обеспечения “заплаток” безопасности для уязвимых бинарных программных файлов в распределенных неоднородных вычислительных средах.

Существующий уровень техники

Разработка программного обеспечения является непрерывным процессом, в котором программный продукт, впервые ставший доступным для публики, может непрерывно обновляться путем выпуска версий от разработчика/поставщика программного обеспечения. Версии программного обеспечения обычно распространяются поставщиком программного обеспечения в виде так называемых пакетов обновления (service pack), которые могут быть загружены или заказаны у поставщика для установки на компьютере пользователя. Пакеты обновления обычно содержат поправки к программам (например, для операционной системы, прикладной программы и т.п.), которые устраняют проблемы (то есть ошибки, “баги”), обнаруженные в программном коде после первоначального выпуска продукта или после последнего выпуска пакета обновления.

В дополнение к тому, что они содержат поправки программных ошибок, пакеты обновления также могут содержать заплатки (вставки в программу) безопасности, разработанные специально для устранения уязвимостей (слабых мест), обнаруженных в программных файлах. “ Уязвимости ” в программах, обнаруженные после того, как программный продукт был выпущен, могут представлять собой серьезную угрозу безопасности из-за хакерской атаки или вирусов во всемирном масштабе. Поэтому, как только уязвимость обнаружена, задачей первостепенной важности становится немедленное и широкое распространение и установка заплаток для обеспечения безопасности на компьютеры, имеющие уязвимое программное обеспечение. Использование пакетов обновления, чтобы достичь немедленного и широкого распространения заплаток безопасности, теоретически может быть эффективным. Например, когда поставщик программного обеспечения обнаруживает уязвимость (слабое место), а затем разрабатывает заплатку безопасности, эта заплатка может быть размещена в составе новейшего пакета обновления на веб-сайте поставщика для пользователей для немедленной загрузки и установки. Это может помешать большинству хакеров и вирусов, которые намерены использовать обнаруженную уязвимость. Однако системные администраторы и другие пользователи программных продуктов в настоящее время испытывают несколько неудобств и/или сложностей, связанных с получением доступа к пакетам обновления и их установкой. Эти сложности обычно приводят к существенно меньшему распространению таких заплаток, чем предполагает поставщик, разрабатывающий заплатки. В результате на множестве компьютеров по всему миру слабые места остаются неисправленными, подвергая такие компьютеры значительному риску.

Одна из сложностей с получением доступа к пакетам обновления и их установкой заключается в том, что существующие способы обнаружения того, запущено ли на компьютере программное обеспечение с известной уязвимостью, требуют активного использования и вовлеченности самого компьютера. Например, доступные в настоящий момент способы могут определить, требуется ли обновление конкретным версиям программных продуктов на компьютере (например, с помощью заплатки безопасности). Однако в такое определение включены только те программные продукты, которые запущены на компьютере. Вспомогательные операционные системы и приложения, которые в настоящий момент не запущены на компьютере, не рассматриваются, а следовательно, могут иметь уязвимость (слабое место в) безопасности, которая останется невыявленной и неисправленной. Для тех продуктов, которые выполняются на компьютере, пользователь может просмотреть список доступных обновлений и выбрать обновления для установки. Некоторыми обновлениями могут быть критические обновления, предназначенные для защиты компьютера от известных уязвимостей безопасности. Различные обновления требуют от пользователя перезагрузки компьютера до того, как установка закончится. Кроме того, пользователь может активно выбирать обновления и устанавливать их. По этим и другим причинам существующие способы получения доступа к заплаткам безопасности и их установки менее чем эффективны.

Другая из сложностей с получением доступа к пакетам обновления и их установкой заключается в знании того, нужна или нет заплатка безопасности на этом компьютере. Иногда пользователям сложно узнать, выполняется ли на их компьютерах программное обеспечение, которое уязвимо. Более того, существующие способы обнаружения того, запущено ли на компьютере программное обеспечение с известной уязвимостью или нет, могут быть неспособны определять некоторые конфигурации программных продуктов, про которые известно, что они уязвимы. Например, совместно используемые версии некоторых программных продуктов могут распространяться как части других продуктов. Таким образом, хотя совместно используемая версия продукта может содержать ту же уязвимость, что и полная версия продукта, совместно используемая версия может быть не распознана как продукт, требующий обновления с помощью заплатки безопасности. Таким образом, совместно используемые версии программных продуктов, про которые известно, что они имеют уязвимости безопасности, зачастую остаются неисправленными.

Другие проблемы с получением доступа к пакетам обновления и их установкой относятся к обычному способу пакета обновления, с помощью которых такие заплатки доставляются. Загрузка и установка пакетов обновления является долгим по времени процессом, выполняемым вручную, на выполнение которого многие системные администраторы просто не имеют времени. Поэтому, даже когда администраторы намереваются устанавливать заплатки безопасности, время между выпуском заплатки безопасности и ее установкой на данной системе может равняться неделям, месяцам, годам. Таким образом, риск атаки через слабое место в безопасности в таких системах не может быть уменьшен в течение долгого времени после того, как поставщик выпустил заплатку безопасности.

Более того, системные администраторы зачатую выбирают вариант полного отказа от загрузки и установки пакетов обновления, содержащих заплатки безопасности, даже когда понимают соответствующие риски безопасности. Причиной для этого является то, что установка пакета обновления сама по себе вносит риск ухудшения работы системы, который может привнести нежелательные изменения в поведение системы. Администраторы зачастую посвящают значительное время и усилия на то, чтобы устранить в системе все ошибки так, чтобы она работала желаемым образом. Как упомянуто выше, все-таки пакеты обновления представляют собой развитие предыдущей версии программного продукта, которая включает самые последние обновления в базе кода продукта (то есть объем изменений не ограничен только заплатками безопасности). В дополнение к привнесению нового и желаемого поведения в систему обновления имеющегося кода в пакете обновления могут привнести в систему неизвестные ошибки, могущие вызвать неожиданное поведение системы, что, в свою очередь, может создать значительные проблемы для системного администратора. Таким образом, системы зачастую не обновляются важными заплатками безопасности, направленными на исправление уязвимых программных файлов, поскольку администраторы не хотят рисковать из-за ухудшений.

Соответственно, существует необходимость в способе воплощения заплаток (вставок в программу) от “уязвимостей” (слабых мест в) безопасности в программных файлах автоматическим, исчерпывающим, надежным и свободным от ухудшений образом.

Сущность изобретения

Ниже описана автоматическая, исчерпывающая, надежная и свободная от ухудшений установка заплаток на бинарные программные файлы.

В соответствии с одним вариантом выполнения принимают бинарную сигнатуру уязвимости и заплатку безопасности. Уязвимый бинарный файл идентифицируется компьютером на основе бинарной сигнатуры уязвимости. Уязвимый бинарный файл на компьютере обновляется с помощью заплатки (вставки в программу) для обеспечения безопасности.

В соответствии с другим вариантом выполнения принимают бинарную сигнатуру, которая идентифицирует уязвимость безопасности в бинарном файле. Также принимают заплатку безопасности, воплощенную с возможностью исправлять слабое место безопасности. Бинарная сигнатура и заплатка безопасности распространяются на множество серверов.

В соответствии с другим вариантом выполнения от сервера принимают бинарную сигнатуру и используют для поиска по бинарным файлам. На сервер посылается запрос на заплатку безопасности, если в бинарном файле найдена бинарная сигнатура. Бинарный файл затем обновляется заплаткой безопасности.

Краткое описание чертежей

Одинаковые позиции используются на всех чертежах для обозначения одних и тех же компонентов и признаков.

Фиг.1 показывает примерную сетевую среду, пригодную для воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них.

Фиг.2 показывает примерное выполнение сервера распространения, сервера сканирования/установки заплаток и клиентского компьютера, пригодного для воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них.

Фиг.3 показывает другое примерное выполнение сервера распространения, сервера сканирования/установки заплаток и клиентского компьютера, пригодного для воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них.

Фиг.4-6 являются блок-схемами примерных способов воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них.

Фиг.7 показывает примерную вычислительную среду, пригодную для выполнения сервера распределения, сервера сканирования/установки заплаток и клиентского компьютера.

Подробное описание изобретения

Обзор

Нижеследующее описание относится к системам и способам, позволяющим устанавливать заплатки уязвимостей (вставки в программу для обеспечения) безопасности в бинарных файлах. Обнаружение уязвимых бинарных файлов и установка заплаток (исправление слабых мест) на них является автоматическим, надежным, свободным от ухудшений и исчерпывающим процессом в сетях неограниченного масштаба. Эти преимущества могут быть реализованы различными способами, включая, например, использование существующей антивирусной инфраструктуры, широко используемой в Интернет. Отделение заплаток безопасности от обычных пакетов обновления обеспечивает возможность выработки не ухудшающих исправлений уязвимостей безопасности в бинарных файлах.

Надежное обнаружение уязвимых бинарных файлов (например, в операционных системах, прикладных программах и т.п.) достигается путем использования бинарных сигнатур, которые связаны с уязвимостями безопасности. Бинарные сигнатуры, связанные с уязвимостями (слабыми местами) безопасности в бинарных файлах, а также заплатки безопасности, разработанные для исправления таких уязвимостей безопасности, выгружаются на центральный сервер распределения. Сервер распределения сконфигурирован так, чтобы распространять бинарные сигнатуры и заплатки безопасности в широких масштабах по различным сетям, таким как Интернет. Использование центрального сервера распределения для обновления сетевых серверов (например, через Интернет) обеспечивает исчерпывающий и автоматический охват заплаток в неограниченных масштабах. Сетевые серверы, принимающие такие обновления, могут сканировать клиентские компьютеры в подчиненных сетях, чтобы выявить уязвимые файлы в соответствии с бинарными сигнатурами, а затем обновлять те компьютеры, на которых обнаружены уязвимые в безопасности файлы с использованием соответствующих заплаток безопасности, которые исправят уязвимые файлы. Сетевые серверы также могут связываться с клиентскими компьютерами, чтобы передать бинарные сигнатуры и заплатки безопасности на компьютеры, так что сканирование и обновление могут проводиться самими компьютерами. Также могут существовать множество вложенных уровней подчиненных сетей.

Пример вычислительной среды

Фиг.1 показывает примерную сетевую среду 100, пригодную для воплощения автоматического обнаружения уязвимостей (слабых мест) безопасности в бинарных файлах и установки заплаток на них. В примерной сетевой среде 100 центральный сервер 102 распространения подключен ко множеству серверов 104 сканирования/установки заплаток через сеть 106(а). Сервер 104 сканирования/установки заплаток обычно подключен через сеть 106(b) ко множеству клиентских компьютеров 108(1)-108(n). Сеть 106 представляет собой любую из множества обычных топологий и типов (включая оптические, проводные и/или беспроводные сети), использующих любой из множества обычных сетевых протоколов (включая публичные (открытые) и проприетарные (частные) протоколы). Сеть 106 может включать в себя, например, Интернет, равно как, возможно, по меньшей мере части одной или более локальных вычислительных сетей (ЛВС) и/или глобальных вычислительных сетей (ГВС). Сети 106(а) и 106(b) могут быть одной и той же сетью, такой как Интернет, или они могут быть сетями, изолированными друг от друга, как Интернет и корпоративная ЛВС.

Сервер 102 распространения и серверы 104 сканирования/установки заплаток обычно воплощены как стандартные веб-серверы, и каждый из них может быть любым из множества обычных компьютерных устройств, включая настольные ПК, ноутбуки или портативные компьютеры, рабочие станции, мейнфреймы, бытовые устройства с подключением к Интернет, их сочетания и т.п. Один или более серверов 102 и 104 могут быть устройствами одинакового типа, или, альтернативно, устройствами различного типа. Примерная вычислительная среда для воплощения сервера 102 распространения и сервера 104 сканирования/установки заплаток более подробно описана ниже со ссылками на фиг.7.

Клиентские компьютеры 108 действуют в типичной взаимосвязи клиент-сервер с сервером 104, где множество клиентов 108 делают запросы на сервер 104, который обрабатывает запросы. Клиентскими компьютерами 108 могут быть любые из множества обычных компьютерных устройств, включая настольные ПК, ноутбуки или портативные компьютеры, рабочие станции, мейнфреймы, игровые приставки, переносные ПК, сотовые телефоны и другие беспроводные устройства, персональные цифровые помощники (КПК), их сочетания и т.п. Один или более клиентских компьютеров 108 могут быть устройствами одинакового типа, или, альтернативно, устройствами различного типа. Примерная вычислительная среда для воплощения клиентского компьютера 108 более подробно описана ниже со ссылками на фиг.7.

В общем случае автоматическое обнаружение уязвимых бинарных файлов и установка заплаток на них на клиентских компьютерах 108 достигается с помощью обновлений, которые делаются через сервер 102 распространения, причем обновления включают в себя бинарные сигнатуры для идентификации уязвимых бинарных файлов и заплатки безопасности для исправления уязвимых файлов. Как более подробно обсуждено ниже по отношению к примерным вариантам выполнения, бинарные сигнатуры и заплатки безопасности распространяются на серверы 104 сканирования/установки заплаток, которые, в свою очередь, либо активно сканируют и обновляют уязвимые бинарные файлы на клиентских компьютерах 108, либо отправляют бинарные сигнатуры и заплатки безопасности на клиентские компьютеры 108, так что клиентские компьютеры 108 могут выполнять сканирование уязвимых бинарных файлов и установку заплаток на них.

Примерные варианты выполнения

Фиг.2 показывает примерное выполнение сервера 102 распространения, сервера 104 сканирования/установки заплаток и клиентского компьютера 108, пригодного для воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них.

Сервер 102 распространения включает в себя модуль 200 распространения и базу 202 данных для приема и сохранения бинарных сигнатур и заплаток безопасности. База 202 данных может обновляться бинарными сигнатурами и заплатками безопасности множеством способов, включая, например, переносной носитель данных (не показан, см. фиг.7) или компьютерное устройство (не показано), подключенное к серверу 102 и выполненное с возможностью выгружать бинарные сигнатуры и заплатки безопасности в базу 202 данных.

Обычный сценарий, по которому база 202 данных может быть обновлена, начинается с изучения программного продукта (например, операционной системы, прикладной программы и т.п.), инициированного разработчиком программного продукта. Например, разработчик может нанять фирму-консультанта по безопасности, чтобы попытаться найти уязвимости безопасности в только что выпущенном программном продукте. Если в программном продукте уязвимость безопасности обнаружена с помощью взлома или другими средствами, должна быть идентифицирована точная битовая комбинация уязвимой функции в продукте. Битовая комбинация представляет бинарную сигнатуру уязвимой части бинарного файла, который является компонентом программного продукта.

Когда уязвимость безопасности обнаружена и проанализирована, может быть разработана поправка, которая устранит эту уязвимость. Такие поправки называются заплатками безопасности и могут представлять пересмотренные модули кода, скомпилированные в бинарные выполняемые файлы. Заплатки безопасности могут быть установлены на компьютеры, которые идентифицированы с помощью бинарной сигнатуры, как выполняющие программы, которые имеют уязвимость (слабое место) безопасности. Установка заплатки безопасности исправит уязвимость безопасности. Сервер 102 распространения дает возможность поставщикам программных продуктов и другим людям загружать бинарные сигнатуры уязвимых бинарных файлов вместе с заплатками безопасности, разработанными для исправления уязвимых бинарных файлов в базу 202 данных для распространения.

Модуль 200 распространения сконфигурирован так, чтобы распространять бинарные сигнатуры и заплатки безопасности из базы 202 данных на различные серверы 104 сканирования-установки заплаток через сеть 106. Модуль 200 обычно функционирует автоматически, чтобы распространять бинарные сигнатуры и заплатки обновления из базы 202 данных, даже когда база 202 данных обновляется дополнительными подписями и заплатками. Автоматическое распространение может быть выполнено множеством путей, например, с помощью связи от модуля 200 распространения с серверами 104 сканирования-установки заплаток, показывающей, что обновленные бинарные сигнатуры и заплатки безопасности доступны и ждут запросов на отправку бинарных сигнатур и заплаток обновления, либо с помощью автоматического перенаправления обновленных бинарных сигнатур и заплаток безопасности на серверы 104 сканирования-установки заплаток, сконфигурированных принимать обновления.

В варианте выполнения по фиг.2 сервер 104 сканирования-установки заплаток включает в себя блок 204 сканирования-установки заплаток и базу 206 данных для приема и сохранения бинарных сигнатур и заплаток безопасности. База 206 данных обычно обновляется новыми бинарными сигнатурами и заплатками безопасности автоматически с помощью связи между модулем 204 сканирования-установки заплаток и модулем 200 распространения на сервере 102 распространения. В дополнение к обновлению базы 206 данных бинарными сигнатурами и заплатками безопасности, модуль 204 сканирования-установки заплаток выполнен с возможностью получать доступ на клиентский компьютер 108 и сканировать бинарные файлы 208 в поисках бинарных сигнатур. Сканирование бинарных файлов 208 может включать в себя поиск бинарной сигнатуры в бинарных файлах на любом типе носителя, имеющемся на клиентском компьютере 108 или доступном для него. Бинарные файлы 208 обычно включают в себя скомпилированный считываемый компьютером/процессором код, такой как файл операционной системы или файл прикладной программы. Отметим, однако, что бинарные файлы 208 могут быть любой формой бинарной информации, включая считываемые компьютером/процессором команды, структуры данных, программные модули и другие данные для клиентского компьютера 108.

Как отмечено при обсуждении примерной компьютерной среды на фиг.7, такие носители на клиентском компьютере могут включать в себя любые пригодные носители, к которым может получить доступ клиентский компьютер 108, такие как энергозависимые и энергонезависимые носители, равно как съемный и несъемный носители. Такие считываемые компьютером/процессором носители могут включать в себя энергозависимую память, такую как оперативное запоминающее устройство (ОЗУ), и/или энергонезависимую память, такую как постоянное запоминающее устройство (ПЗУ). Считываемые компьютером/процессором носители также могут включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, такие как, например, привод жестких дисков для считывания и записи в несъемную энергонезависимую магнитную среду, привод магнитных дисков для считывания и записи на съемный энергонезависимый магнитный диск (например, на “флоппи диск”), привод оптических дисков для считывания и записи на съемный энергонезависимый оптический диск, такой как CD-ROM, DVD-ROM или другие оптические носители, другие устройства магнитного хранения, карты флэш-памяти, электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ) (EEPROM), доступные по сети носители и т.п. Все такие считываемые компьютером/процессором носители, обеспечивающие как энергозависимое, так и энергонезависимое хранение любого типа бинарных файлов 208, включая считываемые компьютером/процессором команды, структуры данных, программные модули и другие данные для клиентского компьютера 108, доступны для сканирования сервером 104 сканирования/установки заплаток через модуль 204 сканирования/установки заплаток.

Модуль 204 сканирования-установки заплаток, таким образом, сканирует бинарные файлы 208 на клиентском компьютере 108, чтобы определить, имеется ли бинарная сигнатура, идентифицирующая уязвимость безопасности в любой бинарной информации, расположенной на клиентском компьютере 108. Если в бинарном файле 208 обнаружена битовая комбинация бинарной сигнатуры, модуль 204 сканирования-установки заплаток выполняет исправление уязвимости безопасности в бинарном файле 208 путем установки соответствующей заплатки безопасности на клиентский компьютер 108. Установка заплатки безопасности на клиентский компьютер 108 перезаписывает или, напротив, удаляет бинарный файл или часть бинарного файла, содержащую уязвимость (слабое место) безопасности.

Фиг.3 показывает другое примерное выполнение сервера 102 распространения, сервера 104 сканирования-установки заплаток и клиентского компьютера 108, пригодного для воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них. В общем случае в выполнении по фиг.3 бинарные сигнатуры и заплатки безопасности отправляются или перераспределяются от сервера 104 на клиентские компьютеры 108, а сканирование в поисках уязвимых в безопасности файлов и установка заплаток на уязвимые в безопасности файлы проводится клиентским компьютером вместо сервера 104 сканирования-установки заплаток.

В варианте выполнения по фиг.3 сервер 102 распространения сконфигурирован таким же образом, как обсуждено выше по отношению к выполнению по фиг.2. Таким образом, база 202 данных может обновляться, чтобы включать только что обнаруженные бинарные сигнатуры, которые идентифицируют уязвимости (слабые места) безопасности в бинарных файлах. База данных 202 также может обновляться соответствующими заплатками безопасности, которые были разработаны, чтобы исправить эти уязвимости безопасности.

Сервер 104 сканирования-установки заплаток по фиг.3 сконфигурирован практически так же, как описано выше по отношению к фиг.2. Таким образом, сервер 104 сканирования/установки заплаток по фиг.3 включает в себя базу 206 данных для приема и сохранения бинарных сигнатур и заплаток безопасности. База 206 данных обычно обновляется новыми бинарными сигнатурами и заплатками безопасности автоматически с помощью связи между сервером 104 сканирования-установки заплаток и сервером 102 распространения. Однако связь между сервером 104 сканирования-установки заплаток и сервером 102 распространения производится через модуль 300 перераспределения, вместо модуля 204 сканирования-установки заплаток, как описано по отношению к варианту выполнения по фиг.2.

Модуль 300 перераспределения в дополнение к обновлению базы 206 данных бинарными сигнатурами и заплатками безопасности сконфигурирован для связи с модулем 302 сканирования-установки заплаток на клиентском компьютере 108 и для передачи бинарной сигнатуры на клиентский компьютер 108. Модуль 302 сканирования-установки заплаток сконфигурирован так, чтобы принимать бинарную сигнатуру и сканировать бинарные файлы 208, чтобы определить, имеется ли бинарная сигнатура в любой бинарной информации, расположенной на клиентском компьютере 108. Таким образом, модуль 302 сканирования-установки заплаток по фиг.3 действует таким же образом, как и модуль 204 сканирования-установки заплаток, описанный выше по отношению к фиг.2.

Если в бинарном файле 208 на клиентском компьютере 108 обнаружена битовая комбинация бинарной сигнатуры, модуль 302 сканирования-установки заплаток посылает запрос на модуль 300 перераспределения на сервере 102. Этот запрос заставляет модуль 300 перераспределения отправить заплатку безопасности, соответствующую бинарной сигнатуре, на клиентский компьютер 108. Модуль 300 перераспределения отвечает на запрос путем отправки соответствующей заплатки безопасности на клиентский компьютер 108. Модуль 302 сканирования-установки заплаток принимает заплатку безопасности и выполняет исправление уязвимости безопасности в бинарном файле 208 путем установки соответствующей заплатки безопасности на клиентский компьютер 108. Как и в варианте выполнения на фиг.2, установка заплатки безопасности на клиентский компьютер 108 перезаписывает или, напротив, удаляет бинарный файл или часть бинарного файла, содержащие уязвимость безопасности.

Примерные способы

Примерные способы воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них будут описаны ниже со ссылками на блок-схемы алгоритма на фиг.4-6. Эти способы в общем случае применяются к примерным вариантам выполнения, описанным выше со ссылкой на фиг.1-3. Элементы описываемых способов могут выполняться любыми пригодными средствами, включая, например, аппаратные логические блоки на ASIC (специализированных интегральных схемах), или путем выполнения считываемых процессором инструкций, имеющихся на считываемом процессором носителе.

Используемый здесь термин “ считываемый процессором носитель” может быть любым средством, которое может содержать, сохранять, связываться, распространять или передавать инструкции для использования или для выполнения процессором. Считываемым процессором носителем может быть, без ограничений, электронная, магнитная, оптическая, электромагнитная, инфракрасная или полупроводниковая система, устройство, прибор или среда распространения. Более конкретные примеры считываемого процессором носителя включают в себя, среди прочего, электрическое соединение (электронный), имеющее один или более проводов, переносимую компьютерную дискету (магнитный), оперативное запоминающее устройство (ОЗУ) (магнитный), постоянное запоминающее устройство (ПЗУ) (магнитный), стираемое программируемое постоянное запоминающее устройство (EEPROM или флеш-память), оптоволокно (оптический), перезаписываемый компакт-диск (CD-RW) (оптический), переносимое постоянное запоминающее устройство на компакт-диске (CD-ROM) (оптический).

Фиг.4 иллюстрирует примерный способ 400 воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них. Бинарные файлы обычно расположены или хранятся на локальном компьютере, обслуживаемом компьютером-сервером, но также могут быть расположены на самом компьютере-сервере или любом другом вычислительном устройстве, доступном для компьютера-сервера. На этапе 402 способа 400 принимают бинарную сигнатуру. Бинарная сигнатура является битовой комбинацией, которая связана с уязвимостью безопасности в конкретном бинарном файле, таком как исполняемая прикладная программа или операционная система, запущенная на клиентском компьютере. Бинарную сигнатуру принимают от центрального сервера 102 распространения подчиненным сервером 104.

На этапе 404 принимают заплатку безопасности. Заплаткой безопасности обычно является скомпилированный исполняемый код, который разработан для исправления уязвимости (слабого места) безопасности в конкретном бинарном файле. Заплатку безопасности также принимают от центрального сервера 102 распространения на подчиненном сервере 104. На этапе 406 уязвимый бинарный файл идентифицируется на основе бинарной сигнатуры. Идентификация уязвимого бинарного файла обычно достигается сканированием бинарной информации, хранящейся в различных средах на компьютере, таком как клиентский компьютер, и затем комбинация(-ии) в бинарной сигнатуре сравниваются бинарной информацией, найденной на носителях. Идентификация может проходить несколькими путями, включая, например, сканирование и сравнение всей бинарной информации, имеющейся на клиентском компьютере, сервером 104. Идентификация уязвимого бинарного файла также может быть достигнута тем, что сервер 104 отправляет бинарную сигнатуру на клиентский компьютер, так что клиентский компьютер может выполнить сканирование и сравнение.

На этапе 408 способа 400 заплатка безопасности используется для обновления уязвимого бинарного файла. Это обновление может быть достигнуто различными путями, включая, например, установку сервером 104 заплатки безопасности на клиентский компьютер 108. Если клиентский компьютер 108 выполнил сканирование и идентифицировал уязвимый бинарный файл, клиентский компьютер 108 может запросить, чтобы сервер 104 отправил на компьютер 108 заплатку безопасности, в этом случае компьютер 108 может установить заплатку безопасности для исправления уязвимого бинарного файла.

Фиг.5 показывает другой примерный способ 500 воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них. Способ 500 в общем случае иллюстрирует распространение бинарных сигнатур для уязвимостей безопасности и заплаток безопасности, разработанных для исправления этих уязвимостей безопасности. На этапе 502 способа 500 принимают бинарную сигнатуру, которая идентифицирует уязвимость (слабое место) безопасности в бинарном файле. Бинарная сигнатура обычно загружается на сервер 102 распространения в качестве вновь обнаруженной битовой комбинации, идентифицирующей уязвимость в бинарном файле программного продукта, который может быть широко распространен по множеству компьютеров в сети, такой как Интернет. Загрузка обычно достигается от компьютера, соединенного с сервером 102 распространения, либо с переносимого носителя данных, введенного в сервер 102 распространения. На этапе 504 заплатка безопасности, выполненная так, чтобы исправить уязвимость безопасности, принимается сервером 102 распространения таким же образом, как и бинарная сигнатура.

На этапе 506 бинарная сигнатура и заплатка безопасности распространяются на множество подчиненных серверов 104 от сервера 102 распространения. Это распространение происходит автоматически и может быть достигнуто несколькими путями. Например, при приеме загруженных бинарной сигнатуры и заплатки безопасности сервер 102 распространения может автоматически отправить бинарную сигнатуру и заплатку безопасности по сети на все подчиненные серверы 104, сконфигурированные для приема обновленные бинарные сигнатуры и заплатки безопасности. Сервер 102 распределения также может отправить уведомление на серверы 104, указывающее, что была обнаружена уязвимость и что доступна заплатка безопасности для исправления этой уязвимости. Подчиненные серверы 104 могут затем запросить сервер 102 распространения послать бинарную сигнатуру, которая идентифицирует уязвимость безопасности и заплатку безопасности. При получении запроса сервер 102 распространения может направить бинарную сигнатуру и заплатку безопасности на запрашивающие серверы 102.

Фиг.6 показывает другой примерный способ 600 воплощения автоматического обнаружения уязвимостей безопасности в бинарных файлах и установки заплаток на них. На этапе 602 способа 600 клиентский компьютер 108 принимает бинарную сигнатуру от сервера 104. Бинарная сигнатура связана с уязвимостью безопасности в бинарном файле, который может присутствовать на клиентском компьютере 108. На этапе 604 клиентский компьютер 108 сканирует всю бинарную информацию, доступную для него в настоящий момент, и сравнивает комбинацию(-ии) в бинарной сигнатуре с бинарной информацией. Бинарная информация, просканированная клиентским компьютером 108, обычно имеется в виде считываемых и/или исполняемых компьютером/процессором команд, структур данных, программных модулей и других данных, пригодных для клиентского компьютера 108, и может оставаться как в энергозависимом, так и в энергонезависимом носителе данных любого типа.

На этапе 606, если клиентский компьютер обнаруживает бинарный файл, который содержит бинарную сигнатуру, то он посылает запрос на сервер 104, чтобы получить заплатку безопасности. На этапе 608 клиентский компьютер принимает заплатку безопасности, а на этапе 610 клиентский компьютер 108 устанавливает заплатку безопасности, чтобы исправить уязвимость безопасности в бинарном файле, содержащем бинарную информацию, совпадающую с комбинацией(-ями) в бинарной сигнатуре.

Хотя один или более способов были раскрыты посредством блок-схем алгоритма и текста, связанного с этапами на блок-схемах алгоритма, должно быть понятно, что этапы не обязательно будут выполняться в том порядке, в котором они были представлены, и альтернативный порядок(-ки) могут выразиться в аналогичных преимуществах. Более того, способы не являются исключительными и могут выполняться параллельно и в сочетании друг с другом.

Примерный компьютер

Фиг.7 показывает примерную вычислительную среду, пригодную для воплощения сервера 102 распространения, сервера 104 сканирования-установки заплаток и клиентского компьютера 108, как описано выше со ссылками на фиг.1-3. Хотя на фиг.7 показана конкретная конфигурация, сервер 102 распространения, сервер 104 сканирования-установки заплаток и клиентский компьютер 108 могут быть воплощены в других вычислительных конфигурациях.

Вычислительная среда 700 включает в себя вычислительную систему общего назначения в форме компьютера 702. Компоненты компьютера 702 могут включать в себя - но не ограничиваться ими - один или более процессоров или процессорных блоков 704, системную память 706 и системную шину 708, которая соединяет различные компоненты системы, включая процессор 705 с системной памятью 706.

Системная шина 708 представляет любой один или более типов структур шин из нескольких, включая шину памяти и контроллер памяти, периферийную шину, ускоренный порт графики и процессор или локальную шину, использующую любую из множества архитектур шин. В примере системной шиной 708 будет шина PCI (межсоединение периферийных составляющих), также известная как Mezzanine шина.

Компьютер 702 обычно включает в себя множество считываемых компьютером носителей. Такими носителями могут быть любые доступные носители, к которым компьютер 702 может получить доступ, включающие как энергозависимые, так и энергонезависимые носители, равно как съемные и несъемные носители. Системная память 706 включает в себя считываемый компьютером носитель в форме энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 710, и/или энергонезависимую память, такую как постоянное запоминающее устройство (ПЗУ) 712. Базовая система 714 ввода/вывода (BIOS), содержащая основные подпрограммы, которые помогают передавать информацию между элементами компьютера 702, такие как при загрузке компьютера, также хранится в ПЗУ 712. ОЗУ 710 обычно содержит модули данных и или программ, которые немедленно доступны и/или в текущий момент выполняются на процессорном блоке 704.

Компьютер 702 также может включать в себя другие съемные/несъемные носители и энергозависимые/энергонезависимые компьютерные носители данных. Например, на фиг.7 показаны привод 716 жестких дисков для считывания и записи на несъемный энергонезависимый магнитный носитель (не показан), привод 718 магнитных дисков для считывания и записи на съемный энергонезависимый магнитный диск 720 (например, на “флоппи диск”), привод 722 оптических дисков для считывания и записи на съемный энергонезависимый оптический диск 724, такой как CD-ROM, DVD-ROM или другие оптические носители. Каждый из привода 716 жестких дисков, привода 718 магнитных дисков и привода 722 оптических дисков подключен к системной шине 708 одним или более интерфейсами 726 носителей данных. Альтернативно, каждый из привода 716 жестких дисков, привода 718 магнитных дисков и привода 722 оптических дисков подключен к системной шине 708 интерфейсом SCSI (не показан).

Приводы дисков и их связанные считываемые компьютером носители обеспечивают энергонезависимое хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 702. Хотя пример показывает жесткий диск 716, съемный магнитный диск 720 и съемный оптический диск 724, должно быть понятно, что другие типы считываемых компьютером носителей, которые могут сохранять данные так, что они будут доступны компьютеру, такие как магнитные кассеты или другие магнитные устройства хранения, карты флэш-памяти, CD-ROM, цифровые многофункциональные диски (DVD) или другое оптическое устройство хранения, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрическое очищаемое программируемое постоянное запоминающее устройство (EEPROM) и т.п., могут быть использованы для воплощения примерной компьютерной системы и носителя.

Любое количество программных модулей может храниться на жестком диске 716, магнитном диске 720, оптическом диске 724, ПЗУ 712 и/или ОЗУ 710, включая, например, операционную систему 726, одну или более прикладных программ 728, другие программные модули 730 и данные 732 программы. Каждый из этих элементов - операционная система 726, одна или более прикладных программ 728, другие программные модули 730 и данные 732 программы (или некоторые их сочетания) - могут включать в себя выполнение схемы кэширования для использования информации пользователя о доступе в сеть.

Компьютер 702 может включать в себя множество считываемых компьютером/процессором носителей, идентифицируемых как носители связи. Носители связи обычно воплощают считываемые компьютером команды, структуры данных, программные модули и другие данные в модулированные сигналы данных, такие как сигналы несущих, или другой механизм передачи, и включают в себя любую среду доставки информации. Термин “модулированный сигнал данных” означает, что одна или более характеристик сигнала устанавливается или изменяется таким образом, чтобы закодировать информацию в сигнал. В качестве примера, а не ограничения, носители связи включают в себя проводные носители, такие как проводная сеть или прямое кабельное соединение, и беспроводные носители, такие как акустические, радиочастотные, инфракрасные и другие беспроводные носители. Сочетания любых из упомянутых выше носителей также включаются в объем считываемых компьютером носителей.

Пользователь может вводить команды и информацию в компьютерную систему 702 с помощью устройств ввода, таких как клавиатура 734 и координатное устройство 735 (например, “мышь”). Другие устройства 738 ввода (отдельно не показаны) могут включать в себя микрофон, джойстик, игровую приставку, спутниковую тарелку, последовательный порт, сканер и/или т.п. Эти и другие устройства ввода подключены к процессорному блоку 704 через интерфейсы 740 ввода/вывода, которые подключены к системной шине 708, но могут быть подключены и другими интерфейсами и структурами шин, такими как параллельный порт, игровой порт или по универсальной последовательной шине (USB).

Монитор 742 или другой тип устройства отображения также может быть подключен к системной шине 708 через интерфейс, такой как видеоадаптер 744. В дополнение к монитору 742, другие периферийные устройства вывода могут включать в себя компоненты, такие как колонки (не показаны) и принтер 746, который может быть подключен к компьютеру 702 через интерфейсы 740 ввода/вывода.

Компьютер 702 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таким как удаленное вычислительное устройство 748. Например, удаленным вычислительным устройством 748 может быть персональный компьютер, переносимый компьютер, сервер, маршрутизатор, сетевой компьютер, одноранговое устройство или другое обычный узел сети и т.п. Удаленное вычислительное устройство 748 показано как переносимый компьютер, который может включать в себя множество или все элементы и признаки, описанные здесь относительно компьютерной системы 702.

Логические соединения между компьютером 702 и удаленным компьютером 748 показаны как локальная вычислительная сеть (ЛВС) 750 и глобальная вычислительная сеть (ГВС) 752. Такие сетевые среды являются общепринятыми в офисах, компьютерных сетях предприятий, интранет и в Интернет. Когда воплощается сетевая среда ЛВС, компьютер 702 подключен к локальной сети 750 через сетевой интерфейс или адаптер 754. При воплощении в сетевой среде ГВС компьютер 702 обычно включает в себя модем 756 или другое средство установления связи по глобальной сети 752. Модем 756, который может быть внутренним и внешним по отношению к компьютеру 702, может быть подключен к системной шине 708 через интерфейсы 740 ввода/вывода и другие подходящие механизмы. Должно быть понятно, что показанные сетевые соединения являются примерными, и что для установления канала(-ов) связи между компьютерами 702 и 748 могут быть использованы другие средства.

В сетевой среде, такой как показано с вычислительной средой 700, программные модули, показанные относящимися к компьютеру 702, или их части могут быть сохранены в удаленном устройстве хранения. Например, удаленные прикладные программы 758 остаются в устройстве памяти удаленного компьютера 748. В целях иллюстрации прикладные программы и другие исполняемые программные компоненты, такие как операционная система, показаны как дискретные блоки, хотя понятно, что такие программы и составляющие остаются в различное время в различных компонентах хранения компьютерной системы 702 и являются исполнимыми процессором(-ами) данных в компьютере.

Заключение

Хотя изобретение было описано языком, связанным со структурными признаками и/или методологическими действиями, должно быть понятно, что изобретение, определенное в формуле изобретения, не обязательно ограничено описанными конкретными признаками или действиями. Напротив, конкретные признаки и действия раскрыты в качестве примера воплощения заявленного изобретения.

Источник поступления информации: Роспатент

Показаны записи 1-10 из 465.
10.01.2013
№216.012.1a40

Архитектура для онлайновых коллективных и объединенных взаимодействий

Изобретение относится к различным аспектам архитектуры онлайновых коллективных и объединенных взаимодействий. Технический результат изобретения заключается в обеспечении возможности кроссплатформенного взаимодействия между множеством вычислительных устройств. Данный технический результат...
Тип: Изобретение
Номер охранного документа: 0002472212
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a42

Интеллектуальное редактирование реляционных моделей

Изобретение относится к средствам редактирования реляционных моделей. Технический результат заключается в упрощении процесса редактирования пользователем моделей. Принимают жест пользователя, указывающего редактирование, которое будет выполняться, по меньшей мере, для одного целевого объекта в...
Тип: Изобретение
Номер охранного документа: 0002472214
Дата охранного документа: 10.01.2013
20.01.2013
№216.012.1dc2

Создание и развертывание распределенных расширяемых приложений

Изобретение относится к средствам создания распределенного приложения. Технический результат заключается в улучшении расширяемости распределенного приложения. Выбирают службы из списка служб, доступных на удаленном кластере серверов, при этом каждая служба предоставляет различные функциональные...
Тип: Изобретение
Номер охранного документа: 0002473112
Дата охранного документа: 20.01.2013
20.01.2013
№216.012.1dc6

Использование устройства флэш-памяти для препятствования несанкционированному использованию программного обеспечения

Изобретение относится к области использования устройства флэш-памяти для препятствования несанкционированному использованию программного обеспечения. Техническим результатом является обеспечение препятствования несанкционированному использованию приложения программного обеспечения....
Тип: Изобретение
Номер охранного документа: 0002473116
Дата охранного документа: 20.01.2013
20.01.2013
№216.012.1dc8

Гибкое редактирование гетерогенных документов

Изобретение относится к способу, системе для гибкого редактирования гетерогенных документов. Техническим результатом является расширение функциональных возможностей обработки документов за счет организации единого рабочего пространства. Различные типы документов можно организовывать на...
Тип: Изобретение
Номер охранного документа: 0002473118
Дата охранного документа: 20.01.2013
20.01.2013
№216.012.1dcc

Доверительная среда для обнаружения вредоносных программ

Изобретение относится к области обнаружения вредоносных программ. Техническим результатом является повышение эффективности обнаружения вредоносных программ. В одной реализации доверительная среда, которая включает в себя доверительную операционную систему и доверительное антивирусное...
Тип: Изобретение
Номер охранного документа: 0002473122
Дата охранного документа: 20.01.2013
20.01.2013
№216.012.1dd1

Интеграция рекламы и расширяемые темы для операционных систем

Предложены компьютерная система и способ обеспечения интеграции рекламы с пользовательским интерфейсом. Устройство содержит компонент получения, компонент выбора и компонент конфигурации. Компонент получения получает рекламный контент, включающий в себя рекламу продукта или услуги, от...
Тип: Изобретение
Номер охранного документа: 0002473127
Дата охранного документа: 20.01.2013
20.02.2013
№216.012.284d

Перемещение сущностей, обладающих учетными записями, через границы безопасности без прерывания обслуживания

Изобретение относится к области управления сетью. Техническим результатом является повышение эффективности аутентификации принципалов в сетевой среде. Усовершенствованная сетевая архитектура использует суперуполномоченного, имеющего каталог идентификационной информации для направления задач...
Тип: Изобретение
Номер охранного документа: 0002475837
Дата охранного документа: 20.02.2013
20.02.2013
№216.012.284f

Криптографическое управление доступом к документам

Изобретение относится к криптографическому управлению доступом к документам. Технический результат заключается в повышении защиты документов от несанкционированного доступа с использованием криптографического шифрования. Устройство содержит блок обработки данных, состоящий из запрашивающего...
Тип: Изобретение
Номер охранного документа: 0002475839
Дата охранного документа: 20.02.2013
20.02.2013
№216.012.2850

Предоставление цифровых удостоверений

Изобретение относится к области защиты информации и может быть использовано для создания и предоставления цифровых удостоверений пользователю. Техническим результатом является улучшение точности и увеличение надежности систем предоставления данных цифровой идентификации. Способ содержит этапы...
Тип: Изобретение
Номер охранного документа: 0002475840
Дата охранного документа: 20.02.2013
+ добавить свой РИД