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

В этом поможет SCA-анализ кода (Software Composition Analysis). Ниже мы расскажем, для чего необходим этот вид сканирования, как он внедряется и используется.

Что такое анализ кода SCA и зачем он нужен

SCA-анализ, или анализ состава ПО, – автоматизированное сканирование ПО с целью нахождения фрагментов с открытым исходным кодом (OSS, Open Source Software) и их дальнейшей проверки. Такая технология позволяет выявить возможные уязвимости в сторонних компонентах, устаревшие элементы, а также проблемы с лицензированием.

Инструменты SCA широко используются разработчиками и поставщиками программного обеспечения, в частности командами DevOps. Также с помощью SCA можно проверить на предмет уязвимостей и уже готовое эксплуатируемое ПО.

Основные задачи SCA-анализа кода:

  • Обнаружение компонентов сторонних разработчиков, использование которых повышает риск инцидентов ИБ.
  • Отслеживание всех open-source-компонентов программного обеспечения.
  • Обнаружение закладок в сторонних библиотеках.
  • Помощь в создании и применении политик ПО с открытым кодом.
  • Непрерывный мониторинг для повышения производительности и отслеживания проблем безопасности программного обеспечения.
  • Отправка оповещений об обнаруженных уязвимостях в разрабатываемых и поставляемых продуктах.

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

Как работает SCA-анализ кода

Инструменты SCA анализируют кодовую базу приложения, чтобы распознать заимствованные компоненты и выявить уязвимости. Это происходит так:

  • Чтобы выполнить анализ, необходимо загрузить в инструмент файлы сборки ПО. Инструмент просканирует кодовую базу с помощью тактик идентификации, например списка хешей файлов приложений. Он вычислит хеши анализируемого ПО и сравнит их с позициями перечня.
  • Если обнаружатся совпадения, инструмент SCA найдет ПО – источник компонентов и проанализирует его исходный код. На этом этапе обнаружится, какие именно фрагменты заимствованы.
  • После идентификации сторонних компонентов инструмент соберет спецификацию материалов и сравнит ее с базами уязвимостей. Таким образом, выявятся вероятные недостатки анализируемого ПО.

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

Как выбрать инструмент для анализа кода SCA

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

  • Удобство эксплуатации. В это понятие входят три слагаемых: автоматизация процессов, интуитивно понятный интерфейс, легкая интеграция. Если эти условия не соблюдаются, инструмент скорее затруднит процесс разработки, чем принесет пользу.
  • Возможность анализа зависимостей и их точной интерпретации. Без этого не получится составить детальную картину о приложении.
  • Наличие средств контроля использования OSS-кода. Инструмент должен обеспечивать автоматическое применение правил безопасности, сформированных организацией.
  • Предоставление детальной отчетности для расшифровки результатов проверки. Из отчетов должно быть понятно, какие уязвимости были выявлены и какие меры рекомендованы для их устранения.
  • Возможность автоматизированного получения подробных рекомендаций по решению проблем программного обеспечения.

Пример комплексного отечественного решения для SCA-анализа кода –Solar appScreener. Продукт позволяет обеспечить контроль безопасности ПО, предотвратить инциденты, связанные с закладками в open-source-библиотеках. Также он выполняет другие виды анализа приложений (SAST, DAST) и предоставляет подробный отчет по результатам всех проверок.

инструменты для sca анализа кода

Заключение

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

SCA-анализ кода можно выполнять с помощью комплексного продукта Solar appScreener. Решение проверяет сторонние компоненты кода на основе нескольких баз уязвимостей, в том числе собственных, дополненных экспертами «Ростелеком-Солар». Продукт легко встраивается в цикл безопасной разработки программного обеспечения, быстро выявляет уязвимости и предоставляет детальную отчетность в удобной форме.