Применение средств криптографической защиты мобильной информации в локальных приложениях / Защита информации. INSIDE

28 мая 2013

Константин Гильберг
Руководитель направления мобильной безопасности
Центр мобильных решений
Digital Design

Около 15 лет мне приходилось сталкиваться с разработкой программных продуктов и средств защиты информации, предназначенных для отечественного рынка корпоративных систем информационной безопасности. Последние два года работы связаны с разработкой продуктов для мобильной платформы Apple iOS, отличительной чертой которых является реализация средств защиты информации.

Благодаря усилиям компании Apple, современный пользователь получил в распоряжение два замечательных устройства iPad и iPhone. Совокупность уникальных свойств этих гаджетов и новые возможности очень быстро были замечены бизнесом, который все чаще начинает применять мобильные устройства в повседневной работе.

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

  1. Защита данных во время сеанса сетевого взаимодействия с сервером или облаком;
  2. Защита данных, которые кэшируются или хранятся в памяти мобильного устройства;
  3. Механизмы защиты ключей шифрования;
  4. Механизмы блокировки неочевидных каналов утечки информации;
  5. Контроль целостности среды исполнения;
  6. Интеграция с корпоративными системами и службами.

Далее рассмотрим все по порядку, но сначала оговорим несколько важных нюансов.

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

Еще один момент, о котором есть смысл сразу договориться – это jailbreak (взлом системы для установки сторонних приложений, официально не поддерживаемый компанией Apple). Мы не будем рассматривать юридические, этические и иные аспекты данного явления, не будем сравнивать «за» и «против», спорить и анализировать разные точки зрения. Материал, изложенный ниже, построен на полном отрицании необходимости данного шага, а сам автор убежден, что в долгосрочной перспективе сторонников jailbreak будет все меньше и меньше.

1.       Защита данных во время сеанса сетевого взаимодействия с сервером или облаком

Совершенно очевидно, что в обычной жизни большинство данных, которыми обмениваются корпоративные системы с мобильными устройствами передаются по каналам Wi-Fi (чаще всего это public Wi-Fi) или сетям GSM операторов. Необходимость предварительного шифрования данных в этих условиях является обязательным условием практически для любого бизнеса. В ситуации, если по сети передается особая категория данных, классифицируемых как персональные данные, то применение сертифицированных средств криптографической защиты информации (СКЗИ) обязательно. При этом необходимо констатировать, что в iOS отсутствует возможность использования российских СКЗИ на уровне системных служб. Штатный VPN-клиент, который имеется в операционной системе, и все дополнительные, загружаемые из магазина App Store, реализуют только западные алгоритмы, а следовательно, не отвечают российским стандартам.

Чтобы сделать возможным клиент-серверный обмен сообщениями с использованием российских криптографических алгоритмов, этот коммуникационный слой требуется реализовать на уровне iOS-приложения.  Если таких приложений несколько, то о безопасности каждого необходимо позаботиться индивидуально. Для упрощения задачи на рынке имеются готовые реализации СКЗИ, предназначенные для быстрого встраивания в исходный код прикладной системы. Одним из примеров такой библиотеки под iOS является сертифицированный ФСБ России СКЗИ компании КРИПТО-ПРО.

В состав СКЗИ КРИПТО-ПРО входит реализация протокола TLS, что позволяет устанавливать безопасное соединение между iOS-приложением и сервером корпоративной системы, основанное на применении российских алгоритмов аутентификации и шифрования данных.

2.       Защита данных, которые кэшируются или хранятся в памяти мобильного устройства

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

Контейнеры бывают разные. Самый простейший случай – криптографический контейнер на уровне всего устройства. Такой контейнер пользователям iPad или iPhone доступен «из коробки». Для его применения достаточно активировать функцию сложного пароля (в терминах iOS). С этого момента все данные, хранимые в памяти устройства начинают шифроваться. Существенным недостатком такого контейнера является невозможность встраивания на системный уровень iOS альтернативного СКЗИ, содержащего реализацию российских криптографических алгоритмов. Вторым недостатком этого контейнера можно считать риски, лежащие в области человеческого фактора. Если устройством помимо владельца пользуются его дети, жена или коллеги, то при разблокировке ими рабочего стола iOS-устройства все корпоративные данные становятся уязвимы.

Как правило, разработчики бизнес-приложений идут другим путем – они шифруют локальный контейнер с данными в пределах приложения, т.е. данные, хранимые внутри «песочницы» этого приложения («песочница» – среда, в которой потенциально небезопасные программы не имеют прямого доступа к ресурсам устройства и жизненно важным системным файлам). Этот подход позволяет достигать максимальной гибкости как в случае защиты данных для одного приложения, так и для целой группы. При реализации возможности устанавливать в каждое приложение группы единый экземпляр ключей шифрования границы виртуального крипто-контейнера расширяются. Становится доступен обмен шифрованной информацией между приложениями без риска ее утечки в момент передачи.

