Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

SBOM: что такое «Software Bill of Materials» и зачем она нужна для безопасности?

Разработка ПО и автопроизводство имеют больше общего, чем кажется. Узнайте, что нужно знать о Software Bill of Materials (SBOM). Фото: Ju1978 – shutterstock.com. Software Bill of Materials — это подробное руководство, которое, среди прочего, предоставляет информацию о компонентах вашего ПО. Подобно спецификации материалов, SBOM помогает как поставщикам, так и покупателям [...] — csoonline.com Software Bill of Materials (SBOM) — это подробное руководство, которое, среди прочего, предоставляет информацию о компонентах вашего программного обеспечения. Подобно спецификации материалов, SBOM помогает как поставщикам, так и покупателям отслеживать компоненты и повышать безопасность цепочки поставок программного обеспечения. Software Bill of Materials (Спецификация материалов программного обеспечения) — это формальная, структурированная запись, которая описывает Таким образом, SBOM указывает, какие пакеты и библиотеки вошли в ваше приложение, а также взаимосвязь между этими пакетами и библиоте
Оглавление

Разработка ПО и автопроизводство имеют больше общего, чем кажется. Узнайте, что нужно знать о Software Bill of Materials (SBOM). Фото: Ju1978 – shutterstock.com. Software Bill of Materials — это подробное руководство, которое, среди прочего, предоставляет информацию о компонентах вашего ПО. Подобно спецификации материалов, SBOM помогает как поставщикам, так и покупателям [...] — csoonline.com

Software Bill of Materials (SBOM) — это подробное руководство, которое, среди прочего, предоставляет информацию о компонентах вашего программного обеспечения. Подобно спецификации материалов, SBOM помогает как поставщикам, так и покупателям отслеживать компоненты и повышать безопасность цепочки поставок программного обеспечения.

SBOM – Определение

Software Bill of Materials (Спецификация материалов программного обеспечения) — это формальная, структурированная запись, которая описывает

  • компоненты программного продукта и
  • их взаимосвязи в цепочке поставок программного обеспечения.

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

Возможно, вы знакомы со спецификациями материалов по аналогии с новыми автомобилями. В этом случае это документ, подробно описывающий каждый компонент, находящийся в вашем новом транспортном средстве. Независимо от того, был ли ваш автомобиль собран Toyota или General Motors, многие его компоненты поставляются субподрядчиками по всему миру. Спецификация материалов указывает, откуда поступает каждая отдельная деталь. Это служит не только прозрачности, но и безопасности: если отзывается определенная серия подушек безопасности, производители автомобилей должны иметь возможность быстро определить, где они установлены.

Однако, поскольку сторонние библиотеки с открытым исходным кодом пользуются растущей популярностью для создания контейнеризированных, распределенных приложений, в разработке программного обеспечения и автомобилестроении теперь больше общего, чем кажется. И разработчики, и пользователи могут использовать Software Bill of Materials, чтобы понять, какие компоненты вошли в программное обеспечение, как они были распределены и использованы. Это позволяет делать ряд важных выводов, особенно с точки зрения безопасности.

Software Bill of Materials – Преимущества

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

В целом эти изменения стали благом для разработки программного обеспечения, способствуя повышению производительности разработчиков и снижению затрат. С точки зрения безопасности картина не столь радужная: в значительной степени полагаясь на сторонний код (внутренние процессы которого они могут знать частично или не знать вовсе), разработчики создали цепочку поставок программных компонентов, столь же сложную, как и у производителей физической продукции. Поскольку приложение безопасно настолько, насколько безопанен его самый слабый компонент, такое положение дел может привести к серьезным уязвимостям. Десятилетие 2020-х годов было отмечено рядом атак на цепочку поставок программного обеспечения, которые попали в заголовки новостей:

  • В конце 2020 года хакерам, предположительно связанным с российскими спецслужбами, удалось внедрить бэкдор в платформу сетевого мониторинга SolarWinds. Она, в свою очередь, используется другими продуктами безопасности, что привело к ее компрометации.
  • В конце 2021 года была обнаружена серьезная уязвимость в Apache Log4j — библиотеке Java, используемой для ведения журнала системных событий. Это звучит неинтересно до тех пор, пока не выяснится, что почти каждое Java-приложение в той или иной форме использует Log4j и, следовательно, становится уязвимым.

Эти кризисы безопасности подчеркивают потенциальную роль Software Bill of Materials в ландшафте безопасности. Многие пользователи, возможно, лишь мельком слышали об этих уязвимостях, но не знали, что используют Log4j или другой компонент SolarWinds. С помощью SBOM вы точно знаете, какие пакеты установлены — и, главное, какие версии этих пакетов. Таким образом, при необходимости вы можете обновиться, чтобы оставаться в безопасности.

