Хакер #305. Многошаговые SQL-инъекции
Исследователи из Амстердамского свободного университета обнаружили, что двухфакторную аутентификацию можно обойти, если у жертвы есть смартфон с Android или iOS. Проблема кроется в автоматической синхронизации устройств, которую обеспечивают сервисы Google и Apple.
Двухфакторная аутентификация требует подтверждать права доступа по двум независимым каналам. Чаще всего она выглядит так: сначала пользователь вводит пароль, а затем сообщает одноразовый код, полученный по SMS. Такой метод заметно надёжнее, чем обычная проверка пароля.
Чтобы обойти двухфакторную аутентификацию, злоумышленнику нужно не только узнать пароль, но и оперативно перехватить одноразовый код доступа. Исследователи из Нидерландов обнаружили, что удобства, которые современные мобильные платформы предоставляют своим пользователям, делают перехват SMS вполне реалистичной задачей.
Атаки на пользователей iOS и Android, которые они предложили, существенно различаются, но и в том, и в другом случае компьютер жертвы должен быть заражён специальным трояном.
Троян, который атакует пользователей Android, от имени жертвы обращается к Google Play и просит установить на её смартфоны шпионское приложение. Google Play молча повинуется, даже не спрашивая у пользователя разрешения. После установки приложение тихонько ждёт SMS с кодом доступа. Получив SMS, оно тут же переправляет его на сервер злоумышленника.
Самое сложное тут — протащить шпиона в Google Play. Для этого исследователи разработали приложение, способное исполнять код из интернета. Все вредоносные функции были реализованы на Javascript, загружаемом с их сервера. Запросы с адресов, принадлежащих Google, сервер игнорировал. Такого трюка хватило для того, чтобы обмануть гугловских цензоров.
Победить iOS оказалось ещё проще. В последние версии OS X и iOS встроена функция под названием Continuity. Она, среди прочего, позволяет читать SMS с айфона при помощи компьютера. Чтобы перехватить код доступа, трояну достаточно мониторить содержимое файла ~/Library/Messages/chat.db, куда попадают пришедшие SMS.
Эта уязвимость была найдена ещё в 2014 году. Исследователи немедленно сообщили о ней Google и другим онлайновым сервисам, использующим двухфакторную аутентификацию, а также провели серию презентаций для банков. Ни одна компания не отреагировала на предупреждение.