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

9

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

Иван
источник

Ответы:

7

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

Rookit Hunter проверяет наличие руткитов и других подобных действий, выполняя такие тесты, как приведенные ниже (подробности см. В разделе « Сведения о проекте» ):

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

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

runlevelsix
источник
2

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

chmeee
источник
2

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

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

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

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

[1]: http://www.sans.org/reading_room/whitepapers/linux/linux-rootkits-beginners-prevention-removal_901 «Начинающие руткиты в Linux»

JJ01
источник
2

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

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

USACASD
источник
1

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

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

Адам Гиббинс
источник
1

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

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

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

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

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

dunxd
источник
0

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

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

JamesHannah
источник
-1

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

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

Эндрю Тапперт
источник