Security Week 2348: безопасность логина по отпечатку пальца в ноутбуках
На прошлой неделе исследователи из команды 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) открывает доступ на чтение и модификацию любого файла без авторизации.