Логотип МАИ
Московский авиационный институт
Учебный лендинг по дисциплине
ГОСТ Р (проект)
Тема занятия

Композиционный анализ программного обеспечения

Презентация построена по логике проекта национального стандарта ГОСТ Р «Защита информации. Разработка безопасного программного обеспечения. Композиционный анализ программного обеспечения. Общие требования» и адаптирована для наглядного объяснения студентам.

Локальный запуск без интернета
Слайды в формате лендинга
Схемы вынесены отдельно
Приложения добавлены в финал

Задача КАПО — не просто перечислить библиотеки, а сделать использование сторонних компонентов управляемым, проверяемым и безопасным.

Как работать с презентацией

Навигация

  • Клик по правой половине экрана — следующий слайд.
  • Клик по левой половине — предыдущий.
  • Поддерживаются клавиши ← / →, PageUp / PageDown, Home / End.
  • Внизу справа всегда виден номер текущего слайда.
01
Логотип МАИ
Введение
Зачем нужен этот стандарт
Цели и объект стандартизации
Из пояснительной записки

Что должен обеспечить КАПО

  • выявление известных уязвимостей в сторонних компонентах;
  • контроль лицензионной чистоты и иных особенностей использования;
  • стандартизацию отчётных материалов и обмена данными о составе ПО;
  • поддержку всех этапов жизненного цикла: от требований до эксплуатации.
Контекст безопасной разработки

Почему это важно

Современное ПО почти всегда строится из собственных и сторонних компонентов. Поэтому безопасность конечного продукта зависит не только от кода разработчика, но и от всей цепочки поставки, репозиториев, пакетных экосистем, контейнеров и инструментов сборки.

SBOM / ППК
Цепочка поставки
Контролируемый репозиторий
02
Логотип МАИ
Базовые понятия
Термины, которые студент должен знать
Термины и определения
1

КАПО

Анализ, основанный на инвентаризации сторонних компонентов, выявлении их особенностей и составлении перечня уязвимостей и иных недостатков.

2

ППК

Перечень программных компонентов — машиночитаемый документ с информацией о компонентах ПО и отношениях между ними. Отечественный аналог SBOM.

3

Контролируемый репозиторий

Репозиторий, в отношении содержимого которого выполняются проверки безопасности в соответствии с регламентами организации.

4

Заимствованный компонент

Компонент, который включается в разрабатываемое ПО на определённых условиях, включая свободное распространение.

5

Привлекаемое ПО

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

6

Политика безопасности

Совокупность правил использования сторонних компонентов: допустимость, критерии проверки, сроки реакции и компенсирующие меры.

03
Логотип МАИ
Общие положения
Место КАПО в процессах разработки
Раздел 4
Ключевая логика стандарта
1

Разработчик обязан вести КАПО в дополнение к другим мерам безопасной разработки.

2

Стороннее ПО должно попадать в разработку только через контролируемый репозиторий.

3

Процесс должен обеспечивать ведение ППК, выявление уязвимостей и реакцию на нарушения политики безопасности.

4

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

Что важно объяснить студентам

КАПО — это не разовая проверка

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

04
Логотип МАИ
Рисунок 1
Цепочка поставки программного обеспечения
Отдельный слайд со схемой
Наглядная схема

Откуда компоненты приходят в продукт

Рисунок 1 — Цепочка поставки программного обеспечения
Схема показывает, как собственная разработка и стороннее ПО проходят через контролируемый репозиторий, проверки CI/CD и сборку, после чего формируется поставляемое ПО.
05
Логотип МАИ
Раздел 5
Порядок внедрения и применения КАПО
Этапы процесса
Этап 1

Подготовка внедрения

  • назначить ответственных;
  • инвентаризировать технологии и репозитории;
  • сформировать ППК для поддерживаемых версий ПО;
  • принять решения по организации контролируемого репозитория и регламента.
Этап 2

Внедрение

  • установить и интегрировать инструмент;
  • собрать сведения из баз уязвимостей и иных источников;
  • сформировать политику безопасности в отношении стороннего ПО;
  • обеспечить невозможность обхода проверок.
Этап 3

Регулярное применение

  • автоматизировать построение ППК и анализ;
  • перепроверять компоненты на протяжении всего жизненного цикла;
  • реагировать на нарушения политики;
  • сопровождать каждую версию ПО собственным ППК.
06
Логотип МАИ
Рисунок 2
Рекомендуемый порядок выполнения КАПО разработчиком ПО
Отдельный слайд со схемой
Наглядная схема

Как выглядит основной рабочий цикл анализа

Рисунок 2 — Рекомендуемый порядок выполнения композиционного анализа разработчиком ПО
На схеме виден запуск анализа, формирование или обогащение ППК, проверка на соответствие политике безопасности, формирование отчёта и принятие мер по результатам.
07
Логотип МАИ
Контролируемый репозиторий
Что должна определить организация
Организационные требования
Политика безопасности
  • критерии выбора нового стороннего ПО;
  • правила эксплуатации контролируемого репозитория;
  • критерии отслеживания уязвимостей и лицензий;
  • сроки реакции на нарушения и порядок компенсирующих мер;
  • регулярность перепроверки используемых компонентов.
Практический смысл

Запрет на обход цепочки поставки

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

