Terrapin Scanner — ваш детектор уязвимостей SSH
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Когда безопасное соединение становится уязвимым
В декабре 2023 года исследователи из Ruhr-Universität Bochum обнаружили критическую уязвимость в протоколе SSH, которая получила название Terrapin Attack. Она позволяет злоумышленнику нарушить целостность защищённого канала, манипулируя порядковыми номерами пакетов. Представьте, что ваша зашифрованная переписка может быть частично изменена без вашего ведома — звучит тревожно, не правда ли?
Именно для проверки устойчивости вашей инфраструктуры к этой угрозе создан Terrapin-Scanner — лёгкий инструмент на Go, который не требует глубоких знаний в криптографии.
Что умеет этот сканер
- Быстрая диагностика: одной проверки достаточно, чтобы определить уязвимость сервера или клиента
- Безопасное сканирование: инструмент не выполняет реальную атаку и не пытается аутентифицироваться
- Поддержка JSON-вывода для интеграции в автоматизированные системы
- Кроссплатформенность: доступны предсобранные бинарники для всех основных ОС
- Гибкость использования: можно запускать как через Docker, так и в виде нативного приложения
Как это работает под капотом
Terrapin-Scanner анализирует поддерживаемые алгоритмы и проверяет наличие известных контрмер (например, strict key exchange). Вот как выглядит типичный вывод в JSON:
{
"RemoteAddr": "127.0.0.1:22",
"IsServer": true,
"Banner": "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.5",
"SupportsChaCha20": true,
"SupportsCbcEtm": false,
"SupportsStrictKex": true,
"Vulnerable": false
}
Инструмент написан на Go, что делает его:
- Быстрым в работе
- Легковесным (не требует runtime-окружения)
- Простым в развёртывании
Практическое применение: когда он вам пригодится
- Администраторам серверов: регулярная проверка SSH-сервисов на наличие уязвимостей
- Разработчикам SSH-клиентов: тестирование своих продуктов перед выпуском обновлений
- Аналитикам безопасности: включение в pipeline проверки инфраструктуры
- Любому, кто использует SSH: быстрая самопроверка домашнего сервера
Например, проверить свой локальный SSH-сервер можно одной командой:
./Terrapin-Scanner --connect localhost:2222
А если нужно протестировать клиент:
./Terrapin-Scanner --listen 2222
# Затем подключитесь к localhost:2222 своим SSH-клиентом
Почему стоит попробовать Terrapin-Scanner
Этот инструмент — не просто академический эксперимент. С его помощью вы:
- Узнаете о проблеме до того, как её используют злоумышленники
- Сможете проверить как серверную, так и клиентскую часть
- Получите чёткий ответ: уязвима ваша система или нет
- Не рискуете нарушить работу сервисов (сканер не выполняет реальных атак)
Особенно рекомендую Terrapin-Scanner:
- Владельцам публичных SSH-серверов
- Разработчикам, использующим SSH в своих продуктах
- Специалистам по безопасности для быстрого аудита
Проект активно развивается — за год на GitHub он собрал почти 1000 звёзд, что говорит о его востребованности в сообществе.
Как начать использовать
Самый быстрый способ — скачать готовый бинарник со страницы релизов. Для любителей Docker есть готовый образ:
docker run --rm -it ghcr.io/rub-nds/terrapin-scanner <args>
Разработчикам на Go будет интересно, что инструмент можно установить как пакет:
go install github.com/RUB-NDS/Terrapin-Scanner@latest
Terrapin-Scanner — это не панацея, а важный инструмент в арсенале любого, кто работает с SSH. Он не заменяет своевременное обновление ПО, но помогает выявить проблемы до того, как их начнут эксплуатировать. Потратьте 5 минут на проверку — это может спасти вас от серьёзных проблем в будущем.
Какая у вас версия OpenSSH? Проверьте её прямо сейчас — вдруг она уязвима?
