
Faraday Agent Dispatcher inicia quaisquer ferramentas de segurança e envia os resultados para a Faradaysec Platform.
Faraday Agents Dispatcher ajuda usuários a desenvolver integrações com Faraday escritas em qualquer linguagem.
Basta executar pip3 install faraday_agent_dispatcher e você deve ver o
comando faraday-dispatcher no seu sistema.
Para configurar um ambiente de desenvolvimento (ou seja, para alterar o código do próprio dispatcher, não para escrever suas próprias integrações), você deve clonar este repositório e executar pip install -e ..
Gere um arquivo de configuração executando faraday-dispatcher config-wizard.
Execute o agente com o comando faraday-dispatcher run. O arquivo de configuração
que ele cria estará localizado em ~/.faraday/config/dispatcher.ini
se você não passar um caminho personalizado.
Você deve completar a configuração do agente com seu token de registro, localizado em http://localhost:5985/#/admin/agents. Verifique se a seção do servidor contém as informações corretas sobre a sua instância do Faraday Server. Em seguida, complete a seção do agente com o nome desejado para o seu agente. Por fim, adicione os executores
Um executor é um script que imprime dados JSON de uma única linha na saída padrão (stdout). Lembre-se de que, se você imprimir qualquer outro dado na saída padrão, o dispatcher acionará um erro. Se quiser imprimir informações de depuração ou registro (logging), você deve usar a stderr para isso.
Cada linha escrita na saída padrão pelo executor será decodificada pelo dispatcher e enviada ao Faraday usando o endpoint Bulk Create. Portanto, o JSON que você imprimir deve ter o esquema que o endpoint exige (esse esquema está detalhado abaixo). Caso contrário, o dispatcher reclamará porque você forneceu dados inválidos.
Se quiser depurar seu executor, a maneira mais simples de fazer isso é executá-lo diretamente em vez de executá-lo com o Dispatcher. Como o executor apenas imprime dados JSON na saída padrão, você poderá ver todas as informações que ele deseja enviar ao Faraday, mas sem realmente enviá-las.
Depois de escrever seu executor, você precisa adicioná-lo com o
faraday-dispatcher config-wizard na seção de executores, informando
seu nome, o comando a ser executado e o tamanho máximo do JSON a ser enviado ao
Faraday Server. Além disso, você pode configurar as variáveis de ambiente
e os argumentos na seção apropriada.
Para executar um executor, use o comando faraday-dispatcher config-wizard
e execute-o a partir do Faraday Server. O executor usará as
variáveis de ambiente definidas e solicitará os argumentos.
Os dados publicados no faraday devem corresponder ao
endpoint bulk_create da REST API do Faraday
Se você quiser ter mais de um dispatcher, cada um executando seus próprios
executores, a forma preferida de fazer isso é criar arquivos de
configuração diferentes para cada um (por exemplo,
~/.faraday/config/dispatcher-1.ini e
~/.faraday/config/dispatcher-2.ini). Depois, você pode executar duas
instâncias diferentes do Dispatcher com faraday-dispatcher --config-file PATH_TO_A_CONFIG_FILE.
Dentro do diretório executors, você pode encontrar os executores já criados.
Os executores oficiais são a coleção de executores prontos para uso (com configuração mínima através do wizard). Eles possuem um arquivo de manifesto JSON, que fornece detalhes sobre os usos do executor e auxilia na configuração deles.
Os executores oficiais atuais são:
Os executores de desenvolvimento são a coleção de executores que não mantemos totalmente; temos exemplos de uso, conceituais e executores em desenvolvimento. Os mais importantes são:
basic_example.py: O Hello World dos executores do Faraday. Ele criará
um host com uma vulnerabilidade associada a eleheroku_discovery_agent.py: Carrega informações de host e serviço da
sua conta HerokuprowlerSample.py: Executa o comando prowler e envia
sua saída para o Faradaybrainfuck.sh: Uma prova de conceito para demonstrar que você pode criar
um executor em qualquer linguagem de programação, incluindo Brainfuck!Atualmente, estamos trabalhando em novos executores, além de melhorar a experiência de uso dos agentes.
Gostaríamos de dar a alguns agentes acesso de leitura ao seu workspace, para que possam se beneficiar dos dados existentes e encontrar informações mais valiosas.
Para mais informações, você pode consultar nossa documentação