Software Bill of Material может быть полезна и за пределами сферы безопасности: SBOM могут, например, помочь разработчикам отслеживать лицензии на открытое ПО своих различных программных компонентов, что важно при распространении приложений.

SBOM – Обязательность в США и скоро в Европе

Взлом SolarWinds особенно встревожил правительство США — в том числе потому, что скомпрометированный компонент использовался многими федеральными агентствами США. Поэтому в Указе о кибербезопасности, изданном администрацией Байдена в мае 2022 года, содержались руководящие принципы, касающиеся Software Bill of Materials. Министерство торговли США опубликовало руководство о том, какие основные элементы должны содержаться в SBOM.

Хотя распоряжение конкретно касается тех, кто находится в прямых отношениях с федеральными агентствами США, правила будут иметь более широкие последствия. В конце концов, продукты, продаваемые правительству США, которые теперь должны поставляться с SBOM, в основном продаются и другим компаниям и организациям. Многие производители программного обеспечения надеются, что клиенты из частного сектора также будут рассматривать SBOM как дополнительную ценность.

Кроме того, государственные закупки сами по себе являются цепочкой поставок, как подчеркивает Саунил Ю (Sounil Yu), бывший главный научный сотрудник по безопасности в Bank of America, а ныне CISO в JupiterOn: «Есть лишь определенное количество компаний, которые напрямую работают с правительством США и на которых распространяется действие постановления. Влияние на второй уровень поставщиков еще более значительно».

В Европе SBOM также станет обязательным — в рамках реализации Акта о киберустойчивости (Cyber Resilience Act) к концу 2027 года.

Software Bill of Materials – Структура

В ответ на Исполнительный указ Национальная администрация по телекоммуникациям и информации (NTIA) в июле 2021 года опубликовала руководство «Минимальные элементы для спецификации материалов программного обеспечения» (PDF). Документ может стать де-факто стандартом для SBOM во всей отрасли и определяет семь полей данных, которые должна содержать каждая SBOM:

  • Имя поставщика: Имя организации, которая создает, определяет и идентифицирует компонент.
  • Имя компонента: Обозначение, присвоенное программному модулю, определенному первоначальным поставщиком.
  • Версия компонента: Идентификатор, используемый поставщиком для обозначения изменения в программном обеспечении по сравнению с ранее идентифицированной версией.
  • Другие уникальные идентификаторы: Другая информация, используемая для идентификации компонента или служащая ключом для поиска в соответствующих базах данных. Это может быть, например, идентификатор из NIST CPE Dictionary.
  • Отношение зависимости: Указывает отношение, в котором компонент X находится внутри программного обеспечения Y. Это особенно важно для проектов с открытым исходным кодом.
  • Автор данных SBOM: Имя организации, создавшей данные SBOM.
  • Временная метка: Запись даты и времени составления данных SBOM.

Кроме того, SBOM должны соответствовать следующим требованиям:

  • SBOM должна быть представлена в одном из трех стандартизированных форматов для машиночитаемости — SPDX, CycloneDX или SWID-Tags.
  • Новая SBOM должна генерироваться с каждой новой версией программного обеспечения, чтобы гарантировать ее актуальность.
  • SBOM должна не только содержать отношения зависимостей, но и указывать, где такие отношения, вероятно, существуют, но неизвестны организации, создающей SBOM.

Создание SBOM – Как это сделать

Читая эту статью, вы можете счесть создание Software Bill of Materials пугающей задачей. В конце концов, ручной сбор всей этой информации, должно быть, кошмар. К счастью, в большинстве случаев SBOM создаются автоматически с помощью инструментов SCA (Software Composition Analysis). Эти инструменты часто используются в конвейерах DevSecOps и играют роль не только в создании SBOM.

Инструменты SCA сканируют ваши каталоги кода на наличие пакетов и сравнивают их с онлайн-базами данных для сопоставления с известными библиотеками. Однако существуют также инструменты, которые создают Software Bill of Materials в рамках процесса сборки программного обеспечения. Фонд OWASP составил исчерпывающий список инструментов SCA, от простых инструментов командной строки с открытым исходным кодом до специализированных коммерческих продуктов. Если вы хотите глубже погрузиться в эту область, вам также следует ознакомиться с нашей статьей «7 инструментов для защиты вашей цепочки поставок ПО».

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

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

Автор – Josh Fruhlinger

Оригинал статьи