На прошлой неделе исследователи из команды Blackwing Intelligence опубликовали подробный отчет о безопасности системы Windows Hello при авторизации на популярных ноутбуках c помощью отпечатка пальцев. Безопасность логина с использованием биометрии была исследована на трех устройствах: ноутбуках ThinkPad T14, Dell Inspiron 15 и клавиатуре Microsoft Surface Pro Type Cover для ноутбука Surface Pro X.


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

В начале статьи (точнее это серия публикаций, пока что авторы раскрыли только часть результатов исследования) вводятся некоторые необходимые термины. Во всех протестированных ноутбуках сканеры отпечатков относятся к типу match-on-chip. Это означает, что логика распознавания отпечатка и сравнения его с эталоном производится на самом датчике, который снабжен собственной памятью. Такая технология более безопасна, чем match-on-host, и является необходимым требованием для системы Windows Hello. Match-on-chip предполагает, что сканер отпечатков отправляет только (зашифрованное) подтверждение, что отпечаток пальца совпал с записанным в памяти устройства.

Теоретически сохраняется возможность либо подделать пакеты данных от сканера, либо повторно воспроизвести ранее записанный «положительный вердикт». Для защиты от подобных атак компанией Microsoft был разработан протокол Secure Device Connection Protocol (SDCP). В его рамках реализуются следующие средства безопасности: аутентификация самого сканера отпечатков, проверка его целостности. Данные, поступающие от сканера, также должны быть аутентифицированы, должна присутствовать защита от replay-атак. Также проверяется «свежесть» передаваемых данных, чтобы исключить передачу маркера авторизации с задержкой — когда пользователя уже нет за компьютером. Для этого задействованы алгоритмы шифрования. Например, они делают в принципе невозможным перехват данных между сканером и компьютером с их последующим воспроизведением: передается аналог публичного ключа, для работы которого нужно совпадение с секретными кодами, хранящимися и на хосте, и на сканере отпечатков.

Первым был исследован ноутбук Dell. Для анализа работы системы безопасности Windows исследователям было проще всего использовать Linux, так как в этой ОС было легче реализовать процесс перехвата пакетов данных и их анализа. Протокол SDCP под Linux недоступен, поэтому процесс коммуникации со сканером несколько упрощен. А если так, то почему бы не попробовать из-под Linux добавить в сканер еще один (чужой) отпечаток пальца под идентификатором атакуемого пользователя? Этот красивый и простой план изначально не сработал: оказалось, что данные для разных ОС внутри датчика изолированы друг от друга. Но команда, какую базу использовать, задается в процессе инициализации сканера. Авторы исследования выяснили, что эти пакеты данных передаются без аутентификации.

В результате на ноутбуке Dell исследователи смогли построить следующую атаку. Из хранилища данных на сканере для Windows извлекаются идентификаторы аутентичных данных об отпечатках реального владельца. Сами идентификаторы — открытая информация, именно благодаря им Windows «знает», что определенному пользователю можно предложить вход с помощью биометрического датчика. Дальше сканер извлекается из ноутбука и подключается к мини-компьютеру Raspberry Pi, который используется для атаки типа Man-in-the-middle на шину USB. Атакующий вводит свой «поддельный» отпечаток с идентификатором жертвы, данные о нем записываются в базу «для Linux». Затем происходит загрузка в Windows, а благодаря MiTM-атаке и отсутствию защиты процесса конфигурации происходит перенаправление в Linux-хранилище отпечатков. Там обнаруживается отпечаток с подходящим индентификатором, и атакующий успешно входит в систему.

В ноутбуке Lenovo использовался другой сенсор, в котором, как выяснилось, поддержка протокола SDCP была выключена. Вместо нее использовался проприетарный набор систем шифрования данных. Оказалось, что в качестве ключа используется комбинация из серийного номера ноутбука и идентификатора модели. Скорее всего, так было сделано, чтобы пользователь мог авторизоваться еще до загрузки ОС, «включив» компьютер путем сканирования отпечатка. Компрометация шифрования открыла для исследователей возможность добавить в базу сканера свой отпечаток без каких-либо сложностей с MiTM-атакой.

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

Что еще произошло:

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

Компания Akamai сообщает об активной эксплуатации двух zero-day-уязвимостей в популярных сетевых маршрутизаторах, которые используются для расширения ботнета Mirai. Производитель и модель устройства пока не раскрываются в целях защиты пользователей, но известно, что речь идет, как обычно, о вшитых паролях.

В открытом решении для хостинга файлов OwnCloud обнаружены критические уязвимости. Самая серьезная проблема найдена в модуле graphapi версий 0.2.0–0.3.0 — через него атакующий может «достать» пароли администратора. Еще одна уязвимость в OwnCloud версии ранее 10.13.1 (и как минимум до 10.6.0) открывает доступ на чтение и модификацию любого файла без авторизации.

Комментарии (9)


  1. datacompboy
    27.11.2023 16:16
    +3

    Мне в своё время очень понравилась высказаная @dottedmag идея -- "Сканер отпечатка должен быть логином, а не паролем". Жаль, до сих пор этого не сделал.


    1. strvv
      27.11.2023 16:16

      проводили НИРы, ещё с конца 90, до 10х годов. проблема с тем что с разной климатической обстановкой - очень плавают результаты, а требовать от пользователя чистый палец, с температурой покровов от 20 до 35, выше тоже сбоит! - признано неудачным.


      1. datacompboy
        27.11.2023 16:16

        Ну то есть проверить на пароль можно, а на логин нет?! O_O


        1. strvv
          27.11.2023 16:16

          Тогдашние сканеры отпечатков, очень капризные были. Тогда же и с паролями в условиях стресса те еще морочи были и есть. Таблетки далласа+ пароль были для идентификации и авторизации. Эти результаты вы видите и у банков, когда оператор постоянно авторизуется каждый раз определенной "таблеткой".


  1. aamonster
    27.11.2023 16:16

    Вот как так-то? Казалось бы, дай отпечатку индивидуальный приватный ключ (который нельзя вытаскивать из чипа) и строй защиту на этом, но умудряются всадить какие-то нелепые ошибки.


    1. inkelyad
      27.11.2023 16:16
      +1

      Тут должна быть известная картинка про стандарты.

      Потому что, кажется, раз за разом изобретают одно и то же.

      Вот, скажем, есть CTAP для WebAuthn с компанией. Казалось бы - рассматривай весь (железный) блок работы с отпечатками пальцев как такой (устрановленный на плате, целиком залитый эпоксидкой и сделанный одним чипом) токен - и пользуйся. Но нет, какой-то SDCP еще есть (какой из них раньше придумали?). Или еще более старые протоколы для тех же хардварных токенов - тоже были. Где, по идее, те же самые проблемы решали по общению токена с хостом.


      1. aamonster
        27.11.2023 16:16

        xkcd#927. Да, это тоже (хотя в стандартах бывают дыры – вспомните историю 20-летней давности про файл, который невозможно прочитать с компакт-диска), но я даже не про стандарты, а про общий подход.


  1. nochkin
    27.11.2023 16:16

    Этот красивый и простой план изначально не сработал: оказалось, что данные для разных ОС внутри датчика изолированы друг от друга

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


  1. strvv
    27.11.2023 16:16

    интересная информация, к сожалению, разнос функций без контроля состояний позволяет влезь посередине и напакостить (как например у функций безопасности автомобилей.)