Система и способ блокирования доступа к защищаемым приложениям
Иллюстрации
Показать всеИзобретение относится к области защиты данных приложений, а именно к системам и способам блокирования доступа к отображаемой пользователю информации. Техническим результатом является повышение безопасности вычислительного устройства пользователя, которое достигается путем блокирования доступа процесса, к отображаемой пользователю информации. Раскрыт способ блокирования доступа к отображаемой пользователю информации, согласно которому: а. вычисляют при помощи средства мониторинга активности коэффициенты конфиденциальности элементов графического интерфейса процессов, запущенных на вычислительном устройстве; б. перехватывают при помощи средства перехвата доступ процесса к отображаемой пользователю информации для определения по меньшей мере: информации о процессе, осуществляющем доступ к информации, отображаемой пользователю, при этом упомянутая информация включает по меньшей мере идентификатор процесса (PID); области на дисплее вычислительного устройства, на которой отображается пользователю информация и к которой осуществляется доступ процесса, при этом определение области на дисплее вычислительного устройства - по крайней мере определение расположения области на дисплее вычислительного устройства; в. анализируют при помощи средства анализа пересечений пересечение определенной на этапе ранее области на дисплее вычислительного устройства с областями элементов графического интерфейса процессов, выполняющихся на вычислительном устройстве, для определения, какие из областей элементов графического интерфейса упомянутых процессов: содержат упомянутую область; содержатся в упомянутой области; частично пересекаются с упомянутой областью; г. вычисляют при помощи средства анализа пересечений рейтинг важности определенной ранее области на дисплее вычислительного устройства на основании того, какие из областей элементов графического интерфейса процессов, выполняющихся на вычислительном устройстве, содержат упомянутую область, содержатся в упомянутой области, и какие из областей элементов графического интерфейса процессов частично пересекаются с упомянутой областью; д. вычисляют при помощи средства обеспечения безопасности рейтинг опасности доступа к отображаемой пользователю информации на основании информации о процессе, осуществляющем доступ к информации, отображаемой пользователю; е. вычисляют при помощи средства обеспечения безопасности комбинацию рейтинга опасности доступа к отображаемой пользователю информации и рейтинга важности области; ж. блокируют при помощи средства перехвата доступ процесса, который был перехвачен на этапе «б», к отображаемой пользователю информации, если вычисленная на этапе ранее комбинация рейтинга опасности доступа к отображаемой информации и рейтинга важности области, и к которой осуществляется доступ, превышает пороговое значение. 2 н. и 2 з.п. ф-лы, 3 ил.
Реферат
Область техники
Изобретение относится к области защиты данных приложений, а именно к системам и способам блокирования доступа к защищаемым приложениям.
Уровень техники
В настоящее время количество всевозможных приложений (программного обеспечения), используемых на вычислительных устройствах, в том числе и персональных электронных вычислительных машинах (компьютерах), постоянно увеличивается. Среди многообразия приложений существует множество вредоносных программ, которые способны нанести какой-либо вред компьютеру или пользователю компьютера (в частности, данным пользователя), например: сетевые черви, клавиатурные шпионы, компьютерные вирусы, а также приложения, которые могут делать снимки экранов с целью кражи конфиденциальной информации, которая отображается на вычислительном устройстве пользователя.
Остро стоит задача защиты конфиденциальных данных пользователя вычислительного устройства от упомянутых программ. Такие данные могут отображаться пользователю при помощи окон различных приложений, например браузеров. При этом вредоносные приложения могут получать доступ к отображаемой на экране вычислительного устройства информации - делать «скриншоты» (снимки экрана, англ. screenshot) или получать доступ к битовому представлению изображения на экране вычислительного устройства (к данным, характеризующим изображение, при помощи обращения к системным функциям операционной системы или к соответствующим драйверам, формирующим изображение, состоящее из окон приложений и отображаемое на экране вычислительного устройства).
Существуют подходы, зачастую реализованные в антивирусных приложениях, в соответствии с которыми антивирусное приложение перехватывает доступ процессов к данным, характеризующим изображение на экране вычислительного устройства. При этом если среди окон запущенных приложений есть те, что относятся к защищаемым приложениям (приложениям, запущенным в «песочнице», от англ. "sandbox"), упомянутый доступ к данным, характеризующим изображение на экране вычислительного устройства, может быть заблокирован.
Так, в патенте US 7818800 В1 описан подход к перехвату операций доступа к отображаемой на экране информации. Предлагается использование ряда правил для определения, является ли такой доступ вредоносным. В соответствии с некоторыми правилами доступ к изображению экрана будет считаться вредоносным, если после такого доступа приложение будет осуществлять запись изображения на диск или передавать изображение другим программам. Для реализации такого подхода осуществляется перехват Win32 API функций доступа к изображению на экране. Однако такой подход обладает недостатком - в Windows 8 и более поздних версиях осуществить такой перехват не представляется возможным из-за наличия модуля PatchGuard в составе операционной системы.
В публикации US 20150319183 A1 предложена защита конкретных приложений от несанкционированного доступа к содержимому окон со стороны других приложений. Предлагается установка драйвера, который бы осуществлял перехват доступа к содержимому окон защищаемых приложений. Однако такой подход применим только к приложениям, которые помечены как «защищаемые».
Хотя рассмотренные подходы направлены на решение определенных задач в области защиты данных приложений, они не решают задачу блокирования доступа к отображаемой пользователю информации. Настоящее изобретение позволяет более эффективно решить задачу блокирования доступа к информации.
Раскрытие изобретения
Настоящее изобретение предназначено для защиты информации, отображаемой пользователю.
Технический результат настоящего изобретения заключается в повышении безопасности вычислительного устройства пользователя, которое достигается путем блокирования доступа процесса к отображаемой пользователю информации.
Способ блокирования доступа к отображаемой пользователю информации, согласно которому: вычисляют при помощи средства мониторинга активности коэффициенты конфиденциальности элементов графического интерфейса процессов, запущенных на вычислительном устройстве; перехватывают при помощи средства перехвата доступ процесса к отображаемой пользователю информации для определения по меньшей мере: информации о процессе, осуществляющем доступ к информации, отображаемой пользователю, при этом упомянутая информация включает по меньшей мере идентификатор процесса (PID); области на дисплее вычислительного устройства, на которой отображается пользователю информация, и к которой осуществляется доступ процесса, при этом определение области на дисплее вычислительного устройства - по крайней мере определение расположения области на дисплее вычислительного устройства; при этом под доступом к информации, отображаемой пользователю, понимают по меньшей мере вызов системной функции, в результате которого в память вычислительного устройства загружается бинарное представление отображаемой пользователю информации; анализируют при помощи средства анализа пересечений пересечение определенной на этапе ранее области на дисплее вычислительного устройства с областями элементов графического интерфейса процессов, выполняющихся на вычислительном устройстве, для определения, какие из областей элементов графического интерфейса упомянутых процессов: содержат упомянутую область; содержатся в упомянутой области; частично пересекаются с упомянутой областью; вычисляют при помощи средства анализа пересечений рейтинг важности определенной ранее области на дисплее вычислительного устройства на основании того, какие из областей элементов графического интерфейса процессов, выполняющихся на вычислительном устройстве, содержат упомянутую область, содержатся в упомянутой области, и какие из областей элементов графического интерфейса процессов частично пересекаются с упомянутой областью; при этом рейтинг важности области зависит от того, является ли информация, которая отображается пользователю при помощи процессов, области элементов графического интерфейса которых содержат, частично пересекаются с упомянутой областью, или содержатся в упомянутой области, конфиденциальной; при этом конфиденциальность отображаемой информации характеризуется коэффициентом конфиденциальности элемента графического интерфейса процесса, запущенного на вычислительном устройстве, который хранится в базе данных информации; вычисляют при помощи средства обеспечения безопасности рейтинг опасности доступа к отображаемой пользователю информации на основании информации о процессе, осуществляющем доступ к информации, отображаемой пользователю; при этом рейтинг опасности доступа к отображаемой пользователю информации - число, чем больше которое, тем более характерен доступ, перехваченный на этапе ранее, для вредоносного процесса; вычисляют при помощи средства обеспечения безопасности комбинацию рейтинга опасности доступа к отображаемой пользователю информации и рейтинга важности области; блокируют при помощи средства перехвата доступ процесса, который был перехвачен на этапе ранее, к отображаемой пользователю информации, если вычисленная на этапе ранее комбинация рейтинга опасности доступа к отображаемой информации и рейтинга важности области, и к которой осуществляется доступ, превышает пороговое значение.
В частном случае реализации способа коэффициент конфиденциальности элемента графического интерфейса процесса - число, чем выше которое, тем больше вероятность того, что элемент графического интерфейса этого процесса может отображать пользователю конфиденциальную информацию.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 иллюстрирует структурную схему системы обнаружения вредоносного приложения на вычислительном устройстве пользователя.
Фиг. 2 показывает примерную схему алгоритма работы одного из вариантов реализации обнаружения вредоносного приложения на вычислительном устройстве пользователя.
Фиг. 3 показывает пример компьютерной системы общего назначения.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является не чем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносное приложение - приложение, способное нанести вред компьютеру или данным пользователя компьютера, например: сетевой червь, клавиатурный шпион, компьютерный вирус. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.
Доверенное приложение - приложение, которое не наносит вреда компьютеру или его пользователю. Доверенным приложением может считаться приложение, разработанное доверенным производителем ПО, загруженное из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или приложение, идентификатор которого (например, MD5 файла приложения) хранится в базе данных доверенных приложений. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных приложений.
Недоверенное приложение - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи антивирусного приложения.
Вредоносный файл - файл, являющийся компонентом вредоносного приложения.
Недоверенный файл - файл, являющийся компонентом недоверенного приложения.
Доверенный файл - файл, являющийся компонентом доверенного приложения.
Вредоносный процесс - процесс, запущенный из вредоносного приложения.
Недоверенный процесс - процесс, запущенный из недоверенного приложения.
Доверенный процесс - процесс, запущенный из доверенного приложения.
Доступ к информации, отображаемой пользователю - по меньшей мере вызов системной функции, в результате которого в память вычислительного устройства загружается бинарное представление отображаемой пользователю информации. В частном случае реализации такая память является оперативной памятью вычислительного устройства. Примером такой функции может являться WinAPI-функция BitBlt.
Рейтинг опасности доступа к отображаемой пользователю информации (для простоты - рейтинг опасности доступа) - число (например, от 0 до +∞; или от 0 до 1000, при этом, если при вычислении рейтинг будет выше 1000, его значение принимается за 1000), чем больше которое, тем более характерен доступ к информации, отображаемой пользователю, для вредоносного процесса.
На Фиг. 1 изображена структурная схема системы обнаружения вредоносного приложения на вычислительном устройстве пользователя.
Система включает в себя следующие компоненты: средство перехвата 130, средство анализа пересечений 140, средство обеспечения безопасности 150. В частном случае реализации система дополнительно включает в себя базу данных информации 160. Упомянутая система размещена на вычислительном устройстве пользователя (например, компьютере или компьютерной системе), которое для простоты будем называть «вычислительное устройство», и детальное описание которого будет дано позднее.
Вычислительное устройство содержит дисплей 110 (в частном случае такой дисплей 110 не является частью вычислительного устройства, а подключается к нему наравне с другими устройствами ввода/вывода), при помощи которого пользователю вычислительного устройства (далее по тексту - «пользователю») отображается информация: текст, графические изображения и т.п. Информация отображается различными элементами графического интерфейса (например, панель задач в операционной системе Windows) операционной системы (ОС), а также посредством элементов графического интерфейса 115 (115а, 115б, и 115в) процессов 120, выполняющихся на вычислительном устройстве. В частном случае реализации таким элементом графического интерфейса может быть окно процесса 120. В другом частном случае элементом графического интерфейса 115 может быть виджет (англ. «widget») процесса 120. В еще одном частном случае реализации элементом графического интерфейса 115 может быть всплывающее окно. В еще одном частном случае реализации элементом графического интерфейса 115 может быть пиктограмма: иконка (icon) приложения, из которого запущен процесс 120, иконка процесса 120 в панели уведомлений (status bar для ОС Android или tray для ОС Windows). Процессы 120, выполняющиеся на вычислительном устройстве, запущены из приложений, присутствующих по меньшей мере на том же вычислительном устройстве. В частном случае реализации упомянутые приложения могут присутствовать на другом вычислительном устройстве (например, на удаленном сервере или сетевом диске). Следует иметь в виду, что среди выполняющихся процессов 120 есть процессы, не имеющие элементов графического интерфейса 115.
Средство перехвата 130 предназначено для перехвата доступа процесса к отображаемой пользователю информации. Целью такого перехвата является определение по меньшей мере:
• информации о процессе, осуществляющем доступ к информации, отображаемой пользователю, при этом упомянутая информация включает по меньшей мере идентификатор упомянутого процесса (англ. process identifier, PID);
• области 125 на дисплее 110 вычислительного устройства, на которой отображается пользователю информация, и к которой осуществляется доступ.
Под определением области 125 на дисплее 110 вычислительного устройства понимают по крайней мере определение расположение области. В частном случае реализации под расположением области 125 на дисплее 110 вычислительного устройства, могут быть координаты вершин области 125 или координаты одной из вершин (например, верхней левой) и размеры области 125 - высота и ширина. Предполагается, что область 125 имеет прямоугольную форму. В еще одном частном случае реализации область может быть произвольной формы, определение такой формы сводится к определению функции, описывающей точное или примерное (с заданной точностью) расположение точек на границе области. Под доступом к информации, отображаемой пользователю, понимают по меньшей мере вызов функции (например, системной функции), в результате которого в память вычислительного устройства загружается бинарное представление (растровое изображение) отображаемой пользователю информации. В частном случае реализации такая память является оперативной памятью вычислительного устройства. Примером такой функции является Windows API функция BitBlt. В частном случае реализации изобретения такой функцией может являться DrvCopyBits. В еще одном частном случае реализации изобретения такой функцией может являться Print Window, StretchBlt или PlgBlt.
Для того чтобы осуществлять перехват, средство перехвата 130 может быть реализовано в качестве драйвера. В частном случае реализации такой драйвер перехватывает вызов функции BitBlt или Print Window. При перехвате такого вызова функции с помощью драйвера можно определить контекст вызова: идентификатор процесса PID (Process Identifier) и идентификатор потока TID (Thread Identifier). Полученные таким образом данные являются информацией о процессе, упомянутой выше. Расположение области 125 определяется соответствующими параметрами вызванной (и впоследствии перехваченной) функции (nHeight, hdcSrc, nXSrc, nYSrc).
В ОС Windows версии 8 и более поздних существует компонент PatchGuard, который защищает ОС от изменения некоторых критических структур и таблиц операционной системы (например, таблицы системных вызовов, глобальную таблицу дескрипторов, таблицу дескрипторов прерываний и т.п.). Этот компонент не позволяет реализовать упомянутый выше подход к перехвату доступа на уровне драйвера. В частном случае реализации средство перехвата 130 может быть реализовано в виде компонента подсистемы DWM (англ. Desktop Windows Manager) для отображения элементов графического интерфейса 115 процессов 120. Такой компонент внедряется в виде dll-файла, который загружается в адресное пространство процесса dwm.exe. За вызовом функции BitBlt некоторым процессом 120 следует цепочка вызовов функций (NtGdiBitBlt, DwmSyncCaptureScreenBits), в результате которых к DWM происходит обращение посредством LPC-запроса (англ. local procedure call), который и перехватывается средством перехвата 130. Информация о процессе 120, осуществляющем доступ к отображаемой пользователю информации, находится в заголовке этого запроса: PID и TID. Полученные таким образом данные являются информацией о процессе, упомянутой выше. Расположение области 125 определяется соответствующими параметрами вызванной при помощи LPC-запроса функции (nHeight, hdcSrc, nXSrc, nYSrc).
В еще одном частном случае реализации изобретения средство перехвата 130 может быть реализовано в виде драйвера, который перехватывает обращения приложений к дисплейному драйверу (например, cdd.dll - Canonical Display Driver). В данном случае средство перехвата 130 перехватывает вызов функции копирования поверхности (англ. surface) DrvCopyBits. При перехвате такого вызова функции с помощью драйвера можно определить контекст вызова: PID (Process Identifier) и TID (Thread Identifier). Полученные таким образом данные являются информацией о процессе, упомянутой выше. Кроме того, при вызове функции обращения к поверхности средство 130 определяет идентификатор поверхности, к которой производится доступ. При помощи идентификатора поверхности средство перехвата 130 определяет область, к которой осуществляется доступ - координаты и размеры. Расположение области 125 определяется соответствующими параметрами вызванной функции (параметр pptlSrc).
В еще одном варианте реализации под определением расположения области 125 на дисплее 110 вычислительного устройства понимают определение контекста устройства (англ. device context), который соответствует области 125, и в рамках которого осуществляется доступ к информации (иными словами, контекст устройства, указанный как параметр вызова функции), отображаемой пользователю. В частном случае реализации контекст устройства является параметром вызова перехваченной функции hdcSrc (например, для функций BitBlt, PlgBlt и StretchBlt).
В еще одном варианте реализации под определением расположения области 125 на дисплее 110 вычислительного устройства понимают определение поверхности, которая соответствует области 125, к которой осуществляется доступ посредством вызова перехваченной функции. В частном случае реализации поверхность (а именно указатель на структуру SURFOBJ) является параметром psoSrc вызова перехваченной функции DrvCopyBits.
В еще одном варианте реализации под определением расположения области 125 на дисплее 110 вычислительного устройства понимают определение идентификатор окна (англ. window handle), которое соответствует области 125, к которой осуществляется доступ посредством вызова перехваченной функции. В частном случае реализации идентификатор окна является параметром hwnd вызова перехваченной функции Print Window.
Определенная средством перехвата 130 информация о процессе 120, осуществляющем доступ к информации, отображаемой пользователю, а также область 125 на дисплее 110 вычислительного устройства (в частном информация, описывающая область - расположение области 125 на дисплее 110 вычислительного устройства), на которой отображается пользователю информация, и к которой осуществляется доступ, передается средством перехвата 130 средству анализа пересечений 140. Определенная средством перехвата 130 информация о процессе 120, осуществляющем доступ к информации, отображаемой пользователю также передается средству обеспечения безопасности 150.
В частном случае реализации, если определенная средством перехвата 130 область 125 на дисплее 110 вычислительного устройства соответствует процессу 120, который осуществляет перехваченный доступ, то дальнейший анализ в отношении такого доступа не производится, и процесс 120, осуществляющий перехваченный доступ, продолжает свое выполнение. В частном случае реализации область 125 соответствует процессу 120, если определенная средством перехвата 130 поверхность соответствует процессу 120. В еще одном случае реализации область 125 соответствует процессу 120, если определенный средством перехвата 130 идентификатор окна соответствует окну процесса 120. В другом частном случае реализации область 125 соответствует процессу 120, если определенный средством перехвата 130 контекст устройства соответствует процессу 120.
Средство анализа пересечений 140 предназначено для анализа пересечений определенной при помощи средства перехвата 130 области 125 на дисплее 110 вычислительного устройства с областями элементов графического интерфейса 115 процессов 120, выполняющихся на вычислительном устройстве, для определения, какие из областей элементов графического интерфейса 115 упомянутых процессов 120:
• содержат упомянутую область;
• содержатся в упомянутой области;
• частично пересекаются с упомянутой областью.
В частном случае реализации в рамках упомянутого выше анализа средство анализа пересечений 140 сравнивает расположение областей всех элементов графического интерфейса 115 процессов 120, выполняющихся на вычислительном устройстве, с расположением определенной средством перехвата 130 области 125. В частном случае реализации изобретения расположение областей элементов графического интерфейса 115 процессов 120 определяется средством анализа пересечений 140 на основании данных об элементах графического интерфейса 115 (а именно их расположении и размерах) процессов 120, которые предоставляются операционной системой. В частном случае реализации такие данные предоставляются ОС в ответ на вызов функции GetWindowRect.
В еще одном частном случае реализации расположение областей элементов графического интерфейса 115 процессов 120 определяется средством анализа пересечений 140 на основании данных о поверхностях (ранее упоминались как surface) и их расположениях. Такие данные средство анализа пересечений 140 получает путем перехвата вызовов функций создания поверхностей DrvEnableSurface, а именно возвращаемого значения - указателя на структуру SURFOBJ, в которой указано расположение поверхности, которая соответствует элементу графического интерфейса 115 процесса 120.
В другом варианте реализации средство анализа пересечений 140 определяет, какие из областей элементов графического интерфейса 115 процессов 120 содержат область 125, содержатся в области 125 или частично пересекаются с областью 125, если определенный средством перехвата 130 контекст устройства, в рамках которого осуществляется доступ к информации, отображаемой пользователю (или поверхность, к которой осуществляется доступ), совпадает с контекстом устройства рабочего стола (англ. desktop), или определенный средством перехвата 130 идентификатор окна, являющийся параметром перехваченной функции, является идентификатором рабочего стола (англ. desktop).
На Фиг. 1 приведен пример расположения элементов графического интерфейса 115 процессов 120, выполняющихся на вычислительном устройстве. Путем сравнения расположения области 125, а также расположения областей элементов графического интерфейса 115 средство анализа пересечений определяет, что область элемента графического интерфейса 115а процесса 120 содержит (полностью) внутри себя область 125, область элемента графического интерфейса 1156 процесса 120 частично пересекается с областью 125, область элемента графического интерфейса 115в процесса 120 не пересекается с областью 125. В частном случае реализации решение, как расположена область 125 относительно области элемента графического интерфейса 115, принимается на основании координат вершин области 125 и области элемента графического интерфейса 115. В еще одном частном случае реализации решение, как расположена область 125 относительно области элемента графического интерфейса 115, принимается на основании координаты одной вершины (например, левой верхней), а также размеров (высоты и ширины) области 125 и элемента графического интерфейса 115.
В еще одном частном случае реализации средство анализа пересечений 140 определяет долю пересечения - отношение размера области 125 к размеру области пересечения области 125 и области элемента графического интерфейса 115. Например, для области элемента графического интерфейса 115а доля пересечения будет равняться 1, для области элемента графического интерфейса 1156 - 1/3, для области элемента графического интерфейса 115в такая доля пересечения будет равняться 0 (пересечения нет).
В еще одном варианте реализации средство анализа пересечений 140 определяет элемент графического интерфейса 115 процесса 120, как содержащий область 125, если этот элемент графического интерфейса 115 представляет собой окно, и контекст устройства этого окна (который может быть определен при помощи вызова функции WinAPI GetDC) совпадает с определенным ранее при помощи средства перехвата 130 контекстом устройства, в рамках которого осуществляется доступ к информации, отображаемой пользователю. При этом доля пересечения равна 1. Для всех остальных процессов 120 считается, что их элементы графического интерфейса 115 не пересекаются с областью 125.
В еще одном варианте реализации средство анализа пересечений 140 определяет элемент графического интерфейса 115 процесса 120, как содержащий область 125, если этот элемент графического интерфейса 115 представляет собой окно, и поверхность, которая соответствует области 125, к которой осуществляется доступ посредством вызова перехваченной функции, является поверхностью этого окна. При этом доля пересечения равна 1. Для всех остальных процессов 120 считается, что их элементы графического интерфейса 115 не пересекаются с областью 125.
В еще одном варианте реализации средство анализа пересечений 140 определяет элемент графического интерфейса 115 процесса 120, как содержащий область 125, если этот элемент графического интерфейса 115 представляет собой окно, и идентификатор этого окна (HWND) совпадает с идентификатором окна, который соответствует области 125 и определен ранее при помощи средства перехвата 130. При этом доля пересечения равна 1. Для всех остальных процессов 120 считается, что их элементы графического интерфейса 115 не пересекаются с областью 125.
Средство анализа пересечений 140 также предназначено для вычисления рейтинга важности определенной при помощи средства перехвата 130 области 125 на дисплее вычислительного устройства 110 на основании того, какие из областей элементов графического интерфейса 115 выполняющихся на вычислительном устройстве процессов 120 содержат упомянутую область 125, какие из областей элементов графического интерфейса 115 содержатся в упомянутой области 125, и какие из областей элементов графического интерфейса 115 частично пересекаются с упомянутой областью 125. При этом рейтинг важности области 125 зависит от того, является ли информация, которая отображается пользователю при помощи процессов 120, области элементов графического интерфейса 115 которых содержат, частично пересекаются с упомянутой областью 125, или содержатся в упомянутой области 125, конфиденциальной. Чем выше рейтинг важности области 125, тем больше вероятность того, что упомянутая информация является конфиденциальной. В частном случае реализации изобретения при вычислении рейтинга важности области 125 дополнительно используются доли пересечения области 125 с областями элементов графического интерфейса 115 процессов 120.
В частном случае реализации конфиденциальность информации, которая отображается пользователю при помощи процесса 120, область элементов графического интерфейса 115 которого содержит, частично пересекается с областью 125, или содержится в упомянутой области 125, определяется при помощи базы данных информации 160, которая связана со средством анализа пересечений 140. База данных информации 160 хранит коэффициенты конфиденциальности элементов графического интерфейса 115 процессов 120, выраженные числом. Чем выше коэффициент конфиденциальности элемента графического интерфейса 115 процесса 120, тем больше вероятность того, что элемент графического интерфейса 115 этого процесса 120 может отображать пользователю конфиденциальную информацию. Предполагается, что процессы 120 приложений для удаленной работы с банками, процессы 120, запущенные в «безопасном режиме» (так называемая «песочница» - от англ. sandbox), процессы 120 приложений для работы с электронной почтой, а также дочерние приложения упомянутых процессов (например, процесс winword.exe, в котором открыто вложение в электронное письмо) с большой вероятностью отображают конфиденциальную информацию при помощи своих элементов графического интерфейса 115 (например, при помощи своих окон).
В частном случае реализации информация, которая хранится в базе данных информации 160, формируется специалистом в области информационной безопасности и записывается в базу 160 средством анализа пересечений 140, которое получает эту информацию от удаленного сервера безопасности или системного администратора.
В еще одном варианте реализации в систему обнаружения вредоносного приложения дополнительно входит средство мониторинга активности 170. Средство мониторинга активности 170 предназначено для слежения за действиями, осуществляемыми процессами 120, а также для вычисления коэффициентов конфиденциальности, которые соответствуют элементам графического интерфейса 115 процессов 120, на основании действий, осуществляемых процессами 120. В частном случае реализации вычисленные средством 170 коэффициенты конфиденциальности передаются в базу данных информации 160 (если база данных 160 уже хранит значения коэффициентов конфиденциальности, их значения будут обновлены). В другом частном случае реализации изобретения вычисленные коэффициенты конфиденциальности передаются средством мониторинга активности 170 средству обеспечения безопасности 150, которое, в свою очередь, использует эти коэффициенты наравне с теми, которые средство обеспечения безопасности 150 получает из базы данных информации 160. Под действиями, осуществляемые процессом 120, понимают системные вызовы или наборы системных вызовов, осуществляемых процессом 120. В еще одном частном случае реализации под действием понимают передачу/получение электронного сообщения (например, сообщения e-mail, голосового сообщения или сообщения для службы мгновенного обмена сообщениями). Для осуществления слежения средство мониторинга активности 170 может быть реализовано в качестве драйвера или набора драйверов, при помощи которых осуществляется определение системных вызовов (посредством перехвата), осуществляемых процессами 120 - таким образом осуществляется слежение. При этом под определением системного вызова подразумевается определение процесса 120, который осуществляет этот вызов, а также аргументы вызова. В частном случае реализации при помощи драйверов средством мониторинга активности 170 определяются вызовы функций запуска процессов (например, LoadModule, CreateProcess, CreateProcessAsUser, ShellExecute, WinExec и т.п.), а также функции сетевого взаимодействия (например, connect, socket, bind, receive, send и т.п.). Следует упомянуть, что возможности определения сетевых вызовов не ограничены приведенными примерами использования драйверов. В еще одном варианте реализации средство 170 может быть реализовано в качестве плагина (англ. plug-in) для приложения, из которого запущен процесс 120, при этом при помощи плагина осуществляется определение информации о сообщение, которое передано или получено этим процессом 120. В частном случае такой информацией является отправитель сообщения, получатель сообщения, тема сообщения, содержимое сообщения, тип сообщения - входящее или исходящее. В еще одном варианте реализации при помощи такого плагина средство мониторинга активности 170 определяет автора документа, например автора документа Microsoft Word, при этом авторство указывается в заголовке документа (файла документа) при создании или модификации документа.
В частном случае реализации изобретения средство мониторинга активности 170 вычисляет коэффициенты конфиденциальности для элементов графического интерфейса 115 процессов 120 при помощи эвристических правил. Цель использования эвристических правил - установить высокие коэффициенты конфиденциальности элементов графического интерфейса 115 тех процессов 120, при помощи которых пользователю может быть отображена конфиденциальная информация, или любая другая информация, кража которой нежелательна. В частном случае реализации примером таких эвристических правил могут быть:
• установить максимальное значение коэффициента конфиденциальности для элементов графического интерфейса 115 тех процессов 120, которые устанавливают защищенные сетевые соединения (например, https);
• установить максимальное значение коэффициента конфиденциальности для элементов графического интерфейса 115 тех процессов 120, которые устанавливают соединения с удаленными серверами из списка защищаемых удаленных серверов;
• установить максимальное значение коэффициента конфиденциальности для элементов графического интерфейса 115 тех процессов 120, которые запущены из списка защищаемых приложений;
• установить максимальное значение коэффициента конфиденциальности для элементов графического интерфейса 115 тех процессов 120, которые открывают документы, созданные авторами из списка защищаемых авторов;
• установить максимальное значение коэффициента конфиденциальности для элементов графического интерфейса 115 тех процессов 120, которые получают сообщения от адресантов (или передают сообщения адресатам) из списка защищаемых контактов.
При этом база данных информации 160 хранит адреса (IP-адреса) удаленных серверов (например, банковских или почтовых), входящих в список защищаемых удаленных серверов. При этом список защищаемых приложений - перечень приложений, который хранится в базе данных 160 (например, приложения для работы с банками, приложения для предотвращения утечек информации - DLP, Data Leak Prevention и пр.). При этом список защищаемых контактов - перечень контактов (например, имена или адреса e-mail отправителей или получателей сообщений), который хранится в базе данных 160. При этом список защищаемых авторов - перечень авторов (например, имя пользователя, создавшего документ), который хранится в базе данных 160.
При этом под максимальным значением коэффициента конфиденциальности в частном случае понимают 109. В еще одном варианте реализации изобретения за максимальное значение коэффициента конфиденциальности принимается число, не меньшее чем пороговое значение, которое используется средством обеспечения безопасности 150 (о котором будет сказано далее). В еще одном варианте реализации изобретения за максимальное значение этого коэффициента конфиденциальности принимается максимально большое численное значение, которое может храниться в базе данных информации.
Стоит отметить, что для процесса 120 средство мониторинга активности 170 может вычислять коэффициенты конфиденциальности не всех элементов графического интерфейса 115 процесса 120. В общем случае средство мониторинга активности 170 вычисляет для процесса 120 коэффициенты конфиденциальности только тех элементов графического интерфейса 115, установление значений которых предписано эвристическими правилами, используемыми средством мониторинга активности 170.
В еще одном частном