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).
Процесс взаимодействия
- Атакующий сканирует сеть и находит открытый порт 22.
- Происходит попытка подключения по SSH. Cowrie эмулирует процесс аутентификации: запрашивает логин и пароль.
- После успешной (поддельной) аутентификации атакующий получает доступ к эмулированной оболочке.
- Атакующий вводит команды, которые Cowrie интерпретирует и возвращает соответствующий вывод. Все действия записываются в лог.
- Если атакующий пытается загрузить файл (например, через
wgetилиscp), Cowrie сохраняет его в локальную директорию для последующего анализа. - После завершения сессии (отключения атакующего) все данные сессии сохраняются в базе данных.
Классификация и виды
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.
Типовой сценарий развёртывания включает:
- Установку Cowrie на изолированном сервере или виртуальной машине.
- Настройку файла конфигурации
cowrie.cfg(указание портов, эмулируемых учётных записей, параметров логирования). - Запуск Cowrie в виде службы (systemd) или вручную.
- Настройку межсетевого экрана для перенаправления трафика с реального порта 22 на порт Cowrie (если приманка должна перехватывать трафик, предназначенный для реального SSH-сервера).
Ограничения
- Эмуляция неполная — Cowrie не эмулирует все возможности реальной ОС. Некоторые команды могут возвращать нереалистичный вывод или сообщать об ошибке, что может быть замечено опытным атакующим.
- Ресурсоёмкость — при большом количестве одновременных подключений (сотни и тысячи) Cowrie может потреблять значительные ресурсы CPU и памяти.
- Отсутствие эмуляции ядра — Cowrie не эмулирует работу ядра ОС, поэтому атаки, направленные на эксплуатацию уязвимостей ядра (например, повышение привилегий), не будут зафиксированы.
- Не предназначен для защиты реальных систем — Cowrie является инструментом для сбора данных, а не средством активной защиты. Он не блокирует атаки и не предотвращает несанкционированный доступ к реальным серверам.
Значение в кибербезопасности
Cowrie является важным инструментом для специалистов по информационной безопасности, исследователей угроз и организаций, занимающихся мониторингом сетевой активности. Данные, собранные с помощью Cowrie, позволяют:
- выявлять новые образцы вредоносного ПО;
- анализировать тактики, техники и процедуры (TTP) атакующих;
- пополнять базы данных угроз (Threat Intelligence);
- обучать системы обнаружения вторжений (IDS/IPS);
- проводить исследования в области киберпреступности.
Источники
- Официальная документация Cowrie на GitHub (README, Wiki).
- Статья «Cowrie: A Medium Interaction SSH Honeypot» на сайте SecurityTrails.
- Материалы конференций по кибербезопасности (Black Hat, DEF CON) о honeypot-системах.
- Публикации в журнале «Information Security» (ISSN 2077-0464) о методах сбора данных об угрозах.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →