Нова атака Pass-ta-key виявила вразливості пройдених ключів

Чому додатки для зберігання passkey обробляють Windows інакше, ніж інші операційні системи.

Нова атака Pass-ta-key виявила вразливості пройдених ключів 1 Нова атака Pass-ta-key виявила вразливості пройдених ключів 2

Минулого тижня дослідник представив так звану «нову поверхню атаки» в passkey — нову парадигму автентифікації, що пропонує безпечнішу альтернативу методам, заснованим на паролях. Насправді, продемонстровані в публікації атаки не є новими й не стосуються виключно passkey. Ця розбіжність важлива, оскільки дослідження викликало плутанину серед кінцевих користувачів і фахівців з безпеки, коли вони оцінюють, чи безпечний цей новий механізм.

Атака називається Pass-ta-key — поєднання слова «passkey» з фразою «pass the key» (передай ключ) та відсиланням до страви паста. Арі Ольштейн, дослідник компанії Palo Alto Networks, минулого тижня описав, як Pass-ta-key може отримати доступ до всіх passkey, збережених у додатку Google Password Manager (GPM) для Windows, якщо він працює на комп’ютері, зараженому шкідливим програмним забезпеченням.

Це стало несподіванкою для багатьох, хто вважав, що passkey зберігаються виключно в Trusted Platform Module (TPM) — захищеному анклаві у посиленому чіпі, призначеному для зберігання криптографічних ключів та іншої конфіденційної інформації на комп’ютерах з Windows. Багато хто запитував: якщо passkey зберігаються в TPM, то як Pass-ta-key зміг витягти весь набір passkey, збережених додатком?

Локальне зберігання passkey є прийнятним, з одним винятком

Відповідь полягає в тому, що, всупереч поширеній думці, специфікації FIDO 2 (керовані галузевою групою FIDO Alliance) не вимагають зберігання passkey у TPM або будь-яких інших спеціалізованих апаратних засобах (вони мають різні назви залежно від платформи, зокрема захищені анклави, довірені середовища виконання та StrongBoxes). Фактично, більшість платформ і сторонніх програм для керування passkey не зберігають їх у такому спеціалізованому обладнанні. Майже єдиним винятком є Microsoft, яка надає користувачам можливість зберігати passkey у TPM Windows. Компанія переважно рекомендує цей вибір для корпоративних клієнтів, а не для споживачів.

Як я дізнався під час дослідження для цієї статті, усі платформи, крім тих, що працюють під управлінням Windows, зберігають passkey локально на пристрої. Перехід до локального зберігання відбувся кілька років тому, після того, як розробники операційних систем та сторонніх додатків зрозуміли, що passkey не матимуть шансів на широке використання, якщо їх не можна буде легко синхронізувати з усіма пристроями користувача. Вимога зберігання в TPM унеможливила синхронізацію. Єдиним способом завантажити їх у TPM нового пристрою було б індивідуальне відтворення кожного passkey.

Зрештою, розробники специфікацій FIDO вирішили, що зберігати passkey на пристроях загалом безпечно. Логіка полягала в тому, що дозволи додатків настільки гранульовані, що шкідливе програмне забезпечення, яке перебуває на пристрої, не матиме можливості доступу до приватних ключів, що є основою безпеки passkey. Шкідливе програмне забезпечення, встановлене на пристроях під управлінням macOS, iOS та Android, наприклад, не може обійти цю ізоляцію, якщо сама операційна система не скомпрометована через якийсь екзотичний експлойт нульового дня. Наразі ці припущення виявилися правильними на практиці.

Єдиний виняток — Windows. На відміну від усіх інших платформ, додатки Windows зазвичай працюють з усіма привілеями користувача, тоді як інші платформи заохочують обмеження привілеїв кожного додатка за замовчуванням. Хоча Windows надає певні захисти типу «пісочниці» (sandboxing), призначені для ізоляції додатків, це не заважає програмам, що не використовують «пісочницю», таким як шкідливе ПЗ, отримувати доступ до даних додатків, що працюють у «пісочниці». Тобто, «пісочниця» захищає лише в одному напрямку. Технології «пісочниці» на інших платформах значно ефективніші.

