В 96% современных приложений присутствует открытый код

Американские исследователи подготовили отчет, в котором говорится о том, что компоненты с открытым исходным кодом присутствуют практически во всех современных приложениях, а именно в 96% кодовых баз. Исследование основывается на двух предыдущих переписях, выходя за рамки библиотек операционных систем (ОС) и изучая компоненты уровня приложений.

Резкий рост

Исследователи из Гарвардской школы бизнеса и Лаборатории инновационных наук Гарварда в партнерстве с Linux Foundation Research и OpenSSF подготовили отчет под названием Census III of Free and Open Source Software. Отчет был опубликован на официальном сайте Linux Foundation Research.

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

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

Исследование показало, что 96% современных приложений используют открытое ПО

Основные результаты аналитиков из Linux Foundation Research включают ряд новшеств. ИТ-компоненты с открытым исходным кодом присутствуют в 96% кодовых баз. Наблюдается резкий рост использования пакетов, специфичных для облачных сервисов.

Несмотря на то, что Python 3 вышел 16 лет назад, на некоторых секторах число случаев использования Python 2 достигает 20-30%. В настоящее время по-прежнему используется устаревший Python 2, что подвергает ИТ-системы рискам безопасности. Ведь в настоящее время нет практически никаких причин рассматривать Python 2, если только программист не работает с определенными библиотеками, которые еще не совместимы с Python 3.

С момента проведения исследования Census II число пользователей Rust выросло на 500%, что свидетельствует о переходе к программированию с защитой памяти (memory-safe programming language - язык программирования, безопасный для памяти; включает в себя функции, гарантирующие, что программа не сможет получить доступ к памяти, которая не была выделена или уже освобождена).

Отсутствие стандартизированных имен для программных компонентов повышает риски безопасности. Крупными проектами свободного и открытого ПО, по данным Linux Foundation Research, 40% лучших проектов принадлежат одному или двум разработчикам, на долю которых приходилось более 80% вкладов.

Директор Open Source Supply Chain Security в OpenSSF Дэвид Уилер (David Wheeler) отмечает, что самым большим сюрпризом стало значительное увеличение использования библиотек софта с общедоступным исходным кодом для доступа к облачным ИТ-сервисам. Он рассказал, что если на момент проведения предыдущего анализа Census II использование облачных ИТ-сервисов не было чем-то новым, то в Census III зафиксирован весьма значительный рост их использования. По мнению Уилера, это говорит о том, что раньше при развертывании облаков часто использовался подход lift-and-shift (простой перенос существующих программных приложений без модификации), а уже теперь ПО все чаще разрабатывается специально для работы в облаке и для использования конкретных ИТ-сервисов, доступных в нем.

Риски в проектах

В 2024 г. была обнаружена кибератака на цепочку поставок, которая использовала социальную инженерию для злонамеренного внедрения бэкдора в популярный Open Source-пакет XZ Utils. Сама же ИТ-атака включала в себя запуск кампании давления на единственного мейнтейнера проекта с целью добавления второго сопровождающего, который впоследствии и внедрил бэкдор. Этот инцидент служит подтверждением одного из ключевых выводов отчета о риске концентрации ответственности в FOSS-проектах и последствиях для безопасности, связанных с тем, что проекты поддерживаются очень маленькими командами.

По мнению Уиллера, данная кибератака иллюстрирует проблему, над решением которой работает Open Source Security Foundation: обеспечение того, чтобы используемый людьми исходный код соответствовал тому, что проходит проверку. Большое преимущество открытого ПО заключается в том, что его можно широко проверять на предмет непреднамеренных или преднамеренных уязвимостей, поясняет он. При этом Уилер отмечает, что проверка не поможет, если то, что проверяется, не используется для создания конечного продукта. Проекты OpenSSF, такие как SLSA и Sigstore, работают над укреплением процесса сборки и распространения кода, чтобы гарантировать его проверку перед запуском.

Летом 2024 г. специалисты агентства кибербезопасности и безопасности инфраструктуры США (CISA) опубликовали исследование с подробным анализом 172 ключевых Open Source проектов на предмет ИТ-уязвимости исходного кода различных языков программирования к ошибкам памяти. Согласно отчету CISA, 52% критически популярных проектов с открытым исходным кодом содержат код, написанный на небезопасных для памяти языках, а 55% от общего числа строк кода (LoC) в популярных и ключевых проектах написаны на небезопасных для памяти языках.

Лучшие Open Source проекты

Для бизнеса Open Source раскрывается с двух сторон т.к. первое преимущество в том, что компании могут пользоваться открытое ПО бесплатно. Это экономит деньги и позволяет вносить любые изменения в исходный код, бесплатно настраивая программу под потребности бизнеса. Примеры полезных OSS-решений: OpenOffice - свободный пакет офисных приложений; Linux - бесплатные ОС; iRedMail - почтовый сервер на базе Postfix; Rocket.Chat - корпоративный мессенджер для видеозвонков и переписки.

Программисты используют Open Source-решения для оптимизации процессов разработки. Популярные программы и ИТ-инструменты: редактор VSCodium - альтернатива Visual Studio Code; Supabase - реляционная база данных на основе технологий PostgreSQL; Django - бесплатный фреймворк для веб-приложений на Python. Appsmith - решение для создания административных панелей, дашбордов и внутренних инструментов; Kubernetes (K8s) - решение для автоматизации развертывания и управления сервисами на основе контейнеров.