Так ли бесплатен Open Source: подводные камни ИБ-инструментов с открытым исходным кодом

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

791b60792dab949063a5d1caf64260fc.jpg

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

9fbf74a57fd8abcc43c1154b95c5b7a3.png

С вами Вера Багно, 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;

А теперь посмотрим на платную версию — проприетарный продукт 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-версий упомянутых выше инструментов с открытым исходным кодом, то поймете, что стоимость как коммерческих версий этих продуктов и сопутствующих услуг далеко не маленькая. Стоит ли игра свеч?  

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

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

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

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

Вывод

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

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

© Habrahabr.ru