Доброго дня, коллеги.
Несколько дней назад у меня произошел неприятный случай.
На арендуемой VPS появились признаки взлома. Дважды. В частности RKhunter сказал что кое-что поменялось.
Ситуация осложняется тем, что взлом сеовера (на мой взвгляд) не мог произойти снаружи. Есть основания предполагать, что это произошло из хост машины.
Итак, начнем с момента, когда я переустановил систему из образа, рассудив что чем вычищать последствия, проще все сжечь и отстроить заново. В этот момент началось самое интересное. За промежуток времени максимум 5 часов произошел повторный взлом. На этот раз это подтвердили аж 4 теста: rkhunter, tripwire, md5 -c по предварительно сделанному эталонному файлу, плюс сравнение md5 зараженных и переустановленных файлов.
На тот момент системы выглядела следующим образом:
Все пакеты обновлены.
sshd настроен только на авторизацию по ключам и только на работу оп 2 версии протокола. Доступ root через ssh запрещен.
установлен и настроен nginx, php-fpm, mysql. Веб сервер показывал два сайта на последней версии wordpress.
/var и /tmp были смонтированы с noexec.
Собственно наружу торчали только nginx, mysql и ssh. Все последних версий, все запущенны от собственных непривилегированных пользователей.
И вот здесь начинается самое интересное. Поменянными оказались 600+ файлов в каталогах /bin, /usr/bin, /sbin, /usr/sbin.
Набор стандартный — ps, ls, lsmod и все такое прочее, что бы скрыть руткит. НО, все эти файлы может поменять только супер пользователь. Я стал думать, даже если в приложениях нашли 0-day exploit и через него попали в систему, как-то обошли noexec, то подняться до суперпользвоателя можно было только одним способом — через уязвимость в ядре.
Я посмотрел версию ядра (хостер использует openvz, поэтому поменять его возможности не было).
Оказалось так: 2.6.18-308.el5.028stab099.3
На сколько я понимаю для 2.6.18 есть куча эксплоитов. Плюс сами ребята из openvz говорят что данную версию ядра больше не поддерживают… где-то причем 3 года уже. (http://wiki.openvz.org/Download/kernel/2.6.18 This page was last modified on 22 October 2009, at 17:57.)
Я пишу хостеру и говорю «Может быть стоит провериться? Я ведь у вас не единственный клиент. Да и вообще пора бы обновиться»
На что получаю ответ «У нас все хорошо, а у вашей системы нет признаков взлома. изменение размера файлов и чексум — не показатель».
Этот разговор длился с разной степенью активиности около 10 дней. Есть логи :)
Сейчас вроде бы и особого смысла переустанавливать систему нет. Если взломан хост — я думаю в 0:00 он проверят нет ли свежих незараженных контейнеров и исправляет ситуацию (по времени вышло примерно так).
Даже если взломан не хост — версия ядра тоже печалит. Это отлично позволит повторитьвзлом (что и произошло почти сразу после первой переустановки).
Собственно вопросы:
1. Может ли быть так, что системные файлы поменялись сами собой?
2. Является ли такое изменение, подтвержденное 4 разными способами, доказательством взлома?
3. Если взломана хост-машина — как правильно поступить? Кроме моих проблем есть ведь еще и проблема с тем, что другие пользователи не в курсе.
4. Возможно я где-то ошибся и не прав и зря поднимаю панику, обвиняю ребят.
Для объективности —
www.habrastorage.com/images/colobrchc.png
P.S. Если вдруг так совпало, что у нас с вами один хостер — проверьте систему… мало ли что :)