Архитектурный анализ. Формирование и предоставление ППК ФСТЭК России — лекция В.А. Пикова
Авторская лекция · РБПО · полный день

Архитектурный анализ. Формирование и предоставление ППК ФСТЭК России

Полный курс по практикам РБПО за пределами фаззинга и статического анализа кода: что входит в архитектурный анализ, как оценивать поверхность атаки, какие защитные опции компилятора и привилегии анализировать, как формировать Перечень программных компонентов и предоставлять его в ФСТЭК России.

17
разделов лекции
9
техник анализа
4
процесса РБПО ГОСТ 56939
10
нормативных документов
Преподаватель Пиков Виталий Александрович
Раздел курса Безопасная разработка ПО (РБПО)
Нормативная база ГОСТ Р 56939-2024, Методика ВУ и НДВ, Приказы ФСТЭК №76, №121, №240
Лекция охватывает 4 связанных процесса РБПО по ГОСТ Р 56939-2024
№6
Разработка, уточнение и анализ архитектуры программного обеспечения
№7
Моделирование угроз и разработка описания поверхности атаки
№16
Использование инструментов композиционного анализа
№17
Проверка кода на предмет внедрения вредоносного ПО через цепочки поставок
01 · Мотивация

Зачем эта лекция

Современная разработка средств защиты информации в России проходит в условиях, когда «наложенные» средства защиты (NGFW, антивирусы, SOC) необходимы, но недостаточны. Безопасность должна быть встроена в продукт с этапа проектирования.

Стратегия: технологическая независимость + доверенность

Президентом РФ поставлена задача достижения технологической независимости. Импортозамещение — лишь первый шаг. На уровне разработки СЗИ критически важны:

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

Системный подход на практике

  • Secure by Design — проектирование и разработка приложений в парадигме безопасной разработки.
  • Школа продуктовой безопасности — формирование инженерной и образовательной культуры.
  • Центры компетенций — объединение усилий по углублённому анализу критических компонентов.

Почему «архитектурный анализ»? Исторически название связано с развитием курсов ФСТЭК России на базе ИСП РАН по практикам РБПО и наименованиями разделов Методики ВУ и НДВ. Всё то, что не «фаззинг и сценарное/модульное тестирование» и не «статический анализ кода», было объединено в курс с таким названием.

02 · Регулирование

Требования ФСТЭК России

Архитектурный анализ — не «ритуал лаборатории», а обязанность разработчика. Это закреплено в трёх ключевых документах ФСТЭК.

Приказ №76

«Требования по безопасности информации…», раздел IV, п. 17. Тестирование, испытания по выявлению уязвимостей и НДВ проводятся изготовителем в ходе приёмочных испытаний.

Приказ №121

«О внесении изменений в положение о системе сертификации…», п. 12. При проверке организации производства проверяется внедрение заявителем процедур безопасной разработки в соответствии с требованиями.

Методика ВУ и НДВ

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

Ключевой принцип: разработчик отвечает, лаборатория переиспользует, контролирует, частично дополняет. В проекте новой Методики ВУ и НДВ 2024 этот принцип сделан явным и недвусмысленным.

03 · Нормативная база

Карта актуальной нормативной базы

10 ключевых документов, формирующих регулирование РБПО и сертификации СЗИ. Часть документов уже действует, часть в поздних стадиях разработки — но рекомендуется ознакомиться с обоими типами для понимания вектора развития требований.

