Протокол SSH — один из самых удобных и безопасных протоколов удаленного доступа. И, вероятнее всего, самый распространенный. А в связи с тем, что далеко не все, кто его эксплуатирует, основательно разбираются в возможных настройках SSH, этот протокол остаётся одной из наиболее популярных целей как при таргетированной атаке, так и при автоматическом сканировании ботами извне.
Встречаются следующие виды атак:
Дешифрование трафика — классический MitM (Man-in-the-Middle), осуществляющийся с целью анализа всего проходящего через устройство злоумышленника трафика, включая пароли.
Bruteforce УЗ — атака, направленная на подбор правильной комбинации логин-пароль для получения доступа к устройству.
Атаки на уязвимые версии SSH — редкий вид атак, направленный на уязвимости, существующие в ПО. Чаще всего данной атаке подвержены старые, необновленные версии ПО.
Рекомендации по защите
Используйте только свежие версии ПО, как серверной части, так и клиентской. В новых версиях ПО устраняются ошибки и уязвимости, а также добавляются новые меры защиты или алгоритмы шифрования (ciphers).
Настройте только актуальные алгоритмы шифрования (ciphers). Устаревшие алгоритмы могут быть подвержены взлому, что может привести к утечке информации.
Используйте protocol 2. Он обладает рядом серьёзных преимуществ по сравнению с первой версией протокола, например, во второй версии добавлена поддержка алгоритма Диффи-Хэллмана для создания общего сеансового ключа. Сегодня этот алгоритм используется по умолчанию в большинстве новых систем.
Используйте ключи для авторизации пользователей вместо паролей. Это серьёзно повышает безопасность системы и значительно снижает риски атак типа MitM. В качестве криптографического алгоритма рекомендуется использовать ED25519 или RSA с длиной ключа от 4096 бит.
Используйте нестандартный порт. Классический порт (22) используется для автоматических атак каких-либо ботов или сетевых сканеров, в отличие от, например, 3522.
Настройте fail2ban. Он позволит блокировать попытки bruteforce атак на SSH.
Настройте запрет аутентификации root-пользователя через SSH. У каждого пользователя должна быть своя УЗ, используя которую он, в зависимости от потребностей, может получать root-привилегии.
Обращайте внимание на предупреждение об изменившимся ключе SSH-сервера, к которому осуществляется подключение. Это первый признак того, что кто-то пытается организовать атаку типа MitM.
Действия в случае инцидента
При выявлении неавторизованного подключения к SSH-серверу необходимо предпринять действия, направленные на пресечение активности злоумышленника, «убив» его сессию. После этого, в случае, если используется авторизация по паролям, необходимо сменить пароль пользователя и выяснить, каким образом старый пароль стал известен злоумышленнику. Возможно, потребуется пересмотреть парольную политику в компании.
Если используются публичные ключи, то необходимо удалить скомпрометированный ключ со всех устройств, на которые он был добавлен, после чего выяснить, каким образом закрытый секретный ключ попал к злоумышленнику с хоста пользователя, и принять меры по предотвращению подобных инцидентов в будущем.