
Un cadre avancé de renseignement en temps réel sur les menaces pour identifier les menaces et le trafic web malveillant sur la base de la réputation IP et des données historiques.

ARTIF est un nouveau framework avancé de renseignement sur les menaces en temps réel qui ajoute une couche d'abstraction supplémentaire au-dessus de MISP pour identifier les menaces et le trafic web malveillant sur la base de la réputation IP et des données historiques. Il effectue également un enrichissement automatique et une évaluation des menaces en collectant, traitant et corrélant des observables basés sur différents facteurs.
Les fonctionnalités clés d'ARTIF incluent :-
Quelques cas d'utilisation :-
Pourquoi utiliser ARTIF ? C'est un framework de renseignement sur les menaces en temps réel qui peut aider à identifier les IP malveillantes même si elles ne sont pas présentes dans MISP. Cela aide les organisations à mettre en place une première couche de défense en offrant une transparence sur le trafic web malveillant atteignant leurs serveurs.
Extrait de MISP : MISP est une solution logicielle open source pour collecter, stocker, distribuer et partager des indicateurs et menaces de cybersécurité concernant l'analyse d'incidents de cybersécurité et l'analyse de malwares. MISP est conçu par et pour les analystes d'incidents, les professionnels de la sécurité et des TIC ou les rétro-ingénieurs de malwares afin de soutenir leurs opérations quotidiennes pour partager efficacement des informations structurées.
MISP peut être installé à l'aide du code source ou de leurs images AWS pré-construites. Plus d'informations sur l'installation de MISP sont disponibles sur leur site web.
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
Voici un exemple de config.yaml pour votre référence. Remplacez simplement les valeurs correspondantes par les vôtres.
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
Cela ouvrira le port 8000 qui peut être utilisé pour obtenir les métadonnées des adresses IP. Vous pouvez maintenant essayer d'obtenir le score de menace pour une IP particulière.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
Le résultat étant
{"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"}
Le score représente un risque plus faible pour l'IP car le score de menace est élevé. Plus le score est élevé, moins l'IP est malveillante.
Remarque : Une instance avec 8 Go de RAM est recommandée pour l'installation d'ARTIF.
Configuration des conteneurs docker

Démarrage d'ARTIF

ARTIF prend en charge la synchronisation avec MISP. Il synchronise les flux MISP, en récupérant la configuration la plus récente depuis settings.yaml et tous les nouveaux événements modifiés de MISP sont reflétés dans settings.yaml. Pour ajouter une nouvelle IP, connectez-vous simplement à MISP et cliquez sur la page d'ajout de flux. Une fois l'IP ajoutée, la tâche cron la récupérera selon son calendrier et sera traitée automatiquement.
ARTIF, étant un framework de menaces, est très utile pour la visibilité à l'intérieur du trafic d'une organisation. Il est entièrement écrit en Python et collecte des renseignements sur une IP à partir de divers flux. Il envoie ensuite ces données à un moteur de corrélation qui génère un score de menace où les données historiques sont également l'un des facteurs pris en compte pour le calcul du score de menace.
À chaque fois qu'une nouvelle IP atteint le service, un worker Celery se voit attribuer la tâche de mettre à jour son score dans la base de données en coordination avec le moteur de corrélation, qui à son tour rassemble des données provenant de multiples sources. Pour garantir que les données ne sont pas obsolètes (la valeur par défaut du « temps d'obsolescence » est de 24 heures), nous exécutons un worker pour chaque IP de la base de données qui n'a pas été mise à jour depuis le « temps d'obsolescence » écoulé. Comme pour tous les autres paramètres, cette valeur est également configurable. Étant donné que le calcul du score de menace est la clé de tout cela, nous y avons accordé une grande importance. Outre les flux de menaces bien connus tels que MISP, Cortex, Alien Vault, VirusTotal et les listes noires populaires d'IP, nous pouvons également ajouter des flux personnalisés en fonction des cas d'utilisation métier et de sécurité, où la fidélité des clients peut également être utilisée comme paramètre pour le calcul du score de menace.
Pour faciliter la configuration, ARTIF a besoin des éléments suivants pour fonctionner :
Lors de l'exécution, les données sont traitées et stockées sur un conteneur MongoDB. Le conteneur MongoDB contient 3 bases de données importantes qui stockent des informations sur l'IP dans le flux ainsi que ses métadonnées, par exemple pays/ASN, Organisation, etc. Si l'IP n'est pas trouvée dans la base de données, cela signifie qu'il s'agit d'une nouvelle IP atteignant le serveur et dont les informations ne sont pas présentes dans MISP. Nous calculons alors un score de risque pour l'IP particulière à l'aide d'un algorithme et de divers autres paramètres comme la géolocalisation, l'ASN et l'Organisation. Plus d'informations sur le moteur de notation sont disponibles ici.
ARTIF dispose d'une fonctionnalité supplémentaire pour suivre les anciens flux. La configuration par défaut renouvelle les flux les plus récents toutes les 24 heures. Après 24 heures, l'ancien flux est déplacé vers une autre collection et les plus récents sont ajoutés. Pour faciliter l'utilisation, nous avons ajouté un champ appelé « historical » dans la sortie qui indique si l'IP était historiquement mauvaise. Une valeur fausse indique que l'IP a été récemment ajoutée aux flux, tandis qu'une valeur vraie suggère que l'IP était déjà présente dans des flux plus anciens et qu'il s'agit donc d'une IP historiquement malveillante.
Toutes les IP historiques seront supprimées de la base de données après 7 jours par défaut.

Vous devez invoquer ARTIF en utilisant update_check.py qui est l'épine dorsale d'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
Vous pouvez également consulter la tâche cron en exécutant la commande ci-dessous -
python3 manage.py crontab show
Cela mettra à jour automatiquement le flux. Par défaut, toutes les 24 heures, il vérifiera MISP pour obtenir le dernier flux et reconstituera la base de données avec les nouvelles IP provenant des flux. Les IP datant de plus de 7 jours sont également supprimées par le planificateur.
Vous pouvez l'ignorer en toute sécurité car cela se produit lorsque le tag est déjà présent et que nous essayons de l'ajouter. Dans ce cas, une erreur similaire à celle ci-dessus se produira, et la suppression du tag ne peut donc pas être effectuée. MISP n'a pas de moyen d'attraper ces exceptions, nous devons donc nous fier à cette méthode.
Cela prend effectivement du temps, parfois de 30 à 90 minutes en fonction de votre vitesse Internet et de votre RAM. Il s'agit essentiellement de télécharger tous les flux dans MongoDB et de les traiter, cela prendra donc du temps et il s'agit d'un effort unique.
Solution : Dans de tels cas, exécutez le fichier update_check.py sans l'argument -s. Cela téléchargera toutes les IP du flux. Cette erreur se produit généralement lorsque vous interrompez brutalement l'exécution de update_check.py pendant sa phase initiale.
Les contributions sont toujours les bienvenues !
Consultez contributing.md pour savoir comment contribuer. Veuillez respecter le code de conduite de ce projet.
Le moyen le plus simple de communiquer avec l'équipe est via les Issues GitHub.
Veuillez soumettre de nouveaux problèmes, demandes de fonctionnalités et suggestions, mais recherchez d'abord des problèmes similaires ouverts/fermés avant d'en créer un nouveau.