Получить консультацию по Solar appScreener

Многие приложения и программы содержат компоненты Open Source Software. Использование открытого исходного кода позволяет разработчикам не тратить время на написание уже существующего кода, если он есть в общедоступных библиотеках. Такой подход к разработке активно применяется в различных отраслях бизнеса, государственном секторе, сфере образования, IT и др. Согласно исследованию ИИМР, через 2 года две трети корпоративного ПО будут на открытом коде и только треть останется проприетарным. Однако применение Open Source несет определенные риски в связи с закладками в общедоступных библиотеках и другими угрозами. В этой статье разберемся в возможных проблемах и способах снижения рисков.

Плюсы использования Open Source

В качестве основных преимуществ использования Open Source-компонентов в своем коде можно выделить следующие:

  • Оптимизация ресурсов разработчиков.
  • Возможность не тратить много времени на разработку уже существующего кода, а посвятить время созданию собственного уникального кода.

Делаем вывод, что благодаря Open Source готовые приложения получается разработать быстрее и эффективнее. Именно этим обусловлена растущая популярность использования открытого кода.

Минусы использования Open Source

Среди самых серьезных минусов создания ПО с использованием общедоступных компонентов можно выделить:

  • Отсутствие гарантированной ответственности за дальнейшую работу программного продукта, поскольку кто-то из разработчиков может «выйти из игры».
  • Более низкая защищенность ПО при неконтролируемом использовании Open Source-компонентов.
  • Ограниченная поддержка продукта в ходе его использования потребителями.
  • Необходимость внимательного отбора проектов, которые можно запускать в эксплуатацию.
  • Вероятность исчезновения обновленной версии ПО при отказе одного из разработчиков ее обслуживать.
проблемы использования open source

Проблемы использования Open Source

Главная проблема заключается в возможности внедрения закладок в общедоступные библиотеки, откуда разработчики заимствуют компоненты. Закладки — вредоносные элементы, выполняемые при запуске программ и создающие уязвимости в программных продуктах. С их помощью хакеры похищают конфиденциальную информацию пользователей приложений, затрудняют отслеживание зависимостей компонентов, реализуют финансовые махинации, провоцируют сбои в работе ПО и т.д. Новые уязвимости в Open Source появляются практически каждый день. Но опасность даже не в этом, а в том, что на большинство уязвимостей есть эксплойты, позволяющие их эксплуатировать.

Еще одна проблема связана с лицензированием проектов с открытым кодом. Лицензии в обязательном порядке должны подтверждать условия использования компонентов и могут требовать от авторов программ раскрыть исходный код распространяемого ПО. Не все согласны раскрывать состав продуктов, поэтому лицензии с таким требованием не подходят для большинства проектов. А иногда лицензии и вовсе отсутствуют.

Последствия использования непроверенных Open Source-компонентов

Угрозы, распространяемые через открытые компоненты, могут привести к следующим последствиям для компаний:

  • Несанкционированные модификация или удаление конфиденциальной информации с жесткого диска.
  • Полная остановка сервиса или ухудшение его функциональности, сбой некоторых опций.
  • Утечка критически важных сведений организации.
  • Финансовые и репутационные потери.

Чтобы избежать этих последствий, необходимо тщательно проверять все проекты Open Source Software. В этом помогут инструменты для автоматизированного контроля состава программного обеспечения.

Российское IT-сообщество при активной поддержке Министерства цифрового развития продвигает Open Source-проекты на отечественный рынок. Некоторые виды такого ПО даже разрешены для закупки компаниям госсектора наряду с отечественными программными продуктами.

OSA-анализ для контроля безопасности Open Source

Чтобы запускать проект с открытым кодом, важно убедиться в безопасности заимствованных элементов. В этом поможет анализ сторонних компонентов OSA, а именно технологии, которые обычно в него входят — SCA и SCS. Можно использовать каждый из них отдельно, но лучше комбинировать, чтобы составить объективную картину потенциальных угроз.

SCA-анализ

Software Composition Analysis — сканирование с целью выявления компонентов Open Source и их проверки на безопасность. С помощью такого анализа можно выявить уязвимости проектов с открытым исходным кодом и устаревшие элементы.

SCA-анализ зачастую становится частью методологии DevSecOps и позволяет контролировать безопасность приложений с открытыми компонентами еще на этапе создания. С его помощью можно обнаружить главную проблему — закладки в сторонних библиотеках.

Как работает SCA анализ:

  • Система получает на вход SBOM-файл (перечень всех сторонних компонентов в коде) или собирает его сама, если в ней заложен такой функционал.
  • SCA собирает информацию о компонентах на основе SBOM-файла, например определяет названия, версии и транзитивные зависимости используемых в проекте компонентов.
  • После этого запускается анализ всех компонентов по базе поиска уязвимостей. Например, в решении Solar appScreener база включает в себя как сторонние фиды (GHSA, Google OSV, Gitlab, БДУ ФСТЭК, EPSS), так и собственную базу уязвимых сторонних компонентов, в которую входят в том числе компоненты, связанные с Ukrainian Malware.
  • Формируются отчеты об обнаруженных совпадениях, и разработчики получают информацию, какие именно проблемы следует устранить.

SCS-анализ

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

С помощью SCS-анализа можно выявить, безопасно ли использовать те или иные компоненты Open Source. Инструменты нашей платформы Solar appScreener проверяют каждый элемент и выставляют оценки доверия на основе всех проанализированных факторов.

Такой анализ не указывает на конкретные уязвимости — он помогает просчитать риски и принять превентивные меры против вероятных угроз. SCS позволит предположить, какие проблемы в будущем могут возникнуть даже с теми компонентами, которые непосредственно в момент проверки не были уязвимыми. В этом главное отличие такого анализа от SCA, который помогает обнаружить уже существующие слабые места Open Source-проектов.

контроль приложений с открытым исходным кодом

Преимущества внедрения Solar appScreener для контроля приложений с открытым исходным кодом

Solar appScreener — российская разработка, которая может заменить для отечественных компаний зарубежные решения аналогичного класса. Наша платформа для комплексного анализа приложений — лидер рынка по числу поддерживаемых языков программирования (решение поддерживает 36 языков).

С помощью Solar appScreener можно реализовать различные методы контроля безопасности программного обеспечения: статические проверки SAST, динамические тесты DAST, OSA-анализ.

Технология анализа безопасности цепочки поставок ПО SCS для расчета рисков использования Open Source-компонентов пока реализован только у нас — в других российских коммерческих платформах для контроля безопасности ПО его нет.

ЗАКЛЮЧЕНИЕ

Open Source-проекты — программные продукты с использованием открытого исходного кода. Многочисленные исследования подтверждают, что как раз свободные элементы составляют до 90% используемой кодовой базы. Проблема в том, что некоторые Open Source-компоненты легко идентифицируются хакерами и содержат уязвимости, которые могут быть проэксплуатированы для атак на приложения. Чтобы минимизировать риски, в процессе разработки ПО или перед запуском в эксплуатацию готового проекта необходимо провести OSA-анализ для определения состава программы и возможных проблем. Оба тестирования легко интегрировать в цикл создания приложений с помощью комплексного анализатора Solar appScreener.

ДРУГИЕ СТАТЬИ ПРОДУКТА

Еще больше о наших возможностях

Анализ безопасности ПО методом черного ящика (Black Box Testing)

Анализ безопасности ПО методом черного ящика (Black Box Testing)

Узнать больше
Статический анализ кода: как работает и для чего применяется

Статический анализ кода: как работает и для чего применяется

Узнать больше