
Honeypot de baixo consumo de recursos que emula serviços de rede comuns para detectar atividade de atacantes após a violação, com módulos de protocolo extensíveis e alertas configuráveis.
O OpenCanary é um honeypot de rede multiprotocolo. Seu principal caso de uso é capturar hackers depois que eles invadem redes não públicas. Ele tem requisitos de recursos extremamente baixos e pode ser ajustado, modificado e estendido.
O OpenCanary é executado como um daemon e implementa vários protocolos de rede comuns. Quando invasores violam redes e interagem com o honeypot, o OpenCanary enviará alertas por meio de uma variedade de mecanismos.
O OpenCanary é implementado em Python, portanto o honeypot principal é multiplataforma; no entanto, alguns recursos exigem sistemas operacionais específicos. A execução no Linux oferecerá mais opções. Ele tem requisitos de recursos extremamente baixos; por exemplo, pode ser implantado sem problemas em um Raspberry Pi ou em uma VM com recursos mínimos.
Este README descreve como instalar e configurar o OpenCanary no Ubuntu Linux e no MacOS.
O OpenCanary é a versão de código aberto do nosso honeypot comercial Thinkst Canary.
A instalação do OpenCanary envolve essencialmente garantir que o ambiente Python esteja pronto e, em seguida, instalar o pacote Python do OpenCanary (além de extras opcionais).
Se o uv estiver instalado, você pode usá-lo para criar o ambiente virtual e instalar pacotes. Se não estiver instalado, o fluxo padrão com python/pip abaixo continua funcionando.
Instalação no Ubuntu 22.04 LTS ou 24.04 LTS:
$ sudo apt-get install python3-dev python3-pip python3-virtualenv python3-venv python3-scapy libssl-dev libpcap-dev
$ virtualenv env/
$ . env/bin/activate
$ pip install opencanary
Equivalente opcional com uv:
$ uv venv env
$ . env/bin/activate
$ uv pip install opencanary
Extras opcionais (se você desejar usar o módulo Windows File Share e o módulo SNMP):
$ sudo apt install samba # se você planeja usar o módulo Windows File Share
$ pip install scapy pcapy-ng # se você planeja usar o módulo SNMP
Primeiro, crie e ative um novo ambiente virtual Python:
$ virtualenv env/
$ . env/bin/activate
Equivalente opcional com uv:
$ uv venv env
$ . env/bin/activate
Usuários do Macports devem então executar:
$ sudo port install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
Alternativamente, usuários do Homebrew x86 executam:
$ brew install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
Usuários do Homebrew M1 executam:
$ brew install openssl
$ env ARCHFLAGS="-arch arm64" LDFLAGS="-L/opt/homebrew/opt/[email protected]/lib" CFLAGS="-I/opt/homebrew/opt/[email protected]/include" pip install cryptography
(A etapa de compilação acima é necessária, pois podem existir várias versões do OpenSSL, o que pode confundir as bibliotecas Python.)
Agora a instalação pode ser executada normalmente:
$ pip install opencanary
$ pip install scapy pcapy-ng # opcional
Com o uv instalado, os comandos equivalentes são:
$ uv pip install opencanary
$ uv pip install scapy pcapy-ng # opcional
O módulo Windows File Share (smb) não está disponível no macOS.
Para instalar a partir do código-fonte, em vez de executar o pip, faça o seguinte:
$ git clone https://github.com/thinkst/opencanary
$ cd opencanary
$ python setup.py sdist
$ cd dist
$ pip install opencanary-<version>.tar.gz
Com o uv instalado, você pode substituir a etapa final de instalação por:
$ uv pip install opencanary-<version>.tar.gz
O OpenCanary é empacotado via pkgx, portanto nenhuma instalação é necessária se o pkgx estiver instalado; basta preceder o comando opencanaryd com pkgx. Devido às proteções de variáveis de ambiente nas implementações modernas de sudo, o comando inteiro deve ser executado como root ou via sudo -E.
$ pkgx opencanaryd --version
As imagens Docker do OpenCanary são hospedadas no Docker Hub. Elas são úteis apenas em hosts Docker Linux, pois o mecanismo de rede host é necessário para obter informações precisas de rede.
Quando o OpenCanary inicia, ele procura arquivos de configuração nos seguintes locais e para quando a primeira configuração é encontrada:
/etc/opencanaryd/opencanary.conf~/.opencanary.conf (ou seja, o diretório home do usuário; normalmente será root, portanto /root/.opencanary.conf)./opencanary.conf (ou seja, o diretório onde o OpenCanary está instalado)Para criar uma configuração inicial, execute como root (pode ser solicitada uma senha de sudo):
$ opencanaryd --copyconfig
[*] A sample config file is ready /etc/opencanaryd/opencanary.conf
[*] Edit your configuration, then launch with "opencanaryd --start --uid=nobody --gid=nogroup"
Isso cria o caminho e o arquivo /etc/opencanaryd/opencanary.conf. Agora você deve editar o arquivo de configuração para determinar quais serviços e opções de registro (logging) deseja ativar.