ПРЕОБРАЗОВАНИЕ ФАЙЛА В ОГРАНИЧЕННОМ ПРОЦЕССЕ
FILE CONVERSION IN RESTRICTED PROCESS

Уровень техники
Решение проблемы вредоносного кода, такого как вирусы и троянские кони, остается одной из важнейших задач для разработчиков программного обеспечения. Хакеры обычно используют уязвимости в приложении или формате файла, как только подобная уязвимость становится известна. Вредоносный код, который использует известную уязвимость в тот же день, когда сведения об этой уязвимости стали доступны, обозначается термином "средство атаки нулевого дня". В настоящее время существует крайне ограниченное количество решений, которые эффективно противодействуют средствам атаки нулевого дня.
Из-за скорости, с которой вредоносный код может распространяться в средстве атаки нулевого дня, разработчики не имеют достаточно времени для реализации заплатки или другого решения для ликвидации этой уязвимости. Часто единственное доступное решение заключается в уменьшении потенциальной вероятности открытия вредоносного кода путем стимулирования пользователей в части выполнения наилучших практик безопасности, таких как выключение ненужных служб, обновление заплатками и избежание открытия приложений, которые получены из неизвестных источников или которые вызывают подозрения. Когда уязвимость становится известной, пользователь может избежать открытия файлов, подверженных влиянию этой уязвимости. Тем не менее это не обеспечивает адекватного решения в случаях, когда пользователь должен получить доступ к файлу.
Более того, доступные в настоящее время программные приложения (например, антивирусное программное обеспечение), используемые для поиска и удаления вредоносного кода, должны иметь некоторые априорные сведения об этом вредоносном коде или уязвимости. Например, некоторые приложения выполняют в документах поиск кода, который ранее был идентифицирован как вредоносный. Другие приложения требуют сведений об уязвимости, таких как конкретная область в структуре, где следует выполнять поиск необычного кода. Каждый из этих способов требует априорных сведений (о коде или об уязвимости). В случае средств атаки нулевого дня уязвимость не будет известна, и хакеры обычно создают новый код, который не будет идентифицирован как вредоносный. В результате доступные в настоящее время программные приложения становятся неэффективны против средств атаки нулевого дня.
Настоящее изобретение было сделано исходя из вышеизложенных и других соображений. Кроме того, хотя выше были описаны конкретные проблемы, следует понимать, что варианты осуществления настоящего изобретения не ограничены решением конкретных проблем, указанных в настоящем разделе.
Сущность изобретения
Раздел "Сущность изобретения" приведен, чтобы представить в упрощенной форме выборку концепций, которые подробно описываются ниже, в разделе "Подробное описание". Раздел "Сущность изобретения" не предназначен ни для определения ключевых или существенных отличительных признаков сущности формулы изобретения, ни для использования в качестве вспомогательного средства при определении объема сущности формулы изобретения.
В настоящем документе описаны некоторые варианты осуществления для удаления или деактивации вредоносного кода из файла в первом файловом формате путем его преобразования в файл во втором файловом формате. В некоторых вариантах осуществления вредоносный код, который содержится в файле, удаляется или деактивируется во время преобразования этого файла в преобразованный файл. Преобразование выполняется посредством преобразователя, который загружается в ограниченный компьютерный процесс. Данный компьютерный процесс имеет ограниченные права, которые ограничивают его доступ к операционной системе и компьютерной системе. Соответственно, даже если вредоносному коду, внедренному в файл, удается выполниться в течение преобразования, то его потенциальный вред будет ограничен, поскольку он будет загружен в ограниченный процесс.
Варианты осуществления настоящего изобретения могут быть реализованы как компьютерный процесс, вычислительная система или как изделие, такое как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может быть компьютерным средством хранения, которое может быть считано компьютерной системой, кодирующей компьютерную программу инструкций для выполнения компьютерного процесса. Компьютерный программный продукт может также быть распространяемым сигналом на несущей, который может быть прочитан компьютерной системой и который кодирует компьютерную программу инструкций для выполнения компьютерного процесса.
Краткое описание чертежей
Варианты осуществления, которые не ограничивают настоящее изобретение и не покрывают все возможные варианты осуществления, описаны со ссылкой на следующие фигуры, в которых одинаковые ссылочные номера обозначают одинаковые элементы во всех различных видах, если не определено иное.
На фигурах:
Фиг.1 - иллюстрация системы, которая используется для удаления или деактивации вредоносного кода из файла согласно одному варианту осуществления настоящего изобретения;
Фиг.2 - иллюстрация системы, которая может быть использована для безопасного открытия файла, который может содержать вредоносный код, согласно одному варианту осуществления настоящего изобретения;
Фиг.3 - иллюстрация схемы последовательности операций для удаления или деактивации вредоносного кода из файла;
Фиг.4 - иллюстрация схемы последовательности операций для безопасного открытия файла, который может содержать вредоносный код;
Фиг.5 - иллюстрация второй схемы последовательности операций для безопасного открытия файла, который может содержать вредоносный код;
Фиг.6 - иллюстрация структурной схемы вычислительного окружения, подходящего для реализации вариантов осуществления настоящего изобретения.
Подробное описание
Различные варианты осуществления описаны более подробно ниже со ссылкой на прилагаемые чертежи, которые образуют часть настоящего описания и которые иллюстрируют конкретные примеры осуществления для реализации настоящего изобретения. Тем не менее настоящее изобретение может быть осуществлено во многих других формах, и оно не должно быть истолковано как ограниченное изложенными ниже вариантами осуществления. Скорее эти варианты осуществления предоставлены, чтобы это раскрытие было подробным и полным и полностью передавало объем изобретения специалистам в данной области техники. Соответственно, варианты осуществления могут принять форму аппаратной реализации, полностью программной реализации или реализации, которая сочетает программный и аппаратный аспекты. Следовательно, следующее подробное описание не должно быть истолковано в ограничивающем смысле.
Логические операции различных вариантов осуществления реализуются (1) как последовательность выполняемых компьютером этапов, исполняемых в вычислительной системе и/или (2) как взаимосвязанные машинные модули в компьютерной системе. Выбор того или иного варианта реализации зависит от требований производительности вычислительной системы, реализующей данный вариант осуществления. Соответственно, на логические операции, образующие описанные здесь варианты осуществления, альтернативно ссылаются как на операции, этапы или модули.
Варианты осуществления направлены на удаление или деактивацию вредоносного кода из файла в первом файловом формате путем его преобразования в файл второго файлового формата. Вредоносный код удаляется или деактивируется без каких-либо априорных сведений об этом коде или уязвимости, используемой этим кодом. Преобразование выполняется посредством преобразователя, который загружается в ограниченный компьютерный процесс. Данный компьютерный процесс имеет ограниченные права, которые ограничивают его доступ к операционной системе и компьютерной системе. Соответственно, даже если вредоносному коду, внедренному в файл, удается выполниться в течение преобразования, то благодаря ограниченному доступу его вред будет ограничен. В настоящем изобретении термин "вредоносный код" используется в широком смысле, и он включает в себя программное обеспечение, которое входит в состав файла, или приложения для неавторизованной цели. Примеры вредоносного кода включают в себя вирусы, черви, троянские кони и другое нежелательное программное обеспечение.
Фиг.1 представляет собой иллюстрацию системы 100, которая используется для безопасного открытия файла, который может содержать вредоносный код, согласно одному варианту осуществления настоящего изобретения. В этом варианте осуществления система 100 включает в себя операционную систему 102 с реестром 112, приложение 104, преобразователь 106 и файл 110. Файл 110 включает в себя данные 110A и расширение 110B имени файла (например, в виде части имени файла). Сверх того, согласно этому варианту осуществления приложение 104 включает в себя политику 114 блокирования. Политика 114 блокирования в некоторых вариантах осуществления указывает, какие типы файлов (то есть форматы файлов) должны блокироваться при попытке их открытия приложением 104. В добавление, политика 114 блокирования также может указывать, какие типы файлов должны блокироваться при попытке сохранения. Политики блокирования и их применение при открытии и/или сохранении файла подробно описаны в патентной заявке США №11/679048 "FILE BLOCKING MITIGATION", правообладателем которой является настоящий заявитель и которая была подана той же датой, что и настоящая заявка. Упомянутая заявка включена в настоящий документ в своей полноте посредством ссылки.
Преобразователь 106 используется для преобразования файлов из первого файлового формата во второй файловый формат. Преобразование файлов из первого файлового формата во второй файловый формат удаляет или деактивирует вредоносный код, который может быть внедрен в файлы. Преобразователь 106 может осуществлять связь с операционной системой 102 для таких целей, как доступ к функциям операционной системы. В варианте осуществления с Фиг.1 преобразователь 106 загружается в ограниченный процесс 120, так что преобразование файлов из первого файлового формата во второй файловый формат выполняется в ограниченном процессе 120. Ограниченный процесс 120 имеет ограниченные права доступа к операционной системе 102 и к компьютерной системе, на которой выполняется операционная система 102. Иначе говоря, процесс 120 имеет ограниченные права для запроса функций операционной системы.
Приложение 104 может осуществлять связь с операционной системой 102 для таких целей, как доступ к функциям операционной системы. В варианте осуществления с Фиг.1 приложение 104 находится вне ограниченного процесса и, следовательно, оно имеет больше прав для запроса функций операционной системы. В добавление, приложение 104 может открывать, редактировать, сохранять и/или создавать файлы. В варианте осуществления с Фиг.1 приложение 104 взаимодействует с файлом 110. В одном примере приложение 104 может представлять собой приложение обработки текста. Пользователь может запустить приложение 104 и далее открыть файл (например, файл 110) посредством приложения 104, которое загружает файл 110 в память и предоставляет доступ к файлу. Пользователь далее может добавлять и редактировать данные (то есть данные 110A) в файле 110. Приложение 104 не ограничено конкретным типом, и оно может представлять собой приложение любого типа, такое как приложение для обработки текста, приложение для работы с таблицами, приложение для работы с графикой и т.п.
В вариантах осуществления приложение 104 также устанавливает расширение 110B файла для индикации того, что файл 110 имеет определенный тип. Например, в этом варианте осуществления расширение 110B файла является частью имени файла 110, которое было присвоено файлу при операции "сохранить" или "сохранить как". Например, приложение обработки текста может присвоить файлу (например, текстовому документу) расширение ".doc" для индикации того, что данный файл имеет формат двоичного файла.
Расширения файлов, такие как 110B, иногда используются администраторами для детектирования или блокирования потенциально вредоносных файлов (то есть файлов с известной уязвимостью, которая может быть использована для внедрения вредоносного кода) до их приема сетью. Например, сервер электронной почты может быть сконфигурирован так, чтобы детектировать и блокировать все электронные сообщения с файлами, имеющими расширение конкретного типа, между тем разрешая вход в клиентскую сеть электронной почты для файлов с другими расширениями. Тем не менее, поскольку расширениями файлов можно с легкостью манипулировать путем простого переименования расширения файла, использование расширений файлов не является надежным механизмом для идентификации файлов с вредоносным кодом, которые могут войти в сеть. Более того, при блокировании файла до его входа в сеть пользователь, который ждет получения этого файла, не будет знать о том, что файл был заблокирован и/или что с данным файлом возникла проблема безопасности.
В варианте осуществления с Фиг.1 приложение 104 включает в себя модуль 124 инспектора типа. Модуль 124 инспектора типа исследует данные файла (например, 110A) и определяет действительный формат файла. Термин "действительный формат файла" используется в настоящей заявке для описания фактического формата файла. Например, документ обработки текста может иметь формат *.doc; *.dot или *.wiz. Следует понимать, что в варианте осуществления с Фиг.1 действительный формат файла не определяется путем проверки расширения файла, такого как расширение 110B. Вместо этого модуль 114 инспектора типа исследует часть данных файла, например, 110A и на основании этого исследования определяет действительный формат этого файла.
В одном варианте осуществления модуль 124 инспектора файла считывает первые несколько байтов данных из файла (то есть анализирует файл) и на основании таких элементов, как информация заголовка и структуры внутри исследованных данных, модуль 124 инспектора типа может определить действительный формат файла. Действительный формат файла описывается в настоящей заявке посредством расширения файла. Например, формат файла может быть описан как *.doc; *.dot и/или *.wiz. Тем не менее описание формата файла посредством расширения файла следует отличать от определения действительного формата файла, в процессе которого не выполняется исследование расширения файла.
В процессе работы система 100 сначала запускает приложение, такое как приложение 104. Запуск приложения 104 может быть инициирован пользователем, который запрашивает запуск приложения 104, например, путем двойного щелчка на иконке приложения 104. Альтернативно, пользователь может запросить открытие файла 110 путем, например, выполнения двойного щелчка на иконке файла 110. В этом случае операционная система 102 может ассоциировать расширение 110B файла с приложением 104 и инициировать запуск приложения 104.
При запуске приложение 104 загружает информацию конфигурации. В некоторых вариантах осуществления информация конфигурации сохраняется в реестре 112 операционной системы 102. В этих вариантах осуществления, когда приложение 104 запускается, оно запрашивает информацию конфигурации из операционной системы 102, которая извлекает эту информацию из реестра 112. В одном варианте осуществления политика 114 блокирования сохранена как информация конфигурации в реестре операционной системы 102, например, в форме ключей реестра. Соответственно, когда приложение 104 запускается, оно извлекает политику 114 блокирования из реестра 112.
В некоторых вариантах осуществления доступ к политике 114 блокирования открыт только для тех пользователей, у которых есть права записи/модификации реестра 112, например для пользователей с административными правами. Следовательно, администратор может эффективно управлять форматами файлов, открытие или запись которых блокируется.
После запуска приложение 104 может быть использовано для открытия, редактирования и сохранения файлов. Например, когда приложение 104 предпринимает попытку открытия файла 110, модуль 124 инспектора типа сначала исследует часть данных 110A, чтобы определить действительный формат файла 110. Как описано выше, в одном варианте осуществления модуль 124 инспектора типа определяет действительный формат файла путем исследования первых нескольких байтов данных 110A. Модуль 124 инспектора типа может использовать информацию заголовка или структуры в данных 110A, чтобы определить действительный формат файла 110. После определения действительного формата файла 110 приложение 104 сравнивает действительный формат файла с политикой 114 блокирования. Если политика 114 блокирования не идентифицирует действительный формат файла 110 как подлежащий блокированию при попытке открытия, то приложение 104 откроет файл 110 путем его загрузки в память и предоставления пользователю доступа для добавления, редактирования и сохранения данных в файле 110.
Если политика 114 блокирования идентифицирует действительный формат файла 110 как подлежащий блокированию при попытке открытия, то приложение 104 блокирует открытие файла 110. В одном варианте осуществления приложение 104 отображает пользователю сообщение, указывающее, что файл имеет файловый формат, который подлежит блокированию при попытке открытия.
В еще одном варианте осуществления при определении, что файл 110 блокируется при открытии, может быть запущен преобразователь 106, чтобы преобразовать файл из действительного типа файла во второй типа файла, открытие которого не блокируется. В этом варианте осуществления преобразователь 106 загружается в ограниченный процесс 120 и используется для преобразования файла 110 во второй файл, который не блокируется при его открытии приложением 104.
В некоторых вариантах осуществления системы 100 администратор может установить преобразователь 106 в качестве обработчика по умолчанию для файлов конкретного типа. В случае средства атаки нулевого дня, где конкретный формат файла был идентифицирован как уязвимый, администратор может уменьшить возможное повреждение компьютерной системы или сети путем установки преобразователя 106 в качестве обработчика по умолчанию для файлов, имеющих упомянутый уязвимый формат. Это уменьшает вероятность повреждения из-за средства атаки нулевого дня, поскольку, когда пользователь предпринимает попытку открытия файла, сохраненного в уязвимом файловом формате, преобразователь 106 будет запущен, чтобы преобразовать файл в другой формат. Как описано выше, преобразование удаляет вредоносный код из исходного файла и предотвращает его передачу/сохранение в преобразованном файле. Более того, поскольку преобразователь 106 загружается в ограниченный процесс 120, любой вредоносный код, который все же выполняется, будет иметь ограниченное влияние на компьютерную систему или сеть.
В некоторых вариантах осуществления администратор может предпринять дополнительные меры против средства атаки нулевого дня путем настройки политики блокирования для приложения 104 таким образом, чтобы блокировать файлы, имеющие уязвимый формат. Соответственно, в сочетании с установкой преобразователя 106 в качестве обработчика по умолчанию компьютерная система или сеть имеет надежную защиту от повреждений, которые могут быть нанесены вредоносным кодом, входящим в файл уязвимого типа.
Фиг.2 представляет собой иллюстрацию системы 200 с более детальным описанием преобразователя 106. Система 200 включает в себя файл 202A, который имеет первый файловый формат (формат 1 файла), преобразователь 106, преобразованный файл 202B, который имеет второй файловый формат (формат 2 файла) и операционную систему 102 с реестром 112. В варианте осуществления с Фиг.2 преобразователь 106 загружается в ограниченный процесс 120, так что преобразование из формата 1 в формат 2 выполняется в ограниченном процессе 120. Ограниченный процесс 120 имеет ограниченные права доступа к операционной системе 102 и к компьютерной системе, на которой выполняется операционная система 102. Это гарантирует, что если вредоносный код, такой как вредоносный код 204, все же будет выполнен, то вред, который он может нанести операционной системе 102 и компьютерной системе, будет ограничен. На Фиг.2 показаны детали одного варианта осуществления преобразователя 106, который преобразует файл 202A первого файлового формата в преобразованный файл 202B второго файлового формата и в процессе преобразования удаляет или деактивирует вредоносный код 204 из данных преобразованного файла.
В процессе работы система 200 сначала запускает преобразователь 106. Запуск преобразователя 106 может быть инициирован пользователем, который запрашивает запуск преобразователя 106, например, путем двойного щелчка на иконке преобразователя 106. Альтернативно, пользователь может запросить открытие файла 202A путем, например, выполнения двойного щелчка на иконке файла 202A. В этом случае операционная система 102 может ассоциировать файл 202A (или его расширение) с преобразователем 106 и инициировать запуск преобразователя 106.
При запуске преобразователь 106 загружается в ограниченный процесс. При запуске преобразователь 106 может загрузить информацию конфигурации из реестра 112. Упомянутая информация конфигурации может включать в себя информацию, которая указывает конкретный механизм, посредством которого процесс 120 ограничивается. Процесс 120 имеет ограниченные права доступа к операционной системе 102 и к компьютерной системе, на которой выполняется операционная система 102. Специалистам в данной области техники будет очевидно, что конкретные ограничения, налагаемые на процесс 120, и механизм, посредством которого процесс 120 ограничивается, могут варьировать в зависимости от конкретной операционной системы 102 и других структурных соображений, таких как уровень риска, связанный с файлом 202A.
В некоторых вариантах осуществления процессу 120 не разрешается выполнять определенные операции и/или выполнять вызовы определенных функций операционной системы 102. Например, процессу 120 запрещено считывать или записывать информацию в реестр 112 операционной системы, поскольку реестр 112 хранит в себе чувствительную информацию конфигурации для различных приложений. Тем не менее процесс 120 может считывать и записывать данные в другие хранилища. В других вариантах осуществления процессу 120 разрешено выполнять только те функции, которые необходимы для преобразования файла из формата 1 в формат 2. Например, процессу 120 разрешено только считывать данные из файла, который преобразуется (например, файла 202A), и записывать данные в преобразованный файл (например, файл 202B) в формате 2.
Как описано выше, механизм, посредством которого процесс 120 ограничивается, зависит от конкретной операционной системы 102. В одном варианте осуществления операционная система 102 является версией операционной системы "WINDOWS", которая обеспечивает ряд способов для ограничения прав доступа процесса. Например, в ряде версий операционной системы "WINDOWS" каждый процесс имеет связанный маркер доступа, который описывает контекст безопасности данного процесса, включая список системных прав доступа для этого процесса. Маркер доступа, который, как правило, описывает контекст ограниченной безопасности, называется ограниченным маркером. Ограниченный маркер описывает ограниченный набор общесистемных прав. В одном варианте осуществления процесс 120 ограничивается путем его ассоциирования с ограниченным маркером, который описывает ограниченный набор общесистемных прав.
В других вариантах осуществления системы 200, которая использует некоторую версию операционной системы "WINDOWS", процесс 120 может быть ограничен путем его ассоциирования с объектом-заданием. Объект-задание позволяет осуществлять управление группой процессов как одним целым. Управление объектами-задачами принимает атрибуты процессов, связанных с этими объектами-задачами. Объект-задача может использоваться для установления ограничений на связанный процесс, таких как размер рабочего набора, приоритет процесса и временной лимит завершения задачи. В одном варианте осуществления процесс 120 ограничивается путем его ассоциирования с объектом-задачей, которая налагает определенные ограничения на процесс 120.
В других вариантах осуществления процесс 120 может быть ограничен посредством контейнера рабочего стола или оконной станции. Версии операционной системы "WINDOWS" предоставляют контейнеры рабочего стола, чтобы позволить некоторому количеству пользователей входить в оконную станцию. Контейнер рабочего стола представляет собой защищенный объект-контейнер, который содержится в оконной станции. Контейнер рабочего стола представляет собой логическую совокупность элементов пользовательского интерфейса, которая, в свою очередь, входит в состав оконной станции, согласно различным версиям операционной системы "WINDOWS". Некоторые аспекты связи между процессами, работающими в версиях операционной системы "WINDOWS", регулируются на основании того, назначены ли эти процессы одному и тому же рабочему столу, а в некоторых случаях связь регулируется на основании того, разделяют ли эти процессы одну оконную станцию. Связи между процессами могут иметь последствия, связанные с безопасностью, и по этой причине в некоторых вариантах осуществления ограниченный процесс 120 выполняется в отдельной оконной станции (что подразумевает отдельный рабочий стол, поскольку все рабочие столы имеют только одну оконную станцию в качестве контейнера).
В вариантах осуществления системы 220, где применяется операционная система "WINDOWS", процесс 120 ограничивается посредством сочетания ограниченных маркеров, объектов-задач и оконных станций/контейнеров рабочего стола. Использование двух или более из этих механизмов обеспечивает надежную защиту, которая ограничивает повреждения, которые могут быть нанесены при выполнении вредоносного кода в процессе 120 в течение преобразования файла 202A из формата 1 в преобразованный файл 202B формата 2. В одном конкретном варианте осуществления процесс 120 ограничивается посредством всех трех средств - ограниченного маркера, объекта-задачи и контейнера рабочего стола.
После загрузки преобразователя 106 в ограниченный процесс 120, преобразователь 106 преобразует файл 202A из формата 1 в преобразованный файл 202B в формате 2. Как описано выше, преобразователь не имеет каких-либо сведений о вредоносном коде 204, который может содержаться в файле 202A, и ему также неизвестно об уязвимости. В некоторых вариантах осуществления преобразователь 106 преобразует файл 202A посредством анализатора и движка. Анализатор анализирует файл, чтобы извлечь данные, которые выражаются движком в другом формате файла, то есть в формате 2. Новые данные сохраняются в преобразованном файле 202B. В одном варианте осуществления в течение процесса анализа файла 202A анализатор идентифицирует элементы в файле 202A, такие как информация заголовка и структуры данных файла 202A, которые используются для определения данных, которые будут переведены в преобразованный файл 202B. Вредоносный код 204 не включает в себя элементы, используемые преобразователем 106 для определения данных, которые следует сохранить в преобразованном файле 202B, и, следовательно, он не включается в состав преобразованного файла 202B. Когда анализатор преобразователя 106 анализирует вредоносный код 104, он не распознает необходимых элементов, чтобы перевести эти данные в файл 202B. Соответственно, вредоносный код 204 будет ликвидирован из данных, переводимых в преобразованный файл 202B. Далее преобразованный файл 202B можно безопасно открыть и выполнить к нему доступ вне ограниченного процесса 120.
В других вариантах осуществления вредоносный код 204 может быть пропущен в преобразованный файл 202B. Приложения, как правило, используют анализатор для сканирования файла до его открытия. Часто целью вредоносного кода, такого как вредоносный код 204, являются анализаторы, предназначенные для открытия файлов конкретного формата. То есть вредоносный код 204 может быть нацелен на анализаторы, используемые для открытия файлов в формате 1. Таким образом, даже если вредоносный код 204 входит в состав преобразованного файла 202B, то он не будет представлять большой угрозы, поскольку преобразованный файл 202B будет открыт анализаторами, приспособленными для открытия файлов формата 2. Таким образом, в некоторых вариантах осуществления простое преобразование файла 202A в формате 1 в преобразованный файл 202B формата 2 устраняет угрозу вредоносного кода 204, даже если последний включается в состав преобразованного файла 202B.
В некоторых ситуациях вредоносный код 204 может атаковать преобразователь 106, когда преобразователь 106 пытается преобразовать файл 202A. Как подробно описано выше, преобразователь 106 выполняется в ограниченном процессе 120, который имеет ограниченные права. Соответственно, даже если вредоносному коду 204 удается успешно выполниться в течение преобразования файла 202A, то повреждения, которые он может нанести, будут ограничены.
В некоторых вариантах осуществления преобразование, выполняемое преобразователем 106, имеет преимущество по сравнению с программными приложениями, которые приспособлены для удаления конкретного вредоносного кода из файлов. Как правило, приложения, которые разработаны для удаления вредоносного кода, должны иметь некоторые сведения, такие как элементы, которые нужно искать для идентификации вредоносного кода, или структуры, которые могут быть уязвимы для сохранения вредоносного кода. В отличие от этого преобразователю 106 не требуются какие-либо сведения о вредоносном коде 204. Вместо этого простой факт, что вредоносный код 204 не имеет свойств, необходимых для преобразования данных из формата 1 в формат 2, удалит вредоносный код 204 из данных, передаваемых в преобразованный файл 202B. Более того, даже если вредоносный код 204 передается в преобразованный файл 202B, он не создает серьезной опасности благодаря новому файловому формату (то есть формату 2) преобразованного файла 202B.
В некоторых вариантах осуществления преобразователь 106 представляет собой двунаправленный преобразователь, который может преобразовывать файл из формата 1 в формат 2 и также из формата 2 обратно в формат 1. В одном варианте осуществления после того, как преобразователь 106 сгенерировал файл 202B и удалил вредоносный код 204, он преобразует файл 202B обратно в формат 1. В одном примере файл 202A может иметь двоичный файловый формат (формат 2), который был идентифицирован как имеющий уязвимость. В результате файл 202A преобразуется посредством преобразователя 106 в преобразованный файл 202B в файловом формате XML (формате 2), что удаляет или деактивирует вредоносный код 204. Тем не менее пользователь может не иметь приложения, которое способно открывать файлы в формате XML. Соответственно, файл 202B обратно преобразуется в двоичный файловый формат (формат 1), чтобы позволить пользователю открыть и выполнить доступ к данным файла.
Фиг.3-5 представляют собой иллюстрации схем 300, 400 и 500 последовательностей операций согласно некоторым вариантам осуществления. Эти последовательности операций могут быть выполнены в любом подходящем вычислительном окружении. Например, упомянутые последовательности операций могут быть выполнены системой, такой как системы 100 и 200 (Фиг.1 и Фиг.2), чтобы удалить вредоносный код из файла и безопасно открыть файл. Следовательно, в описании схем 300, 400 и 500 последовательностей операций могут присутствовать ссылки на, по меньшей мере, один из компонентов Фиг.1 и Фиг.2. Тем не менее любая подобная ссылка на компоненты Фиг.1 и Фиг.2 имеет лишь описательную цель, и следует понимать, что реализации с Фиг.1 и Фиг.2 являются неограничивающими примерами окружения для этих последовательностей операций.
Кроме того, хотя схемы 300, 400 и 500 последовательностей операций проиллюстрированы и описаны последовательно в конкретном порядке, в других вариантах осуществления операции могут быть выполнены в других порядках, множество раз и/или параллельно. Сверх того, в некоторых вариантах осуществления одна или более операций могут быть опущены или комбинированы.
Фиг.3 предоставляет собой иллюстрацию схемы 300 последовательности операций для удаления вредоносного кода из файла согласно одному варианту осуществления настоящего изобретения. В операции 302 преобразователь, который способен преобразовывать файл из первого файлового формата во второй файловый формат, загружается в ограниченный процесс. В некоторых вариантах осуществления преобразователь представляет собой преобразователь 106 (Фиг.1 и Фиг.2), который загружается в ограниченный процесс 120 (Фиг.1 и Фиг.2). Ограниченный процесс 120 может иметь ограниченные права для доступа к операционной системе, такой как, например, операционная система 102. Ограничения, налагаемые на этот процесс, ограничивают вероятность повреждения, наносимого вредоносным кодом, который выполняется в течение преобразования файла преобразователем.
Операция 302 может быть инициирована в результате выполнения пользователем запроса на запуск преобразователя, например, путем выполнения двойного щелчка на иконке преобразователя. Альтернативно, пользователь может запросить открытие конкретного файла путем, например, выполнения двойного щелчка на иконке файла. В ответ операция 302 инициирует запуск преобразователя путем его загрузки в ограниченный процесс.
После загрузки преобразователя в ограниченный процесс алгоритм переходит к операции 304, на которой вредоносный код удаляется путем преобразования файла из первого файлового формата во второй файловый формат. Операция 304 выполняется в ограниченном процессе. В одном варианте осуществления преобразование выполняется посредством преобразователя 106 в ограниченном процессе 120. Как описано выше, преобразователь 106 анализирует файл в первом файловом формате и идентифицирует в файле элементы, которые используются для извлечения данных из этого файла. Далее извлеченные данные сохраняются в преобразованном файле, который имеет второй файловый формат. В преобразованном файле нет какого-либо вредоносного кода, который мог быть внедрен в первый файл. Далее преобразованный файл может быть безопасно открыт в процессе с меньшими ограничениями, чем ограниченный процесс, используемый при преобразовании файла.
Фиг.4 представляет собой иллюстрацию схемы 400 последовательности операций для безопасного открытия файла, чтобы выполнить доступ к данным в файле, согласно одному варианту осуществления. В операции 402 принимается запрос на открытие файла. В одном варианте осуществления упомянутый запрос принимает преобразователь, такой как преобразователь 106 (Фиг.1 и Фиг.2). Например, пользователь может предпринять попытку открытия файла путем запуска преобразователя и последующего выбора файла через преобразователь. В еще одном варианте осуществления запрос принимает приложение, такое как приложение 104 (Фиг.1). Пользователь может предпринять попытку открытия файла путем запуска приложения и дальнейшего выбора файла. В некоторых вариантах осуществления упомянутый запрос принимается, когда пользователь выбирает файл, например выполняет двойной щелчок на иконке этого файла.
Далее алгоритм переходит к операции 404, где преобразователь, который способен преобразовывать файл из первого файлового формата во второй файловый формат, загружается в ограниченный процесс. В некоторых вариантах осуществления преобразователь представляет собой преобразователь 106 (Фиг.1 и Фиг.2), который загружается в ограниченный процесс 120 (Фиг.1 и Фиг.2). Ограниченный процесс имеет ограниченные права для запроса функций из операционной системы и для доступа к ресурсам в компьютерной системе. Это уменьшает повреждения, которые могут быть нанесены вредоносным кодом, выполняемым в процессе 120.
В операции 406 преобразователь преобразует файл из первого файлового формата, чтобы сгенерировать второй файл во втором файловом формате. В некоторых вариантах осуществления процесс преобразования файла ликвидирует любой вредоносный код, который мог быть внедрен в первый файл. Ликвидация вредоносного кода осуществляется без каких-либо сведений о вредоносном коде или об уязвимости, которая используется вредоносным кодом. В других вариантах осуществления любой вредоносный код в файле может быть деактивирован путем простого преобразования файла из первого файлового формата во второй файловый формат. В некоторых вариантах осуществления преобразователь представляет собой преобразователь 106 (Фиг.1 и Фиг.2), который анализирует файл, чтобы извлечь данные из этого файла и сохранить их во втором файле.
После операции 406 алгоритм переходит к операции 408, на которой файл открывается. В некоторых вариантах осуществления в операции 408 запускают приложение, которое способно открывать и предоставлять доступ к преобразованному файлу, который имеет второй файловый формат. В других вариантах осуществления операция 408 может включать в себя некоторое количество дополнительных операций, таких как преобразование преобразованного файла во второй раз. Например, преобразователь, использованный в операции 406, может представлять собой двунаправленный преобразователь, который может преобразовывать файлы из первого файлового формата во второй файловый формат, а также из второго файлового формата в первый файловый формат. В одном варианте осуществления операция 408 включает в себя преобразование файла во втором файловом формате обратно в исходный первый файловый формат. За этой операцией может следовать запуск приложения, способного открывать приложение в первом файловом формате.
В других вариантах осуществления еще один преобразователь может использоваться для преобразования файла из второго файлового формата в третий файловый формат. В этом варианте осуществления операция 408 может включать в себя запуск второго преобразователя, который преобразует файл во втором файловом формате в третий файловый формат. За этой операцией может следовать запуск приложения, способного открывать и предоставлять доступ к файлу в третьем файловом формате.
Фиг.5 предоставляет собой иллюстрацию схемы 500 последовательности операций для безопасного открытия файла согласно одному варианту осуществления настоящего изобретения. В операции 502 принимается запрос на открытие файла. В одном варианте осуществления запрос принимает приложение, такое как приложение 104 (Фиг.1). Например, пользователь может запустить приложение и далее выбрать файл. В некоторых вариантах осуществления пользователь выбирает файл, который может автоматически запустить подходящее приложение для открытия файла (или запросить пользователя выбрать приложение для открытия файла).
В операции 504 данные из файла исследуются для определения действительного формата файла. В одном варианте осуществления приложение с модулем инспектора типа, таким как модуль 124 инспектора типа (Фиг.1), используется для проверки данных файла до загрузки этого файла в память. Данные файла, проверяемые модулем инспектора типа, являются лишь небольшой частью всех данных в файле. Путем идентификации определенных элементов в данных, таких как информация заголовка и структуры данных, модуль инспектора типа может определить действительный формат файла без необходимости исследования всех данных в файле или их большой части.
В операции 506 определяется, блокируется ли открытие упомянутого действительного типа файла. В некоторых вариантах осуществления это определение выполняется путем выполнения доступа к политике 114A блокирования (Фиг.1), которая указывает файловые форматы, открытие которых блокируется. Если в операции 506 определяется, что действительный формат файла не блокируется, то алгоритм переходит к операции 508, в которой файл открывается путем загрузки файла в память и предоставления к нему доступа. Например, в одном варианте осуществления приложение, такое как приложение 104, выполняет операцию 508 путем загрузки файла в память и предоставления доступа пользователю через приложение, чтобы позволить пользователю редактировать, добавлять и сохранять данные в файле.
Если в операции 506 определяется, что действительный формат файла блокируется при открытии, то алгоритм переходит к операции 510. В операции 510 преобразователь, который способен преобразовывать файл из первого файлового формата во второй файловый формат, загружается в ограниченный процесс. В некоторых вариантах осуществления преобразователь представляет собой преобразователь 106 (Фиг.1 и Фиг.2), который загружается в ограниченный процесс 120 (Фиг.1 и Фиг.2). Ограниченный процесс имеет ограниченные права для запроса функций из операционной системы и для доступа к ресурсам в компьютерной системе. Ограниченные права уменьшают повреждения, которые могут быть вызваны вредоносным кодом, выполняемым в процессе 120.
В операции 512 преобразователь, загруженный в ограниченный процесс, преобразует файл из первого файлового формата, чтобы сгенерировать второй файл во втором файловом формате. В некоторых вариантах осуществления процесс преобразования файла ликвидирует любой вредоносный код, который мог быть внедрен в первый файл. Ликвидация вредоносного кода осуществляется без каких-либо сведений о вредоносном коде или об уязвимости, которая используется вредоносным кодом. В других вариантах осуществления простое преобразование файла из первого файлового формата во второй файловый формат устраняет риск повреждений от вредоносного кода, целью которого являются анализаторы, используемые для открытия файлов в первом файловом формате. В некоторых вариантах осуществления преобразователь представляет собой преобразователь 106 (Фиг.1 и Фиг.2), который анализирует файл в первом файловом формате и идентифицирует элементы в файле, которые используются для извлечения данных из файла. Далее извлеченные данные сохраняются во втором файле, который имеет второй файловый формат. Во втором файле нет какого-либо вредоносного кода, который мог быть внедрен в первый файл.
После операции 512 процесс переходит к операции 508, на которой преобразованный файл открывается. В некоторых вариантах осуществления в операции 508 запускают приложение, которое способно открывать и предоставлять доступ к преобразованному файлу, который имеет второй файловый формат. В других вариантах осуществления операция 508 может включать в себя некоторое количество дополнительных операций, таких как преобразование преобразованного файла во второй раз.
Фиг.6 представляет собой иллюстрацию обычного вычислительного окружения 600, которое может использоваться для реализации описанных здесь вариантов осуществления. Компьютерное окружение 600 является лишь одним примером подходящего вычислительного окружения, и оно не предназначено для определения каких-либо ограничений объема использования или функциональных возможностей компьютерных и сетевых архитектур. Кроме того, компьютерное окружение 600 не должно быть интерпретировано как имеющее какую-либо зависимость или требование, относящиеся к какому-либо компоненту или комбинациям компонентов, проиллюстрированных в примере компьютерного окружения 600.
В обычной базовой конфигурации система 600, как правило, включает в себя, по меньшей мере, один процессорный блок 602 и память 604. В зависимости от точной конфигурации и типа вычислительного устройства память 604 может быть энергозависимой (такой, как ОЗУ), энергонезависимой (такой, как ПЗУ, флэш-память и т.п.) или представлять собой сочетание этих двух типов памяти. Эта базовая конфигурация выделена на Фиг.6 пунктирной линией 606. Как показано на Фиг.6, приложения, такие как приложение 106 (Фиг.1), включающее в себя политику 114 блокирования и модуль 124 инспектора типа, могут быть загружены в системную память 604 для использования пользователем системы 600. На Фиг.6 также показан ограниченный процесс 120, в который загружается преобразователь 106, чтобы преобразовывать файл из первого файлового формата в преобразованный файл второго файлового формата, чтобы удалить вредоносный код, который может быть внедрен в этот файл.
В добавление, система 600 также может иметь дополнительные функции/функциональные возможности. Например, система 600 может также включать в себя дополнительное устройство хранения (съемное и/или несъемное), которое включает в себя, но не ограничивается перечисленным, магнитные или оптические диски или ленту. Такие дополнительные устройства хранения проиллюстрированы на Фиг.6 как съемное устройство 608 хранения и несъемное устройство 610 хранения. Компьютерные носители хранения включают в себя энергозависимые, энергонезависимые, съемные и несъемные носители, реализованные посредством какого-либо способа или технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Память 604, съемное устройство 608 хранения и несъемное устройство 610 хранения представляют собой примеры компьютерных носителей хранения. Компьютерные носители хранения включают в себя, но не ограничиваются перечисленным, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другой тип памяти, диски CD-ROM, цифровые универсальные диски (DVD) или иные оптические дисковые носители, магнитные кассеты, магнитные ленты, магнитные дисковые носители или другие магнитные устройства хранения или любые другие носители, которые могут быть использованы для хранения желаемой информации и к которым может быть осуществлен доступ системой 600. Любой такой компьютерный носитель хранения может быть частью системы 600.
Система 600 также может содержать соединения 612 связи, которые позволяют системе осуществлять связь с другими устройствами. Соединения 612 связи являются одним примером среды связи. Среда связи, как правило, воплощает машиночитаемые команды, структуры данных, программные модули и другие данные в виде модулированного сигнала данных, такого как несущая волна или другой транспортный механизм, и включает в себя любые носители доставки информации. Термин "модулированный сигнал данных" обозначает сигнал, у которого одна или более характеристик установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничиваясь перечисленным, среды связи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустическая, радиочастотная, инфракрасная и другие беспроводные среды. Термин "машиночитаемый носитель" включает в себя как носители хранения, так и среды связи.
Система 600 может также содержать устройство(а) 614 ввода, такое как клавиатура, мышь, ручка, устройство голосового ввода, устройство сенсорного ввода и т.п. Система 600 также может включать в себя устройство(а) 616 вывода, такое как дисплей, громкоговорители, принтер и т.п. Все эти устройства хорошо известны и подробно здесь не описаны.
В данном описании присутствуют ссылки на "один вариант осуществления", "еще один вариант осуществления" и "другой вариант осуществления", которые подразумевают, что конкретная описанная функциональная особенность, структура или характеристика включена в состав, по меньшей мере, одного варианта осуществления настоящего изобретения. Соответственно, использование таких фраз может подразумевать более одного варианта осуществления. Кроме того, описанные функциональные особенности, структуры или характеристики могут комбинироваться любым подходящим образом в одном или более вариантах осуществления.
Специалистам в данной области техники будет очевидно, что настоящее изобретение может быть реализовано без одной или более конкретных деталей или с другими способами, ресурсами, материалами и т.п. В других случаях широко известные структуры, ресурсы или операции не показаны или не описаны подробно исключительно для того, чтобы избежать неясности описания настоящего изобретения.
Несмотря на то что выше были проиллюстрированы и описаны конкретные варианты осуществления и приложения, следует понимать, что настоящее изобретение не ограничивается точной конфигурацией и ресурсами, описанными выше. Специалистам в данной области техники будут очевидны различные модификации, изменения и вариации, которые могут быть выполнены в структуре, работе и деталях раскрытых здесь способов и систем в рамках объема настоящего изобретения.