Den digitale leverandørkjeden er ikke én enkelt kjede. Det er et sett av overlappende, innbyrdes avhengige kjeder som løper samtidig gjennom hver teknologistakk i verden. Lagene er ulike i teknisk karakter og tett koblet i avhengighetene sine, og en endring i et av dem løper videre gjennom alt som er bygget oppå det.
Hvilket lag et funn ligger i, bestemmer hva som kan gjøres med det. Hvordan lagene virker på hverandre, er det som skapte funnet i første omgang.
Stakken

Hvem eier hvert lag

En matrise over de åtte lagene i den digitale leverandørkjeden. For hvert lag: hvem som er ansvarlig, hvilke bevis som finnes, og om det gjennomgås rutinemessig. Gjennomgangskolonnen leser sjelden, nesten aldri, delvis, ved integrasjon, ved integrasjon, sjelden, nei og nei.
Struktur

Åtte lag ligger mellom en forespørsel og det et menneske ser

Fra kabelen i bakken til bildet på skjermen. Hvert lag er avhengig av dem under seg, og hvert av dem er ansvaret til et annet sett av parter, gjennomgått etter en annen plan, av folk som sjelden snakker med hverandre.

01

Nettverk og infrastruktur
Kabel, fiber, frekvenser, satellitt, ruteutstyr og datasentrene som rommer alt det andre. Over det fysiske ligger det logiske: navnesystemet som gjør en adresse om til et mål, ruteprotokollen som bestemmer veien, og sertifikatutstederne som hver sikret forbindelse hviler på. En kapret rute eller et svindelutstedt sertifikat plasserer en part i veien som applikasjonen over ikke har noen måte å oppdage. Låsikonet vises fortsatt.

02

Programvare og fastvare
Den innebygde programvaren som styrer hvordan maskinvare oppfører seg, og som ligger under operativsystemet i nettverksutstyr, servere, sluttbrukermaskiner og industrimaskiner. Den skrives av produsentene, blir sjelden underlagt den gjennomgangen som anvendes på applikasjonskode, og oppdateres gjennom kanaler de fleste organisasjoner ikke følger med på. Den overlever også nesten alt som gjøres med lagene over den.

03

Maskinvare og enheter
Den maskinen et menneske faktisk sitter foran, serverne bak hver leverandør i kjeden, apparatene imellom, og det voksende settet av industri-, bygnings-, medisin- og infrastruktursystemer som nå har nettleserbaserte operatørgrensesnitt. Disse grensesnittene settes sammen fra den samme leverandørkjeden som enhver annen nettapplikasjon, og beslutningene som tas ut fra det de viser har fysiske følger.

04

Tjenester og utviklingspakker
De kommersielle API-ene og utviklingspakkene organisasjoner integrerer i stedet for å bygge. En utviklingspakke er ikke en passiv datakobling; det er kjørbar kode som løper med rettighetene til applikasjonen som huser den. Organisasjonen gjennomgikk versjon én ved integrasjon. Leverandøren sender ut versjon fjorten, med vesentlig bredere evner, til alle som noen gang integrerte en versjon.

05

Kode og programvarebiblioteker
Egen kode, og den betydelig større mengden tredjepartskode som hentes inn utenfra. Noe av den kompileres inn i applikasjonen og låses til den versjonen som ble valgt. Mye av den gjør det ikke: den holdes av andre parter og lastes fra systemene deres når applikasjonen kjører, og det er derfor en programvareliste, som er en registrering av hva som ble satt sammen, ikke beskriver den.

06

Data, modeller og opplysninger
Applikasjoner laster ikke bare kode. De laster konfigurasjon, funksjonsflagg, innholdsstrømmer, oversettelsestekster, API-responser og i økende grad resultatene fra modeller som driftes av tredjeparter. Hver av dem er en innsatsfaktor i leverandørkjeden som applikasjonen behandler og i de fleste tilfeller setter på skjermen. Det er også det minst dokumenterte laget i stakken: det finnes sjelden noen registrering av hvilke endepunkter en applikasjon spør, langt mindre av hvem som holder dem, og modelleverandører har kommet som en klasse av underdatabehandlere raskere enn opplysningspraksisen har justert seg etter dem.

