Habr<p>Секреты успешного SCA: использование режима evinse в cdxgen. Часть I</p><p>Привет, читатели Habr! С вами Анастасия Березовская, инженер по безопасности процессов разработки приложений в Swordfish Security. Сегодня мы расскажем про еще один инструмент, встречающийся в построении процессов Software Composition Analysis (SCA) — сdxgen . Он, как и популярный сканер Trivy, разбирает файлы манифестов, бинарные и другие файлы для извлечения информации о внешних компонентах, используемых в проекте. Кстати, о Trivy мы писали в одной из наших предыдущих статей, заходите почитать . Главным объектом нашего анализа стал новый и очень интересный режим работы cdxgen под названием evinse, представленный авторами в 2023 году. Evinse по исходному коду предоставляет расширенную информацию об evidence — свидетельства присутствия компонента в исходном коде. На момент написания статьи cdxgen является единственной Open Source-утилитой, которая обладает подобной функциональностью. Мы опишем математику, используемую "под капотом", и объясним, почему решили интегрировать результаты работы режима в наших продуктах. Статья получилась достаточно объемной, поэтому мы решили разделить её на две части. В первой мы рассмотрим, что представляет собой объект Evidence с точки зрения SBOM. Опишем базовые математические понятия, которые необходимы для понимания работы утилиты evinse в части построения расширенного SBOM. Здесь же рассмотрим первый вид нарезки использования. Во второй части статьи мы поговорим про остальные виды нарезок — срезы потоков данных и достижимости. Разберем, наконец-то, как из них получается SBOM. Итак, погнали!</p><p><a href="https://habr.com/ru/companies/swordfish_security/articles/840922/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/swordfis</span><span class="invisible">h_security/articles/840922/</span></a></p><p><a href="https://zhub.link/tags/cdxgen" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cdxgen</span></a> <a href="https://zhub.link/tags/evinse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>evinse</span></a> <a href="https://zhub.link/tags/SCA" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SCA</span></a> <a href="https://zhub.link/tags/software_composition_analysis" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software_composition_analysis</span></a> <a href="https://zhub.link/tags/ast" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ast</span></a> <a href="https://zhub.link/tags/slice" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>slice</span></a> <a href="https://zhub.link/tags/program_analysis" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>program_analysis</span></a> <a href="https://zhub.link/tags/static_analysis" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>static_analysis</span></a> <a href="https://zhub.link/tags/sbom" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sbom</span></a> <a href="https://zhub.link/tags/cyclonedx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cyclonedx</span></a></p>