La catena di fornitura digitale non è una sola catena. È un insieme di catene sovrapposte e interdipendenti che corrono contemporaneamente attraverso ogni stack tecnologico del mondo. I livelli sono distinti per carattere tecnico e strettamente accoppiati nelle loro dipendenze, e un cambiamento in uno qualsiasi di essi viaggia in avanti attraverso tutto ciò che è costruito sopra.
Il livello in cui si colloca una rilevazione determina che cosa si possa fare al riguardo. Il modo in cui i livelli interagiscono è ciò che ha prodotto quella rilevazione in primo luogo.
Lo stack

Chi possiede ciascun livello

Una matrice degli otto livelli della catena di fornitura digitale. Per ciascun livello: chi ne risponde, quali prove esistono e se venga esaminato di routine. La colonna dell’esame riporta raramente, quasi mai, in parte, all’integrazione, all’integrazione, raramente, no e no.
Struttura

Tra una richiesta e ciò che una persona vede si trovano otto livelli

Dal cavo interrato all’immagine sullo schermo. Ogni livello dipende da quelli che gli stanno sotto, e ciascuno è responsabilità di un insieme diverso di soggetti, esaminato con una cadenza diversa, da persone che raramente si parlano.

01

Reti e infrastruttura
Cavi, fibra, spettro, satellite, apparati di routing e i data center che ospitano tutto il resto. Sopra il piano fisico sta quello logico: il sistema dei nomi che trasforma un indirizzo in una destinazione, il protocollo di routing che decide il percorso e le autorità di certificazione su cui si fonda ogni connessione sicura. Un percorso dirottato o un certificato emesso in modo fraudolento collocano nel tragitto un soggetto che l’applicazione sovrastante non ha alcun modo di rilevare. Il lucchetto continua a comparire.

02

Software e firmware
Il software incorporato che governa il comportamento dell’hardware, collocato al di sotto del sistema operativo in apparati di rete, server, macchine degli utenti finali e hardware industriale. È scritto dai produttori, raramente sottoposto all’esame che si applica al codice applicativo e aggiornato attraverso canali che la maggior parte delle organizzazioni non osserva. Sopravvive inoltre a quasi tutto ciò che si fa ai livelli sopra di esso.

03

Hardware e dispositivi
La macchina che una persona ha davvero davanti, i server dietro ogni fornitore della catena, gli apparati che stanno nel mezzo e l’insieme crescente di sistemi industriali, di edificio, medici e di pubblica utilità che oggi presentano interfacce operatore basate su browser. Quelle interfacce sono assemblate con la stessa catena di fornitura di qualsiasi altra applicazione web, e le decisioni prese sulla base di ciò che mostrano hanno conseguenze fisiche.

04

Servizi e kit di sviluppo
Le API commerciali e i kit di sviluppo che le organizzazioni integrano anziché costruire. Un SDK non è una connessione dati passiva; è codice eseguibile che gira con i permessi dell’applicazione che lo ospita. L’organizzazione ha esaminato la versione uno al momento dell’integrazione. Il fornitore sta distribuendo la versione quattordici, con capacità sensibilmente più ampie, a tutti coloro che hanno integrato una qualsiasi versione.

05

Codice e librerie software
Il codice di prima parte e il corpo sostanzialmente più ampio di codice di terze parti portato dall’esterno. Una parte di esso è compilata nell’applicazione e fissata alla versione scelta. Molto non lo è: è detenuto da altri soggetti e caricato dai loro sistemi quando l’applicazione viene eseguita, ed è per questo che una distinta base, essendo un registro di ciò che è stato assemblato, non lo descrive.

06

Dati, modelli e informazioni
Le applicazioni non caricano soltanto codice. Caricano configurazioni, flag di funzionalità, flussi di contenuti, stringhe di localizzazione, risposte di API e, sempre più, gli output di modelli ospitati da terze parti. Ognuno di essi è un input di catena di fornitura che l’applicazione elabora e, nella maggior parte dei casi, porta sullo schermo. È anche il livello meno documentato dello stack: raramente esiste un registro degli endpoint che un’applicazione consulta, e ancora meno di chi li detenga, e i fornitori di modelli sono arrivati come classe di sub-responsabili del trattamento più rapidamente di quanto la prassi delle informative si sia adeguata a loro.