07

Ressurser og filer
Bilder, fonter, stilark, video, lyd og dokumenter. Ikke kjørbare, og ikke passive heller: et stilark bestemmer hva som er synlig og hva som skjules, en font bestemmer hvilke tegn som tegnes, et bilde bærer opplysninger rett inn i et menneskes vurdering, og et dokument levert gjennom en applikasjon leses som originalen fordi ingenting på siden antyder noe annet.

08

Grensesnittet
Hvert lag under møtes her, i det ene bildet et menneske leser og handler ut fra. Det er det eneste stedet den sammenstilte kjeden er synlig som helhet, og det er stedet ingen rammeverk i alminnelig bruk ser på. Hvert av dem ble bygget for å bekrefte at enkeltkomponenter virker som spesifisert, og en sammenstilling er ikke en komponent.
Som system

Eksponeringen kommer fra samspillet mellom lagene

Kode er avhengig av data. Data går over nettverk. Nettverk ruter gjennom maskinvare. Maskinvare kjører fastvare. Tjenester forbruker og produserer de dataene koden handler på. Ressurser leveres av leverandører som selv er nettverk av maskinvare som kjører fastvare. En endring i et hvilket som helst lag forplanter seg gjennom hvert lag over det som er avhengig av det.
Angrepsflaten er derfor ikke summen av svakhetene i hvert lag tatt for seg. Det er mengden av veier der en endring i ett lag når grensesnittet gjennom flere andre. Det er nettopp det verktøy på komponentnivå er bygget for ikke å se: endringen er fordelt, bevisene er spredt over lag eid av ulike parter, og det sammenstilte resultatet er bare synlig der de møtes.
En leverandørkjedegraf som viser ett kildedomene koblet utover til mer enn hundre tredjepartsdomener og verter observert i én enkelt økt.
Lagene slik de framtrer i én observert økt, snarere enn som et arkitekturdiagram. Les kartleggingsmetoden.
Bevis

Noen lag etterlater en registrering. Flere etterlater nesten ingen.

Ingen enkelt kilde dekker stakken. Fire bevismengder kommer til sammen nær, og hver av dem er satt sammen av ulike folk av ulike grunner. Det meste av verdien ligger der de motsier hverandre.
Observert atferd
Hva applikasjonen faktisk gjorde: forespørslene den sendte, koden den kjørte, nyttelastene den sendte, lagringen den skrev til. Primærbevis for lagene for kode, data, ressurser og tjenester, og den eneste kilden som gjenspeiler sammenstillingen og ikke delene.
Tekniske registre
Domeneregistrering, adressetildeling, rutekunngjøringer, sertifikatåpenhet og hostingopplysninger. Disse gjør en observert vert om til en navngitt operatør, og det er slik nettverkslaget blir noe et menneske kan resonnere om.
Erklæringer og kontrakter
Lister over underdatabehandlere, databehandleravtaler, revisjonsrapporter, programvarelister og anskaffelsesdokumenter. Ikke det faktiske bildet, men påstanden som prøves. Der opplysning er pålagt, er en utelatelse i seg selv rapporterbar.
Selskapsopplysninger
Registre, registermeldinger, finansieringsopplysninger, sanksjons- og tilsynsdata. Disse fører en operatør videre til et selskap, eierne dets og den jurisdiksjonen hvis lov styrer hva det gjør med dataene dine. Derfra tar kartlegging av eierskapskjeden over.

Én økt krysser alle åtte lagene samtidig

Ingen organisasjon kan revidere åtte lag som tilhører hundrevis av parter, og ingen trenger det. Én enkelt økt som er tatt opp registrerer hver part den sammenstilte applikasjonen faktisk kontaktet, på tvers av alle åtte lagene på én gang, uten å spørre noen av dem om en liste. Metoden er å fastslå hvilke selskaper de partene er, og sette resultatet mot det som ble opplyst.