На сегодняшний день нет практически ни одной программы, где не задействовали бы Open Source — программное обеспечение с открытым исходным кодом. Неумелое использование компонентов и недостаточная степень проверки могут испортить любой продукт, а вместе с ним и лишить лояльностей пользователей.
Алексей Смирнов основал компанию CodeScoring — она занимается композиционным анализом программных продуктов, благодаря которому разрабатывать ПО с использованием Open Source можно безопасно. Алексей провёл вебинар на тему работы с OSS-компонентами и рассказал о работе своей платформы. Полную версию вебинара смотрите здесь, а мы подготовили материал по мотивам встречи.
Проблематика безопасной разработки c OSS
Количество Open Source-проектов растёт, с каждым годом их становится всё больше, а проекты с открытым исходным кодом включаются во все цепочки разработки. На примере экосистемы Java видно, что только в 21 году появилось большое количество новых уникальных компонентов и версий программных пакетов. Аналогичные данные можно увидеть и по JavaScript, и по Python-экосистемам.
К OSS обращаются практически все разработчики — последние исследования демонстрируют, что Open Source компоненты занимают до 90% кодовой базы.
Open Source-компоненты известны и идентифицируемы, поэтому и атаку проще и быстрее подготовить именно через открытые компоненты, именно этим и пользуются злоумышленники.
Чем популярнее пакет, который находится в Open Source, тем больше в нём находится уязвимостей, такие проекты вызывают больше интереса со стороны исследователей безопасности. В менее популярных проектах уязвимости тоже есть, но их исследуют не столь тщательно.
Наиболее острые проблемы в OSS
Уязвимости в Open Source-компонентах появляются каждый день, на многие из них есть доступные эксплойты — программы или последовательности действий, которые позволяют использовать уязвимости. Эта информация находится в открытом доступе, поэтому время подготовки атаки у злоумышленников на проекты существенно сократилось.
Лицензии на Open Source-проекты определяют условия их использования. Риски здесь заключаются в том, что лицензии могут отсутствовать или вовсе быть неподходящими для проекта, некоторые из них могут требовать от разработчика раскрыть исходный код при распространении программы.
Программы, которые добавлены в ПО скрытно, т. н. закладки. Они могут нанести существенный вред: к примеру, собрать личную информацию и передать её мошенникам.
Принципы выстраивания безопасной разработки c OSS
Уже больше 10 лет существует Software Composition Analysis — направление в анализе программного обеспечения, сокращенно SCA. Это процесс и комплекс инструментов, который позволяет определить, из чего же состоит ваше ПО, обозначить риски и возможные пути исправления уязвимостей.
Это фундамент безопасной разработки, с ним разработчику понятно, где могут возникнуть уязвимости, какие проблемы с лицензией стоит ожидать.SCA позволяет контролировать ситуацию и создавать безопасный для пользователя продукт. Такие инструменты обеспечивают необходимую автоматизацию, и разработчику становится легче отслеживать появление новых уязвимостей.
Основные принципы работы систем композиционного анализа
Инвентаризация, поиск директивных и транзитивных зависимостей. Ищем манифесты и разбираем их, разрешаем зависимости, понимаем, какие «включения» Open Source есть и как с ними можно работать.
Проверка уязвимостей или лицензий согласно security gates, которые вы установите. Уязвимости можно проверить в базе уязвимостей: CVE, GHSA, OSS Index и других.
Инструмент SCA пришлет уведомление или рекомендацию о блокировке.
Системы композиционного анализа применяются в трёх режимах:
SCA Firewall — блокирование нежелательных компонентов в прокси-репозиториях, таких как Nexus Repository Manager, JFrog Artifactory и других.
Проверка зависимостей и блокирование сборок в CI/CD пайплайнах согласно настроенным политикам (агент).
Continuous monitoring — непрерывный мониторинг веток/тегов репозиториев (shift-left).
Как анализировать уязвимости: обзор CodeScoring
Это платформа, которая обеспечивает безопасность разработки. Работа с ней позволяет:
провести инвентаризацию компонентной базы программных продуктов (SBoM);
находить уязвимости в Open Source компонентах;
строить лицензионный ландшафт и проверять лицензионную чистоту;
встраиваться в CI/CD пайплайны;
вести режим непрерывного мониторинга угроз «от кода»;
интегрироваться с прокси-репозиториями (хранилищами артефактов);
строить риск-отчетность о компонентной базе и не только.
Платформа обладает гибкой системой настроек политик уведомления и блокировки для разных этапов жизненного цикла разработки программного обеспечения (SDLC).
Здесь спикер Алексей Смирнов показывает, как работать с CodeScoring и что она умеет делать Обеспечение безопасной работы с Open Source компонентами.
Перейдите на сайт CodeScoring, чтобы запросить демо-версию платформы и опробовать её в работе.
Информационная безопасность — это важное направление в работе организации. Требования растут, угроз становится всё больше — знания в этой области нужны не только сотруднику отдела безопасности, но и любому пользователю сети.
На курсе «Основы информационной безопасности» мы рассказываем, как защитить свои данные и создавать продукты без опасений. Переходите по ссылке, чтобы попасть на курс по выгодной цене.