
Ein fortschrittliches Echtzeit-Bedrohungsintelligenz-Framework zur Identifizierung von Bedrohungen und bösartigem Webverkehr auf der Grundlage von IP-Reputation und historischen Daten.

ARTIF ist ein neues fortschrittliches Echtzeit-Bedrohungsanalyse-Framework, das eine weitere Abstraktionsebene über MISP hinzufügt, um Bedrohungen und bösartigen Webverkehr basierend auf IP-Reputation und historischen Daten zu identifizieren. Es führt außerdem automatische Anreicherung und Bedrohungsbewertung durch, indem es beobachtbare Daten sammelt, verarbeitet und basierend auf verschiedenen Faktoren korreliert.
Zu den Hauptfunktionen von ARTIF gehören:
Einige Anwendungsfälle:
Warum ARTIF verwenden? Es ist ein Echtzeit-Bedrohungsanalyse-Framework, das dabei hilft, bösartige IPs zu identifizieren, selbst wenn sie nicht in MISP vorhanden sind. Dies hilft Organisationen, eine erste Verteidigungsschicht aufzubauen, indem es Transparenz über bösartigen Webverkehr bietet, der ihre Server erreicht.
Aus MISP entnommen: MISP ist eine Open-Source-Softwarelösung zum Sammeln, Speichern, Verteilen und Teilen von Cybersicherheitsindikatoren und Bedrohungen im Zusammenhang mit der Analyse von Cybersicherheitsvorfällen und Malware-Analyse. MISP wurde von und für Vorfallsanalysten, Sicherheits- und ICT-Profis oder Malware-Reverser entwickelt, um ihren täglichen Betrieb zu unterstützen und strukturierte Informationen effizient auszutauschen.
MISP kann mit Quellcode oder den vorgefertigten AWS-Images installiert werden. Weitere Informationen zur MISP-Installation finden Sie auf ihrer Website.
maxmind:
image: maxmindinc/geoipupdate
environment:
GEOIPUPDATE_ACCOUNT_ID: xxxxx
GEOIPUPDATE_LICENSE_KEY: xxxxxxxxxxxxxx
git clone https://github.com/CRED-CLUB/ARTIF/
sudo docker-compose build
sudo docker-compose up
Nachfolgend finden Sie eine config example.yaml als Referenz. Ersetzen Sie einfach die entsprechenden Werte durch Ihre eigenen.
credentials:
MISP_URL: "https://127.0.0.1"
MISP_KEY: "qwertyuiopasdfghjk"
python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py -s
python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py
python3 manage.py crontab add
python3 manage.py runserver
Dadurch wird der Port 8000 geöffnet, der zum Abrufen der Metadaten für die IP-Adressen verwendet werden kann. Sie können jetzt versuchen, die Bedrohungsbewertung für eine bestimmte IP zu erhalten.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
Die Ausgabe ist:
{"is_IoC": false, "is_Active": false, "metadata": {"asn": "AS165**", "country": "XXX", "org": "XXX"}, "score": 80.14671726301682, "description": "XXX", "blacklists": "", "type": "", "historical":false, verdict": "No action needed"}
Die Bewertung stellt ein geringeres Risiko für die IP dar, da der Bedrohungs-Score hoch ist. Je höher der Score, desto weniger nicht-bösartig ist die IP.
Hinweis: Für die ARTIF-Installation wird eine Instanz mit 8 GB RAM empfohlen.
Einrichten der Docker-Container

Starten von ARTIF

ARTIF unterstützt die Synchronisierung mit MISP. Es synchronisiert MISP-Feeds, übernimmt die aktuellste Konfiguration aus settings.yaml und alle neuen Ereignisse, die in MISP geändert wurden, werden in settings.yaml berücksichtigt. Um eine neue IP hinzuzufügen, melden Sie sich einfach bei MISP an und klicken Sie auf die Seite "Feed hinzufügen". Sobald die IP hinzugefügt wurde, wird der Cronjob sie gemäß seinem Zeitplan aufgreifen und automatisch verarbeiten.
ARTIF ist ein Bedrohungs-Framework und daher sehr nützlich für die Transparenz innerhalb des organisierten Datenverkehrs. Es ist vollständig in Python geschrieben und sammelt Informationen über eine IP aus verschiedenen Feeds. Diese Daten werden dann an eine Korrelations-Engine gesendet, die einen Bedrohungs-Score generiert, wobei historische Daten ebenfalls ein Faktor für die Berechnung des Bedrohungs-Scores sind.
Jedes Mal, wenn eine neue IP den Dienst erreicht, wird einem Celery-Worker die Aufgabe zugewiesen, ihren Score in der Datenbank zu aktualisieren, indem er mit der Korrelations-Engine koordiniert wird, die wiederum Daten aus mehreren Quellen sammelt. Um sicherzustellen, dass die Daten nicht veraltet sind (Standardwert für 'Stale Time' ist 24 Stunden), führen wir einen Worker für jede IP in der Datenbank aus, die in den letzten 'Stale Time' nicht aktualisiert wurde. Wie alle anderen Parameter ist auch dieser Wert konfigurierbar. Da die Berechnung des Bedrohungs-Scores der Schlüssel zu all dem ist, haben wir großen Wert darauf gelegt. Neben den bekannten Bedrohungsquellen wie MISP, Cortex, Alien Vault, VirusTotal und den gängigen Blacklists von IPs können wir je nach Geschäfts- und Sicherheitsanforderungen auch benutzerdefinierte Feeds hinzufügen, bei denen die Kundentreue ebenfalls als Parameter für die Berechnung des Bedrohungs-Scores verwendet werden kann.
Für eine einfache Konfiguration benötigt ARTIF die folgenden Eingaben zum Laufen:
Beim Ausführen werden die Daten verarbeitet und in einem MongoDB-Container gespeichert. Der MongoDB-Container enthält drei wichtige Datenbanken, die Informationen über die IP im Feed sowie deren Metadaten (z. B. Land/ASN, Org usw.) speichern. Wenn die IP nicht in der Datenbank gefunden wird, bedeutet dies, dass es sich um eine neue IP handelt, die den Server erreicht und deren Informationen nicht in MISP vorhanden sind. Wir berechnen dann einen Risikoscore für die jeweilige IP mithilfe eines Algorithmus und verschiedener anderer Parameter wie Geolokalisierung, ASN und Org. Weitere Informationen zur Bewertungs-Engine finden Sie hier.
ARTIF bietet zusätzliche Funktionalität, um alte Feeds zu verfolgen. Die Standardkonfiguration erneuert die neuesten Feeds alle 24 Stunden. Nach 24 Stunden wird der alte Feed in eine andere Sammlung verschoben und die neuesten werden hinzugefügt. Zur einfacheren Bedienung haben wir dem Output ein Feld namens "historical" hinzugefügt, das angibt, ob die IP historisch schlecht war. Ein false-Wert zeigt an, dass die IP kürzlich zu den Feeds hinzugefügt wurde, während ein true-Wert darauf hinweist, dass die IP bereits in älteren Feeds vorhanden war und daher eine historisch bösartige IP ist.
Alle historischen IPs werden standardmäßig nach 7 Tagen aus der Datenbank entfernt.

Sie müssen ARTIF mit update_check.py aufrufen, dem Rückgrat von ARTIF.
ubuntu@localhost:~/ARTIF/ip_rep/feed_ingestor$ python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py -h
usage: update_check.py [-h] [-s [S]] -k [KEY] -m MISP
IP reputation program
optional arguments:
-h, --help show this help message and exit
-s [S] Required only for the first run
Sie können sich den Cronjob auch ansehen, indem Sie den folgenden Befehl ausführen:
python3 manage.py crontab show
Dadurch wird der Feed automatisch aktualisiert. Standardmäßig wird alle 24 Stunden MISP auf den neuesten Feed überprüft und die Datenbank mit neuen IPs aus den Feeds aufgefüllt. IPs, die älter als 7 Tage sind, werden ebenfalls vom Scheduler entfernt.
Sie können dies getrost ignorieren, da dies auftritt, wenn das Tag bereits vorhanden ist und wir versuchen, es hinzuzufügen. In diesem Fall wird der obige Fehler ausgegeben und die Entfernung des Tags kann nicht durchgeführt werden. MISP hat keine Möglichkeit, diese Ausnahmen abzufangen, daher müssen wir uns auf diese Weise behelfen.
Dies dauert tatsächlich manchmal zwischen 30 und 90 Minuten, abhängig von Ihrer Internetgeschwindigkeit und dem RAM. Dabei werden im Wesentlichen alle Feeds in MongoDB heruntergeladen und verarbeitet, daher wird es Zeit in Anspruch nehmen, und es ist auch eine einmalige Angelegenheit.
Lösung: Führen Sie in solchen Fällen die Datei update_check.py ohne das Argument -s aus. Dadurch werden alle IPs aus dem Feed heruntergeladen. Dieser Fehler tritt im Allgemeinen auf, wenn Sie die Ausführung von update_check.py während der Anfangsphase abrupt unterbrechen.
Beiträge sind jederzeit willkommen!
Siehe contributing.md für Möglichkeiten zur Mitarbeit. Bitte beachten Sie den code of conduct dieses Projekts.
Der einfachste Weg, mit dem Team zu kommunizieren, ist über GitHub Issues.
Bitte erstellen Sie neue Issues, Feature-Anfragen und Vorschläge, aber durchsuchen Sie zunächst nach ähnlichen offenen/geschlossenen bereits vorhandenen Issues, bevor Sie ein neues Issue erstellen.