
Coletor automatizado de inteligência de segurança que consulta feeds públicos e APIs para dados de ameaças em IPs, domínios, URLs, hashes e impressões digitais SSL, com configuração baseada em YAML e saída JSON.

Machinae é uma ferramenta para coletar inteligência de sites/feeds públicos sobre vários tipos de dados relacionados à segurança: endereços IP, nomes de domínio, URLs, endereços de e-mail, hashes de arquivos e impressões digitais SSL. Foi inspirado pelo Automater, outra excelente ferramenta para coleta de informações. O projeto Machinae nasceu do desejo de melhorar o Automater em 4 áreas:
Machinae pode ser instalado usando pip3:
pip3 install machinae
Ou, se você se sentir aventureiro, pode ser instalado diretamente do github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Você precisará ter as dependências necessárias em seu sistema para compilar módulos Python (em sistemas baseados em Debian, python3-dev), bem como o pacote de desenvolvimento libyaml (em sistemas baseados em Debian, libyaml-dev).
Você também vai querer obter o arquivo de configuração mais recente e colocá-lo em /etc/machinae.yml.
Machinae suporta um sistema simples de mesclagem de configuração para permitir que você faça ajustes na configuração sem modificar o machinae.yml que fornecemos, tornando as atualizações de configuração muito fáceis. Isso é feito encontrando uma configuração padrão de todo o sistema (padrão /etc/machinae.yml), mesclando nela uma configuração local de todo o sistema (/etc/machinae.local.yml) e, finalmente, uma configuração local por usuário (~/.machinae.yml). A configuração de todo o sistema também pode estar localizada no diretório de trabalho atual, pode ser definida usando a variável de ambiente MACHINAE_CONFIG ou, claro, usando as opções de linha de comando -c ou --config. A mesclagem de configuração pode ser desabilitada passando a opção --nomerge, o que fará com que o Machinae carregue apenas a configuração padrão de todo o sistema (ou a passada na linha de comando).
Como exemplo disso, digamos que você queira habilitar o site Fortinet Category, que está desabilitado por padrão. Você poderia modificar /etc/machinae.yml, mas essas alterações seriam sobrescritas por uma atualização. Em vez disso, você pode colocar o seguinte em /etc/machinae.local.yml ou ~/.machinae.yml:
fortinet_classify:
default: true
Ou, inversamente, para desabilitar um site, como Virus Total pDNS:
vt_ip:
default: false
vt_domain:
default: false
O uso do Machinae é muito semelhante ao Automater:
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[--dump-config | --detect-otype]
...
Veja acima para detalhes sobre as opções -c/--config e --nomerge.
Machinae suporta uma opção -d/--delay, como o Automater. No entanto, o Machinae usa 0 por padrão.
A saída do Machinae é controlada por dois argumentos:
-o controla o formato de saída e pode ser seguido por um único caractere para indicar o tipo de saída desejado:
-f/--file especifica o arquivo onde a saída deve ser escrita. O padrão é "-" para stdout.Machinae tentará detectar automaticamente o tipo de alvo passado (Machinae se refere a alvos como "observáveis" e o tipo como "otype"). Essa detecção pode ser substituída com a opção -O/--otype. As escolhas estão listadas no uso
Por padrão, o Machinae opera em modo verbose. Neste modo, ele exibirá informações de status sobre os serviços que está consultando no console à medida que são consultados. Essa saída será sempre escrita no stdout, independentemente da configuração de saída. Para desabilitar o modo verbose, use
Machinae vem com suporte pronto para uso para as seguintes fontes de dados:
Com fontes de dados adicionais a caminho.
Machinae suporta autenticação básica HTTP para sites que a exigem através da flag --auth/-a. Você precisará criar um arquivo YAML com suas credenciais, que incluirá uma chave para o site que requer as credenciais e uma lista de dois itens, nome de usuário e senha ou chave de API. Por exemplo, para o site PassiveTotal incluído, isso pode se parecer com:
passivetotal: ['[email protected]', 'my_api_key']
Dentro da configuração do site sob request você verá uma chave como:
json:
request:
url: '...'
auth: passivetotal
O auth: passivetotal aponta para a chave dentro da configuração de autenticação passada via linha de comando.
Os seguintes sites estão desabilitados por padrão
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)Machinae vem com um conjunto limitado de formatos de saída: normal, normal com escape de pontos e JSON. Planejamos adicionar mais formatos de saída no futuro.
*** EM BREVE ***
Licença MIT (MIT)
Copyright (c) 2015 Hurricane Labs LLC
A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que pessoas às quais o Software seja fornecido o façam, sujeitas às seguintes condições:
O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
-qPor padrão, o Machinae executará todos os serviços na configuração que se aplicam ao otype de cada alvo e não estão marcados como "default: false". Para modificar esse comportamento, você pode:
all para executar todos os serviços incluindo aqueles marcados como "default: false"Observe que em ambos os casos, a validação otype ainda é aplicada.
Machinae suporta passar um proxy HTTP na linha de comando usando o argumento -H/--http-proxy. Se nenhum proxy for especificado, o machinae procurará nas variáveis de ambiente padrão HTTP_PROXY e HTTPS_PROXY, bem como nas variáveis de ambiente menos padrão http_proxy e https_proxy.
Por último, uma lista de alvos deve ser passada. Todos os argumentos que não sejam as opções listadas acima serão interpretados como alvos.
fraudguard)shodan)