Назад | Перейти на главную страницу

Как проверить, не очищен ли Linux-сервер от руткитов, бэкдоров, ботнетов и т. Д.?

В случае, если сервер Linux был открыт в Интернете с крайне низкой политикой безопасности (r / w анонимные папки Samba, сервер базы данных Firebird с паролем администратора по умолчанию, без брандмауэра и т. Д.) В течение недели, тогда как мне убедиться, что система работает? не скомпрометирован без полного форматирования и переустановки, имея доступ только удаленно через SSH?

Обычно я предлагаю локальную проверку с помощью такого инструмента, как chkrootkit но если единственный способ запустить проверку - сделать это удаленно, я бы порекомендовал вам попробовать Руткит-охотник вместо.

Rookit Hunter проверяет наличие руткитов и других подобных действий, выполняя следующие тесты (см. Информационный проект Больше подробностей):

  • Сравнение хешей MD5
  • Ищите файлы по умолчанию, используемые руткитами
  • Неправильные права доступа к файлам для двоичных файлов
  • Ищите подозрительные строки в модулях LKM и KLD
  • Ищите скрытые файлы

Я хочу добавить, что, как говорили другие, единственный надежный способ убедиться, что ваш сервис не был подделан, - это восстановить его. Эти инструменты работают хорошо, но они не являются 100% гарантией успеха.

Также не тот ответ, который вам нужен, но если есть вероятность, что система была рутирована, может быть очень сложно быть на 100% уверенным, что система чистая. Руткиты разработаны таким образом, чтобы их было сложно обнаружить. Если вы запустите различные программы проверки корневого доступа, и она проверит чистоту, то «скорее всего» ваша система чиста.

Если безопасность вызывает беспокойство, я бы подумал о том, чтобы восстановить его, как только что было сказано выше, или восстановить его из хороших резервных копий.

Я знаю, что этот ответ - не то, что вы хотите услышать, но в любом случае начнем. Есть несколько инструментов, с помощью которых можно проверить систему. Лучший способ убедиться в ее чистоте - это очистить сервер и восстановить его. Я бы сделал следующее:

  • Удалите компьютер из интернета
  • Данные резервного копирования и информация о конфигурации для удаления устройств
  • Форматировать хранилище
  • Переустановите базовую / стандартную установку / обновления
  • Перенастройте сервер, используя старые данные как ссылку
  • Восстановить пользовательские данные

Вот некоторые ресурсы, которые я бы начал читать, если вы еще не сделали этого.

[текст ссылки] [1] текст ссылки текст ссылки текст ссылки

[1]: http://www.sans.org/reading_room/whitepapers/linux/linux-rootkits-beginners-prevention-removal_901«Новички в Linux Rootkits»

OSSEC проверяет наличие руткитов и обнаруживает подозрительную активность.

Здесь действительно нужно проявлять инициативу. Нет надежного способа обнаружения руткитов на машинах, поэтому вам нужно в первую очередь предотвратить их попадание и найти способы их обнаружения при входе (например, через tripwire и заблокированные интерфейсы).

Если вы считаете, что машина каким-либо образом использовалась, вам действительно нужно переустановить - нет гарантированного способа очистить ее, кроме переустановки. Безусловно, самый безопасный вариант.

RKhunter, Tripwire и т. Д. Великолепны, но действительно полезны только в том случае, если они были установлены до инцидента - это потому, что они отлично подходят для определения того, были ли изменены ключевые файлы. Если вы установите RKHunter сейчас и запустите его, он обнаружит включение многих руткитов, но не обнаружит никаких бэкдоров, открытых злоумышленником в ОС или используемых вами приложениях.

Например, вы можете проникнуть на компьютер, создать нового пользователя, дать ему разрешения SSH и sudo, а затем очистить его, оставив на месте легитимно выглядящую конфигурацию и без руткитов, а затем вернуться позже и творить зло.

Лучше всего посмотреть, какие порты прослушивают службы, затем посмотреть конфигурацию всех этих служб и убедиться, что все они законны. Затем посмотрите на конфигурацию вашего брандмауэра и заблокируйте порты, которые вам не нужны, как входящие, так и исходящие. Затем установите RKHunter и т. Д., Чтобы проверить, не уронил ли какой-нибудь скрипт-кит там руткит.

Откровенно говоря, сделать то, что предлагал JJ, и восстановить его, вероятно, будет меньше, чем убедиться, что компьютер не был взломан. Ценны именно данные, а не ОС и конфигурация (не считая человеко-часов на их настройку).

Вы никогда не будете уверены, что его не взломал кто-то умнее вас.

Первым шагом действительно должен быть rkhunter / chkrootkit, однако в прошлом мне также повезло с функциями, которые встроены в определенные менеджеры пакетов, например, rpmverify, который просматривает все пакеты в вашей системе и проверяет, что MD5-суммы включенных в них файлов не отличаются от файлов на диске.

Основные двоичные файлы действительно должны иметь MD5, идентичные тому, что указано в базах данных RPM или DPKG, поэтому, если они разные, вы знаете, что происходит что-то странное.

Самый эффективный способ определить, не скомпрометирован ли ваша работающая система, - это использовать Второй взгляд. Он проверит ядро ​​и все запущенное программное обеспечение в памяти, чтобы убедиться, что они соответствуют тому, что поставил поставщик дистрибутива. Это гораздо лучший подход, чем rkhunter, chkrootkit и т. Д., Которые ищут артефакты определенных известный инфекции. Second Look не делает никаких предположений о целостности операционной системы, поэтому вам не нужно использовать или устанавливать ее до инцидента.

(Отказ от ответственности: я ведущий разработчик Second Look.)