Цифровий ланцюг постачання це не один ланцюг. Це набір накладених один на одного взаємозалежних ланцюгів, які працюють одночасно в кожному технологічному стеку у світі. Рівні різні за технічним характером і тісно зчеплені у своїх залежностях, а зміна на будь-якому з них рухається вперед через усе, що побудовано над ним.
Те, на якому рівні лежить висновок, визначає, що з ним можна зробити. А те, як рівні взаємодіють, і породило цей висновок від початку.
Стек

Хто володіє кожним рівнем

Матриця восьми рівнів цифрового ланцюга постачання. Для кожного рівня: хто відповідає, які докази існують і чи їх регулярно розглядають. Стовпець розгляду читається так: рідко, майже ніколи, частково, під час інтеграції, під час інтеграції, рідко, ні, ні.
Структура

Вісім рівнів стоять між запитом і тим, що бачить людина

Від кабелю в землі до картинки на екрані. Кожен рівень залежить від тих, що під ним, і кожен є відповідальністю іншого набору сторін, який розглядають за іншим графіком люди, що рідко розмовляють між собою.

01

Мережі та інфраструктура
Кабель, оптичне волокно, радіочастотний спектр, супутниковий зв’язок, маршрутизаційне обладнання та центри обробки даних, які тримають усе інше. Над фізичним стоїть логічне: система імен, яка перетворює адресу на пункт призначення, протокол маршрутизації, який вирішує шлях, і центри сертифікації, на яких тримається кожне захищене з’єднання. Захоплений маршрут або сертифікат, виданий шахрайським шляхом, ставить сторону на шляху так, що застосунок вище не має жодного способу це виявити. Замок усе одно з’являється.

02

Програмне забезпечення та мікропрограми
Вбудоване програмне забезпечення, яке керує поведінкою апаратних засобів і стоїть під операційною системою в мережевому обладнанні, серверах, машинах кінцевих користувачів і промислових апаратних засобах. Його пишуть виробники, воно рідко проходить розгляд, який застосовують до застосункового коду, і оновлюється через канали, за якими більшість організацій не спостерігає. Воно також переживає майже все, що роблять із рівнями над ним.

03

Апаратні засоби та пристрої
Машина, на яку людина справді дивиться, сервери за кожним провайдером у ланцюгу, пристрої між ними та зростаючий набір промислових, будівельних, медичних і комунальних систем, які тепер показують операторські інтерфейси на основі браузера. Ці інтерфейси збирають з того самого ланцюга постачання, що й будь-який інший вебзастосунок, а рішення, ухвалені за тим, що вони показують, мають фізичні наслідки.

04

Послуги й комплекти для розробки
Комерційні API та комплекти для розробки, які організації інтегрують, а не будують самі. SDK це не пасивне з’єднання для даних; це виконуваний код, що працює з дозволами застосунку, який його містить. Організація розглянула версію один під час інтеграції. Провайдер постачає версію чотирнадцять, із суттєво ширшими можливостями, усім, хто колись інтегрував хоч якусь версію.

05

Код і програмні бібліотеки
Власний код і значно більший обсяг стороннього коду, принесеного зовні. Частина його скомпільована в застосунок і зафіксована на обраній версії. Значна частина ні: її тримають інші сторони й завантажують з їхніх систем, коли застосунок працює, і саме тому перелік компонентів, будучи записом про те, що було зібрано, її не описує.

06

Дані, моделі та інформація
Застосунки завантажують не лише код. Вони завантажують конфігурацію, прапорці функцій, потоки контенту, рядки локалізації, відповіді API і все частіше результати моделей, які розміщують сторонні компанії. Кожне з цього є входом ланцюга постачання, який застосунок обробляє і в більшості випадків виводить на екран. Це також найменш задокументований рівень у стеку: рідко існує хоч якийсь запис про те, до яких точок доступу звертається застосунок, і ще рідше про те, хто їх тримає, а провайдери моделей з’явилися як клас субпроцесорів швидше, ніж до них пристосувалася практика розкриття.

07

Ресурси та файли
Зображення, шрифти, стилі, відео, аудіо та документи. Не виконувані, але й не пасивні: стиль вирішує, що видно, а що приховано, шрифт вирішує, які символи намальовано, зображення несе інформацію просто в судження людини, а документ, поданий через застосунок, читають як оригінал, бо ніщо на сторінці не свідчить про інше.

08

Інтерфейс
Кожен рівень нижче сходиться саме тут, в одну картинку, яку людина читає і за якою діє. Це єдине місце, де зібраний ланцюг видно як ціле, і це місце, на яке не дивиться жодна поширена система. Кожну з них будували, щоб підтвердити, що окремі компоненти працюють як зазначено, а збірка не є компонентом.
Як система

Ризик виникає із взаємодії між рівнями

Код залежить від даних. Дані подорожують мережами. Мережі маршрутизують через апаратні засоби. Апаратні засоби виконують мікропрограми. Послуги споживають і виробляють дані, за якими діє код. Ресурси доставляють провайдери, які самі є мережами апаратних засобів, що виконують мікропрограми. Зміна на будь-якому рівні поширюється через кожен рівень над ним, який від нього залежить.
Тому поверхня атаки не є сумою слабких місць на кожному рівні, взятому окремо. Це набір шляхів, якими зміна на одному рівні доходить до інтерфейсу через кілька інших. Саме це за своєю будовою і пропускають інструменти рівня компонентів: зміна розподілена, докази роздрібнені між рівнями, що належать різним сторонам, а зібраний результат видно лише там, де вони сходяться.
Граф ланцюга постачання: один вихідний домен, сполучений назовні з понад сотнею сторонніх доменів і хостів, які спостережено за один сеанс.
Рівні в тому вигляді, у якому вони з’являються в одному спостереженому сеансі, а не як схема архітектури. Читайте про метод картування.
Докази

Деякі рівні залишають запис. Кілька не залишають майже нічого.

Жодне окреме джерело не покриває стек. Чотири сукупності доказів разом наближаються до цього, і кожну з них зібрали різні люди з різних причин. Більшість цінності лежить у місцях, де вони суперечать одна одній.
Спостережена поведінка
Те, що застосунок насправді зробив: запити, які він зробив, код, який він виконав, корисні навантаження, які він надіслав, сховище, у яке він записав. Первинні докази для рівнів коду, даних, ресурсів і послуг, і єдине джерело, яке відображає збірку, а не її частини.
Технічні реєстри
Реєстрація доменів, розподіл адрес, оголошення маршрутів, прозорість сертифікатів і записи про хостинг. Вони перетворюють спостережений хост на названого оператора, і саме так рівень мережі стає тим, про що людина може міркувати.
Декларації та договори
Списки субпроцесорів, договори про обробку даних, звіти аудиту, переліки компонентів і закупівельні записи. Не фактична картина, а заява, яку перевіряють. Там, де розкриття обов’язкове, пропуск сам є підставою для повідомлення.
Корпоративні записи
Реєстри, звітність, записи про фінансування, дані про санкції та правозастосування. Вони ведуть від оператора до компанії, її власників і юрисдикції, чиє право керує тим, що вона робить із вашими даними. Картування ланцюга власності веде далі звідси.

Один сеанс перетинає всі вісім рівнів одночасно

Жодна організація не може перевірити вісім рівнів, що належать сотням сторін, і жодній це не потрібно. Один захоплений сеанс записує кожну сторону, до якої зібраний застосунок справді звернувся, на всіх восьми рівнях одночасно, не питаючи ні в кого з них списку. Зіставлення цих сторін із компаніями, що за ними стоять, і порівняння результату з тим, що було задекларовано, і є методом.