Back to Projects
Project Case Study
ARCHITECTURE DOC

SurfSec Intelligence

External Attack Surface Management

Piattaforma automatizzata di sicurezza enterprise. Sviluppata in Python e Streamlit per aiutare le agenzie digitali a identificare proattivamente le vulnerabilità dei clienti prima che lo facciano gli attaccanti.

Python 3.11+
FastAPI
Supabase
Streamlit UI
Status: Pronto per la Produzione
Sistemi Online

Problem Statement & Constraints

Le agenzie digitali spesso gestiscono decine di siti web dei clienti ma mancano delle risorse per monitorare continuamente nuove minacce alla sicurezza, derive di configurazione o file sensibili esposti. Affidarsi ad audit manuali è dispendioso in termini di tempo e soggetto a errori, lasciando i clienti vulnerabili ad attacchi automatizzati.

I vincoli principali erano:

  • Scalabilità: Il sistema deve scoprire autonomamente i target partendo dall'URL del portfolio di un'agenzia.
  • Non-Intrusivo: La scansione deve essere passiva o affidarsi a richieste HTTP sicure per evitare di innescare WAF o causare downtime.
  • Azione Immediata: L'output non deve limitarsi a elencare le CVE, ma fornire bozze di email, contestualizzate per il brand, in modo che i proprietari delle agenzie possano contattare immediatamente i loro clienti.

Architecture Design

Il sistema centrale utilizza un'architettura disaccoppiata. Un backend Python gestisce il crawling e la scansione, mentre un modulo separato aggrega la telemetria in Supabase.

Moduli Principali

  1. Portfolio Scout (BeautifulSoup4): Esegue il crawling dei siti web delle agenzie per scoprire in modo dinamico i target associati.
  2. Scanner di Sicurezza (Requests Core): Valida l'SSL, verifica gli header di sicurezza ed individua file esposti (es. .env, .git).
  3. Telemetria & DB (Supabase): Memorizza i punteggi di rischio aggregati e resi anonimi nel pieno rispetto del GDPR.
  4. Actionable Output (Jinja2 + SMTP): Genera report HTML e bozze di email per outreach altamente contestualizzato.

Technical Trade-offs

  • Python vs Go: Sebbene Go avrebbe offerto velocità di concorrenza superiori per lo scanner, Python è stato scelto per sfruttare il suo vasto ecosistema di librerie di sicurezza e web-scraping (BeautifulSoup, tldextract, OpenSSL), accelerando così il time-to-market.
  • Supabase vs PostgreSQL Locale: Si è optato per Supabase gestito rispetto a un PostgreSQL self-hosted, per semplificare il dimensionamento e poter contare sulla row-level security (RLS) integrata per strutture dati multi-tenant, compensando ampiamente il modesto rischio di vendor lock-in.

Performance & Metrics

L'ottimizzazione del motore di richieste asincrono ha portato notevoli benefici nelle metriche di sistema:

  • Velocità di Scansione: Il tempo medio per effettuare la scansione di un portfolio (50+ domini) è sceso da 12 minuti a meno di 45 secondi mediante interfacce I/O asincrone (aiohttp).
  • Falsi Positivi: Grazie ad euristiche personalizzate, gli allarmi di file .env esposti infondati sono scesi del 92%.
  • Delivery Rate: L'ottimizzazione dei report HTML porta un'accuratezza costante di visualizzazione del 100% sui moderni client mail (Gmail, Outlook).