Для многих понятие Open Source ассоциируется с бесплатными программными продуктами. И правда, кто не хочет получить что-то задаром, особенно когда речь идет о таких сложных решениях, как инструменты для обеспечения безопасности приложений? Но давайте здесь остановимся и проанализируем, действительно ли это настолько выгодно.

С уходом западных вендоров, предоставляющих решения для безопасной разработки, российские компании столкнулись с необходимостью срочно пересматривать свои стратегии. Кто-то начал активно развивать свои решения, кто-то – обращаться к проприетарным ПО, а кто-то – к программам с открытым исходным кодом. Казалось бы, последний вариант самый простой и выгодный, ведь можно без траты денег получить доступ к инструментарию. Однако, если копнуть чуть глубже, выясняется, что всё не так однозначно. Это впечатление «бесплатного» часто оказывается иллюзией.

С вами Вера Багно, AppSec-инженер в компании Swordfish Security. Сегодня мы рассмотрим возможности бесплатных и платных версий инструментов разработки защищенного ПО Defect Dojo и Semgrep и развеем заблуждение о “бесплатности” продуктов с открытым исходным кодом. Статья написана в соавторстве с моей коллегой Надеждой Перегудовой, менеджером по маркетингу.

Подводные камни Open Source

В 1998 году было введено понятие «Open Source Software» – ПО с открытым кодом. Формально, всё свободно-распространяемое программное обеспечение можно считать ПО с открытым кодом. 

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

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

  • Open Source – это не бесплатно. Почему? Разработчики часто предлагают использовать систему пожертвований или предоставляют платные продвинутые версии и услуги, такие как расширенный функционал и техподдержка. Также зачастую компаниям приходится выделять бюджет на адаптацию ПО с открытым исходным кодом под свои конкретные задачи. И вот тут неожиданность: в некоторых случаях работа с Open Source может выйти существенно дороже, чем покупка лицензии вендорского решения.

  • Необходимость доработки. Когда вы имеете дело с ПО с открытым кодом, будьте готовы дорабатывать его под свои нужды, а для этого обязательно нужно будет привлекать штат разработчиков. С этим, конечно, могут справиться небольшие компании. Но крупные игроки, как правило, предпочитают более предсказуемые решения, чтобы не мучить себя редактированием объемного кода.

  • Отсутствие технической поддержки. При использовании Open Source вы можете столкнуться с проблемами, которые придется решать самостоятельно. Вендоры по умолчанию помогают устранить ошибки информационной безопасности, улучшить производительность и разобраться в правильном использовании функционала. Проекты Open Source также могут предлагать услуги в формате managed service, но, естественно, на коммерческой основе.

  • Угрозы информационной безопасности. Открытый код видят все – и разработчики, и хакеры. Кто угодно может изучить его и внести зловредные изменения и/или компоненты в исходники. И хотя сообщество разработчиков старается выявлять и исправлять такие проблемы, на практике это не всегда работает идеально. В некоторых проектах слишком много "лишних глаз", а в других вообще мало кто занимается проверкой. 

  • Возможный конфликт интересов. Реальный кейс: ваш разработчик участвует в развитии проекта с открытым исходным кодом и публикует в публичном репозитории код, который разрабатывался за деньги компании. Даже если вы юридически застрахуете себя от этого, ситуация не из приятных. Что если этот разработчик уйдет, забрав с собой все знания? Привет, головная боль для тех, кто останется! Разбираться в чужом коде — занятие не из лёгких, и, скорее всего, разработанный ранее функционал станет невозможно поддерживать и развивать.

За качественный анализ защищенности ПО нужно платить

Статистика показывает, что использование Open Source-проектов становится неотъемлемой частью разработки ПО. Многие компании применяют ИБ-инструменты с открытым исходным кодом из-за их доступности и гибкости. Но разворачивая открытые анализаторы, будьте готовы к дополнительной и, зачастую, трудоемкой доработке ‘этих решений. Для этого компании нужны как квалифицированные разработчики, так и специалисты в области кибербезопасности. При этом речь идет не о разовом привлечении ресурсов, а скорее о формировании выделенной команды для реализации всех необходимых задач, включая последующую поддержку доработанного решения. А это также имеет свою немаленькую стоимость. 

