Лечим свой сервер от Ebury
Эпидемия Ebury SSH RootKit продолжается около года — первые исследования этого Linux-троянца начались в феврале 2013 года. Новые версии этого вредоносного программного обеспечения все еще появляются, количество зараженных операционных систем велико, поэтому вопросы «лечения» от данного руткита очень актуальны.
Для начала — немного информации о самом Ebury. Основная функция троянца — воровство паролей и приватных ключей SSH, отсылка их на серверы злоумышленников с использованием специально сформированных DNS-запросов. Ebury также может использоваться для несанкционированного получения удаленного доступа к серверу, причем запись о входе злоумышленника в лог-файлах не производится. Соответственно, если не принять меры, то в дальнейшем скомпрометированный сервер может использоваться для рассылки спама, дальнейших взломов и так далее.
Для проникновения в чистую систему могут быть использованы разные способы. Наиболее очевидные из них:
- подбор паролей;
- уязвимость системных утилит. Это может быть, если операционная система не обновлялась длительное время и не содержит актуальные исправления;
- «воровство» паролей или ключей — если один и тот же пароль используется на нескольких серверах, то при заражении одного есть вероятность взлома остальных.
Для своего функционирования Ebury подменяет библиотеку libkeyutils, которая активно используется SSH-сервером и SSH-клиентом. Существует несколько вариаций руткита, однако есть общие черты, по которым можно определить, заражен или нет сервер.
Проверить свою ОС можно достаточно быстро. Ebury использует для обмена данными разделяемую память (shared memory), поэтому следует обратить внимание на ее использование. Выполним команду ipcs -m. Если в списке будет сегмент с правами 666 и размером около 3 мегабайт — сервер «заражен».
1 2 3 4 |
# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch 0x000006e0 65538 root 666 3283128 0 |
Следующим этапом проведем проверку libkeyutils. Обычный размер этой библиотеки — 8-15 килобайт. Если же размер libkeyutils более 25 килобайт, то мы имеем дело с подменой и операционная система взломана:
1 |
# find /lib* -type f -name libkeyutils.so* -exec ls -la {} \; |
Оригинальная библиотека имеет небольшой размер:
1 |
-rw-r--r-- 1 root root 8528 Apr 4 2010 /lib/libkeyutils.so.1.3 |
«Зараженная» — более 25 килобайт:
1 |
-rwxr-xr-x 1 root root 35136 Jun 22 2012 /lib64/libkeyutils.so.1.3 |
Приступим к удалению Ebury. Обратите внимание — libkeyutils используется SSH-сервером и клиентом, поэтому не стоит просто удалять зараженную библиотеку.
Загрузим с официального репозитория оригинальные инсталляционные пакеты. Ниже — примеры для Centos и Debian 64bit:
1 2 3 4 5 6 7 8 9 |
# Centos 64bit wget http://mirror.centos.org/centos/6/os/x86_64/Packages/keyutils-libs-1.4-4.el6.x86_64.rpm wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssh-clients-5.3p1-94.el6.x86_64.rpm wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm # Debian 64bit wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-client_5.5p1-6+squeeze4_amd64.deb wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-server_5.5p1-6+squeeze4_amd64.deb wget http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.4-1_amd64.deb |
Удалим зараженную библиотеку и установим заново libkeyutils и SSH:
1 2 3 4 5 6 7 8 9 10 11 |
# Centos rm /lib64/libkeyutils* rpm -Uvh --replacefiles --replacepkgs ./keyutils-libs-1.4-4.el6.x86_64.rpm rpm -Uvh --replacefiles --replacepkgs ./openssh-clients-5.3p1-94.el6.x86_64.rpm rpm -Uvh --replacefiles --replacepkgs ./openssh-server-5.3p1-94.el6.x86_64.rpm # Debian rm /lib64/libkeyutils* dpkg -i ./libkeyutils1_1.4-1_amd64.deb dpkg -i ./openssh-client_5.5p1-6+squeeze4_amd64.deb dpkg -i ./openssh-server_5.5p1-6+squeeze4_amd64.deb |
Перезагружаемся, проверяем систему на отсутствие руткита, обязательно обновляем операционную систему, меняем пароли. Если используется авторизация по ключу — необходимо перегенерировать пару ключей. «Старые» пароли и ключи уязвимы и известны злоумышленнику, их использовать более небезопасно.
В заключение отметим, что в данное время относительно безопасным является использование паролей с длиной не менее 12-15 символов, где используются заглавные и строчные буквы, цифры и спецсимволы. Более простые пароли, особенно содержащие слова или состоящие из одних цифр, могут быть взломаны за минуты — современные процессоры и алгоритмы достаточно быстры.
p.s. Вне зависимости от того, пригодилась эта заметка или нет — вовремя делайте резервные копии и не забывайте регулярно, раз в 1-2 месяца, менять пароли.