Сторонний компонент без проверки — это не удобство, а неуправляемый риск для всего продукта.

08
Логотип МАИ
Рисунок 3
КАПО для репозитория компонентов (артефактов)
Отдельный слайд со схемой
Наглядная схема

Как организация решает, можно ли использовать компонент

Рисунок 3 — Рекомендуемый порядок выполнения композиционного анализа в отношении репозитория компонентов
Схема демонстрирует предварительную загрузку запрашиваемого компонента, его анализ, проверку на соответствие политике и ветвление решения: разрешить или запретить использование.
09
Логотип МАИ
Раздел 6
Технология композиционного анализа
Из чего состоит КАПО
Четыре базовых операции
  • выявление заимствований и идентификация компонентов;
  • построение перечня программных компонентов;
  • обогащение ППК сведениями об уязвимостях и особенностях;
  • актуализация и оповещение о результатах анализа.
Как ищутся компоненты
  • обязателен анализ манифестов систем управления компонентами;
  • рекомендуется анализ сборочной среды и среды функционирования;
  • рекомендуется идентификация по хэш-кодам;
  • возможен поиск частичных включений кода и транзитивный анализ зависимостей.
10
Логотип МАИ
Рисунок 4
Технология композиционного анализа программного обеспечения
Отдельный слайд со схемой
Наглядная схема

Полный поток от файлов ПО до оповещения пользователей

Рисунок 4 — Технология композиционного анализа программного обеспечения
На схеме видно внутреннее представление анализируемого ПО, идентификацию заимствований, построение ППК, обогащение информацией об уязвимостях и дальнейшее оповещение.
11
Логотип МАИ
Раздел 7
Требования к инструменту композиционного анализа
Функции инструмента
Обязательные возможности
  • формирование, импорт и экспорт ППК в открытом машиночитаемом формате;
  • автоматическое обогащение ППК сведениями об уязвимостях и лицензиях;
  • анализ манифестов систем управления компонентами;
  • анализ контейнерных образов для контейнерного ПО;
  • формирование отчётов и журналирование выполненных операций;
  • уведомление о завершении и результатах анализа.
Рекомендуемые возможности
  • поддержка электронной почты и других каналов оповещения;
  • наличие API для встраивания в процессы разработки и CI/CD;
  • загрузка и анализ уже готовых ППК;
  • автоматическое построение ППК по доступным репозиториям разработки;
  • получение сведений из БДУ, NVD, OSV, OSSIndex, GHSA и иных баз.
12
Логотип МАИ
Раздел 8
Требования к перечню программных компонентов
ППК / SBOM
Что должно быть в ППК
  • актуальный состав компонентов и их версии;
  • возможность однозначной идентификации компонента, включая PURL или аналог;
  • сведения о лицензиях и хэш-кодах компонентов;
  • отметки об уязвимостях и иных нежелательных особенностях;
  • сопровождение каждой выпускаемой версии ПО собственным ППК.
Формат представления

Проект стандарта ориентирует разработчика на машиночитаемый формат по спецификации CycloneDX в нотации JSON. Это позволяет использовать ППК не как статичную таблицу, а как рабочий артефакт процессов CI/CD, контроля поставки и анализа уязвимостей.

CycloneDX
JSON
PURL
SPDX
13
Логотип МАИ
Приложение А
Минимальное содержимое перечня программных компонентов
Приложения стандарта
Формат ППК

Таблица с минимальным набором полей

Таблица 1 — Минимальное содержимое перечня программных компонентов
Для объяснения студентам удобно выделить логику полей: идентификация самого компонента, идентификация автора, идентификация автора ППК и фиксация времени формирования перечня.
14
Логотип МАИ
Приложение Б
Состав данных описания модели машинного обучения
Приложения стандарта
Таблица Б.1 и Б.2
  • название, версия и тип модели;
  • разработчик и лицензия;
  • привлекаемые компоненты и источник получения;
  • ссылки на документацию и цифровая подпись описания;
  • архитектура модели, семейство архитектур, наборы данных;
  • аппаратное и программное обеспечение для тренировки и исполнения;
  • типы входных и выходных данных;
  • требования к дополнительному ПО.
Таблица Б.3

Как модель должна использоваться

  • назначение модели;
  • сценарии использования вне основной сферы применения;
  • сценарии неправильного или вредоносного использования.

Это приложение особенно важно для современного ПО, где модели машинного обучения становятся частью поставляемого продукта и тоже должны быть учтены в ППК.

15
Логотип МАИ
Контактная информация
Завершающий слайд
Преподаватель
Пиков Виталий Александрович

Эксперт в области ИТ и информационной безопасности

Общий стаж работы: более 26 лет

Стаж преподавательской работы: более 10 лет

Автор более 40 научных публикаций, участник и спикер отраслевых мероприятий, авторизованный преподаватель по продуктам «Группы Астра».

Telegram: @UnderLineSecurity

Сайт: https://mascom-uc.ru/

Спасибо за внимание

Вопросы по теме КАПО?

На занятии можно дополнительно обсудить различия между КАПО, SAST, контрольной сборкой, лицензированием OSS-компонентов, а также практику внедрения регламента композиционного анализа в организации.

«Абсолютной безопасности не существует… Всё взламывается… Рано или поздно. По стоимости, времени или мотивации атакующего.»

16