
Un framework avanzato di threat intelligence in tempo reale per identificare minacce e traffico web dannoso sulla base della reputazione IP e dei dati storici.

ARTIF è un nuovo framework avanzato di threat intelligence in tempo reale che aggiunge un ulteriore livello di astrazione sopra MISP per identificare minacce e traffico web dannoso sulla base della reputazione IP e dei dati storici. Esegue inoltre arricchimento automatico e scoring delle minacce raccogliendo, elaborando e correlando osservabili basati su diversi fattori.
Le caratteristiche principali di ARTIF includono:-
Alcuni casi d'uso:-
Perché usare ARTIF? È un framework di Threat Intelligence in tempo reale che può aiutare a identificare IP dannosi anche se non sono presenti in MISP. Questo aiuta le organizzazioni a impostare un primo livello di difesa fornendo trasparenza sul traffico web dannoso che raggiunge i loro server.
Tratto da MISP : MISP è una soluzione software open source per la raccolta, l'archiviazione, la distribuzione e la condivisione di indicatori e minacce di cybersicurezza relative all'analisi degli incidenti di cybersicurezza e all'analisi dei malware. MISP è progettato da e per analisti di incidenti, professionisti della sicurezza e ICT o reverse engineer di malware per supportare le loro operazioni quotidiane nella condivisione efficiente di informazioni strutturate.
MISP può essere installato utilizzando il codice sorgente o le loro immagini AWS pre-costruite. Maggiori informazioni sull'installazione di MISP sono disponibili sul loro sito 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
Di seguito è riportato un esempio di config.yaml per riferimento. Basta sostituire i valori corrispondenti con i tuoi.
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
Questo aprirà la porta 8000 che può essere utilizzata per ottenere i metadati degli indirizzi IP. Ora puoi provare a ottenere il punteggio di minaccia per un IP specifico.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
L'output è
{"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"}
Il punteggio rappresenta un rischio minore per l'IP poiché il punteggio di minaccia è alto. Più alto è il punteggio, minore è la probabilità che l'IP sia dannoso.
Nota: Si consiglia un'istanza con 8 GB di RAM per l'installazione di ARTIF.
Configurazione dei container docker

Avvio di ARTIF

ARTIF supporta la sincronizzazione con MISP. Sincronizza i feed MISP, prelevando la configurazione più recente da settings.yaml e tutti i nuovi eventi modificati da MISP vengono riflessi in settings.yaml. Per aggiungere un nuovo IP, basta accedere a MISP e fare clic sulla pagina di aggiunta feed. Una volta aggiunto l'IP, il cronjob lo raccoglierà secondo la sua pianificazione e verrà elaborato automaticamente.
ARTIF, essendo un framework di threat intelligence, è estremamente utile per la visibilità all'interno del traffico dell'organizzazione. È completamente scritto in Python e raccoglie intelligence su un IP da vari feed. Invia quindi questi dati a un motore di correlazione che genera un punteggio di minaccia, dove i dati storici sono uno dei fattori considerati per il calcolo del punteggio.
Ogni volta che un nuovo IP raggiunge il servizio, a un worker celery viene assegnato il compito di aggiornare il suo punteggio nel database coordinando con il motore di correlazione, che a sua volta raccoglie dati da più fonti. Per garantire che i dati non siano obsoleti (il valore predefinito di 'stale time' è 24 ore), eseguiamo un worker per ogni IP nel database che non è stato aggiornato nelle ultime 'stale time'. Come per tutti gli altri parametri, anche questo valore è configurabile. Poiché il calcolo del punteggio di minaccia è la chiave di tutto, abbiamo posto molta enfasi su di esso. Oltre ai noti feed di minacce come MISP, Cortex, Alien Vault, VirusTotal e le blacklist popolari di IP, possiamo anche aggiungere feed personalizzati in base al caso d'uso aziendale e di sicurezza, dove la fedeltà del cliente può essere utilizzata come parametro per il calcolo del punteggio di minaccia.
Per facilità di configurazione, ARTIF richiede i seguenti input per funzionare:
All'esecuzione, i dati vengono elaborati e memorizzati su un container MongoDB. Il container MongoDB contiene 3 database importanti che memorizzano informazioni sull'IP nel feed e i suoi metadati, ad esempio paese/ASN, Org, ecc. Se l'IP non viene trovato nel database, significa che è un nuovo IP che raggiunge il server e le cui informazioni non sono presenti in MISP. Quindi calcoliamo un punteggio di rischio per l'IP specifico utilizzando un algoritmo e vari altri parametri come geolocalizzazione, ASN e Org. Maggiori informazioni sul motore di scoring sono disponibili qui.
ARTIF ha funzionalità aggiuntive per tenere traccia dei vecchi feed. La configurazione predefinita rifornisce i feed più recenti ogni 24 ore. Dopo 24 ore, il vecchio feed viene spostato in un'altra raccolta e vengono aggiunti quelli più recenti. Per facilità di funzionamento, abbiamo aggiunto un campo chiamato "historical" nell'output che indica se l'IP era storicamente dannoso. Un valore false indica che l'IP è stato aggiunto di recente ai feed, mentre un valore true suggerisce che l'IP era già presente nei feed più vecchi e quindi è un IP storicamente dannoso.
Tutti gli IP storici verranno rimossi dal database dopo 7 giorni per impostazione predefinita.

È necessario invocare ARTIF utilizzando update_check.py, che è la spina dorsale di 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
Puoi anche visualizzare il cron job eseguendo il comando seguente -
python3 manage.py crontab show
Questo aggiornerà automaticamente il feed. Per impostazione predefinita, ogni 24 ore controllerà MISP per il feed più recente e rifornirà il DB con nuovi IP dai feed. Gli IP più vecchi di 7 giorni vengono anche rimossi dallo scheduler.
Puoi ignorarlo tranquillamente poiché ciò accade quando il Tag è già presente e stiamo cercando di aggiungerlo. In tal caso, darà un errore come sopra, e quindi la rimozione del tag non può essere eseguita. MISP non ha un modo per catturare quelle eccezioni e quindi dobbiamo affidarci a questo metodo.
Richiede effettivamente tempo, a volte da 30 a 90 minuti, a seconda della velocità di internet e della RAM. Si tratta fondamentalmente di scaricare tutti i feed in MongoDB e elaborarli, quindi richiede tempo ed è anche uno sforzo una tantum.
Soluzione: In tali casi, esegui il file update_check.py senza l'argomento -s. Questo scaricherà tutti gli IP dal feed. Questo errore si verifica generalmente quando interrompi bruscamente l'esecuzione di update_check.py durante la sua fase iniziale.
I contributi sono sempre benvenuti! Consulta contributing.md per iniziare. Si prega di attenersi al codice di condotta di questo progetto.
Il modo più semplice per comunicare con il team è tramite GitHub Issues.
Si prega di aprire nuove issue, richieste di funzionalità e suggerimenti, ma prima di creare una nuova issue, cercare problemi simili aperti/chiusi preesistenti.