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

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

Возможный дубликат:
Как узнать, скомпрометирован ли мой сервер?

Недавно я получил сообщение «Недоставленная почта возвращена отправителю» от домена .ru, относящееся к сообщению, которое, я уверен, не было отправлено мной, или написанным мной кодом. Я использую Google Apps для электронной почты, и рассматриваемый сервер - это обычный сервер Ubuntu 10.04.1 на провайдере облачного хостинга. Я ищу контрольный список вещей, которые я могу сделать, чтобы определить, был ли взломан мой сервер. До сих пор я запускал домен через Тест открытого реле (это не открытое реле) и запустите netstat -an и ps aux чтобы определить, что работают только те программы, которые я хочу прослушивать порты (SSH, Tomcat, MySQL, Postfix (я не думаю, что могу отключить Avahi из-за того, как работает мой поставщик облачных услуг)). И я бежал cat /etc/passwd чтобы убедиться, что нет неизвестных пользователей. Что мне еще нужно сделать?

Полученное вами письмо вполне может быть "обратное рассеяние", то есть результат спама, отправленного с использованием вашего адреса электронной почты, и SMTP-сервер .ru, возвращающий его. Не обязательно потому, что ваш сервер был взломан и с него было отправлено письмо.

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

Сначала просмотрите свои почтовые журналы! Я привык к exim, но уверен, что шаги такие же. Загляните в свою почтовую очередь и посмотрите, нет ли в очереди сообщений. В результате большого спама вы всегда будете получать сообщения, которые нельзя доставлять в течение нескольких дней, потому что в списках рассылки спама всегда есть недопустимые записи.

Также проанализируйте почтовые журналы. Для exim я использую grep '<=' / var / log / exim_mainlog | awk '{print $ 5}' | grep \ @ | сортировать | uniq -c | sort -nk1, чтобы увидеть, сколько сообщений отправили разные люди.

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

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

Если вы обнаружили спам-сообщения, попробуйте узнать, от имени какого пользователя они отправляются. Измените пароль этого пользователя. Обычно случайный спам исходит из сценариев php, php обычно включает заголовок X-Script-Sentby: (или что-то еще) в полные заголовки сообщений, которые вы можете использовать для поиска ответственного сценария.

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

Если почта приходит с вашего сервера, и вы не знаете, откуда, вы также можете поместить disable_function = mail в свой php.ini

Получение root-прав - наименее вероятный сценарий, более вероятно, что какое-то случайное приложение php было взломано. Если вы получили root-права, попробуйте rkhunter или что-то в этом роде, хакеры также склонны использовать причудливые имена для скриптов, а скрипты php, оставленные хакерами, как правило, будут eval (base64_decode (gunzip (сжато, поэтому, если вы grep -r eval $ docroot, вы обычно можете найти Вредоносные скрипты. Наконец, clamav неплохо подбирает вредоносные скрипты взлома php.

Запустите сниффер, такой как wirehark, и найдите подозрительные соединения, но я не думаю, что вы были скомпрометированы.

Вполне вероятно, что кто-то просто подделывает ваш адрес электронной почты в качестве «отправителя». Сделать это тривиально просто. По мере того, как они рассылают спам, все отклоненные сообщения будут возвращаться вам (иначе говоря, обратное рассеяние). Многие почтовые серверы возвращают электронное письмо с полными заголовками в отчете о недоставке (возврат), чтобы вы могли определить, так ли это.

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

http://www.google.com/support/a/bin/answer.py?answer=178723

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

1) Сканирование портов системы с помощью внешней утилиты 2) Вы можете попробовать переместить некоторые статически связанные двоичные файлы (дополнительные копии ps, netstat и т. Д.) И использовать их для проверки портов, учетных записей и процессов (статическая связь означает, что он не будет использовать что-либо внешнее по отношению к двоичному файлу (например, разделяемую библиотеку из вашей системы).
3) Считали ли вы, что кто-то мог отправить сообщение, используя обратный адрес, указывающий на вас? (обратное рассеяние ... есть термин для этого!)