Мережа з повітряним зазором не має шляху до реєстру пакетів, маршруту до сервера оновлень і способу зв’язатися з центром сертифікації. Кожен байт ПЗ, який у неї входить, має бути свідомо введений, врахований і доведено надійний перед запуском. Механізм, що це робить — пакування оновлення на підключеному боці, переміщення його через фізичну межу та перевірка на ізольованому боці — це конвеєр передавання. У цій статті розглядається, як побудувати такий, що достатньо швидкий, аби тримати анклав оновленим, і достатньо суворий, аби задовольнити високонадійну акредитацію: підписані пакети, шлюзи передавання, перевірка під час імпорту, відтворювані збірки та офлайн-дзеркало, що зв’язує все докупи.
Чому доставка через повітряний зазор — це інша проблема
У підключеній мережі доставка ПЗ — це вирішена зручність: хост витягує з реєстру, перевіряє підпис щодо онлайн-ланцюга довіри й інсталює. Нічого з цього недоступне через повітряний зазор. Ізольована мережа фізично відрізана від інтернету — і часто від кожної іншої мережі — саме для того, щоб зловмисник не міг дістатися до неї віддалено. Та сама ізоляція усуває кожне припущення, на яке покладається звичайний конвеєр оновлень. Немає онлайн-перевірки відкликання, немає живого розв’язання залежностей, немає каналу телеметрії й часто немає жодного зворотного шляху.
Наслідок полягає в тому, що все рішення про довіру має ухвалюватися на основі інформації, яка подорожує всередині самого пакета. Пакет має нести власний доказ автентичності, власний повний набір залежностей і власні метадані походження. Бік високого рівня не може нікого ні про що запитати; він може лише перевірити те, що вже утримує, щодо того, що щойно прибуло. Це переносить інженерний тягар із моменту інсталяції — де він живе на підключеній системі — на момент пакування й момент імпорту. Зробіть ці дві межі правильно — і повітряний зазор стане керованим каналом, а не операційним глухим кутом. Це тісно пов’язано з ширшою інженерною дисципліною розгортання з повітряним зазором для оборонного ПЗ, що охоплює постійне середовище, яке живить конвеєр.
Підписані пакети: одиниця передавання
Атомарна одиниця, що перетинає межу — це підписаний пакет. Пакет — це єдиний архів, що містить усе, що потрібне оновленню — бінарні файли застосунку, образи контейнерів, пакети ОС, маніфести конфігурації, скрипти міграції та перелік складових ПЗ (SBOM) — у супроводі маніфесту, що перелічує кожен файл із його криптографічним хешем. Маніфест потім підписується приватним ключем, що його утримує орган випуску, ідеально — в апаратному модулі безпеки або офлайн-сховищі ключів, яке ніколи не торкається підключеної машини.
Підпис виконує одне конкретне завдання: він доводить, що пакет був вироблений легітимним конвеєром випуску й не був змінений відтоді. Під час імпорту бік із повітряним зазором перевіряє підпис щодо відкритого ключа або сертифіката, який був наданий в анклав заздалегідь, поза каналом. Оскільки ключ перевірки вже всередині анклаву, онлайн-пошук не потрібен. Це і є інверсія, що робить довіру з повітряним зазором робочою — якір довіри попередньо розташований, а пакет перевіряється щодо нього локально.
Що входить до маніфесту
Надійний маніфест — це більше, ніж перелік файлів. Він записує версію пакета, попередню версію, за якою він має йти, ідентифікатор збирання, дайджест SBOM і таблицю хешів по кожному файлу. Запис попередньої версії дозволяє боку високого рівня відхилити пакет із порушеним порядком або повторно відтворений: анклав, що працює на версії 14, має відмовити пакетові, який оголошує себе наступником версії 11, бо такий порядок — це або помилка, або атака на пониження версії. Розгляд ланцюга версій як частини підписаного навантаження — а не як вільних метаданих — закриває клас атак відкату, який пропускає чиста перевірка підпису.
Відтворювані збірки та вбудовування залежностей
Підпис доводить, хто зібрав артефакт. Він не доводить, що артефакт відповідає вихідному коду, який був перевірений і затверджений. Відтворювані збірки закривають цю прогалину. Відтворювана збірка дає байт у байт ідентичний результат щоразу, коли той самий код компілюється з тим самим закріпленим набором інструментів, а це означає, що незалежний другий збирач може повторно зібрати випуск і підтвердити, що хеш отриманого артефакту збігається з підписаним пакетом. Коли два непов’язані збирачі приходять до того самого хешу, ви маєте вагомий доказ того, що пакет точно відображає перевірений код і нічого не було ін’єктовано під час компіляції.
Відтворюваність досяжна лише тоді, коли закріплено кожен вхід. Ось де з’являється вбудовування залежностей. У підключеній збірці залежності розв’язуються наживо з вищерозташованих репозиторіїв — варіант, якого просто не існує нижче за течією від повітряного зазору. Тож збірка має розв’язати, завантажити та закріпити кожну залежність за дайджестом на підключеному боці: мовні пакети, пакети ОС і базові образи контейнерів — усі за хешем вмісту, а не за змінним тегом версії. Закріплення за дайджестом, а не за тегом — це різниця між пакетом, що збирається ідентично назавжди, і таким, що тихо дрейфує, коли вищерозташовані теги зсуваються.
Вбудований набір залежностей потім подорожує всередині пакета, тож боку високого рівня ніколи не потрібно нічого завантажувати. SBOM перелічує кожен із цих входів, даючи рецензентові на боці імпорту повний, перевірюваний інвентар. Той самий SBOM — це те, що робить можливим аудит ланцюга постачання всередині середовища, яке ніколи не може запустити онлайн-сканер вразливостей проти живої мережі.
Шлюзи передавання: переміщення байтів через межу
Щойно пакет зібрано та підписано, він має фізично перетнути повітряний зазор. Існують два домінантні механізми, і вибір між ними формує весь конвеєр.
Діоди даних. Діод даних — це апаратний засіб, що дозволяє потік даних точно в одному напрямку — зазвичай із низького до високого рівня — і робить зворотний напрямок фізично неможливим, а не лише забороненим політикою. Діод дозволяє вам безперервно проштовхувати пакети в анклав із повною придатністю до аудиту й без ризику ексфільтрації даних через той самий канал. Інженерна ціна полягає в тому, що справжній односторонній зв’язок не має шляху підтвердження, тож протокол передавання має додати випереджувальне виправлення помилок і надлишкову передачу, щоб витримувати втрати без зворотного запиту на повторну передачу. Діоди — правильна відповідь, коли темп доставки високий і межа має лишатися безперервно доступною.
Знімний носій. Альтернатива — ручне передавання «sneakernet»: пакет записується на одноразовий оптичний носій або виділений, контрольований USB-пристрій і фізично переноситься через межу авторизованою особою. Це процедурно простіше й не потребує спеціального апаратного засобу, але його безпека повністю залежить від дисципліни контролю носіїв — унікального відстеження носіїв, обов’язкового сканування на жертовному хості перевірки та одноразового носія, аби запобігти перенесенню даних назад пристроєм. Для строго засекреченої роботи формальне поводження з передаваннями з високого до низького та з низького до високого рівня сильно перетинається з дисципліною міждоменного рішення, яке додає перевірку та фільтрацію між рівнями класифікації.
Хоч би який механізм використовувався, шлюз ніколи не повинен ставати двонапрямленою зручністю. Найпоширеніший збій у польових розгортаннях — це оператор, який, розчарований одностороннім передаванням, вводить USB-пристрій, що торкався підключеної машини, а потім переносить його назад — тихо перетворюючи повітряний зазор на двосторонній міст.
Перевірка під час імпорту: момент довіри
Імпорт — це місце, де пакет заробляє право на запуск. Бік високого рівня виконує фіксовану, упорядковану послідовність перевірок, і збій на будь-якому кроці зупиняє процес — збої перевірки є подіями безпеки, які потрібно записувати та розслідувати, а ніколи не умовами для повторної спроби, які можна обійти.
Спершу підпис на маніфесті перевіряється щодо попередньо наданого відкритого ключа, перш ніж буде розпаковано хоча б один файл. По-друге, кожен файл розпаковується в зону карантину, і його хеш перераховується та порівнюється із записом у маніфесті; будь-яке невідповідання провалює пакет. По-третє, оголошена попередня версія перевіряється щодо наразі встановленої версії, аби забезпечити монотонний порядок і блокувати пониження. По-четверте, SBOM звіряється з розпакованим вмістом, тож рецензент може підтвердити, що інвентар повний і відповідає тому, що було затверджено на боці низького рівня.
Лише після проходження всіх чотирьох перевірок артефакти виходять із карантину. Поводження із секретами, що їдуть разом із випуском — сертифікатами підпису, обліковими даними служб, ключами шифрування — дотримується того самого офлайн-першого принципу, описаного в керуванні секретами в оборонних конвеєрах CI/CD: нічого у відкритому тексті, кожен ключ прив’язаний до HSM або сховища, ротація планується навколо темпу передавання, а не навколо припущення про постійну онлайн-доступність.
Ключове розуміння: Підпис на пакеті доводить, хто його зібрав, а не те, що він відповідає коду, який ви перевірили. У високонадійному конвеєрі це дві окремі гарантії — і друга з них є тією, на яку націлені атаки ланцюга постачання. Відтворювані збірки плюс незалежне повторне збирання — це те, що дозволяє вам перевірити обидві, тож зробіть відтворюваність вентилем випуску, а не прагненням.
Офлайн-дзеркало та крок розгортання
Один пакет латає систему один раз. Підтримання анклаву обслуговуваним роками потребує постійного офлайн-дзеркала: локального реєстру контейнерів, локального репозиторію пакетів ОС і локального сховища артефактів — усі заповнені виключно з імпортованих пакетів. Дзеркало — це те, що дозволяє службам усередині анклаву розгортатися й масштабуватися за допомогою звичайних інструментів — витягуючи образи та пакети з локального дзеркала так, ніби це вищерозташоване джерело — без потреби в мережевому доступі для будь-кого з них. Кожен перевірений імпорт додається до дзеркала; нічого ніколи не завантажується ззовні.
Саме розгортання має припускати, що виправлення може провалитися в середовищі, де наступний пакет може бути за кілька днів. Тому кожне оновлення розгортається з протестованим шляхом відкату, тож невдала інсталяція повертається до попереднього відомо-справного випуску за допомогою артефактів, уже наявних у дзеркалі — ніколи не вимагаючи свіжого передавання для відновлення. Повна послідовність, від збирання до працюючої системи, записується в незмінному журналі аудиту: ідентифікатор збирання, запис передавання, результат перевірки, результат розгортання. Цей нерозривний ланцюг — це те, що читає акредитаційна перевірка, аби підтвердити, що анклав будь-коли запускав лише ПЗ, чиє походження можна простежити від кінця до кінця.
Складаючи конвеєр докупи
Робочий конвеєр доставки через повітряний зазор — це композиція п’яти дисциплін: відтворювані збірки з вбудованими залежностями на боці низького рівня, підписані пакети як одиниця передавання, придатний для аудиту односторонній шлюз передавання, упорядкований вентиль перевірки під час імпорту та офлайн-дзеркало, що живить розгортання зі здатністю до відкату. Кожна компенсує припущення, яке усуває повітряний зазор. Жодна з них не є необов’язковою — конвеєр без відтворюваності не може виявити підроблену збірку, той, що без забезпечення ланцюга версій, відкритий до атак пониження, а той, що без дисципліни зворотного шляху, насправді взагалі не з повітряним зазором. Побудовані разом, вони перетворюють ізольовану мережу з тягаря обслуговування на керований, підзвітний канал, який можна тримати актуальним, ніколи не компрометуючи ізоляцію, що його виправдовує.
Доставляйте оновлення в ізольовані мережі впевнено
Corvus Quantum зміцнює межу доставки для високонадійних анклавів — підписані пакети, інтеграція шлюзів передавання та перевірка під час імпорту, створені для середовищ, які ніколи не можуть довіряти онлайн-реєстру.
Цей аналіз підготували інженери Corvus Intelligence, які створюють критично важливе ПЗ для оборонних і державних організацій. Дізнайтеся про нашу команду →