Во-первых, я не ищу программное обеспечение для обнаружения руткитов, установленных на сервере, так как это может работать, а может и не работать, особенно в живой системе.
Мне любопытно узнать, каковы будут признаки захвата руткитами одного сервера. По крайней мере, какой ущерб и какое внешне обнаруживаемое поведение можно было бы ожидать и наблюдать, пока это происходит?
Моя идея - возможно, неправильная - заключается в том, что если вы не можете обнаружить компрометацию системы с помощью таких инструментов, как ps
, top
, netstat
(который, по определению, может быть изменен), вы, возможно, можете быть уверены, что система базируется на:
(очевидно, мы говорим об общедоступном сервере).
На правильном ли я пути - можно ли при таком подходе распознать рутированный сервер и как?
Прежде всего, стоит спросить, по каким причинам злоумышленник завладел вашим сервером. Мотивацией к незаконной деятельности, скорее всего, являются деньги. Вероятно, это не то, что требует вычислительной мощности, поэтому не так важно отслеживать использование системных ресурсов.
Итак, как использовать угнанный компьютер для получения прибыли? Кража информации или превращение ее в сервер для рассылки спама и т. Д. Все они имеют общее, что им нужны сетевые подключения. Таким образом, вы должны отслеживать аномальный сетевой трафик.
Поскольку скомпрометированный сервер может скрыть эти подключения (делая их невидимыми для самой системы), наиболее эффективным способом является использование внешнего межсетевого экрана с Система предотвращения вторжений между сервером и Интернетом.
Существуют всевозможные вредоносные программы, и их будет очень трудно обнаружить. Большинство вредоносных программ в наши дни написано с намерением использовать ваш сервер для нацеливания на других людей (кроме программ-вымогателей, которые, к сожалению, легко обнаружить), поэтому лучшие внешние места для поиска вращаются вокруг того, что отправляет ваш сервер. Три наиболее распространенных цели вредоносного ПО - это заработок на фишинговых сайтах, спаме и службах DDOS.
Фишинговые сайты обычно можно обнаружить с помощью журналов доступа вашего веб-сервера. Следует искать случайно сгенерированный подкаталог где-нибудь в корне документа сайта или каталог, который выглядит как часть вашего каркаса приложения (например, я видел wp-файлы и wp-config для WordPress). Внутри этой папки будет страница, которая выглядит как страница входа в систему популярного сервиса или финансового учреждения, а также текстовый файл или почтовый клиент для получения информации о пользователе. Для этого требуется некоторое знание того, как обычно выглядят ваши журналы доступа, но это довольно легко обнаружить.
Вредоносное ПО, которое заставляет сервер рассылать спам, обычно можно обнаружить, проверив вашу почтовую очередь, так как весьма вероятно, что произойдет ряд ошибок возврата. Вы также можете использовать такой инструмент, как база отправителя чтобы увидеть, не было ли аномальных всплесков вашего почтового трафика. Средства проверки черного списка, такие как MxToolbox и мультирбл тоже полезны.
Обнаружить, участвует ли ваш сервер в DDOS-атаках, труднее. Лучший способ - отслеживать предполагаемое использование пропускной способности, поскольку внезапные всплески исходящего трафика довольно указывают на наличие вредоносного ПО.
В целом, ваш список - хорошее начало, поскольку вредоносные программы могут проявляться в самых разных формах. Вам просто нужно иметь в виду, что хорошо написанное вредоносное ПО будет практически невозможно обнаружить без использования IDS / IPS и другого программного обеспечения для мониторинга.
Многие руткиты уровня ядра можно эффективно подавить во время атаки, включив командную строку ядра. module.sig_enforce
.
http://lxr.free-electrons.com/source/Documentation/kernel-parameters.txt?v=4.8
module.sig_enforce
[KNL] When CONFIG_MODULE_SIG is set, this means that
modules without (valid) signatures will fail to load.
Note that if CONFIG_MODULE_SIG_FORCE is set, that
is always true, so this option does nothing.
Чтобы правильно использовать это преимущество, в идеале вам понадобится «ванильное» ядро, которое будет использовать только модули, поступающие из основного репозитория системы. В результате вы разрешаете загружать только те модули ядра, которые подписаны вашим доверенным репозиторием, из которого вы изначально получили ядро.
Что касается обнаружения и / или предотвращения руткитов пользовательского пространства - rpm -V
может помочь выявить некоторые аномалии из коробки, но если ssl
библиотеки были подделаны, это еще можно превзойти.
Однако в конечном итоге такие проверки безопасности бесполезны. Если вы заинтересованы в поддержании определенной степени защиты от несанкционированного доступа для своих систем, вам необходимо изменить свое представление о том, как работает безопасность.
Вам нужно определить, что такое система должен делать а не то, что система не должна делать. Часто это трудно перечислить с точки зрения времени или неизвестно системному администратору, что является сутью проблемы.
Однако, как только вы узнаете, что такое система должен Можете ли вы определять политики безопасности в таких вещах, как SELinux (сама по себе огромная тема, но ее включение - отличное начало). SELinux в наши дни имеет довольно хорошие политики, которые прошли долгий путь, пытаясь определить, что типичный Linux должен стоит сделать уже.
Следующий шаг (если вы действительно серьезно параноик) - это покупка оборудования, которое содержит микросхемы TPM и настройку серверов для полной защиты от несанкционированного доступа через средства IMA, объединенные в ядро.
Это зависит от физически защищенного от взлома чипа, который предоставляет ядру криптосервисы, с помощью которых вы можете криптографически подписывать определенные файлы и двоичные файлы, чтобы сделать это действительно устойчивым к взлому (ядро может отказаться выполнять код, который не подписан в системе). сюда).
Большая часть этого настолько свежа и нова, что, к сожалению, это не совсем готовый дистрибутив, но полезно знать о его существовании, когда он действительно станет готов.
https://wiki.gentoo.org/wiki/Integrity_Measurement_Architecture