Как подсмотреть пароли пользователя Apple Vision Pro

Недавнее исследование рассказывает о методе, с помощью которого можно подсмотреть, что вводит пользователь Apple Vision Pro на виртуальной клавиатуре.

Как можно подсмотреть, что вводит пользователь Apple Vision Pro

В сентябре 2024 года группа исследователей из Университета Флориды и Техасского технологического университета представила научную работу с описанием весьма замысловатой методики перехвата текстовой информации, которую вводит пользователь гарнитуры виртуальной/дополненной реальности Apple Vision Pro.

Изобретенный ими способ атаки на пользователей Vision Pro исследователи назвали GAZEploit. В этом посте мы попробуем разобраться, как работает эта атака, насколько она эффективна, реалистична и опасна для владельцев VR/AR-устройств Apple и как лучше защитить свои пароли и другую конфиденциальную информацию.

Как устроен ввод информации в Apple visionOS

Сперва немного поговорим о том, как вообще устроен ввод информации в visionOS — операционной системе, на базе которой работает Apple Vision Pro. Одной из наиболее впечатляющих инноваций гарнитуры смешанной реальности Apple стало чрезвычайно эффективное использование окулографии, то есть отслеживания движения глаз пользователя.

Направление взгляда служит в качестве основного метода взаимодействия пользователя с интерфейсом visionOS. Точность отслеживания положения глаз пользователя настолько высока, что ее достаточно для работы даже с очень небольшими элементами интерфейса — в том числе с виртуальной клавиатурой.

Виртуальная клавиатура в Apple visionOS

Для ввода текста в visionOS используется виртуальная клавиатура и окулография. Источник

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

Меры приватности при вводе пароля в Apple visionOS

При совместном использовании экрана visionOS автоматически скрывает пароли, которые вводит пользователь Vision Pro. Источник

Вторая важная особенность AR-гарнитуры Apple — в способе реализации видеозвонков с участием пользователя Vision Pro. Поскольку устройство располагается непосредственно на лице пользователя, для передачи видеоизображения пользователя стандартный вариант с условной фронтальной камерой не работает. А использовать для видеоконференций отдельную внешнюю камеру было бы не по-яблочному сложно, да и видео участника в шлеме на голове выглядело бы довольно странно.

Поэтому в Apple придумали чрезвычайно оригинальную технологию, в которой используется так называемая виртуальная камера. На основе 3D-скана лица пользователя Vision Pro создает его цифровой аватар (в Apple называют его Persona), который и участвует в видеоконференциях. Persona может использоваться как в FaceTime, так и в других приложениях для видеозвонков.

Благодаря использованию большого количества биометрических данных цифровой аватар Persona в visionOS выглядит действительно реалистично. Источник

При этом лицо пользователя отслеживается в режиме реального времени датчиками AR-гарнитуры, чтобы аватар мог полностью копировать все, что делает пользователь, — движения головы, губ, мимику и так далее.

GAZEploit: Как подсмотреть, что вводит пользователь Apple Vision Pro

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

Основная идея атаки довольно проста: хотя система аккуратно скрывает ввод паролей во время видеоконференции, по движению глаз пользователя, которые дублирует его цифровой аватар, можно реконструировать символы, вводимые с виртуальной клавиатуры, точнее, виртуальных клавиатур, которых в visionOS три: цифровая для ввода PIN-кодов, буквенная и символьно-цифровая. Это усложняет процесс распознавания, поскольку стороннему наблюдателю неизвестно, какая именно клавиатура используется в данный момент.

В visionOS есть три разные виртуальные клавиатуры

На самом деле в visionOS есть три разные виртуальные клавиатуры: цифровая для ввода PIN-кодов (a), буквенная (b) и символьно-цифровая (с). Источник

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

Распознавание сеанса ввода данных

Сперва с помощью нейросети распознаются моменты ввода данных с виртуальной клавиатуры. Источник

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

Распознавание ввода отдельных символов

Затем нейросеть распознает отдельные моменты нажатия на виртуальные клавиши и символы, которые вводит пользователь. Источник

Насколько точно GAZEploit распознает вводимые данные

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

Пример распознавания пароля

Пример распознавания отдельной последовательности букв, введенных на виртуальной клавиатуре visionOS: карта вероятных точек (а), предсказание модели (и) и реальный ввод (c). Точность не идеальная, но достаточно высокая. Источник

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

Также нейросеть использует словарь и дополнительные приемы, помогающие лучше интерпретировать ввод. Например, клавиша «пробел» из-за своего размера часто попадает в топ-5 кандидатов, создавая большое количество ложноположительных срабатываний, которые необходимо отфильтровывать. А клавишу backspace необходимо вообще обрабатывать отдельно: в случае правильной догадки ее нажатие будет означать, что предыдущий символ был удален, но если догадка неправильная, то можно ошибочно «выкинуть» сразу два символа.

GAZEploit предсказывает топ-5 символов

Система распознавания GAZEploit предлагает топ-5 наиболее вероятных символов. Источник

Приведенная разработчиками детальная картина ошибок распознавания показывает, что GAZEploit часто путает расположенные рядом клавиши: в режиме максимальной точности (K=1) правильно угадываются около трети введенных символов. Однако для групп из пяти наиболее вероятных символов (K=5) точность в зависимости от конкретного сценария составляет уже от 73 до 92%.

Общая точность распознавания GAZEploit

Точность распознавания GAZEploit в различных сценариях. Источник

Насколько атака GAZEploit опасна с практической точки зрения

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

Как заявляют исследователи, в случае PIN-кода из шести цифр для того, чтобы перебрать четверть всех наиболее вероятных комбинаций, понадобится всего 32 попытки. А в случае 8-символьного случайного пароля, состоящего из букв и цифр, количество попыток снижается с сотен триллионов до сотен тысяч (с 2,2×1014 до 3,9×105), что делает взлом пароля возможным даже на доисторическом компьютере с процессором Pentium.

Исходя из этого, GAZEploit мог бы стать достаточно серьезной угрозой и найти практическое применение в высокоуровневых целевых атаках. К счастью, уязвимость уже исправлена: в последних версиях visionOS Persona приостанавливается при активации виртуальной клавиатуры.

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

Так или иначе, обладателям Apple Vision Pro стоит обновить свои устройства до последней версии visionOS — и можно жить спокойно. Напоследок посоветуем как им, так и всем остальным все же осторожнее относиться к вводу паролей во время видеозвонков — по возможности избегать этого, всегда использовать как можно более надежные (длинные и случайные) комбинации символов, а для их создания и хранения пользоваться менеджером паролей.

Советы