Мой сервер Linux был взломан. Как мне узнать, как и когда это было сделано?

11

У меня есть домашний сервер с настольным дистрибутивом Ubuntu. Я нашел это в моем crontab

* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1

и при поиске в этом каталоге (пробел после имени пользователя / - это имя каталога) я обнаружил множество сценариев, которые, очевидно, делают то, чего не должны делать.

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

В каких лог-файлах мне следует искать? Единственные известные мне серверы, которые работают на компьютере, это sshd и lighttpd.

Что я должен сделать, чтобы обнаружить, происходит ли подобное снова?

Джонатан Каллус
источник
@ Человек, который проголосовал за переход на SU: Как вы думаете, вирус / хакерская криминалистика больше относится к Суперпользователю, чем к отказу сервера ??
Крис С
3
Я рад слышать, что планируется стереть компьютер и переустановить вещи. Это абсолютно правильно делать независимо от того, что вы найдете, потому что всегда есть вероятность, что есть что-то худшее, чего вы не нашли.
Mattdm
Да, действительно стоит голосовать, чтобы перейти к IT Security ( security.stackexchange.com ), а не SU или Serverfault!
Рори Олсоп

Ответы:

4

Сначала убедитесь, что компьютер отключен от любых сетей.
Во-вторых, убедитесь, что вы получили важные данные с дисков, прежде чем снова загружать взломанную ОС.

Начните с проверки отметок времени на рассматриваемых файлах. Часто они точны.
Перекрестные ссылки с журналами httpd и auth, если они не были стерты. Если один другой другой был уничтожен, вы можете поспорить, что это было средством входа. Если они все еще в такте, вы можете получить больше информации о том, как они попали в журнал.

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

Вы упомянули, что эти две службы были запущены. Был ли установлен хороший межсетевой экран для предотвращения доступа ко всем остальным? Вы разрешили SSH на порт 22; Ваш логин достаточно легко угадать; Вы разрешили логин паролей; у вас было какое-либо ограничение реальной скорости для входа в систему с паролем? У вас было установлено дополнительное программное обеспечение с lighttpd; Perl; PHP; CGI; CMS или подобное? Работали ли вы с обновленной версией всего программного обеспечения; подписываетесь ли вы на уведомления о безопасности для всего программного обеспечения, которое вы запускаете, и тщательно оцениваете все уведомления, чтобы увидеть, относятся ли они к программному обеспечению, которое вы запускаете / предоставляете общественности?

Крис С
источник
Установка была стандартной Ubuntu Desktop Edition 10.x, ничего особенного для безопасности не было сделано. Я предположил, что по умолчанию был достаточно хороший брандмауэр. Это не правильно? Я разрешил вход в систему через порт 22, но пароль представлял собой произвольную 8-символьную строку. Должно быть достаточно хорошо?
Джонатан Каллус
Я полагаю, что брандмауэр по умолчанию - «широко открытый - без брандмауэра». Если вы не настроили его тщательно, он ничего не делает.
Крис С
Вопрос в том, какие службы вы использовали больше, чем какой брандмауэр. Если брандмауэр не настроен на настройку определенных IP-адресов для доступа, лучший брандмауэр - в первую очередь не запускать ненужные службы. И каковы были ваши настройки сети? Открыт для интернета? Внутри частной сети? У вас не было брандмауэра в той точке, где ваша внутренняя сеть была подключена к Интернету, или ваш сервер находился в демилитаризованной зоне?
Барт Сильверстрим
Сервер был подключен напрямую к интернету. Я тоже использовал его в качестве роутера. Если брандмауэр по умолчанию широко открыт, я думаю, у меня достаточно объяснений, как это могло бы произойти ..
Джонатан Каллус
4

Это своего рода тема сама по себе; Вы можете зайти в Google для экспертизы Linux для получения дополнительной информации. В основном вам нужно сначала создать образ ваших дисков для автономного анализа, а затем стереть компьютер и установить его с чистого листа.

И помните все происшествия. Любой, использующий компьютер, мог взломать свои пароли. Меняйте пароли, оставляйте их в автономном режиме и т. Д., Пока не попадете в «чистую комнату» (изолированную ВМ).

В противном случае нужно много проверять журналы (которые могут быть подделаны) и проверять ваши приложения (php-скрипты? Базы данных? Обновлено для последних исправлений? Другие пользователи выдают пароли?)

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

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

Вы также запустили бы контрольную сумму в своей системе, такую ​​как Tripwire, чтобы проверить целостность ваших файлов.

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

Опять же, безопасность - это не вещь, которую нужно бросить. Это тоже может быть специальностью. Многоуровневая безопасность может быть такой же жесткой, как проверка хостов / IP-адресов, не принадлежащих вашей сети, шифрование всего доступа к системе, ежедневные журналы изменений, найденных в вашей системе, и отправка вам приманки в вашей сети. ищите странную активность (почему мой сервер пытается подключиться к порту 25 на компьютере honeypot?)

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

РЕДАКТИРОВАТЬ - некоторые другие вещи, которые происходят со мной, так как вы используете SSH - установите denyhosts. Его можно настроить так, чтобы автоматические атаки на вашу систему на SSHD были заблокированы после X попыток. Он также может быть настроен на обновление с других серверов denyhost в «облаке» для совместного использования заблокированных IP-адресов, чтобы минимизировать автоматизированные атаки. Вы также можете переместить порт, на котором он слушает; многие люди отмечают, что это просто безопасность через неизвестность, но, учитывая количество сканируемых ботов, это значительно сокращает случайные попытки взлома.

Барт Сильверстрим
источник
Благодарность! Вы действительно ответили на половину вопроса каждый, я хотел бы отметить оба как принятый ответ.
Джонатан Каллус