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

Кожну з цих передач записано десь на папері

Кожна десь залишає задокументований запис. Договір купівлі-продажу, запис у реєстрі, зміна дозволів, кадрова справа. Жодна з них не породжує пакета, попередження або зміненого хеша, і саме тому моніторинг, який виявив би їх, не сидить у мережі.

01

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

02

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

03

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

04

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

Записи, які мають значення, лежать поза мережею

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

Перш ніж хтось помітив

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

Кожен із цих записів змінюється за іншим годинником

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

Вісім із цих передач, відміряні від дня, коли контроль зрушив

Два тижні для Nano Adblocker. Двадцять вісім місяців для xz-utils. Інтервал не є функцією того, наскільки великий компонент, скільки людей від нього залежить або наскільки ретельно його обрали. Він є функцією того, скільки часу минуло, доки хтось подивився.
Вісім задокументованих випадків, намальованих як горизонтальні смуги на шкалі місяців від моменту, коли контроль над компонентом перейшов в інші руки. Particle і Nano Adblocker за кілька днів, event-stream два місяці, Polyfill.io чотири, The Great Suspender п’ять, WoSign і StartCom дванадцять, Stylish вісімнадцять, а xz-utils двадцять вісім.
Історія

Тринадцять років того самого провалу, який приходить шістьма різними шляхами

