Остерегайтесь зомби-кода или мертвого кода в вашем открытом исходном коде
Подчеркивая острую необходимость улучшения методов обслуживания среди пользователей программного обеспечения с открытым исходным кодом, в новом отчете 2024 “Анализ безопасности и рисков с открытым исходным кодом” (OSSRA) перечислены проблемы безопасности, вызванные значительным отставанием многих организаций в поддержании в актуальном состоянии используемых ими компонентов с открытым исходным кодом. Отчет раскрывает мрачную картину, когда большинство коммерческих баз кода содержат устаревшие компоненты, при этом 91% содержат компоненты, которые на 10 и более версий отстают от наиболее доступной на данный момент версии. Кроме того, 49% кодовых баз содержали компоненты, разработка которых не велась в течение последних 24 месяцев.
Вопросы технического обслуживания для снижения риска “зомби-кода”
Зомби-код, или мертвый код, обычно относится к частям кода, которые больше не используются или необходимы для функциональности приложения, но которые остаются в кодовой базе. Существует множество различных разновидностей зомби-кода, прямо как в фильмах о зомби (подумайте о быстрых зомби против медленных или о грибковых зомби в “Последних из нас” против традиционной “Ночи живых мертвецов” braaains! зомби). Как и вымышленная нежить, зомби-код может появиться, когда его меньше всего ожидают, вызывая непредвиденные осложнения. Когда дело доходит до использования открытого исходного кода, наиболее серьезной опасностью зомби-кода является устаревший код, который стал уязвимым для эксплуатации.
Независимо от того, разрабатывает ли ваша организация или использует программное обеспечение, практически наверняка ваше программное обеспечение содержит открытый исходный код. Согласно выводам OSSRA за 2024 год, 96% проверенного кода содержали открытый исходный код. В некоторых отраслях (от аэрокосмической до телекоммуникационной) 100% кодовых баз содержали открытый исходный код. Во многих секторах значительный процент кодовых баз, оцененных с учетом риска, содержал уязвимости высокого риска, в том числе 87% в производстве и 50% в секторе Интернета вещей.
Не обновляя компонент с открытым исходным кодом, пользователи подвергают свои приложения потенциальным атакам, которые могут использовать эти уязвимости, что приводит к утечке данных и другим проблемам безопасности.
Поскольку установлено, что 91% кодовых баз, оцененных с учетом рисков, используют открытый исходный код, что значительно отстает от текущей версии, отчет OSSRA ясно показывает, что потребителям необходимо лучше поддерживать свой код в актуальном состоянии, особенно когда речь идет о популярных компонентах с открытым исходным кодом. Последствия использования старых, более уязвимых версий с открытым исходным кодом могут быть печальными. Например, № 2 из 10 лучших уязвимостей, о которых сообщалось в отчете OSSRA за 2024 год, – это уязвимость межсайтового скриптинга, которая может использоваться для выполнения ненадежного кода. Проблема была исправлена почти четыре года назад с помощью jQuery 3.5.0. Но, как показывают данные OSSRA, было обнаружено, что треть кодовых баз, проверенных на наличие угроз безопасности, используют версию jQuery, все еще открытую для использования этой уязвимости.
Помимо проблем безопасности, устаревший открытый исходный код увеличивает общую техническую задолженность — пропущены улучшения в исправлениях и производительности, а также проблемы с совместимостью, которые в конечном итоге необходимо устранить. Со временем эта техническая задолженность может сделать обслуживание приложений более сложным и дорогостоящим, препятствуя их долгосрочной жизнеспособности и эффективности. Зомби-открытый исходный код потенциально может даже повлиять на соответствие лицензии, поскольку может быть трудно получить разъяснения или поддержку относительно условий лицензирования устаревших или неактивных компонентов.
Три шага для улучшения практики обслуживания с открытым исходным кодом
На основе выводов отчета OSSRA могут быть предприняты шаги по улучшению практики обслуживания с открытым исходным кодом и снижению рисков, связанных с зомби-кодом.
- Внедрение автоматизированных инструментов: Использование автоматизированных инструментов, таких как анализ состава программного обеспечения, может помочь выявить устаревшие компоненты и уязвимости. Как отмечается в отчете OSSRA за 2024 год, в каждом конкретном приложении в среднем имеется более 500 компонентов с открытым исходным кодом — практический пример важности автоматического тестирования безопасности. Ручное тестирование становится практически невозможным в больших масштабах и требует использования автоматизированного решения. В отличие от ручных процессов, автоматизированное тестирование с открытым исходным кодом и управление им могут выполняться быстро и последовательно, позволяя разработчикам выявлять проблемы на ранних стадиях процесса разработки, не влияя на графики поставок или производительность.
- Установите регулярную частоту обновлений: Установление регулярной частоты обновления компонентов с открытым исходным кодом может предотвратить накопление устаревшего и потенциально уязвимого зомби-кода. Установите регулярную частоту обновлений, особенно если вы используете библиотеки с открытым исходным кодом из популярных проектов, которые часто сопровождаются.
- Создайте и поддерживайте спецификацию программного обеспечения (SBOM): Точный и актуальный SBOM, в котором описываются компоненты с открытым исходным кодом, имеет решающее значение для обеспечения того, чтобы ваш код оставался высококачественным, совместимым и безопасным. Полный SBOM содержит список всех компонентов с открытым исходным кодом в ваших приложениях, а также лицензии, версии и состояние исправлений для этих компонентов. Для тех, у кого нет ресурсов для самостоятельного создания SBOM или кому необходимо создать SBOM немедленно, службы Synopsys SBOM могут выполнить полный аудит безопасности вашего программного обеспечения и сгенерировать SBOM — ценно для организаций, которые еще не имеют возможностей для создания SBOM и нуждаются в базовом SBOM для соответствия требованиям клиентов или нормативных актов.
Помните, как и в случае с вымышленными зомби, один компонент зомби с открытым исходным кодом может поставить под угрозу всю вашу защиту и посеять хаос. Организациям, использующим открытый исходный код в своем программном обеспечении — а это, как показывает отчет OSSRA за 2024 год, буквально всем организациям — следует активно управлять рисками обслуживания с открытым исходным кодом в рамках своей практики обеспечения безопасности программного обеспечения. Удаление устаревшего программного обеспечения с открытым исходным кодом должно быть главным приоритетом для каждого потребителя с открытым исходным кодом. Первым шагом является изучение ваших методов обслуживания, чтобы понять, нуждаются ли они в улучшении — до прихода зомби.