Terrapin Scanner — ваш детектор уязвимостей SSH

17 Mar, 2024

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

994
🔱 70
👥 12

Когда безопасное соединение становится уязвимым

В декабре 2023 года исследователи из Ruhr-Universität Bochum обнаружили критическую уязвимость в протоколе SSH, которая получила название Terrapin Attack. Она позволяет злоумышленнику нарушить целостность защищённого канала, манипулируя порядковыми номерами пакетов. Представьте, что ваша зашифрованная переписка может быть частично изменена без вашего ведома — звучит тревожно, не правда ли?

Именно для проверки устойчивости вашей инфраструктуры к этой угрозе создан Terrapin-Scanner — лёгкий инструмент на Go, который не требует глубоких знаний в криптографии.

Что умеет этот сканер

  1. Быстрая диагностика: одной проверки достаточно, чтобы определить уязвимость сервера или клиента
  2. Безопасное сканирование: инструмент не выполняет реальную атаку и не пытается аутентифицироваться
  3. Поддержка JSON-вывода для интеграции в автоматизированные системы
  4. Кроссплатформенность: доступны предсобранные бинарники для всех основных ОС
  5. Гибкость использования: можно запускать как через 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? Проверьте её прямо сейчас — вдруг она уязвима?

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.