Security Week 2425: поиск уязвимостей в биометрическом терминале
На прошлой неделе исследователи «Лаборатории Касперского» опубликовали подробный отчет о поиске уязвимостей в биометрическом терминале компании ZKTeco. Терминал обеспечивает распознавание пользователей по лицу, но также предоставляет резервные методы аутентификации: по пин-коду и с помощью QR-кода, который сканируется встроенной фотокамерой. В статье подробно описывается типичный процесс исследования устройства для поиска аппаратных и программных уязвимостей, включая анализ «железа», физических и сетевых интерфейсов, исследование прошивки. Не меньший интерес представляет и список найденных уязвимостей: всего их было обнаружено 24 штуки. Авторы работы приходят к выводу, что передовая технология была реализована в крайне небезопасном виде.
Помимо традиционных уязвимостей, вроде вшитого пароля для SSH, отсутствующей или легко взламываемой защиты коммуникаций по проприетарному сетевому протоколу, в устройстве ZKTeco была обнаружена возможность проведения атаки с помощью «вредоносного» QR-кода. Отсутствие необходимых проверок вводимых пользователем данных либо приводит к аварийной перезагрузке биометрического терминала, либо, что гораздо интереснее, позволяет провести SQL-инъекцию и таким образом обойти систему аутентификации. Подробные технические описания каждой уязвимости опубликованы в репозитории на GitHub.
Исследуемый терминал ZKTeco выглядит так:
А вот так выглядит «взлом» этого терминала с помощью подготовленного QR-кода:
В QR-код закодирован запрос к базе данных. Из-за того что проверка пользовательского ввода практически отсутствует, этот запрос успешно выполняется. Это приводит к тому, что терминал без проблем «открывает» доступ. Дальнейший анализ прошивки показал, что у данного метода атаки есть одно небольшое ограничение: размер обрабатываемых данных ограничен 20 байтами:
Это не позволяет проводить сложные SQL-инъекции, но в любом случае имеется возможность полностью обойти систему защиты, для которой терминал, собственно, и предназначен. Более того, если «показать» устройству QR-код c большим объемом закодированных данных (1 килобайт или больше), он будет считан, но приведет к зависанию обработчика. Отсутствие ответа данной функции расценивается как аварийная ситуация, что приводит к принудительной перезагрузке устройства. Помимо этой успешно найденной уязвимости, в исследовании показаны и тупиковые направления поиска. Например, подключение к выводам последовательного интерфейса на плате хоть и позволило считать лог загрузки, но не помогло в поиске уязвимостей. Анализ сетевых интерфейсов выявил возможность общения с устройством по протоколу SSH на нестандартном порту, а также проприетарный сетевой протокол на порту TCP 4370. Эта информация пригодилась в дальнейшем, после анализа прошивки устройства.
В сети удалось найти обновление прошивки для одного из вариантов данного терминала. Ее анализ показал, что апдейт зашифрован, точнее — легко обфусцирован при помощи функции XOR, где ключом являются последние 16 байт файла обновления и его размер. После расшифровки выяснилось, что апдейт не содержит в себе полную прошивку устройства, вместо этого обновляются отдельные файлы. Полную прошивку, тем не менее, удалось вытащить из микросхемы флеш-памяти самого терминала. И вот уже анализ прошивки выявил целый набор уязвимостей. Во-первых, пароль для подключения по интерфейсу SSH оказался фиксированным. Хотя это не дает максимальные привилегии на устройстве, логин по SSH открыл доступ к чувствительным данным. Для авторизации по проприетарному протоколу (доступному на порту 4370) используется отдельный пароль, но по умолчанию он даже не задан. Даже если оператор устройства сменил этот пароль, он представляет собой целое число от 0 до 999999, и его легко подобрать либо считать, залогинившись по SSH.
Дальнейший анализ команд, доступных по проприетарному сетевому интерфейсу, выявил еще ряд уязвимостей. В частности, команда CMD_DELETE_PICTURE предполагает передачу на устройство имени файла, который требуется удалить. Корректность этих данных также не проверяется, а выполняется команда с системными привилегиями. В результате это позволяет получить полный контроль над устройством:
Там же было обнаружено несколько уязвимостей, приводящих к переполнению буфера и в дальнейшем к выполнению произвольного кода, а также еще один набор потенциально уязвимых мест для SQL-инъекции. Наконец, исследователи смоделировали ситуацию, когда устройство подключается к вредоносному управляющему серверу, что делает возможным ряд сценариев по перехвату управления.
Большинство обнаруженных уязвимостей требуют проникновения в (предположительно) защищенную локальную сеть, к которой подключено устройство. Естественно, кроме атаки по QR-коду. Анализ уязвимостей в прошивке устройства теоретически позволит обойти систему контроля доступа, где установлен подобный терминал. Общий итог проведенной работы следующий: 6 SQL-инъекций, 7 переполнений буфера на стеке, 5 инъекций команд, 4 сценария записи произвольных файлов, 2 варианта чтения произвольных файлов.
Что еще произошло:
Еще одно исследование экспертов «Лаборатории Касперского» анализирует безопасность промышленного модема серии Cinterion EHS5-E. В ходе исследования в устройстве были обнаружены 7 уязвимостей.
Microsoft решила отложить запуск фичи Recall, ранее запланированный на 18 июня. На прошлой неделе мы подробно рассказывали о проблемах с защищенностью полной истории действий пользователя в виде скриншотов и базы данных с распознанным текстом.
Интересная публикация демонстрирует, как ИИ-помощник Github Copilot может выдавать конфиденциальные данные злоумышленнику. В этом сценарии злоумышленник «подкидывает» разработчику-жертве код, который тот анализирует с помощью Copilot. Обращение к Copilot внутри кода приводит к запросу на веб-сервер атакующего с данными об истории общения жертвы с ИИ-помощником. Уязвимость закрыта в начале июня.
Критическая уязвимость закрыта в ряде популярных домашних роутеров Asus, включая модели RT-AX88U, RT-AX58U, RT-AX57 и другие. Проблема имеет близкий к максимальному рейтинг 9,8 балла по шкале CVSS и позволяет обходить систему аутентификации на устройстве. Для подверженных устройств рекомендуется загрузить и установить последнюю версию прошивки: патч для этой уязвимости был выпущен еще в апреле.
В свежем наборе патчей от Microsoft закрыты 49 уязвимостей. Среди них — довольно серьезная проблема в Windows 10/11, которая может привести к выполнению удаленного кода из-за ошибки в драйвере для модулей Wi-Fi. Рейтинг CVSS у данной уязвимости составляет 8,8 балла, но для эксплуатации атакующий должен находиться неподалеку от жертвы.
Издание 404media сообщает о взломе инфраструктуры компании Tile, разработчика геометок. Впрочем, взломщик не получил доступа непосредственно к пользовательским данным, включая координаты клиентских устройств.
Google закрыла ряд уязвимостей в устройствах Pixel, включая одну критическую проблему нулевого дня.