Выявлен 21 вид вредоносных программ, подменяющих OpenSSH
Компания ESET опубликовала (PDF, 53 стр.) итоги анализа троянских пакетов для Linux, устанавливаемых злоумышленниками после компрометации Linux-хостов для оставления бэкдора или для перехвата паролей пользователя на других хостах.
Все рассмотренные варианты троянского ПО подменяли компоненты серверного процесса или клиента OpenSSH. 18 вариантов включил функции перехвата вводимых паролей и ключей шифрования, 17 предоставляли функции бэкдора, позволяющих злоумышленнику скрыто получить доступ к взломанному хосту. Вредоносные компоненты внедрялись после успешной атаки на систему - как правило злоумышленники получали доступ через подбор типовых паролей или эксплуатацию известных уязвимостей в web-приложениях или серверных обработчиках, после чего применяли эксплоиты для повышения своих привилегий на необновленных системах.
Внимания заслуживает история выявления данных вредоносных программ. В процессе анализа ботнета Windigo исследователи обратили внимание на код для подмены ssh бэкдором Ebury, который перед своим запуском проверял факт установки других бэкдоров для OpenSSH. Для проверки использовался список из 40 хэшей SHA-1. Воспользовавшись этими хэшами представители ESET выяснили, что многие хэши не охватывают ранее известные бэкдоры, после чего приступили к поиску недостающих экземпляров, в том числе развернув сеть подставных уязвимых honeypot-серверов. В итоге, был выделен 21 вариант подменяющих SSH троянских пакетов, которые остаются актуальными в последние годы.
Для определения подмененных компонентов OpenSSH подготовлена сводная таблица с характерными признаками каждого вида SSH-троянов, такими как создаваемые дополнительные файлы в системе и пароли для доступа через бэкдор. Например, в некоторых случаев для ведения лога перехваченных паролей использовались такие файлы, как:
- "/usr/include/sn.h",
- "/usr/lib/mozilla/extensions/mozzlia.ini",
- "/usr/local/share/man/man1/Openssh.1",
- "/etc/ssh/ssh_known_hosts",
- "/usr/share/boot.sync",
- "/usr/lib/libpanel.so.a.3",
- "/usr/lib/libcurl.a.2.1",
- "/var/log/utmp",
- "/usr/share/man/man5/ttyl.5.gz",
- "/usr/share/man/man0/.cache",
- "/var/tmp/.pipe.sock",
- "/etc/ssh/.sshd_auth",
- "/usr/include/X11/sessmgr/coredump.in",
- "/etc/gshadow--",
- "/etc/X11/.pr"