3.       Защита ключей шифрования

Как известно, ключи шифрования – наиболее уязвимое место любой криптографической системы. В мире компактных мобильных устройств проблема становится особенно актуальной. В зависимости от того, где хранятся ключи шифрования, следует различать два принципиальных подхода: первый – ключи находятся на борту мобильного устройства; второй – ключи хранятся на внешнем носителе (например, пластиковая смарт-карта с контактным чипом).  В дополнение к любому из указанных вариантов хранения ключей шифрования от пользователя требуется еще знание секретного PIN-кода.

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

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

Подавляющее большинство приложений, находящихся в App Store, не предполагает поддержку внешних носителей. С учетом того, что каждое iOS приложение ограничено рамками своей «песочницы», не следует рассчитывать, что поддержка смарт-карт может появиться автоматически за счет установки какой-нибудь внешней утилиты или устройства. Хранение ключей на смарт-карте – это изначально планируемая разработчиком бизнес-приложения функциональность.

4.       Блокировка неочевидных каналов утечки информации

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

Безобидные операции Screen capture («Снимок экрана») или Copy to clipboard («Копировать в буфер обмена») являются замечательными примерами утечки информации через неочевидные каналы. Сфотографированные или выделенные таким образом данные могут легко переноситься из одного приложения в другое или передаваться на личный e-mail. Если приложение оперирует данными конфиденциального характера, то, как только они окажутся в фото-галерее или буфере обмена, мы создадим условия для дальнейшей умышленной или случайной утечки этих данных.

Операция Open In («Открыть в») позволяет передать целый документ в другое приложение. Наличие этой функции в обычных условиях объясняется желанием пользователя открыть документ для редактирования в удобном редакторе, к которому он привык, скачав его из App Store за несколько долларов.  Проблема в том, что в этом случае документ навсегда покидает криптографический контур безопасности исходного приложения, открывая широкое поле возможностей для дальнейших атак, утечек и злоупотреблений.

Последний пример – авто-подстановка слов во время набора текста. Реализация данной функции позволяет операционную систему копить «словарь пользователя», чтобы в дальнейшем быстро предлагать нужное слово при наборе первых букв. Этот словарь хранится в кэше операционной системы и может быть извлечен злоумышленником в случае, если он получит физический доступ к устройству. Особенно опасным выглядит наличие в этом кэше слов, которые являются паролями и PIN-кодами.

Приведенные выше примеры показывают высокую уязвимость корпоративных данных в случае их обработки приложениями, которые изначально не ориентированы на сохранение целостности периметра защиты. Сложность ситуации однако состоит в том, что сплошными запретами с ней не справиться, так как запреты очень быстро отразятся на продуктивности и удобстве работы пользователя.  Основу оптимального подхода составляют не запреты функций типа Copy или Open In, а правильный подбор приложений и анализ контекста перед применением «опасных» функций. Например, копирование и вставка информации вполне может быть допустима между приложениями, которые умеют безопасно общаться между собой и не допускают хранения или передачи информации в открытом виде.

5.       Контроль целостности среды исполнения

Говоря о контроле целостности среды исполнения, я подразумеваю два аспекта: определение приложением факта взлома операционной системы (jailbreak) и отказ приложения запускаться в случае его собственной модификации. К сожалению, полного контроля этих действий исключительно на стороне приложения достигнуть нельзя, но в его силах выполнить ряд инициатив в случае, если факт взлома или модификации был замечен.

Если приложение фиксирует факт взлома iOS, то правильной реакцией на такую ситуацию будет мгновенное удаление ключей шифрование и накопленных этим приложением данных. После этого приложение должно перейти в аварийный режим работы, предусмотренный на случай взлома системы.

До тех пор пока iOS не взломана, контроль целостности каждого отдельного приложения гарантируется встроенными в операционную систему функциями. Дополнительно может применяться логика самотестирования. Подобные функции присутствуют в СКЗИ КРИПТО-ПРО и могут использоваться разработчиками прикладных систем.

6.       Интеграция с корпоративными системами и службами

Последний аспект, на который хочется обратить внимание читателя, это возможность или невозможность мобильных приложений встраиваться в существующую инфраструктуру организации и «бесшовно» интегрироваться с сервисами и системами безопасности, уже развернутыми на предприятии. Не стоит ждать таких возможностей от примитивных приложений, которые создаются для персонального использования. Напротив, системы, рассчитанные на корпоративного пользователя, тяготеют к подобным интеграциям. Примерами подобных технологических альянсов могут выступать поддержка доменной схемы аутентификации пользователей, интеграция мобильного приложения в PKI среду, взаимодействие с DLP системой и т.п.

Журнал «Защита информации. INSIDE»
№ 03, 2013

<< К списку новостей

Продолжая использовать данный веб-сайт, вы соглашаетесь с Политикой использования файлов cookie и тем,
что группа компаний Digital Design может использовать файлы cookie для оптимизации работы веб-сайта.