Двадцять подій у порядку дат, шістьма шляхами входу. Три з них це передачі контролю, і саме вони не залишили технічного сліду в момент, коли сталися. Решта тут тому, що те саме справедливо щодо сторони, яка несе ризик: це майже ніколи не та сторона, яка допустила провал.
Хронологія зліва направо від 2013 до 2026 року, з осями років угорі та внизу і двадцятьма подіями, намальованими як смуги тривалості у шести смугах: канал збірки або оновлення, передана власність або контроль, акаунт супровідника або особи, яка публікує, сторонній скрипт на живій сторінці, платформа або керована послуга, і компонент, який вбудовують усі.
Target, 2013
Атакуючі ввійшли через облікові дані, видані підряднику з холодильного обладнання та систем вентиляції, який мав віддалений доступ до мережі Target, і перейшли звідти до платіжних систем. Було викрадено близько 40 мільйонів записів про картки та 70 мільйонів записів про клієнтів. Вендор не мав жодної ролі в платежах і жодної причини бути поблизу них.
WoSign і StartCom, 2015
Один центр сертифікації тихо придбав інший і не розкрив цього, порушивши правила кореневої програми браузерів, які вимагають саме такого розкриття. Далі були сертифікати з попередніми датами та неправильна видача. Mozilla, Google та Apple кожна припинила довіру до обох, розглядаючи приховану зміну контролю як основне порушення.
left-pad, 2016
Автор вилучив пакет з одинадцяти рядків із публічного реєстру після спору про назву, і протягом годин по всьому світу зламалися тисячі збірок. Ніщо не було скомпрометоване, і ніхто нікого не атакував. Це встановило, що компонент, якого ніхто не обирав свідомо, все одно може зупинити дуже багато роботи.
M.E.Doc і NotPetya, 2017
Канал оновлення українського продукту для податкового обліку використали, щоб розповсюдити руйнівне шкідливе програмне забезпечення в кожну організацію, яка ним користувалася, і воно поширилося звідти через сполучені мережі. Merck і Maersk були серед компаній, чия діяльність зупинилася на тижні. Страхова вимога Merck щодо цих збитків склала приблизно 1,4 мільярда доларів, і на її вирішення пішли роки судових спорів.
CCleaner, 2017
Збірку широко використовуваної утиліти з бекдором підписали власним сертифікатом вендора й розповсюдили через власну інфраструктуру завантаження вендора. Її встановили близько 2,27 мільйона користувачів, перш ніж компрометацію виявили. Вендора придбали незадовго до цього, але докази вказують на вторгнення в середовище збірки, а не на цю операцію.
Ticketmaster та Inbenta, 2018
Скрипт чатбота, наданий сторонньою компанією, працював на платіжних сторінках. Скомпрометовано було інфраструктуру постачальника, а не рітейлера, і це торкнулося до дев’яти мільйонів клієнтів. Регулятор оштрафував рітейлера, який оспорював відповідальність за скрипт, якого він не писав.
British Airways, 2018
До коду, який авіакомпанія розміщувала сама, додали двадцять два рядки скрипту, і за три тижні було викрадено платіжні дані приблизно 429 000 людей. Це була компрометація власного коду тими самими прийомами, а не провал стороннього постачальника, і ці два часто й неправильно об’єднують. Регулятор оштрафував авіакомпанію на 20 мільйонів фунтів.
event-stream, 2018
До супровідника, який відійшов від пакета, що завантажували мільйони разів на тиждень, звернувся незнайомець із пропозицією допомогти, і той надав йому права на публікацію. Через два місяці залежність, додана новим супровідником, несла корисне навантаження, спрямоване на конкретний гаманець криптовалюти. Через три місяці після того це виявив розробник, який читав код.
Stylish, 2017
Розширення для браузера з приблизно двома мільйонами користувачів придбала аналітична компанія 2017 року. Через вісімнадцять місяців дослідник задокументував, що воно надсилало повну історію перегляду кожного, хто його встановив, новому власнику. І Chrome, і Firefox вилучили його протягом кількох днів після цього повідомлення.
Nano Adblocker, 2020
Розробник двох розширень для блокування реклами продав їх у жовтні 2020 року й публічно про це тоді сказав. Приблизно за два тижні нові власники випустили оновлення, яке збирало дані користувачів, і розширення вилучили. Там, де інтервал Polyfill.io був чотири місяці, а інтервал xz-utils двадцять вісім, цей був два тижні.
ASUS, 2019
Утиліта оновлення вендора, правильно підписана й подана з власних серверів вендора, доставила бекдор на велику кількість машин. Дослідники з’ясували, що корисне навантаження звіряло кожну машину зі вбудованим у код списком кількох сотень мережевих адрес і на всіх інших не робило нічого. Масове розповсюдження було способом доставки для дуже невеликої кількості намічених цілей.
SolarWinds, 2020
Атакуючі дісталися конвеєра збірки продукту для керування мережами і вставили код у підписаний випуск. Вважають, що уражену версію встановили менше ніж 18 000 клієнтів, а далі переслідували значно меншу кількість. Це виявила фірма з безпеки, яка розслідувала вторгнення у власні системи, а не будь-який клієнт.
The Great Suspender, 2020
Розширення для браузера з понад двома мільйонами встановлень розробник продав покупцеві, особу якого не розкрили. Функціональність не змінилася, і жодне оновлення не виглядало незвично. Зловмисна поведінка з’явилася через п’ять місяців, а розширення вилучили й дистанційно вимкнули на машинах користувачів у лютому наступного року.
Kaseya, 2021
Програму-вимагач протягнули через платформу віддаленого керування, яку керовані постачальники послуг використовують, щоб адмініструвати системи своїх клієнтів. Це торкнулося приблизно до 1 500 підприємств далі по ланцюгу, більшість із яких ніколи не чула про цю платформу. Вони підпали під ризик через інструменти свого провайдера, а не через щось, що запускали самі.
Log4Shell, 2021
Дефект у бібліотеці журналювання для Java, присутній у величезній кількості застосунків, став тривіально експлуатовним, і організації тижнями намагалися встановити, де ця бібліотека взагалі є. Більшість не могла відповісти на це запитання швидко. Той поспіх стосувався не так дефекту, як відсутності будь-якої інвентаризації, з якою його можна було б звірити.
3CX, 2023
Працівник встановив троянізовану копію непов’язаного торгового програмного забезпечення на особистій машині. Атакуючі використали отримані там облікові дані, щоб дістатися власного середовища збірки компанії й троянізувати її настільний застосунок, який мав понад 600 000 клієнтських організацій. Це найясніший задокументований випадок, коли одну компрометацію ланцюга постачання використали, щоб підготувати іншу.
MOVEit, 2023
Дефект у продукті для керованої передачі файлів використали, щоб витягти дані з організацій, які ним користувалися, і з багатьох інших, чиї дані ці організації тримали. Трекери зафіксували значно понад 2 000 уражених організацій і десятки мільйонів осіб. Велика частка цих осіб не мала жодних відносин ані з цим програмним забезпеченням, ані з компаніями, які ним керували.
xz-utils, 2021 до 2024
Особа зробила свій перший звичайний внесок до основної бібліотеки стиснення в жовтні 2021 року, отримала більшу роль у середині 2022 року після тривалої кампанії начебто непов’язаних голосів, які тиснули на єдиного супровідника прийняти допомогу, і вставила бекдор у скрипти збірки в лютому 2024 року. Минуло двадцять вісім місяців без жодного шахрайського кроку, який можна було б виявити, бо кожен крок був справжнім до останнього. Це виявили випадково, коли інженер досліджував непов’язану проблему з продуктивністю, і воно дійшло до тестових і плинних дистрибутивів, а не до стабільних випусків.
Polyfill.io, 2024
Домен і репозиторій широко використовуваного сервісу скриптів продали в лютому 2024 року компанії, зареєстрованій у Китаї, і розробники порушили питання про цю зміну в публічному зверненні в репозиторії того самого місяця. Зловмисні перенаправлення незалежно задокументували в кінці червня, і вони торкнулися понад 100 000 сайтів. Набувача Міністерство фінансів Сполучених Штатів внесло до санкційного списку в травні 2025 року через непов’язану шахрайську операцію.
CrowdStrike, 2024
Дефектне оновлення контенту для агента безпеки призвело до того, що приблизно 8,5 мільйона машин під Windows не змогли завантажитися, за даними Microsoft. Ніщо не було скомпрометоване, і ніхто нічого не атакував. Авіакомпанії, лікарні та банки припинили працювати, бо всі вони залежали від того самого компонента, і саме так виглядає концентрація, коли вона відмовляє випадково.
tj-actions, 2025
Викрадений токен доступу використали, щоб перезаписати теги версій широко використовуваної дії для безперервної інтеграції так, що вони вказували на код, який виводив секрети збірки в публічно читані журнали. На цю дію посилалися приблизно 23 000 репозиторіїв. Токен отримали кількома місяцями раніше через непов’язаний проєкт.
Shai-Hulud, 2025
Викрадені облікові дані для публікації використали, щоб додати код до випусків пакетів, який потім збирав облікові дані з машин, що їх встановлювали, і використовував їх, щоб публікувати нові уражені випуски. Це перший задокументований випадок компрометації, яка сама себе поширює, у великому реєстрі пакетів. У першій хвилі було уражено понад сотню пакетів.

Оцінювання втрачає силу в момент, коли власність зрушила

Це і є аргумент на користь того, щоб від початку з’ясовувати сторони, а потім читати записи. Метод, який створює карту, і те, що встановлює один сеанс, описано далі.