Це означає, що шкідливе ПЗ для Windows має значно менше проблем з доступом до даних, які використовує окремий додаток. Архітектори passkey усвідомлюють цю відмінність, яка значною мірою зумовлена причинами зворотної сумісності Windows. Не маючи впевненості, що passkey, збережені на пристрої Windows, не будуть викрадені у разі зараження шкідливим ПЗ, багато сторонніх розробників обрали новий дизайн — зберігання passkey у хмарі в зашифрованих блоках з наскрізним шифруванням. Зберігання passkey на серверах зараз використовується не лише GPM для Windows, але й 1Password, Dashlane та іншими сторонніми додатками для ОС Microsoft.

Спрощено це працює так: коли користувач GPM для Windows хоче використати passkey для входу на сайт, пристрій отримує ключ користувача та/або пристрою з TPM і передає його автентифікатору Google. Пред’явлення ключа, разом із тим, що пристрій вже увійшов до облікового запису Google користувача, спонукає сервер Google представити твердження про автентифікацію сайту, на який користувач хоче увійти. Твердження підписується приватним ключем, який зберігається в зашифрованому вигляді на сервері Google. Таким чином, користувач входить до системи. Знову ж таки, більшість інших сторонніх додатків для Windows працюють аналогічно.

Ті ж самі додатки для інших платформ, навпаки, зберігають passkey локально на пристрої. Коли користувач хоче увійти за допомогою passkey, локальний пристрій, а не хмарний, надає твердження про автентифікацію. Воно підписується приватним ключем, який також зберігається в зашифрованому вигляді на локальному пристрої.

Коли ваш пристрій заражений, усі ставки скасовано

Шкідливе програмне забезпечення в атаках Pass-ta-key використовує доступ до облікового запису Google, а в деяких випадках — до ключа користувача або пристрою, збереженого в TPM, для отримання секретних passkey. Найпотужніший з трьох варіантів атаки змушує заражений комп’ютер з Windows маскуватися під iPhone. Це активує функцію синхронізації в GPM, яка дозволяє користувачам передавати всі збережені passkey на новий пристрій. Ключі тепер передаються на заражений комп’ютер з Windows.

Ольштейн описав Pass-ta-key як «нову» атаку, що націлена на поверхню атаки в екосистемі passkey. Реальність є більш багатогранною. Наслідки цієї атаки були б такими ж, якби заражений комп’ютер з Windows був повністю автентифікований в інших конфіденційних додатках. Зловмисник, який сидить за клавіатурою, ймовірно, зміг би активувати механізми в додатку керування обліковими даними, щоб увійти на сайт або завантажити всі паролі.

Цей ризик існував завжди, і це причина, чому деякі люди вважають менеджери паролів небезпечними. Згідно з описом Ольштейна, цілком можливо, що GPM бракує деяких захисних механізмів, які є в менеджерах паролів, таких як 1Password, наприклад, виклик API операційної системи для заборони іншим процесам читати його пам’ять. Загалом, однак, загальновизнано, що все втрачено, коли заражений пристрій увійшов до конфіденційного облікового запису. Іншими словами, Pass-ta-key — це реальність, яка існує стільки ж, скільки й безпека обчислень. Тут немає нічого нового, і поверхня атаки поширюється на будь-які дані, для доступу до яких потрібна автентифікація.

Мета passkey — усунути спільний секрет, який може бути підроблений або отриманий через витоки з сервера. Passkey не призначені для протистояння фізичним атакам на пристрої, що їх зберігають. Не дивно, що Pass-ta-key може витягувати ключі, коли пристрій Windows скомпрометований. Дослідження може бути й не новим, але воно буде корисним, якщо допоможе користувачам зрозуміти, що після компрометації пристрою, особливо з Windows, який був увійшов до облікового запису, усі дані, що там зберігаються, стають доступними для викрадення.

Нова атака Pass-ta-key виявила вразливості пройдених ключів 3

Оригінал статті: arstechnica.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *