Google представив фреймворк Supply-chain Levels for Software Artifacts для захисту від шкідливих змін у процесі розробки

Google представив фреймворк «Рівні ланцюга поставок для артефактів програмного забезпечення» для захисту від шкідливих змін під час процесу розробки

Компанія Google представила  фреймворк Supply-chain Levels for Software Artifacts для захисту від шкідливих змін в процесі розробки, який узагальнює існуючий досвід захисту інфраструктури розробки від атак, здійснюваних на етапі написання коду, тестування, побудови і поширення продукту.

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

Фреймворк враховує 8 видів атак, пов'язаних з загрозами внесення шкідливих змін на етапі розробки коду, побудови, тестування і поширення продукту.

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

Атаки на цілісність ланцюга поставок - несанкціоновані модифікації пакетів програмного забезпечення - зростають протягом останніх двох років і виявляються загальними та надійними векторами атак, які впливають на всіх споживачів програмного забезпечення. Ланцюжок поставок розробки та розгортання програмного забезпечення досить складний, з численними загрозами вздовж джерела ➞ побудувати ➞ опублікувати робочий процес. Хоча точкові рішення дійсно існують для деяких конкретних вразливостей, не існує комплексної наскрізної структури, яка визначає, як пом'якшити загрози по всьому ланцюжку поставок програмного забезпечення, так і забезпечує розумні гарантії безпеки. Існує нагальна потреба у вирішенні проблеми, що відкривають очі, багатомільярдних атак в останні місяці (наприклад , SolarWinds, Codecov), деякі з яких можна було б запобігти або ускладнити, якби така структура була прийнята розробниками та споживачами програмного забезпечення.

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

 

Загроза

відомий приклад

Як SLSA могла допомогти

A

Надсилання поганого коду до вихідного репозиторію

Linux hypocrite commits: Дослідник намагався навмисно ввести вразливості в ядро Linux за допомогою патчів у списку розсилки.

Огляд двох осіб зловив більшість, але не всі вразливості.

B

Платформа контролю джерела компромісу

PHP: Зловмисник скомпрометував саморозміщений git-сервер PHP і ввів два шкідливих коміта.

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

C

Побудова з офіційним процесом, але з коду, який не відповідає контролю джерела

Webmin: Зловмисник змінив інфраструктуру збірки, щоб використовувати вихідні файли, які не відповідають контролю джерела.

Сервер збірки, сумісний з SLSA, створював би походження, ідентифікуючи фактичні джерела, що використовуються, дозволяючи споживачам виявляти такі підробки.

D

Платформа для створення компромісів

SolarWinds: Зловмисник скомпрометував платформу збірки та встановив імплантат, який вводив зловмисну поведінку під час кожної збірки.

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

E

Використовуйте погану залежність (тобто A-H, рекурсивно)

потік подій: Зловмисник додав нешкідливу залежність, а потім оновив залежність, щоб додати зловмисну поведінку. Оновлення не відповідало коду, надісланому на GitHub (тобто атака F).

Застосування SLSA рекурсивно до всіх залежностей запобігло б цьому конкретному вектору, оскільки походження вказувало б на те, що він або не був побудований з належного будівельника, або що джерело не походить від GitHub.

F

Завантажте артефакт, який не був побудований системою CI/CD

CodeCov: Зловмисник використовував просочилися облікові дані для завантаження шкідливого артефакту в ківш GCS, з якого користувачі завантажують безпосередньо.

Походження артефакту у відрі GCS показало б, що артефакт не був побудований очікуваним чином від очікуваного вихідного репо.

G

Компромісний репозиторій пакетів

Атаки на package Mirrors: Дослідник запустив дзеркала для кількох популярних репозиторіїв пакетів, які могли бути використані для обслуговування шкідливих пакетів.

Подібно до вищенаведеного (F), походження шкідливих артефактів показало б, що вони не були побудовані так, як очікувалося, або з очікуваного вихідного репо.

H

Хитрість споживача у використанні поганого пакету

Типосктування Browserify: Зловмисник завантажив шкідливий пакет з такою ж назвою, як і оригінал.

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

Що таке SLSA

У своєму нинішньому стані SLSA - це набір поступово прийнятих керівних принципів безпеки, які встановлюються галузевим консенсусом. У своїй остаточній формі SLSA буде відрізнятися від списку найкращих практик своєю застосовністю: вона підтримуватиме автоматичне створення метаданих, які можна перевірити, які можна подавати в програмні двигуни, щоб надати «сертифікацію SLSA» певному пакету або платформі для створення. SLSA розроблена таким чином, щоб бути інкрементальною та дієвою, а також забезпечувати переваги безпеки на кожному кроці. Як тільки артефакт кваліфікується на найвищому рівні, споживачі можуть бути впевнені, що він не був підроблений і може бути надійно простежений до джерела - те, що сьогодні важко, якщо не неможливо, зробити з більшістю програмного забезпечення.

SLSA складається з чотирьох рівнів, при цьому SLSA 4 представляє ідеальний кінцевий стан. Нижні рівні являють собою інкрементні віхи з відповідними інкрементними гарантіями цілісності.


Опубліковано: 17 червня 2021


Вибрати програмне забезпечення


Напишіть запит на програмне забезпечення нам у Viber
+380503703627


Контакти Ай Ті Про

info@itpro.ua
Телефон: +38 (044) 257-24-44