ДокументСтатусЧто регламентирует
ГОСТ Р 56939-2024 «Безопасная разработка. Общие требования» действует с 20.12.2024 Сертификационные испытания РБПО. Заменил редакцию 2016 года.
ГОСТ Р 71207-2024 «Статический анализ ПО. Общие требования» действует с 01.04.2024 Защитные меры РБПО, требования к статическим анализаторам и процессу их применения.
ГОСТ Р 71206-2024 «Безопасный компилятор C/C++» действует Защитные меры РБПО в части компиляции (см. опции компилятора в разделе 06).
ГОСТ Р 59548-2022 «Регистрация событий безопасности» действует Сертификационные испытания СЗИ, формат и состав событий — особенно для SIEM.
Приказ ФСТЭК №240 от 01.12.2023 (с изменениями от Приказа №230 от 30.06.2025) действует Порядок проведения сертификации процессов РБПО СЗИ. Изменения 2025 года привели сертификацию в соответствие с ГОСТ Р 56939-2024 и ввели обязательное Руководство по РБПО.
Информационное письмо ФСТЭК от 25.09.2024 действует О порядке испытаний и поддержки безопасности СЗИ. Взаимодействие с Центром исследования безопасности системного ПО.
Информационное письмо ФСТЭК от 25.10.2024 (формализовано как №240/24/39 от 10.01.2025) действует О повышении безопасности СЗИ с интерпретаторами, веб-серверами и серверами приложений.
Методика ВУ и НДВ ФСТЭК России 2024 в разработке Сертификационные испытания СЗИ. Вводит концепцию ППК на входе в испытания, требования к ПОД.1, КАО.1, КАО.2.
ГОСТ КАПО «Композиционный анализ ПО. Общие требования» в разработке Регламентация процессов композиционного анализа. Учитывается в сертификации СЗИ в части формата ППК.
ГОСТ Р «Методика оценки уровней зрелости РБПО» в разработке Три уровня зрелости: соответствие 56939-2024 + два повышенных. Разрабатывается АО «Лаборатория Касперского».

Главная мысль: регулирование разрабатывается рабочей группой при ФСТЭК России на базе ИСП РАН с участием АО «Лаборатория Касперского», АО «ИнфоТеКС», АО «Позитив Текнолоджиз», ООО «РусБИТех-Астра», АО «СберТех», ООО НТЦ «Фобос-НТ», ООО «ЦБИ», АО НПО «Эшелон». Тексты находятся в поздних стадиях, возможны коррективы — рекомендуется отслеживать.

Часть I · процессы №6 и №7
Архитектурный анализ
Разработка и анализ архитектуры ПО (процесс №6), моделирование угроз и описание поверхности атаки (процесс №7). Какие техники статического и динамического анализа применять, как автоматизировать процесс.
04 · Определение

Что такое архитектурный анализ

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

Где он находится в общей картине РБПО

Если разделить все практики поиска уязвимостей и НДВ на крупные классы, картина получается такая:

Статический анализ кода

Поиск дефектов и уязвимостей по исходному коду без его выполнения. См. отдельную лекцию по SAST.

Фаззинг и сценарное тестирование

Поиск уязвимостей через подачу некорректных или граничных входных данных. См. лекцию по нефункциональному тестированию (процесс №18).

Архитектурный анализ

Всё остальное: конфигурации, опции компилятора, привилегии, известные уязвимости, хардкод, бинарный поиск ВПО, web-пентест, песочница, КАПО.

Главный вывод: архитектурный анализ — это не «один инструмент» и не «одна методика». Это зонтичное название для нескольких техник, у каждой свои инструменты и свои нормативные требования.

05 · Стратегия и тактика

Поверхность атаки и приоритизация

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

85% уязвимостей — в транзитивных зависимостях

По данным CodeScoring, 85% уязвимостей находятся в транзитивных зависимостях (библиотеках, которые импортируют ваши прямые зависимости). При определении поверхности атаки критически важно отслеживать, куда именно попадает поток данных — в какие сторонние приложения и библиотеки, а не только в очевидный исполняемый файл.

Стратегия: с каких компонентов начинать

Анализ начинаем с компонентов, наиболее подверженных угрозам и доступных наиболее слабым нарушителям:

  • Вспомогательные сервисы, не реализующие функции безопасности и бизнес-логику. Например: мессенджер или SIP-сервер, «для удобства» встроенный в межсетевой экран типа «А».
  • Web-сервисы — каждый второй мнит себя пентестером, нарушителей много.
  • Парсеры пользовательского ввода — обработчики файлов, изображений, документов. Любой код, разбирающий внешние данные.

