
Automatisierter Sicherheitsintelligenz-Sammler, der öffentliche Feeds und APIs nach Bedrohungsdaten zu IPs, Domains, URLs, Hashes und SSL-Fingerabdrücken abfragt, mit YAML-basierter Konfiguration und JSON-Ausgabe.

Machinae ist ein Werkzeug zum Sammeln von Informationen von öffentlichen Webseiten/Feeds über verschiedene sicherheitsrelevante Daten: IP-Adressen, Domainnamen, URLs, E-Mail-Adressen, Datei-Hashes und SSL-Fingerabdrücke. Es wurde von [Automater][1] inspiriert, einem weiteren hervorragenden Tool zur Datensammlung. Das Machinae-Projekt entstand aus dem Wunsch, Automater in vier Bereichen zu verbessern:
Machinae kann mit pip3 installiert werden:
pip3 install machinae
Oder, wenn Sie abenteuerlustig sind, direkt von GitHub:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Sie müssen die für Ihr System erforderlichen Abhängigkeiten installieren, um
Python-Module kompilieren zu können (auf Debian-basierten Systemen
python3-dev), sowie das libyaml-Entwicklungspaket (auf Debian-basierten
Systemen libyaml-dev).
Sie sollten auch die [aktuellste Konfigurationsdatei][2] herunterladen und unter
/etc/machinae.yml ablegen.
Machinae unterstützt ein einfaches Konfigurationszusammenführungssystem, mit dem
Sie Anpassungen vornehmen können, ohne die mitgelieferte machinae.yml zu
ändern – das macht Konfigurationsaktualisierungen zum Kinderspiel. Dazu wird eine
systemweite Standardkonfiguration (standardmäßig /etc/machinae.yml) geladen, mit
einer systemweiten lokalen Konfiguration (/etc/machinae.local.yml) und schließlich
einer benutzerspezifischen Konfiguration (~/.machinae.yml) zusammengeführt. Die
systemweite Konfiguration kann auch im aktuellen Arbeitsverzeichnis liegen, über die
Umgebungsvariable MACHINAE_CONFIG gesetzt oder natürlich mit der
Kommandozeilenoption -c bzw. --config angegeben werden. Die Zusammenführung kann
mit der Option --nomerge deaktiviert werden, wodurch Machinae nur die systemweite
Standardkonfiguration (oder die über die Kommandozeile übergebene) lädt.
Als Beispiel: Angenommen, Sie möchten die Fortinet-Kategorieseite aktivieren, die
standardmäßig deaktiviert ist. Sie könnten /etc/machinae.yml ändern, aber diese
Änderungen würden bei einem Update überschrieben. Stattdessen können Sie Folgendes
in /etc/machinae.local.yml oder ~/.machinae.yml einfügen:
fortinet_classify:
default: true
Oder umgekehrt, um eine Seite zu deaktivieren, z. B. VirusTotal pDNS:
vt_ip:
default: false
vt_domain:
default: false
Die Verwendung von Machinae ähnelt stark der von 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]
...
Einzelheiten zu den Optionen -c/--config und --nomerge finden Sie oben.
Machinae unterstützt eine -d/--delay-Option wie Automater. Allerdings verwendet
Machinae standardmäßig den Wert 0.
Die Ausgabe von Machinae wird durch zwei Argumente gesteuert:
-o steuert das Ausgabeformat. Es folgt ein einzelner Buchstabe, der die
gewünschte Ausgabeart angibt:
-f/--file gibt die Datei an, in die die Ausgabe geschrieben werden soll.
Standard ist "-" für die Standardausgabe.Machinae versucht, den Typ des übergebenen Ziels automatisch zu erkennen (Machinae
bezeichnet Ziele als "Observables" und den Typ als "Otype"). Diese Erkennung kann
mit der Option -O/--otype überschrieben werden. Die Auswahlmöglichkeiten sind
in der Verwendung aufgelistet.
Standardmäßig arbeitet Machinae im ausführlichen Modus. In diesem Modus werden
Statusinformationen über die abgefragten Dienste auf der Konsole ausgegeben,
während sie abgefragt werden. Diese Ausgabe wird immer auf die Standardausgabe
geschrieben, unabhängig von der Ausgabeeinstellung. Um den ausführlichen Modus zu
deaktivieren, verwenden Sie -q.
Standardmäßig durchläuft Machinae alle Dienste in der Konfiguration, die auf den Otype jedes Ziels zutreffen und nicht als "default: false" markiert sind. Um dieses Verhalten zu ändern, können Sie:
all übergeben, um alle Dienste zu durchlaufen,
einschließlich derer, die als "default: false" markiert sind.Beachten Sie, dass in beiden Fällen die Otype-Validierung weiterhin angewendet wird.
Machinae unterstützt die Übergabe eines HTTP-Proxys über die Kommandozeile mit dem
Argument -H/--http-proxy. Wenn kein Proxy angegeben wird, sucht Machinae in den
Standard-Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY sowie in den weniger
standardisierten Variablen http_proxy und https_proxy.
Schließlich sollte eine Liste von Zielen übergeben werden. Alle Argumente außer den oben aufgeführten Optionen werden als Ziele interpretiert.
Machinae bietet von Haus aus Unterstützung für die folgenden Datenquellen:
Weitere Datenquellen sind in Planung.
Machinae unterstützt HTTP-Basisauthentifizierung für Seiten, die dies erfordern,
über das Flag --auth/-a. Sie müssen eine YAML-Datei mit Ihren Anmeldedaten
erstellen, die einen Schlüssel für die Seite, die die Anmeldedaten benötigt, sowie
eine Liste mit zwei Einträgen (Benutzername und Passwort oder API-Schlüssel) enthält.
Für die enthaltene PassiveTotal-Seite könnte das beispielsweise so aussehen:
passivetotal: ['[email protected]', 'my_api_key']
In der Seitenkonfiguration unter request finden Sie einen Schlüssel wie: