De digitale toeleveringsketen is niet één keten. Het is een stelsel van overlappende, onderling afhankelijke ketens die tegelijk door elke technologiestapel ter wereld lopen. De lagen verschillen technisch van aard en zijn in hun afhankelijkheden strak gekoppeld, en een verandering in één laag reist verder door alles wat erop is gebouwd.
In welke laag een bevinding zit bepaalt wat eraan te doen valt. Hoe de lagen op elkaar ingrijpen is wat de bevinding in de eerste plaats heeft opgeleverd.
De stapel

Wie elke laag bezit

Een matrix van de acht lagen van de digitale toeleveringsketen. Per laag: wie verantwoordelijk is, welk bewijs bestaat, en of die laag regelmatig wordt getoetst. De toetsingskolom leest zelden, vrijwel nooit, gedeeltelijk, bij integratie, bij integratie, zelden, nee en nee.
Structuur

Acht lagen liggen tussen een verzoek en wat iemand ziet

Van de kabel in de grond tot het beeld op het scherm. Elke laag is afhankelijk van de lagen eronder, en elke laag valt onder een andere groep partijen, wordt op een ander ritme getoetst, door mensen die elkaar zelden spreken.

01

Netwerken en infrastructuur
Kabel, glasvezel, spectrum, satelliet, routeringsapparatuur en de datacentra die al het andere herbergen. Boven het fysieke ligt het logische: het naamstelsel dat een adres omzet in een bestemming, het routeringsprotocol dat het pad bepaalt, en de certificaatautoriteiten waarop elke beveiligde verbinding rust. Een gekaapte route of een frauduleus uitgegeven certificaat plaatst een partij in het pad zonder dat de applicatie erboven dat kan onderkennen. Het slotje verschijnt nog steeds.

02

Software en firmware
De ingebedde software die bepaalt hoe hardware zich gedraagt, onder het besturingssysteem in netwerkapparatuur, servers, machines van eindgebruikers en industriële hardware. Ze wordt geschreven door fabrikanten, ondergaat zelden de toetsing die op applicatiecode wordt toegepast, en wordt bijgewerkt via kanalen waar de meeste organisaties niet naar kijken. Ze overleeft ook vrijwel alles wat er met de lagen erboven gebeurt.

03

Hardware en apparaten
De machine waar iemand werkelijk naar kijkt, de servers achter elke aanbieder in de keten, de apparaten daartussen, en het groeiende aantal industriële, gebouwgebonden, medische en nutssystemen die nu bedieningsinterfaces in de browser tonen. Die interfaces worden uit dezelfde toeleveringsketen samengesteld als elke andere webapplicatie, en de besluiten die op basis van wat zij tonen worden genomen hebben fysieke gevolgen.

04

Diensten en ontwikkelkits
De commerciële API's en ontwikkelkits die organisaties integreren in plaats van zelf bouwen. Een SDK is geen passieve gegevensverbinding; het is uitvoerbare code die loopt met de rechten van de applicatie die haar herbergt. De organisatie heeft versie één bij de integratie getoetst. De aanbieder levert versie veertien, met wezenlijk ruimere mogelijkheden, aan iedereen die ooit een versie heeft geïntegreerd.

05

Code en softwarebibliotheken
Eigen code, en de aanzienlijk grotere hoeveelheid code van derden die van buiten wordt binnengehaald. Een deel daarvan wordt in de applicatie meegecompileerd en staat vast op de gekozen versie. Een groot deel niet: dat wordt door andere partijen bewaard en uit hun systemen geladen wanneer de applicatie loopt, en daarom beschrijft een componentenlijst het niet, want die is een vastlegging van wat er is samengesteld.

06

Gegevens, modellen en informatie
Applicaties laden niet alleen code. Ze laden configuratie, functievlaggen, contentfeeds, vertaalteksten, API-antwoorden en steeds vaker de uitvoer van modellen die door derden worden gehost. Elk daarvan is invoer in een toeleveringsketen die de applicatie verwerkt en in de meeste gevallen op het scherm zet. Het is ook de minst vastgelegde laag in de stapel: er is zelden enige vastlegging van welke eindpunten een applicatie aanspreekt, nog minder van wie die beheert, en modelaanbieders zijn als een klasse subverwerkers verschenen sneller dan de meldingspraktijk zich aan hen heeft aangepast.

07

Resources en bestanden
Afbeeldingen, lettertypen, stijlbladen, video, audio en documenten. Niet uitvoerbaar, en ook niet passief: een stijlblad bepaalt wat zichtbaar is en wat wordt verhuld, een lettertype bepaalt welke tekens worden getekend, een afbeelding brengt informatie rechtstreeks in iemands oordeel, en een document dat via een applicatie wordt geleverd wordt als het origineel gelezen omdat niets op de pagina anders suggereert.

08

De interface
Elke laag hieronder komt hier samen, in het ene beeld dat iemand leest en waarnaar iemand handelt. Het is de enige plek waar de samengestelde keten als geheel zichtbaar is, en het is de plek waar geen enkel gangbaar kader naar kijkt. Elk van die kaders is gebouwd om te bevestigen dat afzonderlijke onderdelen werken zoals voorgeschreven, en een samenstelling is geen onderdeel.
Als systeem

Blootstelling komt uit het samenspel tussen lagen

Code is afhankelijk van gegevens. Gegevens reizen over netwerken. Netwerken routeren via hardware. Hardware voert firmware uit. Diensten verbruiken en produceren de gegevens waarnaar code handelt. Resources worden geleverd door aanbieders die zelf netwerken van hardware met firmware zijn. Een verandering in een willekeurige laag plant zich voort door elke laag erboven die ervan afhankelijk is.
Het aanvalsoppervlak is dus niet de som van de zwakke plekken in elke laag afzonderlijk. Het is het geheel van de paden waarlangs een verandering in één laag via enkele andere de interface bereikt. Dat is precies wat hulpmiddelen op onderdeelniveau moeten missen: de verandering is verspreid, het bewijs is versnipperd over lagen die aan verschillende partijen toebehoren, en het samengestelde resultaat is alleen te zien waar ze samenkomen.
Een ketengraaf met één brondomein dat naar buiten verbonden is met meer dan honderd domeinen en hosts van derden, waargenomen in één sessie.
De lagen zoals ze in één waargenomen sessie verschijnen, niet als architectuurschema. Lees de karteringsmethode.
Bewijs

Sommige lagen laten iets na. Enkele laten vrijwel niets na.

Geen enkele bron dekt de stapel. Vier verzamelingen bewijs komen er samen in de buurt, en elk daarvan is door andere mensen om andere redenen aangelegd. De meeste waarde zit op de plekken waar ze elkaar tegenspreken.
Waargenomen gedrag
Wat de applicatie werkelijk heeft gedaan: de verzoeken die zij deed, de code die zij uitvoerde, de payloads die zij verzond, de opslag die zij beschreef. Primair bewijs voor de lagen van code, gegevens, resources en diensten, en de enige bron die de samenstelling weergeeft in plaats van de onderdelen.
Technische registers
Domeinregistratie, adrestoewijzing, routeringsaankondigingen, certificaattransparantie en hostinggegevens. Deze maken van een waargenomen host een benoemde beheerder, en zo wordt de netwerklaag iets waarover iemand kan nadenken.
Verklaringen en contracten
Subverwerkerslijsten, verwerkersovereenkomsten, auditrapporten, componentenlijsten en inkoopgegevens. Niet het feitelijke beeld, maar de bewering die wordt getoetst. Waar melden verplicht is, is een ontbrekende vermelding zelf meldingswaardig.
Bedrijfsgegevens
Registers, verslaglegging, gegevens over financiering, sancties en handhaving. Deze brengen een beheerder door tot een bedrijf, zijn eigenaren en de jurisdictie wier recht bepaalt wat dat bedrijf met uw gegevens doet. Kartering van de eigendomsketen gaat daar verder.

Eén sessie doorkruist alle acht lagen tegelijk

Geen organisatie kan acht lagen controleren die aan honderden partijen toebehoren, en dat hoeft ook niet. Eén vastgelegde sessie legt elke partij vast die de samengestelde applicatie werkelijk heeft aangesproken, in alle acht lagen tegelijk, zonder aan een van hen een lijst te vragen. Die partijen herleiden tot de bedrijven erachter, en het resultaat naast wat er is gemeld leggen, is de methode.