Secured by Knox — механизмы мобильной безопасности Samsung

    Если у вас телефон Samsung, то вы, возможно, замечали на экране загрузки фразу «Secured by Knox». Что это вообще значит? Под катом – описание платформы мобильной безопасности, предустановленной на большинстве смартфонов и планшетов Samsung. Это первый русскоязычный обзор того, какие механизмы вообще существуют в решении Knox.



    Введение


    В 2019 году компания Samsung Electronics отметила 50 лет, а еще этот год отмечен другой круглой датой – 10 лет с момента выпуска первого устройства линейки Galaxy — GT-I7500. Вот так выглядела эта модель:



    По сегодняшним меркам телефон имел очень скромные характеристики: экран размером 3.2 дюйма и процессор с тактовой частотой всего в 528 МГц, работал под управлением одной из первых версий ОС Android. Собственно говоря, в 2009 году модель не была уникальной: на рынке были устройства на открытой ОС Android со схожими аппаратными характеристиками на платформе ARM. Было понятно, что для успеха нужна «изюминка», выделяющая компанию из общего ряда.

    Несомненно, открытость операционной системы повлияла на успех ОС Android: по оценкам IDC на октябрь 2019 она установлена на 87% проданных смартфонах, и это число продолжает расти. Но и тогда, и сейчас, вопрос безопасности Android – одна из часто обсуждаемых тем.

    Samsung представила платформу Knox, как ответ на вызовы в области информационной безопасности мобильных устройств. Первая редакция Knox (старое название «SAFE» или «Samsung for Enterprise») вышла в 2012 году вместе с Galaxy S3.



    Последняя на сегодняшний день мажоритарная версия платформы (3.0) была выпущена вместе с Galaxy S9 в 2018. Актуальная версия на момент написания статьи — 3.4. Название Knox происходит от Форт-Нокса – одного из самых защищенных хранилищ золотых запасов в мире.



    Что же такое Knox? Сейчас под этим названием (или уже правильнее брендом) понимается всё, что связано в Samsung с мобильной безопасностью. Сюда относят менеджер паролей Samsung Pass, Защищённая папка, платёжный сервис Samsung Pay, и целое семейство корпоративных решений, но в основе этого лежит платформа Knox.
     


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

    Сюда включаются следующие принципы: 

    • Безопасность системы строится на аппаратном корне доверия (HW Root of Trust).
    • Контроль безопасности устройства должен начинаться в момент загрузки.
    • Мониторинг безопасности обязателен и регулярен во время работы устройства.
    • В системе должен быть заложен механизм, позволяющий доказать свою целостность сторонним системам.
    • Основная ценность устройства – данные пользователя. Их защита является приоритетом системы.

    Особое внимание при разработке платформы Knox уделяется специфическим корпоративным требованиям к безопасности устройств. Мобильные телефоны стали рабочим инструментом: это не только всем привычная офисная работа (почта, мессенджеры, офисный пакет), но и более экзотические варианты: телефон в качестве кассового аппарата, сканера на складе, или даже гида в музее. Для компаний важна возможность управления этими мобильными рабочими местами. 

    Платформа Knox решает и эту задачу:

    • Корпоративными данными на устройстве должно быть удобно управлять.
    • Корпоративное устройство должно обладать механизмами централизованного мониторинга и контроля.
    • Выше обозначенные пункты не должны быть реализованы в ущерб частной жизни конечного пользователя.

    Далее подробно об устройстве платформы Samsung Knox.

    Построение доверенной среды


    Перед тем, как углубиться в рассмотрение отдельных механизмов, нужно пару слов сказать об основе всех аппаратных механизмов защиты платформы Knox – архитектуре TrustZone-based Integrity Measurement Architecture (TIMA). Она базируется на ARM TrustZone Framework.

    В парадигме TrustZone существует 2 «мира» (области):

    • Secure («Безопасный») 
    • Normal или Non-secure («Обычный» или «Небезопасный» мир)

    Их разделение осуществляется на аппаратном уровне и контролируется отдельным компонентом, который называется Monitor. Выглядит это примерно следующим образом:


    Источник: www.arm.com

    Функционал телефона делится между этими двумя областями следующим образом:

    Secure World:
    • «Чувствительные» вычисления (например, шифрование).
    • Защита критичной информации.
    • Мониторинг состояния ядра ОС, запущенной в Normal World.
    • Доступ к памяти и устройствам, помеченным как Secure (может быть осуществлён только из Secure World).

    Normal World:
    • Выполнение основной ОС и всех пользовательских приложений.
    • Приложения, запущенные в Secure World, наиболее привилегированы, и могут получать доступ к ресурсам обеих сред (и Secure World, и Normal World). Приложения из Normal World ни при каких условиях не могут получить доступ к ресурсам Secure World напрямую.

    От основ перейдем к самим механизмам защиты в платформе Knox.

    Аппаратный корень доверия


    Уже в момент производства на заводе, во время установки программного обеспечения (ПО), на мобильном устройстве создаются криптографические ключи. Рассмотрим 2 основных ключа:

    • Device Unique Hardware Key (DUHK) или Уникальный аппаратный ключ устройства. Уникальный для каждого устройства симметричный ключ, который создается непосредственно на устройстве с использованием аппаратного генератора случайных чисел. Информация, зашифрованная этим ключом, может быть расшифрована только на том же самом устройстве. DUHK доступен только модулю аппаратного шифрования и не доступен никакому ПО на устройстве. С помощью DUHK шифруются остальные криптографические ключи на устройстве. Когда мы говорим, что какой-то компонент привязан к устройству, чаще всего подразумевается применение именно этого ключа.
    • Device Root Key (DRK) или Корневой ключ устройства. Уникальная для каждого устройства пара ассиметричных ключей (RSA), подписанная корневым сертификатом (X.509) Samsung. DRK защищен с помощью DUHK и доступен только из Secure World. Он однозначно идентифицирует устройство и подтверждает, что оно произведено Samsung.

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


    Производство устройств на фабрике Samsung Electronics, г. Гуми, Южная Корея

    Загрузка устройства


    Безопасная загрузка (Secure Boot)


    Процесс загрузки устройства состоит из цепочки загрузчиков, каждый из которых проверяет подпись следующего компонента, после чего запускает его. Если проверка не проходит, процесс загрузки прерывается. Данный механизм называется Secure Boot, в своей работе он использует Samsung Secure Boot Key (SSBK) – асимметричную пару ключей в аппаратном хранилище.
    Secure Boot гарантирует загрузку устройства только с помощью доверенных загрузчиков Samsung. Если один из загрузчиков скомпрометирован, то запуск устройства прерывается, предотвращая потенциальную компрометацию устройства.

    Доверенная загрузка (Trusted Boot)


    Secure Boot путем проверки подписи решает проблему сторонних загрузчиков, но не решает проблему старых, неактуальных версий, потенциально несущих в себе ряд известных уязвимостей. Поэтому разработан механизм доверенной загрузки Trusted Boot, работающий поверх Secure Boot. Он проверяет актуальность версии загрузчика. Результаты проверки записываются в защищённую память в TrustZone Secure World и могут быть использованы для будущих проверок. 

    Knox Verified Boot (KVB)


    В момент начала загрузки ОС активируется ещё один механизм, называемый Knox Verified Boot. KVB – расширение механизма Android Verified Boot (AVB). Помимо стандартных метрик, контролируемых AVB, KVB также учитывает результаты, полученные Trusted Boot и Secure Boot (т.е. целостность загрузчиков и их актуальность). За счёт выполнения всех операций KVB в загрузчике, данная проверка является надёжной и безопасной (процедура осуществляется вне проверяемого объекта). 

    Компонент Knox Verified Boot является достаточно новым и поддерживается устройствами, начиная с Samsung S10, работающих под управлением операционной системы Android P или более поздних версий.

    Графически процесс загрузки устройства, защищённого механизмами Knox можно представить следующим образом:



    Аппаратный флаг Knox Warranty Bit


    Knox Warranty Bit — функция безопасности, позволяющая зафиксировать факт установки неофициальной версии системного программного обеспечения на устройство. Устройства со сработавшим Warranty Bit не могут использовать некоторый функционал, например, Knox Workspace. Флаг не может быть возвращён в исходное состояние. Он гарантирует, что устройство Samsung ранее запускалось только с доверенной ОС.


    Рис. Слева кастомная прошивка, KNOX WARRANTY VOID 0x1

    Аппаратная блокировка возврата к старым версиям ПО (Rollback Prevention)


    Старые версии загрузочных компонентов могут содержать уязвимости. Rollback prevention – функция, блокирующая возврат на более старую версию ОС. Минимальная версия загрузчика, возможная для прошивки, хранится в защищённой области. Минимальная возможная версия ядра ОС хранится в самом загрузчике. При штатном обновлении системы, минимально допустимые версии загрузчика и ОС повышаются. Вернуться на предыдущую или более раннюю версию невозможно.



    Вернуться с Android P на Android O невозможно.

    Контроль целостности доверенной среды


    После запуска целостность системы нужно регулярно проверять. Для этого в Knox существует несколько механизмов.

    Компонент Periodic Kernel Measurement (PKM)


    PKM осуществляет периодический мониторинг ОС на предмет модификации её компонентов с момента загрузки. В рамках проверки отслеживаются контрольные суммы ядра и статус подсистемы SE for Android (о ней мы поговорим немного позже). PKM работает в Secure World. Таким образом, любая нештатная модификация ядра ОС будет детектирована.

    Компонент Real-time Kernel Protection (RKP)


    Trusted Boot защищает от загрузки измененного ядра, но ядро может быть подвергнуто атаке во время работы устройства. Необходим постоянный мониторинг целостности кода и критичных данных. RKP – это мониторинг безопасности, расположенный в изолированной среде – либо в ARM TrustZone Secure World, либо в «тонком» гипервизоре, защищенном аппаратными расширениями виртуализации. 

    RKP использует специальные методы, чтобы контролировать управление памятью в Normal World, перехватывать критичные запросы и оценить их влияние до того, как произойдёт их выполнение. Механизм защиты ядра в реальном времени дополняет периодические проверки целостности ядра (PKM).



    Таким образом, Real-Time Kernel Protection – это гарантия защиты от выполнения вредоносного кода на уровне ядра ОС.

    Проверка целостности доверенной среды


    Мобильные устройства не работают изолированно, обычно они являются частью какой-то более масштабной системы, например, являются клиентами сервера, вычислительными узлами и пр. И чтобы система могла стабильно и безопасно работать, она должна быть уверена, что все её компоненты «здоровы» и являются теми, за кого себя выдают. Это достаточно непростая задача, в рамках платформы Knox она решается с помощью механизма удалённой аттестации.

    Удалённая аттестация устройства (Knox Attestation)


    Удалённая аттестация позволяет сторонней системе сделать вывод о состоянии конечного устройства. Проверяются, в частности, следующие параметры:
    • измерения, собранные в процессе доверенной загрузки Trusted Boot;
    • логи нарушений безопасности от механизмов PKM и RKP с момента последней перезагрузки;
    • состояние Knox Warranty Bit;
    • различные идентификаторы устройства, такие как IMEI.



    Аттестационное сообщение формируется в ARM TrustZone Secure World. Оно является корректным, даже если ОС в Normal World скомпрометирована.

    Помимо проверки отдельных параметров, аттестация также оценивает состояние системы в целом. Только когда измерения, собранные Trusted Boot соответствуют эталонным значениям, и значение Knox Warranty Bit не изменено, аттестация считается пройденной.

    Аттестационное сообщение не может быть подделано, так как оно подписано с использованием ключа аттестации Samsung Attestation Key (SAK), производного от корневого ключа Samsung. Удалённый сервер может проверить целостность сообщения, используя корневой ключ Samsung. Подпись содержит сгенерированную на серверной стороне криптографическую «добавку» (случайное число, используемое только один раз), чтобы не дать атакующему возможность использовать старое корректное аттестационное сообщение на уже скомпрометированном устройстве.

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

    Защита данных


    Данные являются основной ценностью мобильного устройства и требуют отдельных механизмов защиты.

    Шифрование внутреннего хранилища


    Полное шифрование внутренней памяти является обязательным требованием для всех устройств на базе ОС Android с версии 7. Knox развивает данную концепцию, храня ключ в защищённом аппаратном ключевом хранилище.



    Система Security Enhancements (SE) for Android


    Samsung Knox использует расширение безопасности для Android (Security Enhancement for Android, SE for Android), которое добавляет механизм принудительного (мандатного) контроля доступа Mandatory Access Control (MAC) в ОС. 

    SE для Android предоставляет два уровня защиты MAC:

    1. Защита на уровне ядра
    2. Защита на уровне промежуточного ПО Android

    Цели SE для Android включают в себя изоляцию данных и приложений, ограничения прав системных процессов, в том числе выполняемых от имени супер-пользователя.


    Контейнеризация Knox


    Одним из частных случаев применения механизма SE for Android является контейнер Knox.
    Контейнер разделяет приложения и данные на два независимых пространства: обычную и защищённую области. Данные защищённой области хранятся во внутренней памяти в зашифрованном виде. Ключи шифрования, в свою очередь, шифруются с помощью DUHK-ключа, т.е. они привязаны к конкретному устройству. В случае компрометации устройства (срабатывание Knox Warranty Bit, Trusted Boot и пр.) доступ к контейнеру блокируется. 

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

    Технология контейнеризации используется в нескольких продуктах Samsung, таких как Secure Folder и Knox Workspace.



    Возможности для корпоративных пользователей


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



    Дополнительные источники по теме:



    Автор: Владимир Карачаров,
    Manager, B2B Pre/Post Sales
    Business Development Team
    Samsung R&D Institute Russia
    Samsung
    Компания

    Комментарии 17

      +3
      Все выше обозначенные механизмы приобретают особое значение при использовании мобильных устройств в корпоративной среде.

      Да да, вот на корпоративное зло я и натолкнулся при покупке абсолютно нового, запакованного s9+ через довольно таки крупного реселера. Телефон оказался привязанным к какой-то конторе.
      Вот и расскажите как с помощью Knox можно легко уводить телефоны и всю информацию с них у простых добропорядочных пользователей.
      Ну и в подтверждение своих слов:
      Скриншот
      image

      P.S. Кстати, мне так ничего и не ответили на «типа проведенную» внутреннюю проверку.
        0
        может быть это уже реализация закона о Предустановленом отчественном ПО?
          0
          Едва ли. Покупка была летом 2018. Конечно после звонка по указанному телефону и сбросу настроек до заводских, всё «разрешилось». Но я теперь боюсь пользоваться техникой самсунга и не чувствую себя в безопасности… Никто не мешает снова «захватить» мой телефон и как оказалось при этом наличие самого устройства совсем не обязательно.
          0
          Хух, почти знакомая ситуация. У меня был S7 Edge (тогда покупал как новинку, только вышел), у крупного ритейлера, официально и все дела. Работал отлично в Беларуси (где и покупался). Но вот как только выехал в UK (London) и там вставил местную симку — связь отрубило начисто. В итоге поехал в крупный сервисный центр, принес им аппарат. Сказали, мол, ваше устройство залочено под конкретного оператора O2 (контрактный телефон) и вообще контрафакт походу. Пошел в O2 — те открестились сказали сделать ничего нельзя и разве что умельцы могут его «разлочить» как последний шанс. В итоге пришлось отправлять его по почте в РБ, где он прерасно работал на местных симках и там его продавать.
            0

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

              +2
              насколько следует из описания Knox девайс можно подрубить удаленно, после чего устройство попросит согласится с тем, что устройство станет корпоративным и все данные с него будут доступны администратору либо устройство останется кирпичем. Вообще поскольку до сих пор не поступило никакого комментария от Самсунга и спустя год мне так и не ответили на мои гневные письма, то делаем вывод, что Knox есть огромная дыра в безопасности и возможности мошенничества планетарного масштаба :(
                0
                можно подрубить удаленно,
                Секрет тут простой, некогда популярные MDM строились на телефонах от Апфель, Винмобайл и Самсунг. 3 платформы с готовой удаленным централизованным управлением. Сейчас не вспомню, но вроде как раз у Самсунга года 3 назад централизованно можно было накатить политики безопасности тысяч на 5 телефонных аппаратов.
                Дыра не дыра, но привязать в базу MDM любой аппарат и удаленно управлять можно.
                Возможно уже научились но 5 лет назад централизованно было невозможно управлять установленными приложениями. Установить зонд и мониторинг приложений было возможно.
            +1
            Это вы конечно молодцы, НО!
            Просто оставлю это здесь.
            Купил недавно несколько устройств Samsung и был неприятно удивлен количеству ПО, установленного без возможности не только удаления, а банальной остановки.
            Такого себе даже гугл не позволяет. Приложение «Погода» после остановки тут же стартует снова.
            Нести назад или нет еще не решил, но в след. раз буду проверять и если ситуация не измениться буду брать альтернативу.
              0
              для самса есть чудная прога package disabler pro+..работает без рута, им можно выключать любые системные сервисы. Я им биксби отрубил и все что с ним связано.
                0

                Со шлаком на самсунговских телефончиках есть нюанс.На некоторых моделях шлака меньше.
                Купил два аппарата J4+ и Xcover 4s. Не знаю откуда продавец достал Xcover 4s но разница в программной начинке между аппаратами существенная. В Xcover 4s в разы меньше мусорных приложений. Также удивил планшет Tab 6, количество шлака на мой взгляд умеренное и не сильно вредит.


                barnes с биксби столкнулся только на 6 табе. Что за дичь и какой вред еще не разобрался.

                  0

                  А в чем проблема, что Погода работает? Или это принцип?

                    0
                    Не могу часто писать, отвечу сразу.

                    DarkGenius принцип здесь не причем.
                    Тут недавно была тема по поводу предустановки российского ПО, там у людей подгорало.
                    Так вот яндекс на купленных устройствах уже стоял, но его можно выключить и забыть, как и ПО от Google.
                    А вот немаленькая пачка софта Samsung не отключаема в принципе и при остановке стартует снова. Ну да можно предположить, что какая-то часть ПО может потянуть за собой проблемы с другими прогами, но причем здесь погода? Вот почему обратил внимание именно на нее. Это один момент.
                    Второй момент, даже если нельзя отключать из-за возможных проблем, то у меня вопрос, для чего так сделали?
                    Для примера. Я купил настольную игру ребенку, а там в коробке буклет с играми этого же производителя. Я ознакомился и выкинул его (или решил купить еще игру), но он никак не мешает играть в уже купленную. Такой подход правильный.

                    Mykola_Von_Raybokobylko согласен, на разных устройствах есть отличия. Но так себе оправдание его наличия в принципе.

                    barnes спасибо, надо попробовать.
                  0

                  Как реализовано, что Knox warranty bit не может быть возвращен назад?

                    +1

                    Что-то типа однократно пережигаемого предохранителя (one-time programmable bit e-fuse), который физически пережигается при разблокировке аппарата.

                      0
                      Для тех, кто придёт сюда по поиску…
                      Не нравилось то, что голосовой помощник Bixby всегда начеку, и его, кажется, нельзя удалить без сторонних прошивок. А с перепрошивкой ломается этот warranty bit. После этого перестаёт работать Samsung/Google Pay для бесконтактной оплаты, в том числе оплата через Galaxy Watch. Samsung Health тоже больше не хочет заводиться на «родной» прошивке, но запускается на кастомной.
                      +2

                      Автору статьи спасибо, получился хороший пример технической публикации в корпоративном блоге.
                      Если добавить еще немного технических деталей, ИМХО, она станет только лучше :)

                        0

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

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

                        Самое читаемое