Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин 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

Что должен показать ответ

Опорные материалы