07

Risorse e file
Immagini, font, fogli di stile, video, audio e documenti. Non eseguibili, e nemmeno passivi: un foglio di stile decide che cosa è visibile e che cosa è nascosto, un font decide quali caratteri vengono disegnati, un’immagine porta informazioni direttamente nel giudizio di una persona, e un documento servito attraverso un’applicazione viene letto come l’originale perché nulla nella pagina suggerisce il contrario.

08

L’interfaccia
Ogni livello sottostante converge qui, nella singola immagine che una persona legge e su cui agisce. È l’unico punto in cui la catena assemblata è visibile nel suo insieme, ed è il punto che nessun framework di uso comune guarda. Ciascuno di essi è stato costruito per confermare che i singoli componenti funzionino come specificato, e un assemblato non è un componente.
Come sistema

L’esposizione nasce dall’interazione tra i livelli

Il codice dipende dai dati. I dati viaggiano su reti. Le reti instradano attraverso hardware. L’hardware esegue firmware. I servizi consumano e producono i dati su cui il codice agisce. Le risorse sono consegnate da fornitori che sono essi stessi reti di hardware che esegue firmware. Un cambiamento a un qualsiasi livello si propaga attraverso ogni livello sopra di esso che ne dipende.
La superficie di attacco non è quindi la somma delle debolezze di ciascun livello preso separatamente. È l’insieme dei percorsi attraverso i quali un cambiamento a un livello raggiunge l’interfaccia passando per diversi altri. È precisamente ciò che gli strumenti a livello di componente sono costruiti per non vedere: il cambiamento è distribuito, le prove sono frammentate tra livelli appartenenti a soggetti diversi, e il risultato assemblato è visibile soltanto dove essi convergono.
Un grafico della catena di fornitura che mostra un dominio di origine collegato verso l’esterno a più di cento domini e host di terze parti osservati in una singola sessione.
I livelli come appaiono in una sessione osservata, anziché come in uno schema di architettura. Leggere il metodo di mappatura.
Prove

Alcuni livelli lasciano un registro. Diversi non ne lasciano quasi nessuno.

Nessuna singola fonte copre lo stack. Quattro corpi di prove, insieme, ci si avvicinano, e ciascuno è stato messo insieme da persone diverse per ragioni diverse. La maggior parte del valore risiede nei punti in cui si contraddicono.
Comportamento osservato
Che cosa l’applicazione ha effettivamente fatto: le richieste che ha effettuato, il codice che ha eseguito, i payload che ha inviato, l’archiviazione su cui ha scritto. Prova primaria per i livelli del codice, dei dati, delle risorse e dei servizi, e l’unica fonte che riflette l’assemblato anziché le sue parti.
Registri tecnici
Registrazione dei domini, assegnazione degli indirizzi, annunci di routing, trasparenza dei certificati e dati di hosting. Trasformano un host osservato in un operatore con un nome, ed è così che il livello di rete diventa qualcosa su cui una persona può ragionare.
Dichiarazioni e contratti
Elenchi dei sub-responsabili del trattamento, accordi sul trattamento dei dati, report di audit, distinte base e documentazione degli acquisti. Non il quadro reale, ma l’affermazione sotto esame. Dove l’informativa è obbligatoria, un’omissione è essa stessa segnalabile.
Registri societari
Registri delle imprese, atti depositati, dati sui finanziamenti, sanzioni e provvedimenti. Portano un operatore fino a un’azienda, ai suoi proprietari e alla giurisdizione la cui legge governa ciò che essa fa con i suoi dati. Da lì prosegue la Mappatura della Catena Societaria.

Una sola sessione attraversa tutti e otto i livelli insieme

Nessuna organizzazione può controllare otto livelli appartenenti a centinaia di soggetti, e nessuna ne ha bisogno. Una singola sessione acquisita registra ogni soggetto che l’applicazione assemblata ha effettivamente contattato, su tutti e otto i livelli contemporaneamente, senza chiedere a nessuno di essi un elenco. Risolvere quei soggetti nelle aziende che stanno dietro di essi, e mettere il risultato a confronto con ciò che è stato dichiarato, è il metodo.