Чому програми для керування паролями по-різному ставляться до Windows порівняно з іншими операційними системами.


Минулого тижня дослідник окреслив те, що він назвав «новою поверхнею атаки» у 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 нового пристрою — це відтворювати кожен індивідуально.
Зрештою, архітектори специфікацій 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 — буде скомпрометований під час входу до облікового запису, усі збережені там дані стануть загальнодоступними.

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