
Collettore automatizzato di intelligence di sicurezza che interroga feed pubblici e API per dati sulle minacce relativi a IP, domini, URL, hash e impronte digitali SSL, con configurazione basata su YAML e output JSON.

Machinae è uno strumento per raccogliere intelligence da siti/feed pubblici riguardanti vari dati legati alla sicurezza: indirizzi IP, nomi di dominio, URL, indirizzi email, hash di file e impronte SSL. È stato ispirato da Automater, un altro eccellente strumento per la raccolta di informazioni. Il progetto Machinae è nato dal desiderio di migliorare Automater in 4 aree:
Machinae può essere installato tramite pip3:
pip3 install machinae
Oppure, se ti senti avventuroso, può essere installato direttamente da github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Dovrai avere tutte le dipendenze necessarie sul tuo sistema per compilare moduli Python (sui sistemi basati su Debian, python3-dev), così come il pacchetto di sviluppo libyaml (sui sistemi basati su Debian, libyaml-dev).
Ti servirà anche scaricare il file di configurazione più recente e posizionarlo in /etc/machinae.yml.
Machinae supporta un semplice sistema di unione delle configurazioni che ti consente di apportare modifiche alla configurazione senza dover modificare il file machinae.yml che forniamo, rendendo gli aggiornamenti della configurazione un gioco da ragazzi. Ciò avviene individuando una configurazione predefinita a livello di sistema (di default /etc/machinae.yml), unendo a questa una configurazione locale a livello di sistema (/etc/machinae.local.yml) e infine una configurazione locale per utente (~/.machinae.yml). La configurazione di sistema può anche essere posizionata nella directory di lavoro corrente, può essere impostata tramite la variabile d'ambiente MACHINAE_CONFIG o, ovviamente, utilizzando le opzioni della riga di comando -c o --config. L'unione delle configurazioni può essere disabilitata passando l'opzione --nomerge, che farà caricare a Machinae solo la configurazione predefinita di sistema (o quella passata tramite riga di comando).
Come esempio, supponiamo che tu voglia abilitare il sito Fortinet Category, che è disabilitato di default. Potresti modificare /etc/machinae.yml, ma queste modifiche verrebbero sovrascritte da un aggiornamento. Invece, puoi inserire quanto segue in /etc/machinae.local.yml o ~/.machinae.yml:
fortinet_classify:
default: true
Oppure, al contrario, per disabilitare un sito, come Virus Total pDNS:
vt_ip:
default: false
vt_domain:
default: false
L'utilizzo di Machinae è molto simile a quello di 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]
...
Vedi sopra per i dettagli sulle opzioni -c/--config e --nomerge.
Machinae supporta un'opzione -d/--delay, come Automater. Tuttavia, Machinae utilizza 0 come predefinito.
L'output di Machinae è controllato da due argomenti:
-o controlla il formato dell'output e può essere seguito da un singolo carattere per indicare il tipo di output desiderato:
-f/--file specifica il file in cui scrivere l'output. Il valore predefinito è "-" per stdout.Machinae tenterà di rilevare automaticamente il tipo di target passato (Machinae si riferisce ai target come "osservabili" e al tipo come "otype"). Questo rilevamento può essere sovrascritto con l'opzione -O/--otype. Le scelte sono elencate nell'uso.
Di default, Machinae opera in modalità verbose. In questa modalità, scriverà informazioni sullo stato dei servizi che sta interrogando sulla console mentre vengono interrogati. Questo output verrà sempre scritto su stdout, indipendentemente dall'impostazione dell'output. Per disabilitare la modalità verbose, usa .
Machinae viene fornito con supporto immediato per le seguenti sorgenti dati:
Con altre sorgenti dati in arrivo.
Machinae supporta l'autenticazione HTTP Basic per i siti che la richiedono tramite il flag --auth/-a. Dovrai creare un file YAML con le tue credenziali, che includerà una chiave per il sito che richiede le credenziali e un elenco di due elementi: nome utente e password o chiave API. Ad esempio, per il sito PassiveTotal incluso questo potrebbe assomigliare a:
passivetotal: ['[email protected]', 'my_api_key']
All'interno della configurazione del sito sotto request vedrai una chiave come:
json:
request:
url: '...'
auth: passivetotal
Il valore auth: passivetotal punta alla chiave all'interno del file di configurazione dell'autenticazione passato tramite riga di comando.
I seguenti siti sono disabilitati di default:
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 viene fornito con un set limitato di formati di output: normale, normale con escaping dei punti e JSON. Prevediamo di aggiungere ulteriori formati di output in futuro.
*** IN ARRIVO ***
La Licenza MIT (MIT)
Copyright (c) 2015 Hurricane Labs LLC
Con la presente viene concessa l'autorizzazione, gratuitamente, a qualsiasi persona che ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:
L'avviso di copyright sopra indicato e questa autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITA O ALTRIMENTI, DERIVANTE DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.
-qDi default, Machinae eseguirà tutti i servizi nella configurazione che si applicano all'otype di ciascun target e che non sono contrassegnati come "default: false". Per modificare questo comportamento, puoi:
all per eseguire tutti i servizi, inclusi quelli contrassegnati come "default: false".Nota che in entrambi i casi, la validazione dell'otype viene comunque applicata.
Machinae supporta il passaggio di un proxy HTTP tramite riga di comando usando l'argomento -H/--http-proxy. Se non viene specificato alcun proxy, machinae cercherà le variabili d'ambiente standard HTTP_PROXY e HTTPS_PROXY, così come le variabili d'ambiente meno standard http_proxy e https_proxy.
Infine, deve essere passato un elenco di target. Tutti gli argomenti diversi dalle opzioni elencate sopra verranno interpretati come target.
fraudguard)shodan)