Я недавно прочитал статью об анализе злонамеренных попыток входа в 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?
- ... отменить ущерб, оставленный преступниками?
- ... предотвратить это в будущем?
ОБНОВИТЬ
Какой-нибудь совет относительно отмены любого ущерба, оставленного преступниками?
Ответы:
Многие люди, кажется, предлагают DenyHosts, но я видел большой успех с Fail2Ban на моих системах. Он отслеживает (настраиваемое) количество сбоев, а затем выполняет действие - на моих серверах это действие заключается в использовании iptables для отбрасывания всего трафика с хоста. После 10 неудачных попыток входа в систему их забанят, и на этом все.
Я использую это в сочетании с Logcheck, чтобы всегда знать, что происходит на моих серверах.
Если у вас есть какие-либо доказательства того, что кто-то действительно проник в ваши системы (опубликованные вами журналы не являются доказательством этого), тогда ваше единственное решение - создать резервную копию всех данных, которые необходимо сохранить, очистить компьютер, переустановить и восстановить из резервных копий. В противном случае, нет никакой уверенности.
источник
Действительные попытки входа в систему также регистрируются, поэтому, если вы видите грубую попытку, сопровождаемую успехом, это хороший признак того, что произошло что-то плохое.
Я использую DenyHosts для отслеживания моих журналов на предмет подозрительного трафика SSH, и я настроил его на автоматический брандмауэр от хостов в определенный момент.
Обратите внимание, что существует множество других способов мониторинга вашей машины, чтобы увидеть, если она скомпрометирована, включая шаблоны загрузки, активность входа в систему, периодическое отслеживание трафика, мониторинг запущенных процессов и открытых портов, а также обеспечение целостности файлов с помощью такого инструмента, как tripwire.
Если вы собираетесь это сделать, то мониторинг загрузки системы является очень эффективным способом обнаружения компрометации, поскольку большинство компьютеров, которые скомпрометированы, используются для таких вещей, как рассылка огромного количества спама или иное получение большого количества трафика. Возможно, это бесполезно, если вы - высокоценная цель, и люди могут пытаться специально взломать вас по причинам, отличным от превращения вашего хозяина в зомби, но, тем не менее, ценным. Плюс мониторинг нагрузки необходим для профилирования и выяснения, когда вам нужно инвестировать в большее количество оборудования или более качественное программное обеспечение.
Вы также должны сделать всесторонний анализ журнала, ища неожиданные вещи в auth.log и других. Анализ файла журнала - это конкурентный рынок, и проблема еще не решена, но есть бесплатные инструменты, такие как logwatch, которые можно настроить для ежедневной отправки вам сводок.
Безопасность через слои!
источник
Забудьте Tripwire, это довольно дорого. Вместо этого используйте AIDE. Он бесплатный, простой в настройке (хотя требуется некоторое время, чтобы решить, какие временные каталоги следует исключить, и каким-либо другим образом настроить).
вы запускаете его, он создает базу данных всех файлов. Запустите его снова, и он скажет вам, какие файлы изменились.
Еще одна вещь, которую нужно сделать, это установить CSF, который имеет блокиратор типа denyhost, так как люди не могут повторно войти в систему, он добавит их в ваши правила брандмауэра. Вы также можете потребовать, чтобы у SSH-логинов был открытый ключ, а дети сценариев могут делать столько логинов, сколько захотят.
источник
"* ... отменить любой ущерб, оставленный преступниками?"
забудьте об этом, если произошла атака, лучший совет - переустановить ее с нуля (убедитесь, что вы закрыли все дыры в новой установке). Очень легко не заметить бэкдор или скрытый процесс, лучше переустановить его.
"* ... предотвратить это в будущем?"
обновления безопасности
жесткий брандмауэр
надежные пароли
отключить ненужные услуги
источник
взгляните на такие инструменты, как logcheck , portsentry и tripwire . это очень распространено для случайных попыток словаря SSH, так что меня это не слишком беспокоит. Возможно, вы захотите изменить порт для случайного запутывания, но время от времени вы все равно будете видеть случайные попытки, это жизнь с машиной в Интернете.
источник
Одна вещь, которую я использую на своих серверах для предотвращения этих атак, - это DenyHosts . DenyHosts остановит злоумышленника от попытки входа в систему. После его установки в моих лог-файлах было гораздо меньше записей о попытках входа.
источник
Хорошей практикой является использование пар открытых / закрытых ключей в качестве дополнительной аутентификации; Таким образом, пользователь не может войти через SSH без правильного ключа; который было бы довольно невозможно угадать для грубой силы. Хорошую статью об этом можно найти здесь .
Это одно с парольной фразой было бы довольно солидно для аутентификации SSH; Но есть и другие уязвимости! Следите за всеми приложениями, которые используют открытый порт; Если они содержат ошибку, эксплуататоры могут перегнать вашу систему. Хорошим примером является спам-бот, который установлен на нашем сервере из-за ошибки в программном обеспечении веб-статистики, которое мы в настоящее время используем.
источник
Fail2ban - это журнал доступа в реальном времени. Он может быть настроен на блокировку любого IP-адреса с несколькими неудачными попытками входа в систему. Это позволяет избежать атак по словарю без необходимости перемещения порта ssh. chkrootkit и rootkithunter - хорошие утилиты для проверки на проникновение. Если вторжение было успешным, лучше всего скопировать данные (и только данные, а не исполняемые файлы), стереть и переустановить, потому что действительно трудно быть на 100% уверенным, что система чиста.
источник
Там нет ничего, чтобы предположить, что ваша коробка была взломана. Даже если ваши пароли довольно слабые, атака по словарю, при которой для каждого имени пользователя выполняется только одна попытка входа в систему, крайне маловероятна.
Но если вы знаете, что ваши пароли слабые, то укрепите их! Мне лично нравится pwgen (который упакован Debian). При каждом запуске он генерирует большое количество надежных, но относительно произносимых паролей-кандидатов, которые (для меня, по крайней мере) довольно легко запомнить, такие как yodieCh1, Tai2daci или Chohcah9.
Однако, если есть другие доказательства того, что ваша система была взломана ... Ядерная бомба с орбиты. Это единственный способ быть уверенным.
Неисполняемые данные, вероятно, пригодны для восстановления, но все с исполняемым содержимым (это может включать в себя такие вещи, как документы MS Office и некоторые файлы конфигурации) может быть удалено, если вы не хотите и не можете вручную проверить его, чтобы убедиться, что он не ' Он оказался враждебным или согласился с возможностью того, что он может быть враждебным и либо повредить вашу систему, либо предоставить возможность для повторного компромисса в будущем, если вы сохраните его.
источник
Одна небольшая дополнительная защита, которая мне нравится, - ограничение скорости входящих ssh-соединений, чтобы замедлить любые атаки по словарю или подобные. Не ожидайте, что это защитит вас всех, но используйте это в дополнение к предложениям в других ответах, включая отключение аутентификации по паролю.
Использование iptables:
источник
В этой ветке есть несколько плохих советов, таких как:
Просто настройте ваш
/etc/ssh/sshd_config
вместо этого для повышения безопасности:PermitRootLogin no
Если вы коробка была проникла. Восстановите коробку.
источник
Будет происходить все время с включенным ssh. Переместите его в высокий порт.
Существует программа под названием «Tripwire», которая отлично подходит для обнаружения вторжений, но довольно сложна в установке. Если ничего другого, вы должны прочитать их документы, чтобы вы поняли проблемы.
источник
Вам необходимо установить систему обнаружения вторжений, прежде чем подключить машину к Интернету.
И это хорошая идея для IP-соединений SSH из белого списка, просто чтобы быть уверенным, что весь мир не может даже попробовать подобные вещи.
источник
Загрузитесь с носителя только для чтения (livecd) и сравните файлы с резервной копией или исходным носителем.
Просто посмотрите вокруг на странное поведение. Конечно, это проще всего, если вы потратите время до взлома, чтобы получить хорошее представление о том, что является «нормальным».
Размещенные вами ошибки не указывают на компромисс. Просто кто-то пытается.
Переустановите и восстановите из резервной копии, прежде чем система была взломана.
Видеть:
Видеть:
источник
Вы можете посмотреть коробку, чтобы увидеть, что происходит, и искать что-нибудь подозрительное. Смотрите этот пост: /programming/124745/sniffing-network-traffic-for-signs-of-virusesspyware
источник
Psad в сочетании с Shorewall - это хороший способ дополнить ваши правила iptables.
Я также использую Fail2ban, чтобы отслеживать мои логины SSH
источник
используйте rkhunter или chkrootkit или оба; отсканируйте ваш ящик снаружи, чтобы увидеть, какие порты открыты
в любом случае, если все, что у вас есть, является недопустимым пользователем, вам не о чем беспокоиться :)
источник
Что-то совсем другое: попробуйте использовать Google на IP-адресе! Хакер, называющий себя STARTURK из Турции, возможно, попытался взломать ваш сайт.
Хотя это похоже на атаку грубой силой на вашу систему, вполне возможно, что этот хакер только что сделал одну попытку и теперь перешел на другой сайт.
источник
Как уже отмечалось, Tripwire / AIDE - лучший способ поиска системных изменений. К сожалению, на этом корове нет коровника, поскольку она должна быть настроена на заведомо исправную систему.
По крайней мере, одна вещь, которая может помочь вам начать, - это использовать базу данных RPM для проверки md5-сумм ваших файлов. Основная суть заключается в следующем:
Это не идеально по ряду причин. Во-первых, теоретически ваша локальная база данных RPM могла быть изменена. Во-вторых, большинство дистрибутивов используют предварительную связь, а RPM не знает о предварительной ссылке. Может показаться, что MD5 были изменены по сравнению с этим процессом, что является законным.
Лучший совет заключается в следующем: если вы не уверены, что скомпрометированы, пришло время для восстановления.
источник
Чтобы предотвратить будущие проблемы с безопасностью, вы можете взглянуть на OSSEC , я использую его для проверки целостности файлов и мониторинга журналов на наших серверах, он очень полный и простой в настройке. Он может отправлять уведомления по электронной почте, вы можете проверить оповещения через командную строку или веб-интерфейс ...
http://www.ossec.net/
взято с сайта:
«OSSEC - это система обнаружения вторжений на основе хоста с открытым исходным кодом. Она выполняет анализ журналов, проверку целостности файлов, мониторинг политик, обнаружение руткитов, оповещение в режиме реального времени и активный ответ».
Анализ журналов. Он может проверять файл журналов на ваших серверах и оповещать вас с помощью правил (есть много предопределенных, и вы можете добавить свои)
Целостность файла Tripwire / Aide, как функциональность, так что вы увидите, если какой-либо файл был изменен на вашем сервере
мониторинг политики: проверьте некоторые правила безопасности "Best Practices"
обнаружение руткитов: rkhunter, chkrootkit как функциональность
оповещения в режиме реального времени и активный ответ: вы можете настроить ossec так, чтобы он автоматически реагировал на оповещения (я не использую это, но вы можете использовать его для блокировки доступа по ssh к хостам, которые делают слишком много неудачных попыток соединения)
Действительно хороший продукт, и он очень активный
Для того, чтобы затвердеть ваш ящик вы также можете использовать Lynis или Бастилию
http://www.rootkit.nl/projects/lynis.html
http://bastille-linux.sourceforge.net/
источник