Система и способ повышения защищенности данных организации путем создания изолированной среды
Иллюстрации
Показать всеИзобретение относится к области защиты информации от несанкционированного доступа, изменения содержания при хранении и передачи данных. Техническим результатом является повышение защищенности данных организации за счет обнаружения нарушений правил работы с данными путем модификации приложений, работающих с этими данными. Способ обнаружения нарушений правил работы с данными включает в себя: а) модификацию кода приложения путем замены вызова функций, работающих с данными, вызовом функций-обработчиков; б) сбор информации об обращениях модифицированного приложения к функциям, работающим с данными, через вызов соответствующих функций-обработчиков; в) анализ информации, собранной на этапе б), на предмет несоответствия правилам работы с данными, установленными политикой безопасности; г) обнаружение нарушения правил работы с данным на основании анализа. 2 н. и 4 з.п. ф-лы, 8 ил.
Реферат
Область техники
Изобретение относится к способам и системам защиты информации от несанкционированного доступа, изменения содержания при хранении и передачи данных.
Уровень техники
В настоящее время число мобильных устройств растет, они проникли во все сферы жизни человека. Наиболее популярными из них являются телефоны, смартфоны, ноутбуки, коммуникаторы, системы навигации. Мобильные устройства используются в качестве средств коммуникации, связи, для развлечений. Параллельно с развитием этих устройств развиваются и беспроводные средства связи, которые неотделимы от них. Передача данных от одного устройства к другому, обмен информацией - задачи, которые не вызывают затруднений даже у неопытного пользователя данных устройств.
Но развитие технологий несет с собой не только благо, но и создает ряд проблем. С одной стороны, развитие мобильных устройств и беспроводных средств связи упрощает общение людей, облегчает обмен информацией, стирает границы городов, государств, континентов. С другой стороны, такая свобода ставит перед специалистами в области информационной безопасности все новые и новые задачи, т.к. зачастую информация, которой обмениваются пользователи мобильных устройств, конфиденциальна и является государственной или коммерческой тайной. При такой простоте копирования, передачи и обмена вероятность утечки информации за пределы организации, умышленной или нет, велика, поэтому от подразделений, отвечающих за обеспечение информационной безопасности, все активнее требуется построение системы отслеживания и блокирования несанкционированных утечек информации. Также рост популярности мобильных платформ, на которых работают мобильные устройства, привлекает к ним внимание злоумышленников, которые преследуют различные цели - от желания пошутить или проявить себя до кражи конфиденциальной информации с целью вымогательства и шантажа. Следствием этого является появление угроз (в том числе вредоносного программного обеспечения любого рода) для мобильных платформ, которые были характерны раньше исключительно для стационарных вычислительных машин. Также появляются и новые угрозы исключительно для мобильных устройств, например троянские программы, которые после установки на устройство отправляют CMC на платные номера или, используя службы геолокации, следят за передвижением пользователя.
Исходя из написанного выше становится ясно, что необходимо предпринимать меры, способные снизить риск утечки информации и защитить пользователей мобильных устройств и организации от действий злоумышленников. Меры защиты как отдельных пользователей, так и организаций перекочевали со стационарных вычислительных машин на мобильные устройства, и они, как правило, носят узконаправленный локальный характер и исходят из возможных сценариев, приводящих к выведению информации за пределы информационной среды организации. Можно выделить три основных сценария, приводящих к выведению информации за пределы информационной среды организации: сетевой, локальный и в связи с утратой носителя. Для решения этих задач используются различные способы.
Например, разграничиваются права доступа к информации, предназначенной для выполнения служебных обязанностей. Патентная заявка US 20100175104 описывает систему защиты данных на основе контроля групповых политик. После того как система осуществляет установку перехватчиков вызовов на системные вызовы API-функций, осуществляется контроль и проверка выполняемых приложением действий в соответствии с правилами политики.
Также перекрываются порты ввода-вывода информации путем установки фильтра, так, патент US8051480 описывает способ обеспечения безопасности для мобильных устройств путем анализа данных, посылаемых через сеть. Способ применим для различных сетевых интерфейсов мобильных устройств: Bluetooth, Wi-Fi, USB и т.д.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий ввиду их узкой локальной направленности и отсутствия у них общей технической концепции реализации.
Раскрытие изобретения
Изобретение является реализацией системы и способа создания защищенной среды для корпоративных данных или данных пользователя. Изобретение обеспечивает прозрачное шифрование, а также обеспечивает безопасное хранение данных организации.
Технический результат заключается в повышении защищенности данных организации за счет обнаружения нарушений правил работы с данными путем модификации приложений, работающих с этими данными.
Способ обнаружения нарушений правил работы с данными, в котором: модифицируют код приложения путем замены вызова функций, работающих с данными, вызовом функций-обработчиков; собирают информацию об обращениях модифицированного приложения к функциям, работающим с данными, через вызов соответствующих функций-обработчиков; анализируют информацию, собранную через функции-обработчики, на предмет несоответствия правилам работы с данными установленными политикой безопасности; обнаруживают нарушения правил работы с данным на основании анализа.
В частном случае приложение, код которого модифицируют, является .dex файл приложения.
Система обнаружения нарушений правил работы с данными содержит приложение, которое предназначено для модификации приложения, работающего с данными; библиотеку функций-обработчиков, предназначенную для сбора информации об обращениях модифицированного приложения к функциям, работающим с данными, через вызов соответствующих функций-обработчиков; модуль безопасности, связанный с библиотекой функций-обработчиков и предназначенный для анализа информации об обращениях, полученной от библиотеки функций-обработчиков, к функциям, работающим с данными, на предмет их несоответствия правилам работы с данными, установленными политикой безопасности, и обнаружения нарушений правил работы с данными на основании анализа.
В частном случае реализации системы библиотека функций-обработчиков выполняет функции модуля безопасности.
В другом частном случае реализации системы приложение модифицируют удаленно и устанавливают на устройство пользователя уже модифицированным.
Еще в одном частном случае модуль безопасности расположен на удаленном устройстве.
Краткое описание чертежей
Сопровождающие чертежи включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами.
Фиг.1 показывает взаимодействие приложения с операционной системой и оборудованием.
Фиг.2 показывает структуру мобильной операционной системы.
Фиг.3 показывает модифицированный вариант структуры мобильной операционной системы.
Фиг.4 показывает архитектуру мобильной операционной системы Android OS.
Фиг.5 показывает схему обмена данными устройства с хранилищами данных.
Фиг.6 показывает схему взаимодействия компонентов обеспечения безопасности.
Фиг.7 показывает пример компьютерной системы общего назначения.
Описание изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.
Современные решения в области защиты данных организации в целом справляются с возложенной на них задачей, но предлагаемые системы многокомпонентные, состоят из разных модулей, тяжелы в настройке и плохо взаимосвязаны между собой. Настоящее изобретение позволяет создать единую систему, которая позволит обеспечить безопасную передачу данных внутри организации в рамках единой концепции безопасности, т.е решить все задачи, стоящие перед специалистами в области информационной безопасности, применив один подход, и не решать каждую задачу узконаправленно и отдельно. В частности, изобретение позволит осуществлять передачу информации между мобильными устройствами, не опасаясь утечки информации, раскрытия коммерческой или государственной тайны. Также изобретение позволит осуществить защиту от угроз, которые исходят от вредоносного программного обеспечения.
Для обеспечения безопасности сети передачи данных организации необходимо осуществлять контроль над всеми данными, передающимися внутри организации, отслеживать устройства, попадающие в сеть организации извне, отслеживать события на устройствах и данные, с которыми эти устройства работают. Любое мобильное устройство, как правило, находится под управлением мобильной операционной системы (далее ОС), самыми популярными мобильными ОС являются: Google Android, Apple iOS, Symbian, BlackBerryOS, WindowsPhone и т.д. Приложения, устанавливаемые на устройства, осуществляют доступ к ресурсам мобильного устройства и к коммуникационным портам через интерфейсы, предоставляемые операционной системой. Поэтому необходимо осуществлять контроль над установленными приложениями или частью приложений, критических к требованиям политики безопасности. Под это определение попадают все приложения, работающие с критическими данными организации, где критические данные - данные, требующие защиты в связи с возможной их утерей или повреждением в случае, если произойдет умышленное или неумышленное их раскрытие, изменение, утрата. Также это данные, утрата которых может отрицательно сказаться на функционировании организации. Под политикой безопасности понимают совокупность руководящих принципов, правил, процедур и практических приемов в области безопасности, которые регулируют управление, защиту и распределение ценной информации. Ниже приведен возможный пример такой политики:
- запрет на copy/past из приложения;
- запрет отправки данных из приложения по внешним интерфейсам (почта, bluetooth, …);
- пароль на вход в приложение, его стойкость, частота запроса;
- принудительное закрытие приложения в случае, если пользователь им не пользуется и сворачивает;
- удаление локальных копий всех файлов;
- обращение приложения в сеть только по шифрованному каналу (перенаправление трафика через специальный канал);
- хранение данных приложения в облаке на серверах компании вместо локальной копии;
- принудительная аутентификация пользователя по логину, паролю через сервер компании для входа в приложение и доступ к данным;
- ограничение доступа к данным в зависимости от локации устройства, времени суток, окружающих девайсов (например, разрешать только в офисе в пределах видимости определенной Wi-Fi сети и только по ней);
- принудительное удаление всех корпоративных данных и закрытие доступа к ресурсам компании в случае обнаружения вируса или получения несанкционированного доступа к системе устройства;
- принудительное удаление всех корпоративных данных в контейнерах в случае потери устройства или ухода человека из компании.
К ресурсам мобильного устройства относят такие средства вычислительной системы устройства, которые могут быть выделены процессу обработки данных на определенный квант времени. Основными ресурсами вычислительной системы являются процессоры, области оперативной памяти, наборы данных, периферийные устройства. Интерфейс, предоставляемый операционной системой для взаимодействия с ресурсами устройства, реализован в виде API (application programming interface) функций. С их помощью приложение может взаимодействовать с сетью, выполнять операции с файлами, с памятью и т.д. Один из способов, позволяющий контролировать и управлять доступом приложений к критическим ресурсам мобильного устройства - модификация кода приложения, вызывающего критические API-функции. Здесь и далее под понятие критические попадают действия или сущности, определенные политикой безопасности. На Фиг.1а изображена схема, отражающая взаимодействие приложения с ОС и оборудованием. Приложение пользователя 101а посредством API-функций обращается к операционной системе 102, а та осуществляет непосредственный доступ к оборудованию 103. На Фиг.1б изображен модифицированный вариант, в котором вызов оригинальных API-функций в приложении 101а заменяется вызовом API-функций модифицированных, при этом модифицированные API-функции экспортируются библиотекой функций-обработчиков 104, а библиотека 104 уже вызывает оригинальные API-функции, экспортируемые ОС.
В общем случае функция-обработчик - это любая функция, которая включает в себя функциональность другой функции.
На Фиг.2 изображена упрощенная схема, отражающая типичную структуру мобильной ОС. Она включает в себя приложения пользователя 101а, работающие в окружении, где под окружением понимаются программные компоненты операционной системы, предназначенные для поддержки исполнения приложений, примером окружения является виртуальная машина Java; окружение 201, через которое осуществляется взаимодействие приложений 101а с ресурсами операционной системы 202; операционную систему 102, которая предоставляет интерфейс для взаимодействия с физическими компонентами мобильного устройства.
Описанный способ, позволяющий контролировать доступ к ресурсам мобильного устройства, встраивается в систему, изображенную на Фиг.2. Самый простой способ модифицировать данную систему и получить контроль над исполняемым приложением - встроиться между приложениями 101а и окружением 201. Для этого модифицируется приложение 101а и добавляется еще один уровень абстракции в систему, изображенную на Фиг.2 - контейнер 301, включающий в себя библиотеку функций-обработчиков 104 для приложения 101б и само модифицированное приложение 101б. На Фиг.3 изображена система с модифицированным приложением 101б. Данная система содержит все те же элементы, что и система на Фиг.2, отличие заключается в том, что добавлены новые элементы - контейнеры 301. Приложение 101б модифицировано и лишено возможности взаимодействовать с операционной системой 102 через окружение 201. С окружением 201 теперь взаимодействует контейнер 301, который является окружением для приложения 101б. Таким образом, все приложения 101б, помещенные в контейнер 301, контролируются. Для выполнения каких-либо действий приложение 101б обращается к библиотеке функций-обработчиков 104, библиотека 104 в соответствии с установленными для нее политиками безопасности (настройкой) контролирует доступ приложения 101б к ресурсам операционной системы 202. Таким образом, возможно контролировать как входящий, так и исходящий сетевой трафик, доступ к файловой системе, взаимодействие защищенного приложения 101б с другими приложениями в системе как помещенными в контейнер, так и нет.
В частном случае в один контейнер 301 может помещаться группа приложений. Такими приложениями могут быть приложения с похожей функциональностью, которые должны работать под одной политикой безопасности.
Частным случаем применения изобретения является его использование на одной из самых распространенных мобильных платформ Android OS, архитектура данной операционной системы представлена на Фиг.4. Архитектура Android построена на основе ядра Linux 401. Ядро 401 отвечает за такие системные службы, как управление безопасностью, памятью, процессами, включает сетевой стек и модель драйверов. Следующий уровень в иерархической структуре - библиотеки 402, написанные на C/C++, используемые различными компонентами ОС. Важнейшей частью архитектуры является Android Runtime (среда исполнения приложения) 403. Среда исполнения состоит из виртуальной Java-машины Dalvik и набора базовых библиотек. Dalvik выполняет файлы в специальном формате .dex, оптимизированном для устройств с малым количеством памяти. Базовые библиотеки написаны на языке Java и включают большой набор классов, которые поддерживают широкий диапазон функциональных возможностей. Следующий уровень - Application Framework (каркас приложений) 404. Этот уровень представляет собой инструментарий, которым пользуются все приложения. На вершине иерархии - Applications (уровень приложений) 401. Android не делает разницы между основными приложениями телефона и сторонним программным обеспечением. Таким образом, ключевые компоненты, такие как набор номера, рабочий стол, почтовый клиент GMail и т.д., можно заменить альтернативными аналогами или модифицировать их, что позволяет использовать описываемое изобретение на данной платформе. Но платформа имеет особенность, которая заключается в том, что приложения выполняются в песочнице (жестко контролируемый набор ресурсов для исполнения гостевой программы) и не имеют прав для модификации компонентов, находящихся на одном уровне и на уровнях ниже. Для контроля над приложениями в Android OS приложение помещается в контейнер 301, где модифицируется .dex файл приложения 101а путем замены критических классов на имена классов, которые описаны в библиотеке 104. Примерами критических классов могут являться приведенные ниже классы и методы:
java.io.*
java.lang.Runtime.loadLibrary()
java.lang.Runtime.exec()
android.app.ActivityManager.getRunningServices()
javax.crypto.Cipher
java.lang.System.loadLibrary()
java.lang.ClassLoader.getResourceAsStream()
android.webkit.WebView
android.telephony.SmsMessage
android.content.BroadcastReceiver.abortBroadcast()
android.app.Activity.startActivity()
android.content.Context.getClassLoader()
android.content.Context.startActivity()
android.content.Context.getSystemService()
java.net.*
java.lang.Class.getClassLoader()
java.lang.Class.getClasses()
java.lang.Class.getResourceAsStream()
android.telephony.SmsManager.*
Модификация дает контроль над критической активностью приложения. Модификация может осуществляться на этапе загрузки приложения, может модифицироваться копия уже установленного приложения. При попытке совершить критическое действие приложение 101б этого не сможет сделать, так как оригинальный класс заменен на класс, описанный в библиотеке 104. Поэтому сначала будет вызван соответствующий метод из библиотеки 104 и произведена проверка на соответствие совершаемого действия политике безопасности, если критическое действие не нарушает установленных политикой правил, будет вызван оригинальный метод. Тут в качестве примера можно привести способ перехвата коротких текстовых сообщений, посылаемых с мобильного устройства. В данном случае критическими будут следующие методы:
android.telephony.gsm.SmsManager.sendTextMessage()
android.telephony.gsm.SmsManager.sendMultipartTextMessage()
android.telephony.gsm. SmsManager.sendDataMessage()
android.telephony.SmsManager.sendTextMessage()
android.telephony.SmsManager.sendMultipartTextMessage()
android.telephony.SmsManager.sendDataMessage()
java.lang.reflect.Method.invoke()
В приложении, которое хотим контролировать, модифицируются вызовы именно этих методов. После помещения приложения в контейнер критические методы в нем заменяются, например метод
android.telephony.SmsManager.getDefault().sendTextMessage(«<phone_number>«, null, «<message_text>«, null, null)
будет заменен на
com.kaspersky.container.hooks.androidjelephony SmsManager.sendTextMessage (android.telephony SmsManager.getDefault(), «<phone_number>«, null, «<message_text>«, null, null).
Описание данных методов находится в библиотеке 104, в которой контролируется исполнение требований политики безопасности, пример кода библиотеки для ряда критических методов может выглядеть так:
package com.kaspersky.container.hooks,
public class android_telephony_SmsManager {
public static void sendTextMessage(Object impl, java.lang.String arg1, java.lang.String arg2, java.lang.String arg3, android app Pendinglntent arg4, android.app.Pendinglntent arg5) {
if (!PolicyManager.get(«sms»).allow(String.valueOf(arg1),String.valueOf(arg3))) {return;}
((android.telephony.SmsManager)impl).sendTextMessage(arg1, arg2, arg3, arg4, arg5),
}
public static void sendMultipartTextMessage(Object impl, java.lang.String arg1, java.lang.String arg2, java.util.ArrayList arg3, java.util.ArrayList arg4, java.util.ArrayList arg5) {
if (!PolicyManager.get(«sms»).allow(String.valueOf(arg1),String.valueOf(arg3))) {return;}
((android.telephony.SmsManager)impl).sendMultipartTextMessage(arg1, arg2, arg3, arg4, arg5);
}
public static void sendDataMessage(Object impl, java.lang.String arg1, java.lang.String arg2, short arg3, byte[] arg4, android app Pendinglntent arg5, android.app.Pendinglntent arg6) {
if (!PolicyManager.get(«sms»).allow(String.valueOf(arg1),String.valueOf(arg4))) {return;}
((android.telephony.SmsManager)impl).sendDataMessage(arg1, arg2, arg3, arg4, arg5, arg6);
}
}
Приведенный пример кода содержит описание трех методов, на которые заменяются оригинальные критические методы. Каждый из методов проверяет допустимость используемых параметров. В случае исполнения требований политики безопасности выполняется вызов оригинальных методов. Если аргументы не прошли проверку, то в данном примере отправка текстового сообщения останавливается. Также возможно не только приостановить отправку, а послать пустое сообщение, предупредить пользователя, закрыть приложение и т.д.
Частным случаем применения описанной системы является обеспечение безопасной передачи информации внутри организации. Существует ограниченное число приложений, с которыми работают сотрудники организации, но сотрудник на своем мобильном устройстве может использовать и другие приложения для личных нужд, поэтому необходимо разделить приложения, по меньшей мере, на две группы и определить для каждой группы свои политики безопасности. На приложения, которые даже частично работают с конфиденциальными данными, данными, представляющими государственную или коммерческую тайну, устанавливается политика безопасности (например, запрет на передачу данных в открытом виде, запрет копирования на сменные носители и т.д.), в то время как на остальные же приложения не налагаются подобные ограничения. Примерами защищаемых приложений могут выступать следующие приложения:
- почтовые программы;
- программы для работы с документами;
- программы для управления задачами;
- программы для участия в online-митингах;
- программы для обмена сообщениями, контактами, информацией между сотрудниками компании;
- программы для телефонных коммуникаций между сотрудниками с использованием корпоративной телефонной инфраструктуры;
- программы для доступа к корпоративным ресурсам;
- программы для оперативного мониторинга;
- тонкие клиенты для доступа к корпоративным сервисам;
- утилиты для мониторинга и управления бизнес-процессами компании (финансовая система, управление закупками, активами и т.п.).
Чтобы обеспечить выполнение политики безопасности на мобильных устройствах, будет применено настоящее изобретение. Все критические приложения 101 помещаются в контейнеры 301 (Фиг.5), которые будут обеспечивать исполнение политики безопасности для работающих приложений, это необходимое условие работы с защищенными данными. Приложения 101а помещаются в контейнер 301 на сервере организации, и пользователь получает пакет обернутых приложений 101б непосредственно с него. Возможный алгоритм следующий: пользователь со своего устройства, которое он хочет использовать для работы в сети организации, посылает запрос на доступ в сеть организации (например, заявка системным администраторам, специально сформированный запрос к серверу безопасности и т.д.); на основании запроса определяется уровень прав и набор приложений, необходимый пользователю для работы, и формируется контейнер, содержащий все необходимые приложения и настроенный в соответствии с политикой безопасности (политика безопасности индивидуальна и настраивается под каждого конкретного пользователя и может быть динамически обновляемой); контейнер копируется на устройство пользователя. Внутри контейнера все данные защищены (зашифрованы), каналы взаимодействия изолированной среды с внешним миром тоже защищены, доступ к контейнеру осуществляется путем авторизации. Схема обмена данными изображена на Фиг.5, все критические данные, передающиеся по сети, хранящиеся на сетевых хранилищах 501, переносных носителях 503, локальных носителях 502, находятся в зашифрованном состоянии для обеспечения безопасности. При необходимости доступа к защищенным данным приложение 101б через контейнер 301 обращается к хранилищам данных, находящимся, например, в сети 501. Контейнер 301 получает данные в зашифрованном виде, расшифровывает их и передает в расшифрованном виде приложению 101б, и приложение 101б работает с данными. В частном варианте, используемой политики безопасности в соответствии с политикой критические данные могут храниться на сетевых хранилищах 501. Пользователю с устройства доступно лишь редактирование документов, копирование и сохранение на локальном носителе 502 запрещено, при этом лишь возможно сохранение внутри контейнера временных файлов 504, которые при выходе из приложения удаляются.
Контейнер 301 отслеживает все действия приложения 101б с критическими данными (доступ к диску, обращение к сети, передачу данных по беспроводным каналам, доступ к буферу обмена и т.д.), все подобные операции проверяются на соответствие правилам, установленным политикой безопасности. При этом приложения пользователя 101а, не помещенные в контейнер, имеют доступ в сеть, к переносным и локальным носителям, портам для беспроводной передачи данных.
В частном случае пользователь может получать защищенные приложения не из сети, а помещать в контейнер необходимые для работы приложения непосредственно на устройстве, для этого ему необходимо получить из сети специально настроенный инструментарий, который по выбору пользователя поместит выбранные приложения в контейнер и настроит необходимые политики безопасности.
Методы классов для проверки соответствия передаваемых приложением данных политике безопасности могут быть описаны в библиотеке 104 либо реализованы в виде отдельного компонента - модуля безопасности 601 (Фиг.6) для удобства обновления. Сами правила безопасности могут содержаться в модуле безопасности 601 или находиться в отдельном конфигурационном файле 602 (например, в XML формате), который может быть обновлен с сервера безопасности 603. Также правила могут храниться в удаленной базе данных 605.
Фиг.7 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.7. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.
1. Способ обнаружения нарушений правил работы с данными, в котором:а) модифицируют код приложения путем замены вызова функций, работающих с данными, вызовом функций-обработчиков;б) собирают информацию об обращениях модифицированного приложения к функциям, работающим с данными, через вызов соответствующих функций-обработчиков;в) анализируют информацию, собранную на этапе б), на предмет несоответствия правилам работы с данными, установленными политикой безопасности;г) обнаруживают нарушения правил работы с данным на основании анализа.
2. Способ по п.1, в котором приложение, код которого модифицируют на этапе а), является .dex файл приложения.
3. Система обнаружения нарушений правил работы с данными содержит:а) приложение, которое предназначено для модификации приложений, работающих с данными;б) библиотеку функций-обработчиков, предназначенную для сбора информации об обращениях модифицированного приложения к функциям, работающим с данными, через вызов соответствующих функций-обработчиков;в) модуль безопасности, связанный с библиотекой функций-обработчиков и предназначенный для следующих действий:- анализа информации об обращениях, полученной от библиотеки функций-обработчиков, к функциям, работающим с данными, на предмет их несоответствия правилам работы с данными, установленными политикой безопасности;- обнаружения нарушений правил работы с данным на основании анализа.
4. Система по п.3, в которой библиотека функций-обработчиков выполняет функции модуля безопасности.
5. Система по п.3, в которой приложение, код которого модифицируется в пункте а), модифицируют удаленно и устанавливают на устройство пользователя уже модифицированным.
6. Система по п.3, в которой модуль безопасности расположен на удаленном устройстве.