Що можна дізнатися з BGP-перехоплення, яке «отруїло» виробниче програмне забезпечення? Багато чого.


Хакери здійснили атаку на ланцюжок постачання, яка встановила шкідливе програмне забезпечення в мережах, використовуючи незвичайну техніку: перехоплення частини інтернет-простору, через яку оновлюється хмарне програмне забезпечення, яке використовують хостинг-провайдери, центри обробки даних та інші великі інфраструктурні компанії.
Під час добре скоординованої операції невідомі зловмисники використали слабкі місця в налаштуваннях безпеки маршрутизації хостинг-провайдера Hetzner Online та процес отримання дійсних TLS-сертифікатів. Ці прогалини дозволили атакуючим успішно здійснити BGP (Border Gateway Protocol) перехоплення для отримання контролю над IP-адресами, призначеними Softaculous. Компанія, що базується в Об’єднаних Арабських Еміратах, є розробником платформи для встановлення та управління веб-програмним забезпеченням, а також розробником Virtualizor — платформи управління для віртуалізованих середовищ.
Softaculous використовувала ці IP-адреси для видачі оновлень та розміщення клієнтського сайту та сайту для виставлення рахунків. Отримавши контроль над перехопленим простором, атакуючий використовував ці адреси для розповсюдження шкідливого програмного забезпечення під виглядом оновлень серед нічого не підозрюючих користувачів.
Безглузді, запобіжні помилки
Недбала конфігурація безпеки маршрутизації у хостинг-провайдера Softaculous, Hetzner Online, стала головною причиною хакерської атаки. Успіху атаки сприяла велика кількість інших помилок. Найбільш помітним є те, що Softaculous не дотрималася одного з найпоширеніших кроків безпеки в розробці програмного забезпечення — перевірки оновлень програмного забезпечення за допомогою цифрового підпису коду.
«Під час інциденту встановлення Virtualizor, трафік якого було перенаправлено, могло отримати шкідливий пакет оновлення з сервера атакуючого», — попередила Softaculous у понеділок. «Наші клієнти оновлення продукту ще не перевіряли криптографічно пакети оновлень, тому модифікований пакет не був би відхилений на цій підставі. Ми вважаємо, що постраждала лише невелика кількість серверів, але ми не можемо надати точний список, тому, будь ласка, розглядайте кожен сервер Virtualizor як такий, що підпадає під перевірки, описані нижче».
Неправильна конфігурація з боку Hetzner Online дозволила перехоплювачам періодично перенаправляти трафік протягом двох проміжків часу загальною тривалістю 33 години. Hetzner Online відновила адресний простір через 12 годин після початку перехоплення, оголосивши правильний шлях. Потім Hetzner Online припинила оголошувати шлях, і атакуючий вдруге виконав те саме перехоплення. Цього разу Hetzner знадобилося майже 10 годин, щоб відреагувати. Протягом цього часу перехоплення було активним.
Як і Hetzner Online, і Softaculous, і Zet.net, транзитний вузол нижче за Hetzner Online, не змогли належним чином контролювати свої системи і, як результат, не виявили перехоплення, доки воно тривало то з перервами, то без них, протягом 22 годин. Також виникають запитання щодо іншого хостинг-провайдера, Nexon Host, інфраструктура якого якимось чином сприяла шкідливому оголошенню.
Бен Картрайт-Кокс, експерт з BGP та творець набору інструментів BGP Tools, назвав ці прогалини «безглуздими, запобіжними помилками». Softaculous, Hetzner та Zet.net не відразу відповіли на запитання, надіслані електронною поштою.
Короткий огляд BGP
BGP-атаки націлені на основи, які роблять Інтернет єдиною світовою мережею. Інтернет розділений на багато AS (автономних систем). Кожна AS — це незалежна мережа, якій виділено частину з 3,7 мільярда загальнодоступних адрес за протоколом IPv4. BGP діє як клей, що скріплює всі ці AS і дозволяє кожній з них з’єднуватися з будь-якою іншою.
Щоб дозволити адресу, призначену AS, скажімо, у Німеччині, досягти IP-адрес у Північній Америці, AS повинна «оголосити» маршрут, яким має слідувати певний діапазон IP-адрес. Ці оголошення маршрутів є деклараціями, що робляться як записи в глобальній таблиці маршрутизації, яку використовують усі AS та хостинг-провайдери, що їх обслуговують. На ранніх етапах розвитку Інтернету BGP працював на довірі. Провайдери просто припускали, що оголошення є дійсними та зроблені добросовісно.
Протягом багатьох років зловмисники неодноразово зловживали цією довірою, роблячи оголошення для IP-адрес, які вони не мали права контролювати. Атакуючі, пов’язані як з національними державами, так і з фінансово мотивованими групами, скористалися недбалою системою, щоб, у деяких випадках, перенаправляти петабайти конфіденційних даних через контрольовані ними мережі.
Зрештою, інтернет-архітектори розробили низку заходів для запобігання такому перехопленню. Найважливішими з них є RPKI (Resource Public Key Infrastructure) ROV (Route Origin Validation). RPKI ROV використовує криптографічні записи, які називаються Route Origin Authorizations (ROA), для підтвердження правильного походження та довжини маски префіксу маршрутів у BGP. AS, які розгортають RPKI ROV, відхилятимуть маршрути, що не відповідають інформації, що міститься в ROA, запобігаючи поширенню перехоплень по всьому Інтернету.
Як це сталося
Атака почалася за кілька хвилин до 21:00 UTC у п’ятницю, коли невелика частина IP-простору Softaculous потрапила до глобальної таблиці маршрутизації. Цей новий IP-префікс, позначений як 162.55.80.0/24, був оголошений за маршрутом: AS6204 (Zet.net), AS62390 (Nexon Host) та AS24940 (Hetzner Online).
Цей діапазон IP-адрес, що містить 256 адрес, розміщував точку оновлення програмного забезпечення Softaculous, а також її клієнтський сайт і сайт для виставлення рахунків. Цей простір був більш конкретною частиною значно більшого простору 162.55.0.0/16, який зазвичай походив від AS24940. Згідно з публікацією експерта з BGP Дага Медорі, оголошення, ймовірно, походило від NexonHost (AS62390), можливо, через компрометацію його інфраструктури або клієнта, який використав прогалини в його безпеці.
Такі протоколи, як RPKI, запобігають маршрутизації адрес великими операторами, зроблених через шахрайство або помилку, але прогалини в маршрутизації та нездатність належним чином контролювати трафік дозволили перехопленню пульсувати протягом вихідних. Медорі, який є керівником відділу аналізу Інтернету в Infoblox, продовжив:
Перехоплення також включало AS-шлях із підробленим походженням. Оскільки атакуючий додав 24940 як найправіший ASN у шляху, це вважалося RPKI-дійсним з двох причин: ROA вимагав, щоб походженням було AS24940, але також тому, що це дозволяло довжину префіксу бути будь-де між 24 і 16. В результаті цей маршрут був RPKI-дійсним і не ризикував бути відкинутим AS, які відхиляють RPKI-недійсні маршрути.
І Картрайт-Кокс, і Медорі заявили, що Hetzner налаштувала ці параметри таким чином, що перехоплення могло залишитися непоміченим засобами безпеки.
IP-діапазони вимірюються блоками, розмір яких визначається косою рискою, за якою йде число. Дещо парадоксально, що чим більше число в кінці, тим менший блок. Це тому, що система базується на 32 бітах, що складають основу стандарту IPv4. Блок /24 позначає 2(32-24), або 256 адрес. Блок /16 позначає 2(32-16), або 65 536 IP-адрес.
Hetzner Online налаштувала параметр у RPKI, який дозволяв вважати дійсними підпрефікси розміром до /24. У поєднанні з фактом, що перехоплений маршрут містив підроблений AS-шлях, що відповідав походженню в ROA, новий маршрут атакуючого з меншим префіксом зміг обійти захист RPKI.
«Оскільки не існувало існуючого маршруту для 162.55.80.0/24, з яким можна було б конкурувати, він поширився настільки далеко, наскільки дозволяли інші механізми фільтрації маршрутів», — написав Медорі. «І оскільки це був більш специфічний маршрут, будь-який трафік, призначений для цього IP-діапазону, віддавав перевагу йому над законним маршрутом (162.55.0.0/16) через перевагу маршрутизаторів у найбільшому збігу префіксу».
Картрайт-Кокс лаконічно описав прогалину так: «Hetzner дозволив оголошувати більш точні IP-діапазони (/24, коли це мало бути /16), дозволивши перехоплювачу видавати себе за них і автоматично перемагати в рішеннях щодо маршрутизації».
Обхід перевірки TLS-сертифікатів
Менший IP-діапазон також дозволив атакуючим обійти загальногалузеві заходи для перевірки запитів на TLS-сертифікати. Зазвичай сторона, що запитує, повинна продемонструвати, що вона контролює домен над географічно розподіленим набором кінцевих точок. Let’s Encrypt, орган сертифікації, який видав сертифікати, використані під час перехоплення, вимагає кворуму позитивних результатів перед видачею сертифіката.
Націлившись на менший діапазон /24, перехоплення поширилося глобально, «змушуючи точки зору для валідації (і весь інший трафік) досягати сервера атакуючого, а не законного оператора домену», — повідомила Let’s Encrypt в електронному листі. Там також зазначено, що прив’язка облікового запису Certification Authority Authorization (CAA), яка обмежує прийнятних емітентів та методи валідації, «значно ускладнила б це для атакуючого».
Залишається невідомим, скільки користувачів Virtualizor отримали шкідливе оновлення та що робив шкідливий програмний код після встановлення. Softaculous закликає всіх своїх користувачів перевірити свої системи на ознаки компрометації.
Інцидент є одним із небагатьох випадків, коли BGP-перехоплення використовувалося для розповсюдження шкідливого програмного забезпечення. Один такий випадок стався у 2015 році, коли найманий хакерський колектив Hacking Team використав його проти цілі, яку йому доручили заразити. Інший стався у 2022 році, коли атакуючі перехопили IP-адреси, що належать Amazon. Атакуючі використовували ці IP-адреси для розміщення смарт-контракту, який вивів приблизно 235 000 доларів у біткоїнах від людей, які намагалися відвідати криптовалютний обмін Celer Bridge.
На щастя, BGP-перехоплення стають менш поширеними завдяки широкому впровадженню RPKI. Подія минулих вихідних демонструє, що для того, щоб ці захисні механізми вийшли з ладу, достатньо однієї помилки.

За даними порталу: arstechnica.com
