The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google представил проект OSS Rebuild для выявления скрытых изменений в пакетах

22.07.2025 09:33

Компания Google представила проект OSS Rebuild, предназначенный для выявления скрытых изменений в готовых пакетах, публикуемых в репозиториях. Работа OSS Rebuild основана на концепции воспроизводимых сборок и сводится к проверке соответствия размещённого в репозитории пакета с пакетом полученным на основе пересборки из эталонного исходного кода, соответствующего заявленной версии пакета. Код инструментария написан на языке Go и распространяется под лицензией Apache 2.0.

В настоящее время в OSS Rebuild реализована поддержка верификации пакетов из репозиториев NPM (JavaScript/TypeScript), PyPI (Python) и Crates.io (Rust). В будущем число поддерживаемых репозиториев планируют расширить. На практике инструментарий позволяет выявлять варианты атаки класса "supply chain", в ходе которых после компрометации учётных записей сопровождающих или диверсии внутри проекта в репозитории публикуется вредоносное обновление. При этом код в исходном репозитории основного проекта остаётся корректным, а вредоносные изменения вносятся только в готовые пакеты.

Система по возможности автоматически формирует сценарий для воспроизводимой сборки выбранного пакета, используя эвристику и подбирая параметры, позволяющие добиться идентичности артефактов, поставляемых в пакете. Если автоматически не удаётся воспроизвести размещённый в репозитории пакет, возможно ручное добавление сборочной спецификации. После того как удалось воспроизвести пакет, инструментарий OSS Rebuild сохраняет описание процесса сборки для последующей проверки новых версий пакета. Дополнительно публикуется информация для верификации с использованием фреймворка SLSA.

После проведения проверки конкретной версии пакета формируются данные аттестации, которые могут использоваться другими для оценки уже верифицированных пакетов. Проверку можно осуществить через запуск утилиты командной строк или сверку хэша, сохранённого в отдельном облачном хранилище. Инфраструктуру для проверки пакетов можно развернуть на собственном сервере. Так же можно воспользоваться информацией о проверках, выполняемых в Google для нескольких тысяч пакетов.

