В коде Webmin более года скрывался бэкдор

В Webmin, популярном решении для системного администрирования Unix-систем (таких как Linux, FreeBSD или OpenBSD) был обнаружен бэкдор. При этом проблемные сборки версий от 1.882 до 1.921 были доступны для загрузки через официальный сайт и Sourceforge более года. GitHub проблема не коснулась.

Нужно заметить, что согласно официальным данным разработчиков, Webmin насчитывает более 1 000 000 установок, а Shodan обнаруживает, что более 215 000 из них доступны через интернет.

Бэкдор позволяет злоумышленникам выполнить на уязвимой машине с установленным Webmin произвольные команды с root-правами, а после хост может использоваться для атак на системы, управляемые через Webmin.

Первым проблему заметил турецкий ИБ-специалист Озкан Мустафа Аккуш (Özkan Mustafa Akkuş), и он принял ее за обычный, хоть и очень опасный баг в коде Webmin. Исследователь рассказал о своей находке на прошедшей недавно в Лас-Вегасе конференции DEFCON. Ошибке был присвоен идентификатор CVE-2019-15107, и Аккуш предупреждал, что уязвимость позволяет неаутентифицированному атакующему выполнять код на серверах с запущенным Webmin.

Однако после доклада Аккуша на DEFCON, проблемой заинтересовались другие специалисты, и выяснилось, что исследователь обнаружил вовсе не заурядный баг. Так, вскоре один из разработчиков Webmin подтвердил, что фактически эта «уязвимость» являлась вредоносным кодом, внедренным в проект благодаря «компрометации инфраструктуры сборки».

Что именно подразумевается под этой фразой, разработчики не поясняют. Речь может идти как о компрометации машины разработчика, на которой был создан код, так и о компрометации учетной записи SourceForge, которой хакер мог воспользоваться для загрузки и распространения вредоносной версии Webmin. При этом представители Sourceforce уже заявили, что злоумышленники не использовали какие-либо уязвимости в их платформе, а работа с аккаунтом Webmin осуществлялась только самими администраторами проекта, с их легитимных учетных записей.

Согласно исследованию Аккуша, обнаруженная им «уязвимость», была связана с функцией Webmin, которая позволяет администраторам регулировать политику истечения срока действия паролей для учетных записей. Так, если эта функция включена и функциональность смены устаревших паролей активна, злоумышленник может воспользоваться этим для захвата контроля над Webmin. Причем для осуществления атаки достаточно просто добавить символ «|» в HTTP-запрос, отправленный на Webmin-сервер. Код после этого символа будет выполнен на сервере с root-правами.

Хорошая новость заключается в том, что данная функциональность не включена по умолчанию во многих сборках. Но есть и плохая новость: похоже, злоумышленник, ответственный за компрометацию инфраструктуры Webmin, попытался включить ее по умолчанию для всех пользователей в версии 1.890. Это изменение привело к появлению ошибок у многих пользователей, после чего разработчики вновь вернули функцию к состоянию отключенной по умолчанию.

Как уже было сказано выше, бэкдор был обнаружен в версиях от 1.882 до 1.921, распространявшихся через официальный сайт и Sourceforge. 18 августа 2019 года разработчики Webmin представили версию 1.930,  удаляющую бэкдор. Всем пользователем рекомендовано обновиться как можно скорее. Те, кто работает с версиями от 1.900 до 1.920, также могут открыть /etc/webmin/miniserv.conf, удалить строку passwd_mode= line, а затем запустить /etc/webmin/restart.

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.