Зарубежный опыт решения проблем безопасности ПО с открытым исходным кодом
В настоящее время отечественными компаниями и организациями широко используется программное обеспечение с открытым исходным кодом, которое применяется как в собственных разработках, так и с целью замещения коммерческого софта ушедших с российского рынка зарубежных компаний. Его использование дает значительные экономические преимущества – бесплатное распространение, возможности просмотра, изучения и внесения необходимых изменений.
Снежный ком: как появляются бреши в безопасности крупных проектов
При обнаружении ошибок в масштабных проектах OSS они оперативно исправляются совместными усилиями разработчиков ПО, поэтому открытые компоненты лучше защищены. Однако не все компании могут себе позволить высококвалифицированных специалистов, а это ведет к отсутствию углубленного мониторинга уязвимостей. При этом каждый открытый проект зависит от более мелких, и в подавляющем большинстве случаев уязвимости в OSS-решениях – это результат ошибки мейнтейнеров или сбой в сторонних компонентах.
Так, например, в 2022 году уязвимость Log4Shell в широко распространенной библиотеке исполнения Log4j показала, какое широкое влияние это может оказать на экосистему приложений. Log4Shell позволяла злоумышленникам выполнить произвольный код на сервере или устройстве, чтобы похитить данные или внедрить вредоносную программу. Уязвимость затронула 93% корпоративных облачных сред, а также производителей аппаратного обеспечения.
Хакеры также стараются встроить в исходники проекта вредоносный код. Поэтому использование Open Source является одним из серьезных векторов угроз, через который злоумышленники осуществляют кибератаки. Причем количество таких атак, направленных на государственные и коммерческие организации с каждым годом растет.
Отечественный GitHub и другие меры по снижению угроз использования OSS
Одной из мер, направленных на снижение угроз использования OSS является создание своих собственных платформ, аналогичных американским веб-сервисам GitHub и GitLab, китайским Gitee и Gogs, немецкому RhodeCode, британскому Launchpad и др. Они применяются для совместной разработки проектов и представляют собой децентрализованные системы управления версиями кода. Вся работа выстраивается в форме дерева, когда каждая команда занимается своей веткой кода, а потом объединяет их в главную ветвь. Это позволяет повысить эффективность работы группы разработчиков.
Кроме того, собственные платформы позволят избежать блокировки доступа к ресурсам GitHub, как в июне 2019 года, когда американский сервис начал полностью блокировать репозитарии пользователей из Крыма, Кубы, Ирана, Северной Кореи и Сирии.
Другим подходом для минимизации рисков при использовании ПО с открытым исходным кодом является государственное регулирование и контроль программного контента. Так, например, министерство торговли США в 2021 году ввело для поставщиков софта требование предоставления спецификаций программного обеспечения Software Bill of Materials (SBOM). Спецификация должна содержать полный список или перечень компонентов ПО, что упрощает поиск отдельных элементов, которые могут быть скомпрометированы. В дальнейшем ее планируют дополнить информацией по авторству ПО и этапов его создания.
Третьим направлением является использование сообществом программистов, IT-компаниями и государственными организациями одинакового подхода к программным компонентам, который заключается в формировании общего набора стандартов и технических средств управления. Так, например, компания Google разработала платформу Supply Chain Levels for Software Artifacts (SLSA), которая предусматривает защиту от восьми видов атак, связанных с внедрением вредоносных изменений ПО. SLSA предусматривает четыре уровня защиты цепочек поставок для программных артефактов, каждому из которых соответствуют определенные требования.
Открытые сервисы и интернет ресурсы также позволяют снижать риски использования OSS. Так, например, в сервисе Sigstore, который создан в сотрудничестве Linux Foundation, Google и др. предусмотрен механизм для криптографической верификации кода. При помощи Sigstore разработчики формируют цифровые подписи для связанных с приложением артефактов, таких как файлы с релизами, образы контейнеров, блоков метаданных и исполняемых файлов.
Применение инструментов анализа состава и цепочек поставок ПО также служит для смягчения постоянно растущих угроз безопасности. К ним относятся системы тестирования безопасности приложений (Application Security Testing, AST) и анализа состава ПО (Software Composition Analysis, SCA).
Первые включают в себя три основных класса продуктов:
- Static Application Security Testing (SAST) – системы статического анализа приложений с доступом к исходному коду;
- Dynamic Application Security Testing (DAST) – системы динамического анализа приложения без доступа к исходному коду и среде исполнения;
- Interactive Application Security Testing (IAST) – системы динамического анализа безопасности приложений с доступом к исходному коду и среде исполнения серверной части.
Плюсы и минусы системы SAST
Проводит анализ кода или его части на наличие уязвимостей без запуска исследуемого приложения на исполнение;
+ Широкий охват языков программирования и платформ разработки;
+ Легкое внедрение путем добавления статического сканера в конвейер разработки или в интегрированную среду разработки;
+ Выполняемый анализ включает в себя обратную связь о точном местоположении потенциальной проблемы;
– Большое число срабатываний ложноположительных или ложноотрицательных результатов – до 50%. В итоге возникают огромные затраты времени, так как разработчики должны сортировать и проверять вручную каждый потенциально уязвимый фрагмент.
Плюсы и минусы системы DAST
Системы DAST осуществляют процесс тестирования приложений, имитирующий вредоносные внешние атаки. Их главной задачей является упреждающее обнаружение уязвимостей разработчиком софта, прежде чем их использует кто-то ещё.
+ Простота использования;
+ Отсутствие необходимости доступа к серверной части приложения;
+ Относительная независимость от платформы, фреймворков и языков;
– Продукт показывает невысокий процент исходного кода программы, который был выполнен в процессе тестирования;
– Значительное снижение эффективности при усложнении протокола взаимодействия клиента и сервера;
– Долгое время работы.
Плюсы и минусы системы IAST
Система IAST представляет собой технологию интерактивного тестирования, обеспечивает обнаружение проблем безопасности в режиме реального времени, анализируя трафик и поток выполнения приложений.
+ Функционирование внутри приложения;
+ Возможность анализировать код приложения, потоки данных, конфигурации, HTTP-запросы и ответы, библиотеки, фреймворки и другие компоненты;
– Может значительно замедлять работу приложения;
– Крайне тяжело подготовить входные данные и сценарии работы, позволяющие достичь высокого покрытия кода.
Вторым инструментом безопасности, который обладает функциями отслеживания и анализа любого компонента Open Source, добавленного в проект, являются системы анализа состава программного обеспечения SCA-системы (Software Composition Analysis). Их использование обеспечивает нахождение всех связанных компонентов, поддерживающих их библиотек, а также их прямых и косвенных зависимостей. Также SCA-системы позволяют обнаружить лицензии на программное обеспечение, уязвимости, в том числе устаревшие и потенциальные эксплойты.
Другой подход: защита нативных облачных приложений
Использование таких разнообразных систем безопасности для современных облачных вычислений и бессерверных архитектур является малоэффективным. Поэтому для них необходим подход, заключающийся в применении платформ защиты нативных облачных приложений (cloud-native application protection platform, CNAPP).
Платформа CNAPP объединяет несколько инструментов для обеспечения безопасности облачных сред:
- сканирование артефактов разработки, таких как контейнеры, а также управление и описание инфраструктуры через конфигурационные файлы (Infrastructure as Code, IaC);
- управление структурой безопасности облака (Cloud Security Posture Management, CSPM) и управление состоянием безопасности Kubernetes (KSPM);
- управление правами на облачную инфраструктуру (Cloud Infrastructure Entitlements Management, CIEM);
- применение платформы защиты рабочей нагрузки облака (Cloud Workload Protection Platform, CWPP).
Дополнительные возможности, такие как расширенное обнаружение и реагирование (XDR), позволяют включить CNAPP в общую систему корпоративной безопасности, чтобы сформировать единую платформу, предназначенную для обеспечения сквозной защиты приложений и облачных сред, мониторинг, предотвращение взломов и соблюдение регуляторных требований.
Встроенные функции безопасности от одного облачного провайдера не могут качественно обеспечить защиту мультиоблачной среды. Тогда как CNAPP включает множество важных функций в одно комплексное оптимизированное предложение, что гораздо эффективнее, чем использование нескольких разрозненных продуктов. Растущий спрос на CNAPP подтверждается исследованиями международной консалтинговой компании Frost&Sullivan. Согласно её недавнему отчету, объем их продаж в 2021 году достигал $1,7 млрд. По прогнозам, доходы от CNAPP будут увеличиваться со среднегодовым темпом роста, оцениваемого в почти 26%, и превысят к 2026 году $5,4 млрд.