В качестве примеров разных методов атак, от которых мог бы защитить OSS Rebuild, приводится добавление бэкдора в XZ, внедрение вредоносного кода в официальный JavaScript-клиент для криптовалюты Solana и подстановка изменений через Actions-обработчик changed-files:

  • В случае с проектом XZ код в репозитории не содержал подозрительных изменений, а образующие бэкдор вредоносные компоненты поставлялись внутри файлов, используемых в тестовом наборе для проверки корректности работы распаковщика XZ. Бэкдор активировался на уровне системы сборки, а сам исходный код XZ совпадал с кодом из репозитория. Активирующие бэкдор m4-макросы для инструментария Automake были включены только в готовый архив с кодом и отсутствовали в репозитории. Для выявления подобных атак в OSS Rebuild применяется динамический анализ поставляемых в пакете артефактов, путей выполнения и подозрительных операций.
  • Подстановка вредоносных изменений в библиотеку @solana/web3.js произошла из-за компрометации учётной записи сопровождающего, используя методы социального инжиниринга и фишинга. В репозитории NPM был размещён новый выпуск, включающий вредоносные изменения. В Git-репозитории проекта этот выпуск создан не был и вредоносные изменения присутствовали только в результирующем пакете. Защита в этом случае сводится к выявлению в пакете кода, отсутствующего в основном репозитории.
  • Компрометация репозитория обработчика changed-files позволила провести атаку на проекты, использующие changed-files для отслеживания изменения файлов и каталогов в инфраструктуре непрерывной интеграции на базе GitHub Actions. Для защиты от подстановки изменений после компрометации сборочного окружения в OSS Rebuild применяется отслеживание изменений и подозрительной активности в стандартизированных урезанных сборочных окружениях.


  1. Главная ссылка к новости (https://security.googleblog.co...)
  2. OpenNews: В NixOS предложен метод защиты от подстановки бэкдоров, таких как в XZ
  3. OpenNews: Google предложил SLSA для защиты от вредоносных изменений в процессе разработки
  4. OpenNews: Оценка проблем с сопровождением открытых проектов и использованием старых зависимостей
  5. OpenNews: Red Hat и Google представили Sigstore, сервис для криптографической верификации кода
  6. OpenNews: Атака на зависимости позволила выполнить код на серверах PayPal, Micrоsoft, Apple, Netflix, Uber и ещё 30 компаний
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63613-rebuild
Ключевые слова: rebuild, google, attack, supplychain
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:52, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Но OSS - это же open sound system.
     
     
  • 2.7, Аноним (7), 10:30, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Но OSS - это же
    Open Source Software
    Operations Support System
    Open Search Server
    Object Storage Service
    Open Subsurface Studio
    Office for Strategic Services
    Operational Support Services
    One Stop Shop
    Operational Support System
    Online Self-Study
    Out-of-School Suspension
    Ovarian Stimulation Syndrome
    Operational Safety Standards
     
     
  • 3.23, Аноним (23), 13:02, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ты искусственный интеллект?
     
  • 3.31, Аноним (-), 17:58, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Open Source Software

    Такого устойчивого сочетания слов не существует. Не перевирай. Есть просто Open Source, если надо добавить третье слово то, будет просто Open Source Initiative. Ниже по списку тоже много чего напридумывал.

     
     
  • 4.33, Эксконтрибутор FreeBSD (?), 18:04, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://en.wikipedia.org/wiki/Open-source_software
    Настолько не существует, что аж статья в википедии есть уже лет 20, дольше, чем ты живешь
     
     
  • 5.44, Аноним (-), 21:08, 22/07/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.19, Аноним (19), 12:11, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это у них в BSD. У нас ALSA.
     
     
  • 3.32, Аноним (-), 18:02, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    7 лет назад конфигурировал и компилировал ядро, видел в меню утилиты menuconfig звуковую систему OSS. Я всегда выбирал ALSA. Все дистростроители тоже как-то обходили OSS стороной. Видимо он давно считался устаревшим.
     
  • 3.42, aaa (??), 20:32, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    в BSD - это в Bharatiya Suraksha Dal? (шутка)
     

  • 1.3, Аноним (3), 09:55, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    > В качестве примеров разных методов атак, от которых мог бы защитить OSS Rebuild, приводится добавление бэкдора в XZ

    Не мог бы. Xz написан на Си, а OSS не поддерживает его аудит.

     
  • 1.6, Аноним (7), 10:27, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Полезная вещь. Особенно для npm. В идеале это должны реализовывать сами репозитории библиотек, но это требует больших ресурсов.
     
     
  • 2.9, Аноним (9), 10:47, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В идеале в е должно быть в стандартной библиотеке.
     
     
  • 3.40, penetrator (?), 20:01, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    согласен, npm hell это нечто  
     
  • 2.10, Аноним (10), 10:55, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Полезная вещь. Особенно для сишных проектов, в которых мейнтейнеры дистров ревьюят гит, но скачивают при этом тарбол, который никто не ревьюит вообще. А чо, гит же отревьюили, нахрена еще и тарбол ревьюить, гы?
     
     
  • 3.14, Аноним (7), 11:11, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще удивился, что они не с гита собирают сами.
     
     
  • 4.17, Аноним (17), 11:59, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    О чем речь вообще?
     
     
  • 5.22, Аноним (22), 12:45, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    тарбол заливали отдельно а не собирался из гита
     
     
  • 6.37, Аноним (9), 19:05, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Гит на то и гит что в нем разработка релиз это отдельно.
     
  • 3.15, ez (?), 11:14, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    полезная но бесполезная. не видно в списке поддержки сишки.
    а только мантейнеры сишных проектов так делают? и виновата в этом сишка наверное? ну и луддиты/извощики/динозавры ещё?
     

  • 1.11, Аноним (11), 11:02, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    И что в итоге то проверяется? Даже crates.io с компилируемым Rust хранятся только исходники, без прекомпилированных бинарников, в том числе и из-за опасений подмены бинарников, а уж интерпретируемые питон и джаваскрипт тем более. Кого этот OSS собирает?
     
     
  • 2.13, Аноним (7), 11:09, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так там не только бинарники тестируют. Ещё и самые частые векторы атак.

    У питона вообще самые популярные ML библиотеки написаны на C или других низкоуровневых языках.

     
  • 2.18, Аноним (18), 12:06, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >интерпретируемые

    аналитика как она есть

     
     
  • 3.25, 12yoexpert (ok), 13:59, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    веб-синьоры как они есть
     
  • 3.27, Аноним (27), 16:36, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Просто сейчас появилось огромное количество случайных войтивойтишников. Их даже на курсах такие же вошедшие учат, что питон - интерпретируемый язык. И никому там дела нет, что интерпретируется уже скомпилированный байт-код, а не строка на питоне. Ведь у них есть интерпретатор, а компилятор они не видят.
     
     
  • 4.35, Аноним (35), 19:02, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это как-то отменяет тот факт, что Питон — интерпретируемый язык?
     
     
  • 5.43, Аноним (43), 20:33, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Интерпретируемой или компилируемой может быть реализация языка.
    Язык может быть и тем и другим.

    Компиляция не означает преобразование в машинный код. Нельзя путать её с компилятором. Есть разные языки, которые компилируются в другие языки.
    Пример: dart -> js, ts -> ts, vala -> c и т.п.

    Преобразованием в любой другой код занимается трансляция.

    Что там компилируется перед интерпретацией?
    Компилируется питон.
    А что там интерпретируется?
    Интерпретируется байт-код, а питона уже нет.

    С чего бы тогда питону быть интерпретируемым, если от питона к моменту интерпретации ничего не осталось?

    И как бы наличие компиляции до интерпретации уже говорит, что питон не интерпретируемый язык. Как и наличие кучи компиляторов для python.

     
  • 4.38, 12yoexpert (ok), 19:13, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > уже скомпилированный байт-код

    говори себе это почаще, глядишь, и питон перестанет быть интерпретируемым языком и тормозить

     
  • 2.26, Аноним (26), 14:32, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Дополнительно можно упомянуть разногласия в сообществе, возникшие из-за перехода разработчиков фреймворка Serde на поставку crate-пакета serde_derive с макросом derive только в уже скомпилированном бинарном виде.

    Даже crates.io
    https://www.opennet.me/opennews/art.shtml?num=59656

     

  • 1.20, Аноним (20), 12:19, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где то я такое уже видел
     
     
  • 2.28, Соль земли2 (?), 16:53, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В компьютере?
     

  • 1.34, Аноним (34), 18:34, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот, а некоторые ещё тут пытаются троллить гентушников.
     
     
  • 2.36, Аноним (9), 19:04, 22/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На то он и гентущник, чтобы его троллить. Здоровый лоб, а изображает из себя молодого.
     

  • 1.39, pda (ok), 19:40, 22/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ого, ADinf изобрели... :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру