Чого нас може навчити 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
