loading experience
Progettazione · Secure by Design

AST — Secure by Design e AI Cybersecurity: perché la sicurezza nasce dal codice

La sicurezza si costruisce nelle fondamenta.

Un WAF protegge il perimetro, ma non può riparare un difetto strutturale. Le vulnerabilità vanno eliminate nel codice, e oggi anche l'IA che lo scrive può verificarlo e correggerlo da sola.

Scorri per esplorare
01 · L'analogia del palazzo

Codice come fondamenta, infrastruttura come cornice

Se si costruisce un grattacielo su fondamenta argillose e instabili, non importa quanto siano rinforzate le pareti, quanti cancelli automatici ci siano al portone o quanti allarmi circondino l'edificio: la struttura resta vulnerabile al primo cedimento interno.

02 · Esempi concreti

Dove l'infrastruttura fallisce senza codice sicuro

SQL Injection (SQLi)
Cosa vede il WAF

Una richiesta HTTP valida. Con concatenazioni offuscate o codifiche esadecimali il WAF può essere aggirato.

Perché si risolve nel codice

Con query parametrizzate o un ORM l'input utente non può mai essere interpretato come comando SQL.

var sql = "SELECT * FROM users WHERE name = '" + name + "'";   // ✗
cmd.CommandText = "SELECT * FROM users WHERE name = @name";
cmd.Parameters.AddWithValue("@name", name);                    // ✓
Broken Object Level Authorization (BOLA)
Cosa vede il WAF

Una chiamata GET /api/v1/orders/99482 con un token JWT valido: non può sapere se l'utente 123 possiede l'ordine 99482.

Perché si risolve nel codice

Solo la logica applicativa può verificare i permessi granulari di proprietà della risorsa prima di restituire i dati.

var order = await db.Orders.FindAsync(id);
return Ok(order);                                              // ✗
var order = await db.Orders.FindAsync(id);
if (order?.OwnerId != currentUserId) return Forbid();
return Ok(order);                                              // ✓
Server-Side Request Forgery (SSRF)
Cosa vede il WAF

Il server applicativo che invia una richiesta HTTPS in uscita: un'operazione consentita dalle regole di rete.

Perché si risolve nel codice

Se il codice non valida e filtra gli URL forniti dall'utente, un attaccante può costringere il server a interrogare servizi di metadata interni (es. AWS IMDSv1).

var body = await http.GetStringAsync(url);                     // ✗
if (!Uri.TryCreate(url, UriKind.Absolute, out var u)
    || u.Scheme != "https" || !allowedHosts.Contains(u.Host))
    return BadRequest();                                       // ✓
03 · La storia dal 2018

Dai motori AST alla sicurezza "Secure by Design"

La visione di una sicurezza guidata dal codice è nata nel 2018, dalla consapevolezza che l'analisi reattiva (scoprire le falle in produzione con VAPT o DAST) fosse troppo lenta ed economicamente insostenibile.

  1. CodiceAST · taint · Quality Gate
  2. Build / CISAST
  3. StagingDAST
  4. ProduzioneVAPT · WAF

shift left · più si trova presto un difetto, meno costa correggerlo

AST

Abstract Syntax Tree

L'approccio basato sui prototipi di motori AST ha cambiato il paradigma, spostando la sicurezza a monte:

  1. Parsing sintattico il codice diventa un albero che rappresenta grammatica e semantica esatte del programma.
  2. Analisi del flusso dati (taint analysis) si traccia ogni variabile non sanificata dall'ingresso (Source) fino a un'operazione sensibile (Sink).
  3. Validazione immediata pattern di vulnerabilità (segreti hardcoded, crittografia debole, race condition) intercettati mentre si scrive, prima di compilazione e deployment.
Taint analysis

Source → Sink

Se esiste un percorso dalla Source al Sink senza passare per una sanificazione, il motore segnala la vulnerabilità e il punto esatto.

04 · QualityGuard

L'IA che auto-verifica e auto-migliora il proprio codice

L'avvento dei modelli linguistici per generare codice ha introdotto una nuova sfida: la produzione massiva di codice funzionante ma potenzialmente insicuro. Per risolverla è nato QualityGuard .

Agente IAClaude / LLM
QualityGuardMotore AST · MCP Server
MCP · Model Context Protocol

Un motore senza stato, in memoria

QualityGuard è un motore di analisi della qualità del codice e di Quality Gate, senza stato e in memoria, progettato per integrarsi con agenti IA e pipeline moderne tramite il protocollo MCP.

27linguaggi
4.095regole
665regole di sicurezza

Dal README: scritto in C#, analizza alberi sintattici reali con modello semantico, indice di progetto e taint analysis interprocedurale. Nessun servizio in background, database o UI. Il server MCP espone scansioni, stato del gate e report Markdown per l'IA via stdio o Streamable HTTP.

Closed-loop

Come l'IA lo usa mentre scrive

  1. Analisi istantanea quando l'IA genera o modifica un blocco di codice, invoca il server MCP di QualityGuard.
  2. Scansione AST su 27 linguaggi il codice è analizzato in memoria, valutando regole di sicurezza, complessità ciclomatica e metriche di qualità.
  3. Ciclo di feedback se il Quality Gate fallisce (input non sanificato, violazione OWASP) torna un report Markdown pensato per l'IA, con file e difetto precisi.
  4. Auto-miglioramento l'agente legge il report, capisce il difetto e rigenera il codice corretto prima del commit o della Pull Request.
DigitalSolutions

La sicurezza non si aggiunge: si scrive.

Scopri QualityGuard su GitHub o vedilo al lavoro dentro Kodinn.