Поиск по сайту:

Что такое стандарт SPDX и как он помогает индустрии программного обеспечения?


Спецификация Software Package Data Exchange (SPDX) определяет открытый стандарт для обмена информацией о программных компонентах. SPDX используется для создания списков спецификаций программного обеспечения (SBOM), инкапсуляции сведений о лицензировании и авторских правах, а также для предоставления метаданных пакетов, таких как идентификаторы версий и известные уязвимости.

Первоначально SPDX был разработан более десяти лет назад, чтобы помочь разработчикам соблюдать требования лицензий с открытым исходным кодом. С тех пор он был расширен новыми возможностями для описания деревьев зависимостей и выдачи SBOM. SPDX привлек внимание всего мира в сентябре 2021 года, когда ISO признала его международным стандартом документации цепочки поставок программного обеспечения.

Кто создает SPDX?

SPDX — это отдельный проект, которым управляет Linux Foundation, управляемый сообществом. Текущий стандарт поддерживается и разрабатывается заинтересованными сторонами со всей индустрии программного обеспечения. В список входят такие громкие имена, как Google и Microsoft, а также разработчики смежных инструментов, таких как Anchore и Snyk.

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

Для чего нужен SPDX?

SPDX — это стандартный для отрасли способ описания пакетов программного обеспечения и их зависимостей. Он предназначен для работы с разными поставщиками, языками программирования и фреймворками. Стандарт уменьшает усилия, необходимые для создания SBOM для проекта, абстрагируя различия между форматами пакетов и повышая функциональную совместимость в экосистеме.

SBOM по-прежнему является новой концепцией для многих разработчиков. Естественным местом для начала являются файлы блокировки менеджера пакетов, которые у вас уже есть. Однако простое копирование и вставка вашего package.json в файл документации не является надежным решением. Что происходит, когда у вас также есть composer.json для серверной части и requirements.txt для этого автономного компонента Python? Теперь у вас есть три независимых источника пакетов для аудита, проверки соответствия лицензии и получения списков уязвимостей.

SPDX предоставляет единый способ структурирования, хранения и запроса этой информации. Спецификация определяет однозначный формат для передачи метаданных любого программного пакета. Ключевым моментом здесь является словарь «программных пакетов»: мы не говорим о пакетах NPM или драгоценных камнях Ruby, а вместо этого рассматриваем более высокий уровень ландшафта разработки.

Определение пакета SPDX включает такие данные, как имя компонента, версия, автор и лицензия. Пакеты могут ссылаться на другие пакеты для определения их деревьев зависимостей. Формат также поддерживает данные на уровне файлов для описания содержимого пакета.

Создание SPDX-совместимых SBOM

Инструменты вокруг SPDX все еще появляются. Известным проектом сообщества является Open Source Software Review Toolkit, который может генерировать метаданные SPDX из наиболее распространенных форматов менеджера пакетов. Генератор Open SBOM — это альтернатива, более узко ориентированная на генерацию SBOM, совместимую с SPDX.

Вы также найдете поддержку SPDX во многих популярных генераторах списков зависимостей и сканерах уязвимостей. Получив файл в формате SPDX, его можно передать другим инструментам и библиотекам для проведения дальнейшего анализа.

Проект SPDX разрабатывает клиентские библиотеки SPDX для Java, Python, Go и JavaScript. Это облегчит использование данных SPDX в ваших собственных приложениях. Существует также веб-сайт, который предлагает функции анализа, проверки и сравнения SPDX.

Почему все это имеет значение?

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

Проблемы цепочек поставок программного обеспечения были прямо упомянуты в указе США о кибербезопасности в мае 2021 года. Теперь крайне важно, чтобы специалисты по сопровождению открытого исходного кода, последующие пользователи и организации, работающие с программным обеспечением, работали над обеспечением большей прозрачности компонентов, из которых состоит программное обеспечение в мире. . Общий формат для создания, обмена и анализа SBOM является важной частью решения.

Аккредитация SPDX в качестве стандарта ISO дает отрасли коллективный ориентир. Это спецификация, которую можно было бы обоснованно рассматривать как обязательный результат для будущих программных проектов. Правительственным учреждениям, регулируемым отраслям и клиентам, заботящимся о безопасности, могут потребоваться артефакты SPDX, чтобы они могли быть последовательными в том, как они проверяют и защищают свои цепочки поставок.

Межотраслевое внедрение SPDX позволит организациям быть более уверенными в безопасности приобретаемого ими нового программного обеспечения. Чтобы определить, подвержены ли системы критическим уязвимостям нулевого дня, нужно проконсультироваться с SBOM, а не вручную проверять различные форматы диспетчера пакетов, используемые в проекте.

Хотя самые ранние версии стандарта существуют уже десять лет, только недавно движение к автоматизированным SBOM, соответствию и индексированию зависимостей начало набирать обороты. Становление стандарта ISO может оказаться переломным моментом, когда разработчики начнут масштабно внедрять SPDX.

Заключение

Теперь SPDX – это самый способ определения цепочек поставок программного обеспечения. Это формат, разработанный с нуля для выражения взаимосвязей между программными пакетами. Его можно использовать для составления списка материалов, проверки соответствия лицензии и определения авторства и права собственности.

Поскольку тщательное изучение цепочек поставок программного обеспечения становится все более интенсивным, экосистема SPDX — это то, что разработчики, операционные группы и даже юридические группы могут ожидать увидеть гораздо больше в течение следующих нескольких лет. Он обеспечивает способ навигации по взаимосвязям между программными компонентами и ограничениями, которые накладываются на их использование.

Наличие стандартизированного способа предоставления этой информации дает отрасли определенные цели при создании SBOM и аудите цепочек поставок. SPDX устраняет двусмысленность, которая преобладала до сих пор, предлагая проверенный и надежный формат каталогизации для замены индексов пакетов и электронных таблиц для конкретной организации.