Предустановленная утилита подрывает безопасность миллионов пользователей Ubuntu.
Исследователи из Aqua Security обнаружили критическую уязвимость, позволяющую злоумышленникам взламывать системы на базе Linux. Речь идёт об эксплуатации встроенной в дистрибутив Ubuntu утилиты «command-not-found», которая помогает пользователям устанавливать недостающие программы.
Command-not-found предлагает установить пакеты, когда пользователи пытаются запустить команды, отсутствующие в системе. Причём утилита может рекомендовать как стандартные APT-пакеты, так и snap-пакеты из репозитория Snappy. Для сканирования имеющегося ПО используется внутренняя база данных, а для поиска snap-аналогов запускается команда advise-snap.
Изучив принцип работы утилиты, исследователи компании Aqua Security выяснили, что её можно обмануть через систему алиасов. Для поиска snap-пакетов утилита полагается на соответствие команды и имени пакета. Злоумышленники же могут зарегистрировать любое имя для вредоносного snap-пакета, указав нужный алиас.
По итогу, когда пользователи попытаются запустить команду, связанную с этим алиасом, command-not-found будет рекомендовать им установить поддельный пакет.
Ещё один вектор атаки связан с возможностью регистрировать snap-пакеты с именами, совпадающими с уже существующими APT-пакетами. Так, например, взломщики могут выпустить зловредный snap-пакет «jupyter-notebook», а утилита command-not-found будет по умолчанию рекомендовать его вместо оригинального APT-пакета.
По подсчётам экспертов, около 26% команд для APT-пакетов в Ubuntu уязвимы для такой подмены. Злоумышленники могут зарегистрировать соответствующий snap от своего имени, это не составляет какого-либо труда.
Кроме того, взломщики могут использовать опечатки, которые часто допускают неопытные пользователи при вводе команд. Например, вместо «ifconfig» человек может набрать «ifconfigg». Создав поддельный snap-пакет «ifconfigg», хакеры обеспечат его рекомендацию command-not-found вместо пакета net-tools, содержащего оригинальную команду.
Исследователи называют описанную проблему системной для Ubuntu и указывают на необходимость серьёзных обновлений утилиты. Они также призывают пользователей внимательно проверять репутацию и источник рекомендуемых пакетов, прежде чем их устанавливать.
Разработчикам APT-пакетов, в свою очередь, рекомендуется регистрировать snap-имена, связанные с их продуктами. Это поможет предотвратить подмену злоумышленниками.
Неизвестно, использовалась ли уже уязвимость command-not-found в реальных атаках. Тем не менее, проблема уже получила широкую огласку. В Canonical, компании-разработчике Ubuntu, обещают предпринять меры по исправлению уязвимости в ближайшее время.
От классики до авангарда — наука во всех жанрах