Как правило, хорошие Open Source-инструменты оказываются под крылом коммерческих компаний. К ним добавляется множество платной функциональности, и цена таких “открытых и доступных” продуктов в итоге может превышать стоимость аналогов от вендоров. Чтобы не быть голословными, разберем возможности бесплатных и платных версий популярных ИБ-решений DefectDojo и Semgrep.

Defect Dojo

DefectDojo – это инструмент с открытым исходным кодом класса ASPM для управления уязвимостями. Мы подробно рассказывали про него в одной из прошлых статей. Кратко о его возможностях:

  • Готовые парсеры для сканеров;

  • Отслеживание времени до исправления уязвимостей (SLA);

  • Мощная система фильтров;

  • Тегирование;

  • Управление и дедупликация уязвимостей;

  • Запрос помощи у коллег (peer review);

  • Базовые инженерные метрики;

  • API для интеграции в DevOps-процессы.

Несмотря на положительные стороны инструмента, бесплатная версия решения небезупречна, и вот почему:

  • DefectDojo не любит много данных. Если у вас куча пайплайнов, будьте готовы к частым падениям производительности. Например, в компании VK поделились, что однажды при попытке подключить DefectDojo к множеству источников данных инструмент начал лагать. 

  • Иногда приходится вручную решать проблемы и включать дополнительные функции через правку исходного кода. Это значит, что нужен будет хотя бы один разработчик или AppSec-инженер, который будет всё это поддерживать.

  • Метрики только для “своих”. Метрики в DefectDojo ориентированы на разработчиков и менеджеров команд. По ним оценивают, как быстро закрываются уязвимости и какой уровень «здоровья» у проекта. Но вот бизнес-процессы, повторные уязвимости и технический долг они практически не отслеживают. 

А вот что включает в себя платная Pro-версия:

  • Автоматические обновления;

  • Настраиваемая дедупликация;

  • Менеджер платформы с более продвинутым отслеживанием событий;

  • Интеграция уведомлений через Slack, Teams и электронную почту;

  • Расширенная аналитика и информационные панели;

  • Умная загрузка с прогнозируемым поиском размещения (Smart Upload with Predictive Finding Placement);

  • Улучшенная связь между инструментом поиска уязвимостей и DefectDojo, продвинутая выгрузка находок – инструкция

  • Аутентификация в продукте через SAML/OAuth;

  • Премиум-поддержка.

Есть еще более продвинутая и дорогая версия – Enterprise. Помимо функций Pro-версии, в нее включен:

  • Самостоятельный хостинг;

  • Доработка продукта под клиента, разработка стратегии внедрения, помощь с онбордингом команд;

  • Персональный менеджер по работе с клиентами.

Semgrep

Semgrep – Open Source-инструмент статического анализа для обнаружения уязвимостей в коде. Он не требует каких-то особых настроек: можно пользоваться готовыми наборами правил от Semgrep Inc, также есть методичка по синтаксису.

Что можно выявить с помощью Semgrep:

  • Различные уязвимости, например SQL-инъекции, XSS, небезопасные вызовы функций или устаревшие алгоритмы шифрования;

  • Различные ошибки, такие как повторяющийся код, лишние пробелы или неправильные комментарии;

  • Проблемы с производительностью: медленные запросы к базе данных, лишние вычисления, длинные циклы и другие тормоза.

В целом, инструмент неплохой, он обладает отличной документацией и положительным фидбэком AppSec-комьюнити. Но есть ряд весомых минусов, которые мешают осуществлять полноценную проверку ПО:

  • Выполняется только однофункциональное сканирование. В свободно-распространяемой версии отсутствуют межфункциональные проверки;

  • Не поддерживается межфайловое взаимодействие, разрешение внешних ссылок, Global taint;

  • Не проводится анализ SCA;

  • Отсутствует веб-интерфейс для изучения найденных уязвимостей;

  • Нет возможности настроить уведомления и роли для проектов;

  • Отсутствует подключение через SSO, OpenID или OAuth 2.0. 

А теперь посмотрим на платную версию – проприетарный продукт Semgrep Pro от компании Semgrep Inc. Он включает:

  • Semgrep Code – продвинутый SAST-сканер с межфайловым и межфункциональным анализом, обеспечивающий более точные результаты по сравнению с бесплатной версией Semgrep OSS. В комплекте идут премиум-правила (Pro-правила), которые используют кросс-файловый анализ для снижения количества ложных срабатываний;

  • Semgrep Supply Chain – высокоточный сканер зависимостей, обнаруживающий уязвимости в сторонних библиотеках с открытым исходным кодом на протяжении всего жизненного цикла разработки программного обеспечения (SDLC);

  • Semgrep Secrets – сканер секретов, который, помимо обнаружения секретов, проверяет их утечки на различных сервисах;

  • Semgrep AppSec Platform – веб-приложение для управления и мониторинга результатов, полученных с помощью сканеров SAST, SCA и Semgrep Secrets. Сервис интегрируется с платформами непрерывной интеграции и доставки (CI/CD), такими как GitHub Actions, GitLab CI/CD, CircleCI и другими.

В общем, любой каприз за ваши деньги :) 

Что же выбрать?

Очевидно, что по-настоящему персонализированный и высококачественный продукт требует наличия существенного бюджета. Если вы изучите прайс-листы Pro-версий упомянутых выше инструментов с открытым исходным кодом, то поймете, что стоимость как коммерческих версий этих продуктов и сопутствующих услуг далеко не маленькая. Стоит ли игра свеч? 

Возможно, выгоднее приобрести решение от вендора, которое удовлетворит потребности вашей компании без условий “со звездочкой”. Что дают проприетарные решения, помимо широкого функционала:

  • Регулярные обновления и профессиональная поддержка от команды экспертов. Никакого «гугла» и долгих поисков ответов на форумах;

  • Гарантия и ответственность. Если что-то пошло не так, у вас на руках договор и все права клиента. Вендоры несут ответственность за качество своих решений;

  • Экономия времени и снижение Time-to-Market. С правильно подобранным инструментов быстрее достигнуть результатов – настраиваешь и начинаешь использовать.

Приведем в пример наш инструмент класса ASPM – AppSec.Hub. Он осуществляет всесторонний анализ уязвимостей в рамках процесса DevSecOps. С AppSec.Hub можно полностью автоматизировать процесс разработки, бесшовно встраивать новые инструменты в процесс разработки защищенного ПО и управлять результатами сканирования через одно “окно”, а также эффективно контролировать прогресс AppSec-инициативы с помощью понятных метрик и KPI.

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

Вывод

Использование “бесплатных” инструментов с открытым исходным кодом – это, определенно, лучше, чем ничего. Однако такие решения несут риски информационной безопасности и при этом имеют весьма ограниченный функционал. А покупка платных версий может обернуться еще большими затратами, чем приобретение коммерческих лицензий на вендорское ПО. Также стоит учитывать, что в данный момент приобретение ИБ-решений из недружественных стран сильно ограничено и зачастую невозможно.

Нет универсального супер-инструмента, подходящего всем и сразу. Каждая организация имеет свои потребности, которые зависят от технологического стека и бюджета, выделенного на кибербезопасность. Мы желаем вам подобрать для себя именно тот инструментальный стек, который не просто облегчит жизнь, а позволит выпускать цифровые продукты в разы быстрее и быть на шаг впереди возможных угроз.

