Faraday Agent Dispatcher lance n'importe quel outil de sécurité et envoie les résultats à la plateforme Faradaysec.
Faraday Agents Dispatcher aide les utilisateurs à développer des intégrations avec Faraday, écrites dans n'importe quel langage.
Exécutez simplement pip3 install faraday_agent_dispatcher et vous devriez voir la
commande faraday-dispatcher sur votre système.
Pour mettre en place un environnement de développement (c'est-à-dire pour modifier le code du dispatcher
lui-même, et non pour écrire vos propres intégrations), vous devez cloner ce dépôt et exécuter
pip install -e ..
Générez un fichier de configuration en exécutant faraday-dispatcher config-wizard.
Exécutez l'agent avec la commande faraday-dispatcher run. Le fichier de configuration
qu'il crée sera situé dans ~/.faraday/config/dispatcher.ini
si vous ne fournissez pas de chemin personnalisé.
Vous devez compléter la configuration de l'agent avec votre jeton d'enregistrement, disponible à l'adresse http://localhost:5985/#/admin/agents. Vérifiez que la section serveur contient les informations correctes concernant votre instance de Faraday Server. Ensuite, complétez la section agent avec le nom souhaité pour votre agent. Enfin, ajoutez les exécuteurs.
Un exécuteur est un script qui affiche des données JSON sur une seule ligne sur stdout. Rappelez-vous que si vous affichez toute autre donnée sur stdout, le dispatcher déclenchera une erreur. Si vous souhaitez afficher des informations de débogage ou de journalisation, utilisez stderr pour cela.
Chaque ligne écrite sur stdout par l'exécuteur sera décodée par le dispatcher et envoyée à Faraday via le point de terminaison Bulk Create. Par conséquent, le JSON que vous affichez doit avoir le schéma requis par ce point de terminaison (ce schéma est détaillé ci-dessous). Sinon, le dispatcher signalera une erreur car vous lui avez fourni des données invalides.
Si vous souhaitez déboguer votre exécuteur, la façon la plus simple de le faire est de l'exécuter directement plutôt qu'avec le Dispatcher. Étant donné que l'exécuteur affiche uniquement des données JSON sur stdout, vous pourrez voir toutes les informations qu'il souhaite envoyer à Faraday, mais sans réellement les envoyer.
Après avoir écrit votre exécuteur, vous devez l'ajouter avec la commande
faraday-dispatcher config-wizard dans la section des exécuteurs, en ajoutant
son nom, la commande à exécuter et la taille maximale du JSON à envoyer au
serveur Faraday. De plus, vous pouvez configurer les variables d'environnement
et les arguments dans leurs sections respectives.
Pour exécuter un exécuteur, utilisez la commande faraday-dispatcher config-wizard,
et lancez-le depuis le Faraday Server. L'exécuteur utilisera les
variables d'environnement définies et demandera les arguments.
Les données publiées sur faraday doivent correspondre au
point de terminaison bulk_create de l'API REST de Faraday.
Si vous souhaitez avoir plus d'un dispatcher, chacun exécutant ses propres
exécuteurs, la manière préférée de procéder est de créer des fichiers de
configuration différents pour chacun (par exemple,
~/.faraday/config/dispatcher-1.ini et
~/.faraday/config/dispatcher-2.ini). Ensuite, vous pouvez exécuter deux
instances différentes du Dispatcher avec faraday-dispatcher --config-file CHEMIN_VERS_UN_FICHIER_DE_CONFIGURATION.
Dans le répertoire exécuteurs, vous pouvez trouver les exécuteurs déjà créés.
Les exécuteurs officiels sont l'ensemble d'exécuteurs prêts à l'emploi (avec une configuration minimale via l'assistant). Ils disposent d'un fichier manifeste JSON, qui donne des détails sur les utilisations de l'exécuteur et aide à leur configuration.
Les exécuteurs officiels actuels sont :
Les exécuteurs de développement sont l'ensemble d'exécuteurs que nous ne maintenons pas entièrement ; nous avons des exemples d'utilisation, des exécuteurs conceptuels et en cours de développement. Les plus importants d'entre eux sont :
basic_example.py : le « Hello World » des exécuteurs Faraday. Il
créera un hôte avec une vulnérabilité associée.heroku_discovery_agent.py : charge les informations sur les hôtes et les services depuis
votre compte Heroku.prowlerSample.py : exécute la commande prowler et envoie
sa sortie à Faraday.brainfuck.sh : une preuve de concept pour démontrer que vous pouvez créer
un exécuteur dans n'importe quel langage de programmation, y compris le Brainfuck !Nous travaillons actuellement sur de nouveaux exécuteurs, en plus d'améliorer l'expérience d'utilisation des agents.
Nous aimerions donner à certains agents un accès en lecture à leur espace de travail, afin qu'ils puissent bénéficier des données existantes pour trouver des informations plus précieuses.
Pour plus d'informations, vous pouvez consulter notre documentation.