Сценарий атаки на обработчик не установленных приложений в Ubuntu

Исследователи из компании Aqua Security обратили внимание на возможность совершения атаки на пользователей дистрибутива Ubuntu, используя особенности реализации обработчика “command-not-found“, выдающего подсказку в случае попытки запуска отсутствующей в системе программы. Проблема в том, что при оценке запускаемых команд, которые отсутствуют в системе, “command-not-found” использует при выборе рекомендации не только пакеты из штатных репозиториев, но snap-пакеты из каталога snapcraft.io.

При формировании рекомендации на основе содержимого каталога snapcraft.io обработчик “command-not-found” не учитывает статус пакета и охватывает пакеты, добавленные в каталог непроверенными пользователями. Таким образом, атакующий может разместить в snapcraft.io пакет со скрытым вредоносным содержимым и именем, пересекающимся с существующими DEB-пакетами, изначально отсутствующими в репозитории программами или фиктивными приложениями, имена которых отражают типичные опечатки и ошибки пользователей при наборе имён популярных утилит.

Например, можно разместить пакеты “tracert” и “tcpdamp” с расчётом, что пользователь ошибётся при наборе имён утилит “traceroute” и “tcpdump”, и “command-not-found” порекомендует установить из snapcraft.io размещённые злоумышленником вредоносные пакеты. Пользователь может не заметить подвох и посчитать, что система рекомендует только проверенные пакеты. Атакующий также может разместить в snapcraft.io пакет, имя которого пересекается с существующими deb-пакетами, и в этом случае “command-not-found” выдаст две рекомендации по установке deb и snap, а пользователь может выбрать snap, посчитав его более защищённым или соблазнившись более новой версией.


Приложения в формате snap, для которых в snapcraft.io допускается автоматическое рецензирование, могут выполняться только в изолированном окружении (snap-пакеты без изоляции публикуются только после ручного рецензирования). Атакующему может оказаться достаточным выполнение в изолированном окружении с доступом к сети, например, для майнинга криптовалюты, совершения DDoS-атак или рассылки спама.

Злоумышленник также может использовать во вредоносных пакетах методы для обхода изоляции, такие как эксплуатация неисправленных уязвимостей в ядре и механизмах обеспечения изоляции, задействование snap-интерфейсов для обращения к внешним ресурсам (для скрытой записи звука и видео) или захват ввода с клавиатуры при использовании протокола X11 (для создания работающих в sandbox-окружении кейлоггеров).

Release. Ссылка here.