Уязвимость (CVE-2021-3011) позволяет восстановить первичный ключ шифрования и обойти двухфакторную аутентификацию. Специалисты по безопасности из NinjaLab объяснили работу потенциальной хакерской атаки для токенов Google Titan на базе чипа NXP A700X, но теоретически та же схема взлома актуальна для криптографических токенов Yubico (от компании YubiKey) и Feitian, использующих аналогичный чип.
Рассказываем о том, как работает атака, и можно ли продолжать доверять физическим ключам шифрования.
О Google Titan
Этот ключ безопасности существует на рынке с 2018 года. Он представляет собой аппаратное устройство MFA, используемое для физической проверки личности пользователя. Ключи обычно используются вместо менее безопасных методов многофакторной аутентификации, таких как коды подтверждения, отправляемые через SMS или на электронную почту.
Особенность Google Titan состоит в том, что, даже получив электронный пароль, злоумышленники не смогут получить доступ к вашим данным без физического ключа. Это отметили и исследователи NinjaLab: ваш ключ будет в опасности, только в случае кражи или потери.
Google Titan представлен на рынке в двух видах. Один чем-то похож на флешку — микрочип «обнажен», ключ работает через USB и NFC. Второй вариант похож на ключи от автомобиля в виде брелока и работает через Bluetooth.
Вычислить по электромагнитному излучению
С момента появления Google Titan эксперты NinjaLab подозревали, что ключи могут быть уязвимы для атак по сторонним, или побочным, каналам. К ним, в том числе, относятся атаки, базирующиеся на результатах мониторинга электромагнитного излучения, исходящему от устройств во время работы. Его анализ помогает выявлять закономерности в работе и собирать полезную для взлома информацию.
Наблюдая за электромагнитным излучением во время формирования цифровых подписей (ECDSA), специалисты по безопасности успешно атаковали защищенный элемент ключа — чип NXP A700X — и клонировали его. Тот факт, что набор микросхем, используемый в Google Titan, стал основой и для других ключей безопасности, заставляет опасаться и за другие продукты на рынке.
Среди подверженных атаке продуктов отмечены:
- Google Titan Security Key,
- Yubico Yubikey Neo,
- Feitian FIDO NFC USB-A / K9,
- Feitian MultiPass FIDO / K13,
- Feitian ePass FIDO USB-C / K21,
- Feitian FIDO NFC USB-C / K40,
- NXP J3D081_M59_DF,
- NXP J3A081,
- NXP J2E081_M64,
- NXP J3D145_M59,
- NXP J3D081_M59,
- NXP J3E145_M64,
- NXP J3E081_M64_DF.
Группа реагирования на безопасность NXP подтвердила, что все криптографические библиотеки NXP ECC до версии 2.9 для продуктов P5 и A7x уязвимы для атаки.
Как производится атака
Сразу стоит отметить, что ключ взломать можно, но никто не говорит, что сделать это легко. Так, описанный на 60 страницах отчета NinjaLab процесс взлома может стать основой для операции в духе фильмов про Агента 007.
Все начинается с простой атаки, например, фишингового письма. Цель злоумышленника — получить имя пользователя и пароль целевого аккаунта. Это самая простая часть операции.
Учетные данные бесполезны без владения ключом безопасности, о чем мы уже писали выше. Это значит, что затем хакеру придется озаботиться тем, чтобы выкрасть ключ безопасности у владельца, причем на определенный срок и так, чтобы он не заметил пропажи. Ведь если владелец заметит отсутствие ключа, то сможет отозвать ключ или зарегистрировать новый, что сведет на нет все старания мошенников.
На успешной краже токена «Миссия невыполнима» не заканчивается. Далее злоумышленник сталкивается с целым рядом ограничений.
Для использования ключа безопасности Google Titan сначала нужно открыть корпус устройства. Так как злоумышленнику нужно еще вернуть ключ ничего не подозревающей жертве (желательно в первозданном виде), совершать вскрытие нужно крайне аккуратно.
Специалисты из NinjaLab размягчали пластик термофеном и разделяли ключ с помощью скальпеля. Делать это нужно аккуратно, чтобы не повредить печатную плату. Как можно понять по картинке ниже, корпус ключа все равно теряет товарный вид, так что велика вероятность, что ситуацию спасет только распечатка нового корпуса на 3D-принтере. На разборку и сборку токена у экспертов NinjaLab ушло около 4 часов.
Еще 6 часов понадобилось на восстановления ключа для одной учетной записи FIDO U2F. Исследователи показали, что электромагнитное излучение коррелирует с информацией об эфемерном ключе ECDSA, и этого достаточно для выявления секретного ключа с использованием методов машинного обучения. Для восстановления секретного ключа в токене Google Titan достаточно анализа около 6000 операций с цифровыми подписями на основе ключа ECDSA, используемых для двухфакторной аутентификации FIDO U2F при подключении к учетной записи Google.
Но, опять же, все это возможно только если ничего не подозревающая жертва продолжит пользоваться вскрытым злоумышленником ключом.
Казалось бы, все перечисленное уже отпугнет любого хакера, не желающего играть в шпиона. Но это еще не все. Для атаки также требуется достаточно дорогое оборудование, стоимостью около $13 000, навыки по реверс-инжинирингу микросхем и специальное ПО, которое не найти в публичном доступе.
Среди необходимого оборудования:
- измерительный комплекс Langer ICR HH 500-6, применяемый для испытаний микросхем на электромагнитную совместимость,
- усилитель Langer BT 706,
- микроманипулятор Thorlabs PT3/M с разрешением 10 мкм,
- четырехканальный осциллограф PicoScope 6404D.
Что дальше
Несмотря на выявленную уязвимость, специалисты NinjaLab отмечают, что физические ключи MFA по-прежнему эффективнее альтернатив. Как минимум потому, что для их взлома нужно очень хорошо постараться. И речь идет не о массовых взломах «случайных» людей, а о прицельных атаках на выбранную жертву. то есть, если на вашей почте не хранятся засекреченные данные Пентагона, едва ли вы пострадаете от этой уязвимости.
Ninja Labs добавляет, что адекватные меры безопасности могут помочь ограничить потенциальный ущерб, причиненный клонированным ключом безопасности. Предлагаемые меры включают внедрение системы MFA, которая может обнаруживать клонированный ключ и блокировать затронутую учетную запись. Например, механизм счетчиков, описанный в спецификации FIDO U2F.
Его суть в том, что токен ведет счет выполненных операций и передает значения на сервер, который сравнивает переданную информацию со значениями, сохраненными при выполнении прошлой операции с тем же токеном. Если переданное значение оказалось меньше сохраненного, механизм делает вывод о наличии нескольких устройств с идентичной парой ключей. Механизм счетчиков уже используется при аутентификации в сервисах Google и позволяет блокировать учетные записи при выявлении активности с клонированных токенов.
И, конечно, стоит помнить, что вся операция начинается с простых атак социальной инженерии. А значит, внимательность на этом этапе уже существенно снизит шансы на успех злоумышленников.
lopatoid
Дежавю