Открыть сервис

Cowrie

Cowrie — это программное обеспечение с открытым исходным кодом, представляющее собой SSH-сервер-приманку (honeypot) среднего уровня взаимодействия (medium-interaction). Оно предназначено для эмуляции работы SSH-сервера с целью регистрации и анализа попыток несанкционированного доступа, атак и действий злоумышленников в компьютерных сетях. Cowrie позволяет собирать данные об используемых атакующими учётных данных (логинах и паролях), выполняемых командах, загружаемых вредоносных файлах и методах эксплуатации уязвимостей.

История

Проект Cowrie был создан в 2015 году разработчиком Мишелем Остерхаусом (Michel Oosterhof) как форк более раннего honeypot-проекта Kippo. Основной причиной создания форка стало желание расширить функциональность, улучшить эмуляцию файловой системы и повысить точность регистрации действий атакующих. Первая стабильная версия Cowrie была выпущена в 2016 году.

С момента своего появления Cowrie активно развивается сообществом разработчиков. В 2019 году была добавлена поддержка протокола Telnet, что расширило сферу применения приманки. Проект поддерживается на платформе GitHub, где регулярно публикуются обновления, исправления ошибок и новые модули. На 2024 год Cowrie остаётся одним из наиболее популярных honeypot-решений для эмуляции SSH-сервисов.

Архитектура и принцип работы

Cowrie работает по принципу «среднего уровня взаимодействия» (medium-interaction honeypot). В отличие от низкоуровневых приманок, которые лишь регистрируют попытки подключения, Cowrie эмулирует полноценную интерактивную сессию SSH, позволяя злоумышленнику взаимодействовать с поддельной файловой системой и выполнять команды.

Основные компоненты

  • Эмулятор SSH-сервера — принимает входящие подключения на стандартном порту 22 (или любом другом, заданном в конфигурации). Для эмуляции используется библиотека Twisted Conch.
  • Эмулятор файловой системы — создаёт виртуальную файловую систему, которая выглядит как реальная UNIX-подобная ОС. Содержит поддельные системные каталоги (/etc, /bin, /usr), файлы конфигурации, журналы и пользовательские данные. Все изменения, вносимые атакующим (создание, удаление, изменение файлов), отслеживаются, но не влияют на реальную систему.
  • Интерпретатор команд — обрабатывает команды, вводимые атакующим. Cowrie поддерживает эмуляцию многих стандартных команд Linux/Unix: ls, cd, cat, wget, curl, echo, chmod, mkdir и других. Для каждой команды существует либо точная эмуляция (с возвратом правдоподобного вывода), либо заглушка, возвращающая сообщение об ошибке.
  • Модуль регистрации (logging) — вся активность записывается в текстовые файлы (в формате JSON) и в базу данных (по умолчанию SQLite, также поддерживаются MySQL, PostgreSQL). Логи содержат: IP-адрес атакующего, время подключения, использованные учётные данные (логин/пароль), все введённые команды, вывод команд, загруженные файлы и их содержимое.
  • Модуль загрузки файлов — позволяет сохранять файлы, которые атакующий пытается загрузить на сервер (например, вредоносные скрипты, эксплойты, бэкдоры). Файлы сохраняются в отдельную директорию с указанием исходного имени и хеша (MD5, SHA256).

Процесс взаимодействия

  1. Атакующий сканирует сеть и находит открытый порт 22.
  2. Происходит попытка подключения по SSH. Cowrie эмулирует процесс аутентификации: запрашивает логин и пароль.
  3. После успешной (поддельной) аутентификации атакующий получает доступ к эмулированной оболочке.
  4. Атакующий вводит команды, которые Cowrie интерпретирует и возвращает соответствующий вывод. Все действия записываются в лог.
  5. Если атакующий пытается загрузить файл (например, через wget или scp), Cowrie сохраняет его в локальную директорию для последующего анализа.
  6. После завершения сессии (отключения атакующего) все данные сессии сохраняются в базе данных.

Классификация и виды

Cowrie относится к категории honeypot-решений для сетевой безопасности. В зависимости от способа развёртывания и конфигурации выделяют несколько вариантов использования:

  • Одиночная приманка — экземпляр Cowrie, развёрнутый на одном сервере или виртуальной машине. Используется для локального мониторинга или обучения.
  • Распределённая сеть приманок — несколько экземпляров Cowrie, развёрнутых в разных сегментах сети или в облачных средах. Позволяет собирать данные из разных географических точек.
  • Интегрированная приманка — Cowrie, встроенный в систему управления событиями безопасности (SIEM) или платформу для сбора угроз (Threat Intelligence). В этом случае логи Cowrie передаются в централизованную систему анализа.

Применение

