Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Билет 12
Теоретический вопрос
Объясните, как динамическая зависимость C/C++ получает координаты компонента: от .so-файла из DT_NEEDED к системному пакету через dpkg -S / apt, что даёт имя пакета, версию и дистрибутив (DEB-координаты). Почему этот маппинг и есть ключевой шаг обогащения SBOM для legacy-C/C++? Что такое unresolved library — .so, который не разрешается ни в один установленный пакет, — и почему его нельзя ни выкинуть, ни выдать за разрешённый?
Практический вопрос
Мини-кейс После
readelf -dполучен списокNEEDED-библиотек. Часть из нихdpkg -Sсопоставил с DEB-пакетами, аlibcustom.so.1не нашёлся ни в одном пакете. Опишите, как оформить маппинг найденных, что занести в реестр unresolved и с каким confidence отдать спорные записи в сервис вердиктов.
readelf -d ./app | grep NEEDED
ldd ./app | awk '{print $3}' | grep -v '^$'
dpkg -S /usr/lib/x86_64-linux-gnu/libssl.so.3 # → libssl3: ...
dpkg -S /path/to/libcustom.so.1 # → no path found ⇒ unresolved
Что должен показать ответ
- Источник факта:
dpkg -S/aptдля ELF→DEB маппинга; для нерешённых — явная запись в реестр, а не молчаливый пропуск. - Инструмент:
readelf -d,ldd,dpkg -S; cdxgen для сборки обогащённого CycloneDX. - Владелец решения: судьба unresolved-записей (доразметка, принятие, эскалация) — за сервисом аудита/вердиктов по политике.
- Нормативная опора: ГОСТ Р 56939-2024, NIST SP 800-161 Rev.1, BSI TR-03183-2 v2.1.0.
- Evidence: таблица соответствия
.so↔DEB-пакет; реестр unresolved libraries с confidence.