Тактика: приоритет по языкам программирования

  • C/C++ — высокий приоритет анализа (нет управляемой памяти, классические уязвимости переполнений).
  • C#, Java, Python — обычно безопаснее (управляемая память), но в управляемом коде бывают вставки на нативных языках (unsafe C#, JNI в Java и т. д.).
  • Движки интерпретаторов и SDK — как правило написаны в том числе на нативных языках программирования.

Советы бывалого

  • Смотрите документацию — скриншоты тестирования и рекламные материалы на сайте разработчика. Там всплывает функционал, который прячут в сертификационной документации.
  • Различные подменю загрузки картинок для аватарки, функции загрузки превью документов и иные «незначительные» возможности часто скрывают за собой огромные библиотеки-парсеры.
  • Парсеры исходных текстов / байткода в составе интерпретатора, как правило, не являются поверхностью атаки на СЗИ — в типовых сценариях запуск доступен только администратору, а не произвольному пользователю.
06 · Статический анализ

Статический архитектурный анализ — 6 техник

Шесть направлений анализа, не связанных с выполнением кода. Каждое направление — отдельная техника со своими инструментами.

1

Анализ конфигураций

Многие популярные службы (sshd, nginx, прокси-серверы) могут быть настроены небезопасно. Анализаторы конфигураций оценивают соответствие рекомендациям по безопасности — обычно ищутся прямо на GitHub под нужный сервис.

sshd-config-check nginx-amplify
2

Опции компилятора и бинарных файлов

Защитные опции, задаваемые при компиляции: ASLR (случайное размещение памяти), STACK-PROT (защита от переполнения стека), READ-ONLY-RELOC (запрет записи в исполняемые страницы), IMMEDIATE-BIND (привязка символов при загрузке), FORTIFY-SOURCE.

3

Анализ прав и возможностей

DAC (дискреционный принцип); SUID/SGID (любой пользователь запускает с правами владельца); Linux capabilities (минимально необходимые привилегии — bind < 1024, raw-сокеты); параметры монтирования noexec, nosuid, nodev для доп. барьеров защиты.

getfacl getcap mount
4

Анализ известных уязвимостей

Альфа и Омега работы эксперта. Постановка процесса вычищения CVE из состава продукта — самая болезненная активность для команды, впервые сталкивающейся с сертификацией. За CVE отвечает разработчик, не лаборатория: устранение либо обоснование неприменимости.

Dependency-Track Trivy ИСП РАН gitlab
5

Поиск хардкода и лексем

Поиск в исходных текстах СЗИ хардкодной чувствительной информации (пароли, ключи, токены) и текстовых комментариев, потенциально указывающих на присутствие НДВ. Базовый анализ коммитов на маркерные слова, диапазоны IP. Встраивание в сборочный конвейер для каждого коммита.

gitleaks trufflehog detect-secrets
6

Бинарный поиск признаков ВПО

Поиск бинарных последовательностей, потенциально свидетельствующих о наличии типового вредоносного кода. В кодовой базе СЗИ могут быть бинарные вставки, конкретный вредоносный исходный код, механизмы динамической кодогенерации. Нельзя исключать НДВ в тулчейнах.

YARA ClamAV центры компетенций

Важно про CVE. При выявлении уязвимой версии пакета именно разработчик, а не лаборатория, отвечает за разбор ситуации. Рекомендуется (в ряде случаев требуется) внедрение средств автоматизированного отслеживания известных уязвимостей в пакетной базе — они в том числе могут помочь в формировании машиночитаемого формата ППК.

07 · Динамический анализ

Динамический архитектурный анализ — 3 техники

Анализ работающего кода. В отличие от фаззинга, акцент не на подаче входных данных, а на наблюдении за поведением системы и выявлении нежелательных эффектов.

1

Web-пентест

«Несмотря на все методики и классификаторы — хороший пентест это творчество». Однако перед творческой частью необходимо проанализировать систему всеми имеющимися сканерами на предмет выявления типовых проблем.

2

Песочница

Что ищем (выборочно): соединения с недекларированными сетевыми ресурсами; недекларированные чтение и запись файлов; запуск недекларированных процессов; присутствие чувствительной информации в открытом виде; использование небезопасных протоколов.

strace sysdig eBPF tooling
3

«Блесна» — анализ помеченных данных

Специализированный инструмент ИСП РАН для поиска утечек чувствительных данных (паролей, ключей) в памяти. Полносистемный анализ — исследуется весь стек развёрнутого ПО, выявляются утечки через границы виртуальных адресных пространств. Учёт особенностей аппаратуры (конвейер команд, прерывания, трансляция адресов, DMA).

ИСП РАН

Ключевая идея «Блесны» — автоматизация экспертизы исполняемого кода с минимальными требованиями к квалификации пользователей. Достаточно наличия исполняемого бинарного кода и описания сигнатур анализируемых функций.

08 · Контейнеризация

Контейнеры и Kubernetes

Реализация СЗИ в контейнерном исполнении не освобождает разработчика от обязанностей по анализу компонентов. Контейнер — не «вещь в себе».

Что нельзя делать

  • Скачивать пресобранные образы с недоверенных репозиториев.
  • Собирать наполнение образов самостоятельно (за исключением переиспользования компонентной базы из состава сертифицированных сред исполнения).
  • Не выполнять статический и динамический анализ составляющих ПА или реализующих ФБ компонентов, запущенных в контейнерах.

Главный принцип: компонентная база контейнеров точно так же входит в состав СЗИ и подлежит анализу. Не является «вещью в себе».

Оркестраторы (Kubernetes)

В оркестраторах добавляются свои парадигмы управления доступом субъектов к объектам — микросервисы, поды, ServiceAccount, RBAC, NetworkPolicy. На архитектуру и её безопасность необходимо смотреть дополнительно в парадигме выбранного оркестратора.

09 · Автоматизация

Автоматизация архитектурного анализа

Больше автоматизации — меньше «сертификации». Регулярность анализа заложена в Требованиях. Автоматизация позволяет встроить проверки в процесс разработки и не возвращаться к ним вручную.

Декларативный подход

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

A

Ansible

Движок автоматизации с готовыми плейбуками для проверки конфигураций безопасности на множестве серверов одновременно. Реюзабельные роли — сообщество публикует на Ansible Galaxy.

B

Inspec

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

docs.chef.io/inspec CIS Benchmarks
10 · Практика

Найди архитектурную ошибку: 6 кейсов

Шесть архитектурных решений, типичных для разработки СЗИ. В каждом — два варианта: один с дефектом, другой соответствующий требованиям РБПО. Прочитайте сценарий, выберите вариант, который кажется правильным, затем раскройте подсказку.

1 Парсер недоверенных данных в СЗИ
Изоляция
Веб-интерфейс СЗИ принимает загрузку JSON-файлов конфигурации от администратора. Где разместить парсер JSON?
A Вариант A
Парсер встроен в основной процесс СЗИ и работает с правами этого процесса (часто — администратор системы). «Удобно и быстро».
B Вариант B
Парсер вынесен в изолированный процесс с минимальными привилегиями (NoNewPrivileges, ограничение памяти, без доступа к сети). Результат передаётся в основной процесс через IPC.
B · №7 Парсеры — критическая часть поверхности атаки (см. процесс №7 «Моделирование угроз и разработка описания поверхности атаки» ГОСТ Р 56939-2024 и ПОД.1 Методики ВУ и НДВ). При компрометации парсера в варианте A атакующий получает контроль над всем СЗИ. Изоляция в варианте B ограничивает blast radius и соответствует принципу least privilege.
2 Хранение секретов
Хардкод vs Vault
СЗИ нужен пароль для подключения к внутренней БД. Где его хранить?
A Вариант A
# config.py
DB_PASSWORD = "S3cur3P@ss2024!"  # удобно для разработки
DB_HOST = "db.internal.local"
B Вариант B
# config.py
from vault_client import get_secret

DB_PASSWORD = get_secret("db/credentials/password")
DB_HOST = get_secret("db/connection/host")
B · техника №5 Поиск хардкода — обязательная часть архитектурного анализа. Хардкод секретов = потенциальная компрометация при доступе к коду или артефактам сборки. Любой случайный коммит, любая публикация скриншота с куском конфига, любой утёкший образ контейнера = инцидент. Vault, sealed-secrets, переменные окружения с restricted-доступом — все они правильнее. Базовый сканер хардкода (gitleaks, detect-secrets) должен стоять в pre-commit hook.
3 Привилегии исполняемого файла
SUID vs Capabilities
Утилите управления СЗИ нужно слушать порт 80 (привилегированный) и читать защищённые файлы конфигурации.
A Вариант A
# Установить SUID-бит — любой пользователь
# запустит утилиту с правами root
$ chmod u+s /usr/local/bin/szi-tool
$ ls -l /usr/local/bin/szi-tool
-rwsr-xr-x 1 root root 12345 ... szi-tool
B Вариант B
# Минимально необходимые capabilities
$ setcap 'cap_net_bind_service,cap_dac_read_search=+ep' \
    /usr/local/bin/szi-tool

$ getcap /usr/local/bin/szi-tool
/usr/local/bin/szi-tool = cap_net_bind_service,cap_dac_read_search+ep
B · техника №3 SUID — расширение DAC, при котором любой пользователь запускает программу с правами владельца. При наличии в утилите хоть одной уязвимости вся система компрометируется. Linux capabilities — расширение DAC, реализующее принцип минимально необходимых привилегий: при запросе привилегированной операции ядро проверяет наличие конкретной capability. Утилита получает только нужные права (привязка к порту < 1024 = CAP_NET_BIND_SERVICE), а не «всё root».
4 Установка стороннего компонента
Цепочка поставки
В сборочный конвейер СЗИ нужно подключить npm-пакет fs-extra для удобной работы с файловой системой.
A Вариант A
# build.yml
- run: npm install fs-extra@latest

# package.json
{
  "dependencies": {
    "fs-extra": "latest"
  }
}
B Вариант B
# .npmrc — внутренний реестр
registry=https://registry.internal.local/npm

# package.json — фиксированная версия
{
  "dependencies": { "fs-extra": "11.2.0" }
}

# build.yml — формирование ППК
- run: cyclonedx-bom > ppk.cdx.json
- run: verify-ppk ppk.cdx.json
B · №16, №17 ГОСТ КАПО + ГОСТ Р 56939-2024 (процесс №16 «Использование инструментов композиционного анализа», процесс №17 «Проверка кода на предмет внедрения вредоносного программного обеспечения через цепочки поставок») требуют контролируемой цепочки поставки и формирования ППК. @latest — это supply-chain-уязвимость в потенциале: завтра злоумышленник публикует версию 11.2.1 с закладкой, и ваш CI её затягивает. Контролируемый репозиторий + фиксированная версия + регулярная сверка ППК с базами CVE — обязательная практика.
5 Контейнерный образ СЗИ
Контролируемая сборка
СЗИ поставляется в виде Docker-образа. Как описать Dockerfile?
A Вариант A
FROM ubuntu:latest

RUN apt-get update && apt-get install -y \
    python3 nginx postgresql redis \
    curl wget jq vim less ...

COPY . /app
CMD ["python3", "/app/main.py"]
B Вариант B
FROM registry.internal.local/ubuntu:22.04@sha256:abc123...

COPY ppk.cdx.json /opt/szi/
RUN apt-install --from-ppk /opt/szi/ppk.cdx.json \
    --no-install-recommends

USER 10001
COPY --chown=10001:10001 . /app
CMD ["python3", "/app/main.py"]
B · раздел 08 Реализация СЗИ в контейнерном исполнении не тождественна возможности скачивать пресобранные образы с недоверенных репозиториев. Компонентная база контейнеров входит в состав СЗИ и подлежит анализу. FROM ubuntu:latest — это «движущаяся цель» (что внутри сегодня — неизвестно). Фиксация digest-а образа (@sha256:...), внутренний registry, установка строго из ППК и запуск под непривилегированным пользователем — минимально необходимый набор практик.
6 Логирование событий безопасности
ГОСТ Р 59548-2022
СЗИ должно фиксировать события входа пользователя в систему. Какой формат лога выбрать?
A Вариант A
# текстовая строка в логе
logger.info(
    f"User {user.name} logged in"
    f" from {request.ip} at {ts}"
)
B Вариант B
# событие безопасности по 59548-2022
log_security_event(
    event_id="AUT.LOGIN.SUCCESS",
    subject_id=user.id,
    subject_type="user",
    timestamp=ts,
    source_ip=request.ip,
    severity="info",
    extra={...}
)
B · 59548-2022 ГОСТ Р 59548-2022 «Регистрация событий безопасности» регламентирует обязательные поля события: идентификатор, тип субъекта/объекта, источник, временная метка, серьёзность. Текстовая строка в варианте A не парсится автоматически и не агрегируется в SIEM. В варианте B событие машиночитаемо, попадает в SIEM в стандартизированном виде. Особенно критично для СЗИ, основная функция которых — накопление и обработка событий безопасности.
Часть II · процессы №16 и №17
Формирование и предоставление ППК ФСТЭК России
Использование инструментов композиционного анализа (процесс №16) и проверка кода на внедрение вредоносного ПО через цепочки поставок (процесс №17). Что такое Перечень программных компонентов, как его формировать и куда отправлять.
11 · КАПО

Композиционный анализ ПО (КАПО)

КАПО — отдельный процесс №16 в ГОСТ Р 56939-2024 («Использование инструментов композиционного анализа»). Концепция ППК как машиночитаемого перечня программных компонентов прорабатывалась в рабочей группе при ФСТЭК России с 2022 года.

Цели композиционного анализа

  • Инвентаризация всех видов сторонних компонентов в продукте.
  • Обогащение данных компонентов информацией из баз известных уязвимостей (CVE, БДУ ФСТЭК).
  • Проверка лицензионной чистоты, репутации компонентов и иных особенностей.
  • Регулярный процесс в организации — не разовая активность перед сертификацией.

Ключевое решение рабочей группы: уйти от собственной нотации формата ППК и использовать расширенный стандартизованный CycloneDX — на момент решения была актуальна версия 1.6, в марте 2026 вышла версия 1.7 (с поддержкой Traffic Light Protocol для распространения BOM). Использование стандарта позволяет переиспользовать существующий tooling экосистемы SBOM.

12 · Формат

ППК и SBOM

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

Что обязано быть в ППК

  • Имя и версия компонента — точная фиксация, без диапазонов.
  • Тип компонента — библиотека, контейнерный образ, исполняемый файл, fragment кода.
  • Source repository / origin — откуда взят компонент.
  • Хэш — для верификации целостности.
  • Лицензия — для проверки совместимости и лицензионной чистоты.
  • Связи между компонентами — кто зависит от кого (transitive deps).

Формат CycloneDX

CycloneDX — открытый стандарт SBOM, который российская рабочая группа выбрала за основу. Текущая версия — 1.7 (релиз марта 2026), также продолжает применяться 1.6. Расширения для ФСТЭК добавляют специфичные поля (классификатор по БДУ, уровень доверия и т. п.).

13 · Формирование

Формирование ППК

Звучит просто — «соберите список компонентов в формате CycloneDX». На практике большинство команд натыкаются на одни и те же грабли.

Типовые сценарии формирования

На этапе сборки

SBOM-генератор (cdxgen, syft) подключается к build-конвейеру и формирует ППК автоматически по результатам разрешения зависимостей.

Из готового артефакта

Анализ собранного бинарника / контейнерного образа для формирования ППК «постфактум». Менее точно, но применимо для legacy-продуктов.

Ручная разметка

Для компонентов, не охваченных автоматическими инструментами (закрытые библиотеки, кастомные сборки) — ручное добавление в ППК с обоснованием.

Главная боль: разработчики, как правило, не знают точно, из каких компонентов состоит их продукт. Особенно это касается транзитивных зависимостей и тех компонентов, что попали в продукт «случайно» (через base-образы, через языковые runtime'ы, через embedded-инструменты сборки). Первый запуск SBOM-генератора часто — это откровение.

Инструменты формирования ППК

1

cdxgen

Универсальный SBOM-генератор от OWASP. Поддерживает Java, JavaScript, Python, Go, Rust, .NET и десятки других стеков. Выдаёт CycloneDX из коробки.

2

Syft

Анализатор контейнерных образов и файловых систем. Хорошо подходит для анализа готовых артефактов «постфактум».

3

Dependency-Track

Платформа для приёма ППК и непрерывного мониторинга компонентов на наличие новых уязвимостей. Подключается к НБД (CVE, OSS Index, Snyk DB).

14 · Предоставление

Предоставление ППК в ФСТЭК России

Сформированный ППК подаётся в составе сертификационных материалов. Существует выделенная инфраструктура для приёма и проверки ППК — на платформе ИСП РАН.

Инфраструктура

  • Платформа SBOM-инструментов: gitlab.community.ispras.ru — gitlab-инстанс ИСП РАН, где разрабатывается tooling для работы с ППК.
  • SBoM-updater / sbom-checker: инструменты для верификации формата и содержания ППК до отправки.
  • Центр исследования безопасности системного ПО — подразделение ФСТЭК России. Контакт публиковался в выступлении Д. Н. Шевцова на Kaspersky CyberDay 2024.

Дискуссия и обсуждения

Активная дискуссия по инструментам и практикам генерации ППК / SBOM ведётся в открытом сообществе — в Telegram-чате t.me/sdl_fld (ветка /6495), в gitlab-issues ИСП РАН, на встречах сообщества, посвящённых особенностям внедрения.

Что важно понимать: подача ППК — не «отправил файл и забыл», а живой процесс. ППК продукта обновляется при каждом изменении состава компонентов; для каждого CVE, найденного в компоненте, разработчик готовит обоснование (устранили / обоснованно неприменимо / ложное срабатывание). Регулярность анализа — обязательное требование.

15 · Реальность

Проблематика КАПО — три угла зрения

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

Разработчик

Не знает, из каких компонентов состоит его продукт. Неправильно собирает ППК — пропускает транзитивные зависимости, не фиксирует версии, не подключает обогащение CVE.

Лаборатория

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

Регулятор

Сталкивается с большим объёмом материалов в исследовании отрасли open-source. Каждый разработчик подаёт ППК со «своими» компонентами — а одни и те же популярные библиотеки повторяются у всех.

Стратегический ответ ФСТЭК: создание Центра исследования безопасности системного ПО на базе ИСП РАН. Идея в том, чтобы анализ популярных компонентов открытого кода выполнялся централизованно, а конкретные разработчики переиспользовали результаты этого анализа в своих ППК. В Методике ВУ и НДВ 2024 сделан явный акцент: уровень качества и полноты исследований привязан к работам Центра.

16 · Картография

Связь с другими стандартами

ГОСТ Р 56939-2024 — не одиночный документ, а центр созвездия. Эта лекция охватывает 4 процесса (№6, №7, №16, №17), и они опираются на серию связанных стандартов и методик.

ИСПЫТАНИЯ СЗИ
Методика ВУ и НДВ ФСТЭК России 2024
№6
Разработка и анализ архитектуры ПО
№7
Моделирование угроз и поверхность атаки
ОСНОВА
ГОСТ Р 56939-2024 РБПО
№16
КАПО — композиционный анализ
№17
Проверка кода на ВПО через цепочки поставок
71206
Безопасный компилятор C/C++
59548
Регистрация событий безопасности
ФОРМАТ ППК
ГОСТ КАПО (в разработке)
ОЦЕНКА
Методика уровней зрелости РБПО (в разработке)
ПРИКАЗ №240
Сертификация процессов РБПО

Что это значит на практике. Команда, которая внедряет процессы РБПО, должна одновременно держать в голове все эти документы. Архитектурный анализ — это про №7 (поверхность атаки), КАПО — про №16, нефункциональное тестирование — про №18 (отдельная лекция), статанализ — про требования ГОСТ 71207. И всё это в рамках ГОСТ 56939-2024 как единого нормативного зонтика.