Анализ компонентов с открытым исходным кодом
OSA — решения, которые обеспечивают анализ открытого исходного кода. Сервисы данного класса находят в используемых библиотеках потенциальные уязвимости и проблемы с лицензиями, что позволяет преодолеть подобные трудности уже на этапе разработки.
Зачем нужен OSA?
Современная разработка во многом построена на использовании открытого исходного кода. Однако с подключением каждой библиотеки могут возникать транзитивные зависимости, ведь она в свою очередь использует ещё несколько похожих элементов от сторонних разработчиков. Отследить все эти зависимости и проверить исходный код на угрозы невозможно без специальных инструментов. Именно эту задачу решает Open Source Analysis. Иногда его также называют Open Source Auditing или «Аудит открытых источников».
Чем OSA отличается от SCA
Open Source Analysis часто используется в связке с Software Composition Analysis (SCA). Эти два инструмента дополняют друг друга, но всё же решают разные задачи:
- SCA или анализ компонентного состава ПО, позволяет выявить в нём все сторонние компоненты, в том числе с открытым исходным кодом. Software Composition Analysis изучает лицензии компонентов и их внутренние зависимости.
- OSA или анализ компонентов с открытым исходным кодом фокусируется именно на их глубоком изучении с целью поиска возможных уязвимостей.
Использование SCA часто предшествует применению OSA.
Как работает OSA
- Выявление всех компонентов с открытым исходным кодом. Для этого используются сведения из Software Bill of Materials (SBOM) — спецификации программного обеспечения. Если такого файла нет, некоторые комплексные сервисы формируют его самостоятельно, например, такую задачу решает Solar appScreener. Результатом становится полный перечень компонентов с открытым исходным кодом, а также информация об имеющихся в них зависимостях.
- Сопоставление с известными уязвимостями. Если проблема имеется в каком-либо из используемых компонентов, она сопоставляется с одной или несколькими базами уязвимостей. Найденные совпадения проверяются на возможность эксплуатации в конкретном продукте. Также оцениваются риски использования этих компонентов.
- Проверка лицензий. OSA определяет разрешённые, условно разрешённые и запрещённые типы лицензий и даёт возможность разработчикам использовать продукт в соответствии с законодательством.
Преимущества OSA для разработчиков
- Устранение уязвимостей или замена потенциально опасных компонентов с открытым исходным кодом на этапе разработки.
- Соблюдение лицензионных требований, которое позволяет компании избежать судебных исков и штрафов.
- Комплексное управление безопасностью. Удобная статистика с наглядными отчётами позволяет спланировать работу по исправлению уязвимостей с учётом их уровня риска.
- Выявление необслуживаемых компонентов для устранения рисков до релиза. С помощью OSA можно определить дату последнего релиза, а также возможные признаки заброшенных разработчиками библиотек.
Использование OSA совместно с SAST обеспечивает качественный контроль безопасности на этапе разработки.