Cowrie широко используется в области кибербезопасности для решения следующих задач:

  • Сбор данных об угрозах — анализ попыток атак позволяет выявить популярные учётные данные (логины/пароли), используемые злоумышленниками, типовые сценарии атак (например, сканирование, подбор паролей, выполнение команд), а также новые образцы вредоносного ПО.
  • Обучение и исследования — Cowrie часто применяется в учебных целях для демонстрации методов атак и работы honeypot-систем. Исследователи используют его для изучения поведения ботов и автоматизированных скриптов.
  • Мониторинг внутренних сетей — развёртывание Cowrie в корпоративной сети позволяет выявить несанкционированные попытки доступа к SSH-серверам, в том числе со стороны инсайдеров.
  • Создание каналов Threat Intelligence — данные, собранные Cowrie, могут быть переданы в системы Threat Intelligence (например, MISP, OpenCTI) для обмена информацией об угрозах между организациями.
  • Анализ вредоносного ПО — загруженные атакующими файлы автоматически сохраняются и могут быть проанализированы на предмет вредоносной активности (например, с помощью песочниц или антивирусных движков).

Характеристики и возможности

  • Поддержка протоколов — SSH (порт 22), Telnet (порт 23), SFTP, SCP.
  • Эмуляция команд — более 100 эмулированных команд, включая системные утилиты (ls, cat, ps, top, ifconfig, netstat), сетевые инструменты (wget, curl, ping, traceroute), а также команды для работы с файлами (cp, mv, rm, mkdir).
  • Эмуляция файловой системы — виртуальная файловая система с возможностью добавления пользовательских файлов и каталогов. Поддерживается создание, удаление и изменение файлов.
  • Регистрация сессий — полная запись всех введённых команд и вывода в формате JSON. Возможность воспроизведения сессии в режиме реального времени (через веб-интерфейс).
  • Интеграция с базами данных — поддержка SQLite, MySQL, PostgreSQL, а также возможность выгрузки данных в SIEM-системы через Syslog.
  • Модульность — Cowrie имеет модульную архитектуру, позволяющую подключать дополнительные модули для обработки событий, анализа файлов, интеграции с внешними сервисами.
  • Настраиваемость — гибкая конфигурация через текстовые файлы (cowrie.cfg). Можно задать порты, эмулируемые учётные записи, список разрешённых/заблокированных IP-адресов, параметры эмуляции файловой системы.
  • Веб-интерфейс — встроенный веб-интерфейс для просмотра логов, статистики и воспроизведения сессий (доступен через HTTP/HTTPS).

Развёртывание и конфигурация

Cowrie может быть установлен на операционных системах семейства Linux (Debian, Ubuntu, CentOS, Fedora) и FreeBSD. Установка производится через пакетный менеджер (apt, yum) или из исходных кодов с помощью Python (требуется Python 3.6+). Для работы необходимы библиотеки Twisted, PyCrypto, PyASN1.

Типовой сценарий развёртывания включает:

  1. Установку Cowrie на изолированном сервере или виртуальной машине.
  2. Настройку файла конфигурации cowrie.cfg (указание портов, эмулируемых учётных записей, параметров логирования).
  3. Запуск Cowrie в виде службы (systemd) или вручную.
  4. Настройку межсетевого экрана для перенаправления трафика с реального порта 22 на порт Cowrie (если приманка должна перехватывать трафик, предназначенный для реального SSH-сервера).

Ограничения

  • Эмуляция неполная — Cowrie не эмулирует все возможности реальной ОС. Некоторые команды могут возвращать нереалистичный вывод или сообщать об ошибке, что может быть замечено опытным атакующим.
  • Ресурсоёмкость — при большом количестве одновременных подключений (сотни и тысячи) Cowrie может потреблять значительные ресурсы CPU и памяти.
  • Отсутствие эмуляции ядра — Cowrie не эмулирует работу ядра ОС, поэтому атаки, направленные на эксплуатацию уязвимостей ядра (например, повышение привилегий), не будут зафиксированы.
  • Не предназначен для защиты реальных систем — Cowrie является инструментом для сбора данных, а не средством активной защиты. Он не блокирует атаки и не предотвращает несанкционированный доступ к реальным серверам.

Значение в кибербезопасности

Cowrie является важным инструментом для специалистов по информационной безопасности, исследователей угроз и организаций, занимающихся мониторингом сетевой активности. Данные, собранные с помощью Cowrie, позволяют:

  • выявлять новые образцы вредоносного ПО;
  • анализировать тактики, техники и процедуры (TTP) атакующих;
  • пополнять базы данных угроз (Threat Intelligence);
  • обучать системы обнаружения вторжений (IDS/IPS);
  • проводить исследования в области киберпреступности.

Источники

  1. Официальная документация Cowrie на GitHub (README, Wiki).
  2. Статья «Cowrie: A Medium Interaction SSH Honeypot» на сайте SecurityTrails.
  3. Материалы конференций по кибербезопасности (Black Hat, DEF CON) о honeypot-системах.
  4. Публикации в журнале «Information Security» (ISSN 2077-0464) о методах сбора данных об угрозах.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →