Недавно я прочитал статью об анализе вредоносных попыток входа через SSH. Это заставило меня задуматься, так ли уж необычны комбинации имени пользователя и пароля SSH на моём компьютере Debian? Не стал ли я мишенью для атаки по словарю методом перебора? Давайте посмотрим на мой /var/log/auth.log.0:
Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190
Так что выглядит это не очень хорошо. Теперь, когда я знаю, что подвергся атаке и что некоторые из моих комбинаций имени пользователя и пароля слабые, я хотел бы знать, как я могу:
определить, проникли ли в мой Linux-компьютер;
устранить любой ущерб, нанесенный злоумышленниками;
предотвратить это в будущем?
Ответ 1
Многие советуют DenyHosts, но я с большим успехом использую Fail2Ban в своих системах. Он следит за (настраиваемым) количеством неудач, а затем выполняет действие — на моих серверах это действие заключается в использовании iptables для отмены всего трафика с хоста. После 10 неудач при входе в систему их забанят, и на этом все закончится. Я использую данную программу в сочетании с Logcheck, чтобы всегда знать, что происходит на моих серверах.
Если у вас есть доказательства того, что кто-то действительно взломал ваши системы (журналы, которые вы опубликовали, не являются доказательством этого), то единственное решение — создать резервные копии всех данных, которые вам нужно сохранить, стереть системный диск, переустановить и восстановить из резервных копий. В противном случае нет возможности быть уверенным в безопасности.
Ответ 2
Действительные попытки входа также регистрируются, поэтому, если вы видите попытку грубой силы, за которой следует успех, это верный признак того, что произошло что-то плохое. Я использую DenyHosts для мониторинга журналов на предмет подозрительного трафика SSH, и он настроен на автоматическое отключение хостов в определенный момент.
Обратите внимание, что существует множество других способов мониторинга вашей машины на предмет ее взлома, включая модели нагрузки, активность входа в систему, периодическое прослушивание трафика, мониторинг запущенных процессов и открытых портов, а также обеспечение целостности файлов с помощью таких инструментов, как tripwire. Если вы собираетесь сделать только что-то одно, мониторинг нагрузки системы — очень эффективный способ обнаружения компрометации, поскольку большинство машин, когда они взломаны, используются для таких действий как рассылка большого количества спама или получение большого количества трафика. Возможно, это не очень полезно, если вы являетесь ценной жертвой, и люди могут пытаться специально проникнуть к вам по другим причинам, кроме как для превращения вашего хоста в «зомби», но тем не менее это очень важно. Кроме того, мониторинг нагрузки необходим для профилирования и для того, чтобы понять, когда вам нужно инвестировать в более мощное оборудование или лучшее программное обеспечение.
Вы также должны проводить всесторонний анализ журналов, просматривая auth.log и другие файлы на предмет неожиданных вещей. Анализ журнальных файлов — это конкурентный рынок, и проблема еще не решена, но есть бесплатные инструменты, такие как logwatch, которые можно настроить на ежедневную отправку сводок.
Ответ 3
Ничто не указывает на то, что ваша система была взломана. Даже если ваши пароли довольно слабые, атака по словарю, при которой на каждое имя пользователя приходится только одна попытка входа, крайне маловероятна. Но если вы знаете, что ваши пароли слабые, то укрепите их! Мне лично нравится pwgen (который поставляется в Debian). При каждом запуске он генерирует большое количество сильных, но относительно благозвучных паролей, которые (по крайней мере, для меня) довольно легко запомнить, например, yodieCh1, Tai2daci или Chohcah9. Неисполняемые данные, вероятно, можно спасти, но все, что имеет исполняемое содержимое (это потенциально включает такие вещи, как документы MS Office и некоторые конфигурационные файлы), должно быть удалено, если вы не хотите и не можете либо вручную исследовать его, чтобы убедиться, что оно не стало враждебным, либо принять возможность того, что оно может быть враждебным и либо повредить вашу систему, либо обеспечить путь для будущей повторной компрометации, если вы сохраните их.
Ответ 4
Чтобы предотвратить будущие проблемы безопасности, вы можете взглянуть на OSSEC, я использую его для проверки целостности файлов и мониторинга журналов на наших серверах, он очень полный и простой в настройке. Он может отправлять уведомления по почте, вы можете проверять оповещения через командную строку или веб-интерфейс ...
http://www.ossec.net/
«OSSEC — это система обнаружения вторжений на базе хоста с открытым исходным кодом. Она выполняет анализ журналов, проверку целостности файлов, мониторинг политик, обнаружение руткитов, оповещение в реальном времени и активное реагирование».
Анализ журналов. Программа может проверять журналы на ваших серверах и предупреждать вас с помощью правил (есть много предустановленных, и вы можете добавить свои собственные).
Проверка целостности файлов tripwire/aide как на функциональность, так и на то, был ли изменен какой-либо файл на вашем сервере.
Мониторинг политики: проверка некоторых правил безопасности «Лучшей практики».
Обнаружение руткитов: rkhunter, chkrootkit на функциональность.
Оповещение в реальном времени и активное реагирование: вы можете настроить ossec на автоматическую реакцию на оповещения (я этим не пользуюсь, но вы можете использовать это для блокировки ssh-доступа к хостам, делающим слишком много неудачных попыток подключения).
Действительно хороший продукт и активно развивающийся.
Для защиты вашего компьютера вы также можете использовать lynis или bastille.
http://www.rootkit.nl/projects/lynis.html
http://bastille-linux.sourceforge.net/
Linux