Управление компонентами с открытым исходным кодом в цепочке поставок программного обеспечения.
Getty Images/iStockphoto
Компоненты с открытым исходным кодом являются важной частью современных программных приложений, но за них приходится платить критическую цену: безопасность.
Современные программные приложения включают компоненты из множества различных источников, включая программное обеспечение с открытым исходным кодом (OSS). Это может добавить преимущества к жизненному циклу разработки программного обеспечения, такие как увеличение скорости разработки, снижение затрат на разработку и повышение масштабируемости.
Однако использование компонентов из различных источников также расширяет поверхность атаки на приложение, увеличивая количество точек входа, которые злоумышленники могут использовать для получения доступа к приложениям и конфиденциальным данным. Команды DevOps должны обеспечивать безопасность своей цепочки поставок программного обеспечения, принимая упреждающие меры по предотвращению атак.
Цепочка поставок программного обеспечения включает всех людей, процессы, инструменты, библиотеки кодов и базовую ИТ-инфраструктуру, используемые для создания программного приложения. Он включает в себя все аспекты жизненного цикла разработки программного обеспечения (SDLC), такие как создание кода, тестирование, развертывание и обслуживание после запуска.
Многие компоненты, составляющие цепочку поставок программного обеспечения проекта, имеют открытый исходный код. Например, компания по автоматизации проектирования Synopsys опубликовала в феврале 2023 года отчет, в котором были проверены результаты более 1700 аудитов коммерческих баз кода. В отчете установлено, что как минимум один компонент с открытым исходным кодом присутствует в 96% приложений. Почти все коммерческие приложения включают в себя компонент с открытым исходным кодом.
Атака на цепочку поставок программного обеспечения происходит, когда злоумышленники проникают в программное обеспечение поставщика и внедряют вредоносный код, который заражает клиентов, использующих это программное обеспечение. Проникновение может произойти в любой момент SDLC, и многие разрушительные кибератаки используют цепочку поставок программного обеспечения. Недавние атаки на цепочки поставок включают атаку SolarWinds и уязвимость Log4j.
Базовая безопасность цепочки поставок программного обеспечения требует проверки ее уязвимых мест:
Компоненты OSS становятся все более популярными для проектов разработки программного обеспечения. ИТ-провайдеры используют и поддерживают создание проектов с открытым исходным кодом, таких как следующие:
Помимо поддержки основных приложений, компоненты OSS предоставляют множество преимуществ. Их можно использовать бесплатно даже при разработке коммерческих приложений. Компоненты OSS также можно настраивать, поскольку код открыт — разработчики могут расширять функциональность, включая дополнительные функции.
OSS может сократить время разработки. Библиотека OSS содержит компоненты практически для любой функциональности, которую пользователи могут захотеть включить в свое приложение. Это дает разработчикам больше времени для других областей разработки. Проекты с открытым исходным кодом также часто разрабатываются в соответствии с определенным стандартом, что приводит к беспрепятственному взаимодействию различных компонентов с открытым исходным кодом.
Наконец, проекты с открытым исходным кодом могут иметь надежное качество и безопасность кода. Они часто разрабатываются многими участниками, что обеспечивает тщательное тестирование программного компонента. Любой разработчик может также проверить компоненты OSS на наличие уязвимостей безопасности, что делает их более безопасными, чем проприетарный код, который разработчики не могут проверить на наличие проблем безопасности.
Несмотря на многочисленные преимущества OSS, злоумышленники все равно могут проникнуть в компоненты с открытым исходным кодом. Наиболее распространенным методом атаки является злоупотребление аспектами OSS цепочки поставок программного обеспечения в злонамеренных целях, что может происходить по-разному:
Чтобы управлять безопасностью компонентов с открытым исходным кодом в цепочках поставок программного обеспечения, командам DevOps следует учитывать следующие лучшие практики:
Следуйте правилам безопасного кодирования при разработке приложений и просите об этом поставщиков программного обеспечения. К таким практикам кодирования относятся следующие:
Команды также должны обеспечить безопасность среды цепочки поставок программного обеспечения на протяжении всего процесса разработки. Лучшие практики включают следующее: