
Collecteur automatisé de renseignements de sécurité qui interroge les flux publics et les API pour obtenir des données sur les menaces concernant les IP, domaines, URLs, hachages et empreintes SSL, avec une configuration basée sur YAML et une sortie en JSON.

Machinae est un outil de collecte de renseignements provenant de sites/flux publics concernant divers éléments liés à la sécurité : adresses IP, noms de domaine, URL, adresses e-mail, empreintes de fichiers et empreintes SSL. Il s'inspire d'Automater, un autre excellent outil de collecte d'informations. Le projet Machinae est né du désir d'améliorer Automater dans 4 domaines :
Machinae peut être installé avec pip3 :
pip3 install machinae
Ou, si vous vous sentez aventureux, directement depuis github :
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Vous devez disposer des dépendances nécessaires sur votre système pour
compiler les modules Python (sur les systèmes basés sur Debian, python3-dev), ainsi que du
paquet de développement libyaml (sur les systèmes basés sur Debian, libyaml-dev).
Vous voudrez aussi récupérer le fichier de configuration le plus récent et le placer
dans /etc/machinae.yml.
Machinae prend en charge un système simple de fusion de configuration pour vous permettre
d'ajuster la configuration sans modifier le fichier machinae.yml fourni, ce qui
simplifie les mises à jour de configuration. Cela fonctionne en trouvant une configuration
par défaut à l'échelle du système (par défaut /etc/machinae.yml), en fusionnant avec
une configuration locale système (/etc/machinae.local.yml) et enfin une configuration
locale par utilisateur (~/.machinae.yml). La configuration système peut également être
située dans le répertoire de travail courant, être définie via la variable d'environnement
MACHINAE_CONFIG, ou bien sûr en utilisant les options de ligne de commande -c ou
--config. La fusion de configuration peut être désactivée avec l'option --nomerge,
ce qui fait que Machinae ne charge que la configuration système par défaut (ou celle
passée en ligne de commande).
Par exemple, supposons que vous souhaitiez activer le site Fortinet Category, qui est
désactivé par défaut. Vous pourriez modifier /etc/machinae.yml, mais ces modifications
seraient écrasées lors d'une mise à jour. Au lieu de cela, vous pouvez placer ce qui suit
dans /etc/machinae.local.yml ou ~/.machinae.yml :
fortinet_classify:
default: true
Ou, inversement, pour désactiver un site, comme Virus Total pDNS :
vt_ip:
default: false
vt_domain:
default: false
L'utilisation de Machinae est très similaire à 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]
...
Voir ci-dessus pour les détails des options -c/--config et --nomerge.
Machinae prend en charge une option -d/--delay, comme Automater. Cependant, Machinae
utilise 0 par défaut.
La sortie de Machinae est contrôlée par deux arguments :
-o contrôle le format de sortie et peut être suivi d'un seul caractère
pour indiquer le type de sortie souhaité :
-f/--file spécifie le fichier où la sortie doit être écrite. La valeur par
défaut est "-" pour la sortie standard.Machinae tente de détecter automatiquement le type de cible passé (Machinae
appelle les cibles des « observables » et le type, « otype »). Cette détection peut
être remplacée avec l'option -O/--otype. Les choix sont listés dans l'utilisation.
Par défaut, Machinae fonctionne en mode verbeux. Dans ce mode, il affiche les informations d'état sur les services qu'il interroge sur la console au fur et à mesure de l'interrogation. Cette sortie est toujours écrite sur la sortie standard, quel que soit le paramètre de sortie. Pour désactiver le mode verbeux, utilisez .
Machinae est livré avec la prise en charge prête à l'emploi des sources de données suivantes :
Avec d'autres sources de données à venir.
Machinae prend en charge l'authentification HTTP Basic pour les sites qui l'exigent via
l'option --auth/-a. Vous devrez créer un fichier YAML avec vos identifiants, qui
contiendra une clé pour le site nécessitant les identifiants et une liste de deux éléments,
nom d'utilisateur et mot de passe ou clé API. Par exemple, pour le site PassiveTotal inclus,
cela pourrait ressembler à :
passivetotal: ['[email protected]', 'my_api_key']
Dans la configuration du site sous request, vous verrez une clé telle que :
json:
request:
url: '...'
auth: passivetotal
Le auth: passivetotal pointe vers la clé dans la configuration d'authentification passée
via la ligne de commande.
Les sites suivants sont désactivés par défaut
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 est livré avec un ensemble limité de formats de sortie : normale, normale avec échappement des points, et JSON. Nous prévoyons d'ajouter d'autres formats de sortie à l'avenir.
*** PROCHAINEMENT ***
The MIT License (MIT)
Copyright (c) 2015 Hurricane Labs LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-qPar défaut, Machinae parcourt tous les services de la configuration qui s'appliquent à l'otype de chaque cible et qui ne sont pas marqués comme « default: false ». Pour modifier ce comportement, vous pouvez :
all pour parcourir tous les services, y compris
ceux marqués comme « default: false ».Notez que dans les deux cas, la validation de l'otype est toujours appliquée.
Machinae prend en charge le passage d'un proxy HTTP en ligne de commande via
l'argument -H/--http-proxy. Si aucun proxy n'est spécifié, machinae recherche les
variables d'environnement standard HTTP_PROXY et HTTPS_PROXY, ainsi que les
variables moins standard http_proxy et https_proxy.
Enfin, une liste de cibles doit être passée. Tous les arguments autres que les options listées ci-dessus seront interprétés comme des cibles.
fraudguard)shodan)