
flowsint v1.2.12
Una piattaforma moderna per indagini visive, flessibili ed estensibili basate su grafi. Per analisti e investigatori di cybersecurity.
Flowsint
Flowsint è uno strumento open-source di esplorazione grafica OSINT progettato per indagini etiche, trasparenza e verifica.
Etica: Si prega di leggere ETHICS.md per le linee guida sull'uso responsabile.
https://github.com/user-attachments/assets/eaabfa81-d7b3-414d-8cf7-f69b4e37bab6
https://github.com/user-attachments/assets/7457d94a-cf1d-4a97-949f-f9b1d8d92644
https://github.com/user-attachments/assets/65c3f26e-7132-4853-be45-21b8933688bd
Contribuire
Flowsint è ancora in fase di sviluppo iniziale e ha sicuramente bisogno dell'aiuto della community! Sentiti libero di segnalare problemi, proporre funzionalità, ecc.
Per iniziare
Non vuoi leggere? Capito. Ecco le istruzioni di installazione:
Linux / macOS
1. Installa i prerequisiti
- Docker
- Make
2. Esegui il comando di installazione
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
Windows
Non serve Make. Funziona sia in Command Prompt (cmd) che in PowerShell.
1. Installa i prerequisiti
- Docker Desktop (assicurati che sia in esecuzione prima del passaggio successivo)
- Git
2. Clona e configura i file di ambiente
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api\.env
copy .env.example flowsint-core\.env
copy .env.example flowsint-app\.env
3. Avvia
docker compose -f docker-compose.prod.yml up -d
Questo scarica le immagini precompilate dal GitHub Container Registry — nessuna build locale necessaria.
Primo accesso
Poi vai su http://localhost:5173/register e crea un account. Non ci sono credenziali o account predefiniti.
✅ Le indagini OSINT richiedono un alto livello di privacy. Tutto è archiviato sulla tua macchina.
Distribuzione su una rete (team / server)
La stessa configurazione funziona immediatamente su un server: il frontend serve l'interfaccia e inoltra internamente tutte le chiamate API, quindi non è necessaria alcuna configurazione aggiuntiva per i client.
git clone https://github.com/reconurge/flowsint.git
cd flowsint
cp .env.example .env
# Modifica .env — vedi "Prima di esporre su una rete" qui sotto
docker compose -f docker-compose.prod.yml up -d
Chiunque sulla rete può quindi accedere a Flowsint all'indirizzo http://<server-ip>:5173.
Prima di esporre su una rete, modifica i segreti predefiniti in .env:
AUTH_SECRET— firma i token di autenticazione. Generane uno:openssl rand -hex 32MASTER_VAULT_KEY_V1— crittografa le chiavi API archiviate. Generane una:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD— password del database Neo4j.
Aggiungi anche il nome host/IP del tuo server alla lista consentita dell'header Host in flowsint-app/nginx.conf (cerca map $http_host $is_flowsint_host). La lista consentita predefinita accetta solo localhost / 127.0.0.1 / [::1], che protegge le installazioni a utente singolo dal DNS rebinding; le distribuzioni LAN e pubbliche devono includere il proprio nome host. Due righe modello commentate nello stesso blocco map mostrano il formato.
Solo la porta 5173 è esposta alla rete. PostgreSQL, Redis, Neo4j e l'API sono vincolati a 127.0.0.1 sul server e raggiungibili solo tramite il proxy del frontend.
Per fissare una versione specifica invece di latest, imposta FLOWSINT_VERSION in .env (es. FLOWSINT_VERSION=1.2.10).
HTTPS (consigliato oltre una LAN affidabile): posiziona un reverse proxy davanti alla porta 5173. Esempio con Caddy:
flowsint.example.com {
reverse_proxy 127.0.0.1:5173
}
Quando si utilizza un reverse proxy, vincola anche la porta dell'app a localhost in docker-compose.prod.yml ("127.0.0.1:5173:8080") così i client possono passare solo tramite HTTPS.
Cos'è?
Flowsint è uno strumento di indagine basato su grafi, focalizzato su ricognizione e OSINT (Open Source Intelligence). Permette di esplorare le relazioni tra entità tramite un'interfaccia grafica visuale e arricchitori automatizzati.
Arricchitori disponibili
Arricchitori di dominio
- Risoluzione DNS inversa - Trova i domini che puntano a un IP
- Risoluzione DNS - Risolve il dominio in indirizzi IP
- Scoperta sottodomini - Enumera i sottodomini
- Ricerca WHOIS - Ottieni informazioni sulla registrazione del dominio
- Da dominio a sito web - Converte il dominio in entità sito web
- Da dominio a dominio radice - Estrae il dominio radice
- Da dominio a ASN - Trova l'ASN associato al dominio
- Cronologia dominio - Recupera dati storici del dominio
Arricchitori IP
- Informazioni IP - Ottieni geolocalizzazione e dettagli di rete
- Da IP a ASN - Trova l'ASN per l'indirizzo IP
Arricchitori ASN
- Da ASN a CIDR - Ottieni gli intervalli IP per un ASN
Arricchitori CIDR
- Da CIDR a IP - Enumera gli IP in un intervallo
Arricchitori social media
- Maigret - Ricerca username su piattaforme social
Arricchitori organizzazione
- Da organizzazione a ASN - Trova gli ASN posseduti dall'organizzazione
- Informazioni organizzazione - Ottieni i dettagli dell'azienda
- Da organizzazione a domini - Trova i domini posseduti dall'organizzazione
Arricchitori criptovaluta
- Da wallet a transazioni - Ottieni la cronologia delle transazioni
- Da wallet a NFT - Trova gli NFT posseduti dal wallet
Arricchitori sito web
- Crawler sito web - Esegue il crawl e mappa la struttura del sito
- Da sito web a link - Estrae tutti i link
- Da sito web a dominio - Estrae il dominio dall'URL
- Da sito web a web tracker - Identifica gli script di tracciamento
- Da sito web a testo - Estrae il contenuto testuale
Arricchitori email
- Da email a Gravatar - Trova il profilo Gravatar
- Da email a violazioni - Controlla i database di violazioni dei dati
- Da email a domini - Trova i domini associati
Arricchitori telefono
- Da telefono a violazioni - Controlla il numero di telefono nelle violazioni
Arricchitori individuo
- Da individuo a organizzazione - Trova le affiliazioni organizzative
- Da individuo a domini - Trova i domini associati alla persona
Arricchitori integrazione
- Connettore N8n - Connetti ai flussi di lavoro N8n
Struttura del progetto
Il progetto è organizzato in moduli autonomi:
Moduli principali
- flowsint-core: Utilità principali, orchestratore, vault, task celery e classi base
- flowsint-types: Modelli Pydantic e definizioni dei tipi
- flowsint-enrichers: Moduli arricchitori, logica di scansione e strumenti
- flowsint-api: Server FastAPI, route API e schemi
- flowsint-app: Applicazione frontend
Dipendenze tra moduli
flowsint-app (frontend)
↓
flowsint-api (server API)
↓
flowsint-core (orchestratore, task, vault)
↓
flowsint-enrichers (arricchitori e strumenti)
↓
flowsint-types (tipi)
Configurazione di sviluppo
Prerequisiti
- Docker
Esecuzione
Linux / macOS (richiede Make):
make dev
Windows (cmd o PowerShell, senza Make — crea prima i file .env, vedi Per iniziare):
docker compose -f docker-compose.dev.yml up -d --build
docker compose -f docker-compose.dev.yml logs -f
Sviluppo
L'app è accessibile all'indirizzo http://localhost:5173.
Dettagli dei moduli
flowsint-core
Utilità principali e classi base utilizzate da tutti gli altri moduli:
- Connessioni al database (PostgreSQL, Neo4j)
- Autenticazione e autorizzazione
- Logging e gestione degli eventi
- Gestione della configurazione
- Classi base per arricchitori e strumenti
- Funzioni di utilità
flowsint-types
Modelli Pydantic per tutti i tipi di dati:
- Dominio, IP, ASN, CIDR
- Individuo, Organizzazione, Email, Telefono
- Sito web, profili social, credenziali
- Wallet crypto, transazioni, NFT
- E molti altri...
flowsint-enrichers
Moduli arricchitori che elaborano i dati:
- Arricchitori di dominio (sottodomini, WHOIS, risoluzione)
- Arricchitori IP (geolocalizzazione, ricerca ASN)
- Arricchitori social media (Maigret, Sherlock)
- Arricchitori email (violazioni, Gravatar)
- Arricchitori crypto (transazioni, NFT)
- E molti altri...
flowsint-api
Server FastAPI che fornisce:
- Endpoint API REST
- Autenticazione e gestione utenti
- Integrazione con il database a grafi
- Streaming di eventi in tempo reale
flowsint-app
Applicazione frontend.
- Interfaccia moderna e intuitiva
- Progettata per le prestazioni (nessun lag anche con migliaia di nodi)
Flusso di lavoro di sviluppo
- Aggiunta di nuovi tipi: Aggiungi al modulo
flowsint-types - Aggiunta di nuovi arricchitori: Aggiungi al modulo
flowsint-enrichers - Aggiunta di nuovi endpoint API: Aggiungi al modulo
flowsint-api - Aggiunta di nuove utilità: Aggiungi al modulo
flowsint-core
Test
Ogni modulo ha la propria suite di test (incompleta):
# Test del modulo core
cd flowsint-core
uv run pytest
# Test del modulo types
cd ../flowsint-types
uv run pytest
# Test del modulo enrichers
cd ../flowsint-enrichers
uv run pytest
# Test del modulo API
cd ../flowsint-api
uv run pytest
Contribuire
- Segui la struttura modulare
- Usa uv per la gestione delle dipendenze
- Scrivi test per le nuove funzionalità
- Aggiorna la documentazione quando necessario
- Vedi CONTRIBUTING.md per i controlli da eseguire prima di fare commit
⚖️ Uso legale ed etico
Etica: Si prega di leggere ETHICS.md per le linee guida sull'uso responsabile.
Flowsint è progettato strettamente per scopi di indagine e ricerca legali ed etici.
È stato creato per assistere:
- Ricercatori e analisti di cybersecurity
- Giornalisti e investigatori OSINT
- Forze dell'ordine o team di indagine sulle frodi
- Organizzazioni che conducono threat intelligence interna o analisi del rischio digitale
Flowsint non deve essere utilizzato per:
- Intrusione, sorveglianza o raccolta dati non autorizzata
- Molestie, doxxing o presa di mira di individui
- Manipolazione politica, disinformazione o violazione delle leggi sulla privacy
Qualsiasi uso improprio di questo software è severamente vietato e va contro i principi etici definiti in ETHICS.md.