Комментарии (14)


  1. rsashka
    02.08.2024 08:21
    +8

    Ради рекламы свой компании вы смешали в одну кучу непонятной субстанции сразу несколько разный понятий: Открытое ПО (Open Source), Свободное ПО (Free Software), Бесплатное ПО (Freeware).

    Неужели у вас в Swordfish Security нет специалиста, который разбирается особенностях разработки ПО, чтобы не допускать подобных ляпов?


  1. aleks-th
    02.08.2024 08:21
    +5

    Бесплатно ПО или нет - риски информационной безопасности там такие же ни больше ни меньше.

    Более того почти во всех лицензиях крупных компаний которые я читал - производитель первым делом снимает с себя отвественность за эти риски.

    Причем как сказали в комментариях выше в статье вы путаете понятие открытого и бесплатного ПО.

    И да бесплатное ПО не бесплатно в эксплуатации - это совершенно верно, но при этом в каждом конкретном случае необходимо считать стоимость и оценивать риски, где-то будет выгоднее лицензии купить, где то свободные версии использовать. И без этого рассчета в приложении к конкретной компании, которая будет это ПО использовать - бесполезно проводить, какие-то сравнения и приводить, какие-то аргументы.

    И как бы не в обиду будет сказано, что поторопились написать хоть какую-то статью, чтобы отрекламировать свое ПО, причем смешав в кучу коней людей и прочих действующих лиц.


    1. verabagno Автор
      02.08.2024 08:21
      +1

      Большое спасибо за активное обсуждение! Вы правы, мы писали скорее обзорную статью с примерами, когда инструмент с открытым исходным кодом требует либо доплаты, либо доработки под нужды компании, будь это freeware или free software. DefectDojo и Semgrep имеют собственные репозитории на github, которые можно форкнуть себе и доработать - потому мы и использовали их в качестве иллюстрации к этой статье. Согласны, следовало бы более глубоко копнуть в сторону лицензий и их разрешений (в том числе чем может обернуться несоблюдение условий лицензионного соглашения). Постараемся в ближайшее время подробнее раскрыть эту тему.


      1. PereslavlFoto
        02.08.2024 08:21
        +1

        Сделайте, пожалуйста, обзор российской судебной практики по лицензиям Creative Commons и GPL.

        Спасибо.


  1. quarus
    02.08.2024 08:21
    +1

    Как минимум, с Open Source платить не за "чёрный ящик" со стандартными габаритами (параметрами)... в итоге - оплачиваешь собственное развитие, а не стагнацию.


  1. kekoz
    02.08.2024 08:21

    Jamie Zawinski (между прочим, автор названия “Mozilla”) давным-давно сказал «Linux is only free if your time has no value.» По-моему, легко переносится на весь Open Source, а не только отдельно взятый Linux.


  1. PereslavlFoto
    02.08.2024 08:21
    +1

    Вы предлагаете вендорское ПО.

    1. В каких случаях можно бесплатно получить его исходный код?

    2. Как доработать его под наши нужды?

    3. Как добиться того, чтобы вендор не публиковал в своём закрытом репозитории код, который разрабатывался за деньги клиента?

    4. Что делать, если вендор уже ушёл, забрав с собой все знания?

    Спасибо.


    1. freeExec
      02.08.2024 08:21
      +1

      Да, я тоже поперхнулся, что если разработчик комитит в закрытый репозиторий, то он с собой знания при увольнении не забирает.


    1. verabagno Автор
      02.08.2024 08:21

      1 - 3. Код вендорского ПО является коммерческой тайной, иначе бы не было преимуществ коммерческого софта в виде техподдержки и реализации фич-реквестов. Мы предлагаем использовать время специалистов компании на поиск и анализ уязвимостей, а не на разработку и/или улучшение ПО для этих целей. Кстати, реализация фич-реквестов по запросу клиента - это способ "доработать" софт под его нужды. Что касается нас, мы ответственный вендор и прислушиваемся к запросам клиентов, чтобы продукт развивался и отвечал вашим запросам.

      4. Внимательнее относиться к выбору вендора и оценивать риски.


      1. rsashka
        02.08.2024 08:21

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

        У вас первое утверждение никак не связано с выводом. Более того, за счет наличия открытого кода, техподдержка и реализация фич-реквестов для заказчика наоборот получает гораздо бОльшие преимущества, чем использование непонятно какого закрытого кода. В том числе и за счет минимизации рисков в случае ухода вендора с рынка или отсутствия у него желания развивать или поддерживать продукт.


      1. PereslavlFoto
        02.08.2024 08:21
        +2

        1. То есть никак нельзя доработать код вендора под наши нужды?

        2. То есть вендор опубликует код, разработанный за деньги клиента, в своём репозитории?

        3. Уйдя, вендор заберёт с собой все оплаченные знания, да?


  1. denilenko
    02.08.2024 08:21

    Пошла волна на opensource (на этой неделе уже postgres топили). Ожидаем очередного подорожания отечественного ПО. Чувствую скоро, по заветам Касперской, запретят свое писать.


  1. duke_alba
    02.08.2024 08:21
    +2

    Лучше быть здоровым и богатым, чем бедным и больным... Выбор прост. Или иметь в своей компании спеца по данной срфтине, или купить поддержку...

    Понятно, что сотовые операторы, или банки покупают поддержку, и сегодня у них не самая простая жизнь. Но куча маленьких и не очень компаний легко и просто используют open source, и неплохо себя при этом чувствуют. А статья очень смахивает на рекламную, что грустно.


  1. Malorik
    02.08.2024 08:21

    Работы дороже однозначно. На платном ПО всё "Юзверей" думать не надо на все вопросы ответ одной кнопкой. С опен\фри и прочими сорсами сложно для "лохмандеев" по этому они дорогие. Так по моему было всегда и не чего особо не меняется. Хотя Линух стал на много приветлив и добрее)