Мой сервер Linux был взломан. Как мне узнать, как и когда это было сделано?
У меня есть домашний сервер с настольным дистрибутивом Ubuntu. Я нашел это в моем crontab
* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1
и при поиске в этом каталоге (пробел после имени пользователя / - это имя каталога) я обнаружил множество сценариев, которые, очевидно, делают то, чего не должны делать.
Перед тем, как стереть этот компьютер и переустановить, я хотел бы выяснить, что послужило причиной нарушения безопасности и когда это было сделано. Поэтому я больше не открываю ту же дыру.
В каких лог-файлах мне следует искать? Единственные известные мне серверы, которые работают на компьютере, это sshd и lighttpd.
Что я должен сделать, чтобы обнаружить, происходит ли подобное снова?
2 ответа
Сначала убедитесь, что компьютер отключен от любых сетей.
Во-вторых, перед загрузкой взломанной ОС убедитесь, что вы получили важные данные с дисков.
Начните с проверки временных отметок на рассматриваемых файлах. Часто они точны.
Перекрестные ссылки с журналами httpd и auth, если они не были стерты. Если один другой другой был уничтожен, вы можете поспорить, что это было средством входа. Если они все еще в такте, вы можете получить больше информации о том, как они попали в журнал.
Если они все стерты, ты просто облажался. Вероятно, потребуется больше времени, чтобы выяснить, что произошло, чем оно того стоит.
Вы упомянули, что эти две службы были запущены. Был ли установлен хороший межсетевой экран для предотвращения доступа ко всему остальному? Вы разрешили SSH на порт 22; Ваш логин достаточно легко угадать; Вы разрешили логин паролей; У вас было какое-либо ограничение реальной скорости для входа в систему с паролем? У вас было установлено дополнительное программное обеспечение с lighttpd; Perl; PHP; CGI; CMS или подобное? Была ли запущена обновленная версия всего программного обеспечения; подписываетесь ли вы на уведомления о безопасности для всего программного обеспечения, которое вы запускаете, и тщательно оцениваете все уведомления, чтобы увидеть, относятся ли они к программному обеспечению, которое вы запускаете / предоставляете общественности?
Это своего рода тема сама по себе; Вы можете зайти в Google для экспертизы Linux для получения дополнительной информации. По сути, вам нужно сначала создать образ своих дисков для автономного анализа, а затем стереть компьютер и установить его с чистого листа.
И запомни все происшествия. Любой, использующий компьютер, мог взломать свои пароли. Меняйте пароли, оставляйте их в автономном режиме и т. Д., Пока не получите их в "чистой комнате" (изолированной ВМ).
В противном случае нужно много проверять журналы (которые могут быть подделаны) и проверять ваши приложения (php-скрипты? Базы данных? Обновлено для последних исправлений? Другие пользователи выдают пароли?)
Нет буквально простого способа ответить на ваш вопрос, так как вам нужно будет провести судебную экспертизу на сервере и проверить наличие дыр. Вы можете использовать некоторые автоматизированные инструменты, но имейте в виду, что если у злоумышленника есть права доступа Root, вы больше не можете доверять бинарным файлам системы и не можете доверять журналам.
Что касается будущих атак, то в зависимости от того, насколько безопасным вы хотите их сделать, вы можете начать с перенаправления журналов в систему, которая просто используется для сохранения системных журналов. Нет другого доступа, чтобы уменьшить след атаки.
Вы также запустили бы контрольную сумму в своей системе, такую как Tripwire, чтобы проверить целостность ваших файлов.
И, конечно, будьте в курсе обновлений и запускайте программное обеспечение для сканирования, которое проверяет наличие руткитов.
Опять же, безопасность - это не вещь, которую можно бросить. Это тоже может быть специальностью. Многоуровневая безопасность может быть такой же жесткой, как проверка хостов /IP-адресов, не принадлежащих вашей сети, шифрование всего доступа к системе, ежедневные журналы изменений, найденных в вашей системе, и отправка вам приманки в вашей сети. ищите странную активность (почему мой сервер пытается подключиться к порту 25 на компьютере honeypot?)
Прежде всего, если вы хотите проверить активность, получите образ диска и переустановите серверное программное обеспечение. С нуля. Двоичные файлы сервера больше нельзя доверять.
РЕДАКТИРОВАТЬ - некоторые другие вещи, которые происходят со мной, так как вы используете SSH - установите denyhosts. Его можно настроить так, чтобы автоматические атаки на вашу систему на SSHD были заблокированы после X попыток. Он также может быть настроен на обновление с других серверов denyhost в "облаке" для совместного использования заблокированных IP-адресов, чтобы минимизировать автоматизированные атаки. Вы также можете переместить порт, на котором он слушает; многие люди отмечают, что это просто безопасность через неизвестность, но, учитывая количество сканируемых ботов, это значительно сокращает случайные попытки взлома.