- BrainTools - https://www.braintools.ru -

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

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 1

Количество ИБ-инцидентов непрерывно растет [1] с каждым годом. Это предъявляет дополнительные требования к защищенности используемых сервисов и стало драйвером для развития методологии DevSecOps (Development, Security, Operations), согласно которой проверки кода на уязвимости — неотъемлемый этап разработки ПО. Поэтому все чаще компании применяют различные решения для безопасной разработки.

Меня зовут Игорь Игнатьев. Я руководитель направления защиты приложений в VK. В этой статье я расскажу о типовых потребностях команд разработки и ИБ в контексте создания безопасных приложений и познакомлю с решением для автоматизации проверок безопасности кода от VK Cloud.

Типовые потребности команд разработки и ИБ

В контексте информационной безопасности у команд, создающих продукты и сервисы, потребности [2] отличаются в зависимости от их зоны ответственности. 

Так, со стороны IT-вертикали:

  • тимлидам важно иметь возможность быстро получить общее состояние здоровья продукта, учитывая текущие дефекты; 

  • разработчики, создавая исходный код, нуждаются в простом доступе к информации о его безопасности в созданных приложениях;

  • DevOps-инженеров больше интересует окружение, в котором приложения будут запущены, и уязвимости, привнесенные в контейнеры.

В свою очередь, у команды ИБ смежные задачи:

  • CISO/BISO проводят overview безопасности всех продуктов;

  • AppSec отвечают за контроль безопасности продукта и триаж уязвимостей;

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

Нюанс в том, что классически команды разработки и ИБ решают схожие задачи – «сделать успешный и безопасный продукт», но работают независимо, что зачастую создает разрыв между подразделениями и не позволяет выстроить прозрачный процесс создания ПО. Решения для безопасной разработки устраняют эту дистанцию, объединяя разработку и проверки безопасности в единый автоматизированный процесс. 

Запрос команды VK

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

  • множество языков программирования: Java, PHP, C#, Go, Python, Scala, JS/TS, Ruby и другие;

  • множество технологий: GitLab, GitLab CI, Bitbucket, Jenkins, SVN, Team City, самописные системы;

  • разные производственные процессы: релиз из master, релиз из daily-веток, on-prem релизы и другие.

При этом нам было важно, чтобы разрабатываемое решение позволяло:

  • обеспечить полное покрытие всей кодовой базы: 40 тысяч репозиториев в VK и более 1 млрд строк кода;

  • подключаться к проектам максимально быстро (через встраивание в CI/CD, автосканирование из VCS или с помощью API);

  • исключить зависимость от конкретного анализатора, чтобы иметь возможность подключать новые анализаторы plug&play без изменения окружения;

  • снизить затраты на анализ.

Ответом на эти запросы стала разработка Security Gate [3].

Знакомство с Security Gate

Security Gate [3] — платформа, которая позволяет автоматизировать проверку безопасности кода в процессе разработки. Решение помогает найти уязвимости в коде и ошибки [4], которые могут влиять на безопасность разрабатываемого ПО. 

Security Gate консолидирует возможности анализаторов разного типа, что позволяет ему решать большой пул задач, среди которых:

  • сканирование контейнеров;

  • анализ уязвимостей в библиотеках;

  • анализ исходного кода;

  • динамический анализ;

  • выявление секретов в репозиториях.

Для покрытия всей имеющейся кодовой базы и автоматической проверки нового кода в репозиториях Security Gate получил поддержку нескольких видов интеграций:

  • API. Интеграция через API оптимальна, когда нет CI/CD и системы контроля версий, а есть только код, который нужно проверить, либо если нужны кастомные процессы проверки.

  • CI/CD Client. Интеграция через CI/CD Client позволяет реализовать традиционный подход, встроить проверку в пайплайн разработки.

  • GitLab WebHooks. Подключение через GitLab WebHooks работает несколько иначе. В этом случае любой коммит в VCS проверяется на наличие закрытых ключей, токенов и паролей.

  • GitLab (full Inventory). Этот вариант подразумевает полную интеграцию с системой контроля версий.

Например, в случае полной интеграции Security Gate с системой контроля версий реализуется удобный для ИТ и ИБ процесс:

  • Security Gate автоматически подключается к инстансу GitLab;

  • происходит автоматическая инвентаризация всех существующих и создаваемых репозиториев;

  • выполняется регистрация всех репозиториев в Security Gate;

  • подключается автоматическое сканирование всех репозиториев по расписанию;

  • всем участникам репозитория назначаются права доступа к результатам анализа.

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

«Под капотом» Security Gate: технические аспекты работы

Чтобы проверка кода на уязвимости была не только эффективной, но и рациональной с точки зрения [5] затрат, в Security Gate реализована и доступна:

  • кроссветочная обработка результатов;

  • приоритезация уязвимостей. 

Кроссветочная обработка результатов

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

В Security Gate эта проблема решена, поскольку: 

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

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

  • вердикт по уникальной сработке указывается 1 раз в рамках кроссветочного триажа (выявленную проблему достаточно отработать один раз).

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 2

Приоритезация уязвимостей

Множество анализаторов переоценивают критичность обнаруженных дефектов в коде. Это приводит к проблеме «мусорного» срабатывания на уровнях High+ и скрывает наиболее значимые результаты. Более того, это смещает фокус разработчиков и ИБ-специалистов.

В свою очередь, Security Gate выполняет:

  • приоритезацию правил SAST;

  • оценку критичности CVE;

  • динамическую приоритезацию Secret.

Такой комплексный подход позволяет приоритезировать уязвимости более точно и снизить количество фиксируемых High и Crit уязвимостей, оставив на этом уровне критичности только значимые для безопасности приложения результаты.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 3

Здесь важно, что Security Gate не подразумевает, что High и Crit уязвимости, которые ошибочно определяют другие приоритезаторы, удаляются или игнорируются. Просто за счет правильного ранжирования их приоритет снижается, позволяя команде сфокусироваться на устранении более критичных проблем.

Процесс сканирования

В Security Gate процесс сканирования подразумевает несколько этапов и сводится к простому алгоритму.

  • При инициализации сканирования любым из методов (API, CI/D, инвентаризация) Security Gate запускает разбор приложения на используемые технологии (из чего состоит, какие языки используются и не только).

  • Следующим шагом проводится динамический выбор инструментов сканирования.

  • Далее запускается сканирование. Примечательно, что код проверяется сразу несколькими анализаторами. Это могут быть как несколько SAST-анализаторов, так и несколько инструментов обнаружения секретов, поиска уязвимых зависимостей.

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

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 4

От теории к практике: как работать с Security Gate 

Теперь перейдем к обзору возможностей Security Gate.

Платформа доступна в личном кабинете VK Cloud, в разделе «Сервисы безопасности» [6].

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 5

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

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 6

Чтобы посмотреть детальную информацию по каждому репозиторию, можно выбрать любой из них.

Здесь все выявленные уязвимости будут собраны и отсортированы по типам:

  • SAST;

  • Secrets;

  • SCA.

В SAST для удобства изучения уязвимостей сразу можно увидеть фрагмент кода, в котором она выявлена, и результаты taint-анализа, демонстрирующие путь в приложении, через который возможна эксплуатация уязвимости.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 7

Также можно изучить подробную информацию о проблеме.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 8

И узнать, что по поводу найденной уязвимости может рассказать подключенная модель LLM.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 9

Здесь же доступен раздел с выявленными секретами. Примечательно, что информация о секретах дополнительно «затирается», чтобы не «светить» чувствительные данные даже в интерфейсе.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 10

В разделе SCA ошибки, помимо прочего, также сгруппированы по версиям, в которых они находятся. 

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 11

Для реагирования [7] на каждую из уязвимостей пользователям доступно несколько операций. Так, можно:

  • подтвердить срабатывание;

  • отклонить срабатывание и указать причину отклонения;

    Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 12
  • подтвердить исправление (если проблема исправлена, при следующем сканировании срабатывание закроется автоматически);

  • оставить комментарий;

  • увидеть, в каких ветках встречается уязвимость;

    Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 13
  • посмотреть версию, историю, задачу в Jira и не только.

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 14

Помимо этого, в рамках теста пользователи также могут просканировать свой проект.

Для этого достаточно перейти в Security Gate, выбрать раздел «Мой проект» и нажать «Добавить».

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 15

Здесь надо указать название проекта, загрузить ссылку на репозиторий или архив с проектом. 

Как VK выстроил отслеживание уязвимостей в собственных приложениях, и при чем здесь новый сервис VK Cloud - 16

Время сканирования зависит от размера проекта и количества кода. Но, например, на сканирование небольшого проекта достаточно 5 минут.

Что в итоге

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

  • в компании есть in-house разработка;

  • компания в процессе внедрения или улучшения практик DevSecOps;

  • у команды есть сложности в масштабировании практик безопасной разработки во всех проектах;

  • есть запрос на внешнюю экспертизу, методологии, лучшие практики;

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

  • рассматривается привлечение продуктовых команд к совместной с ИБ работе над безопасностью кода.

При этом демо-версия Security Gate [3] уже доступна всем пользователям VK Cloud, а первые сканирования ПО с помощью Security Gate бесплатны в рамках лимитов на каждый проект.

Автор: Bksz

Источник [8]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/19155

URLs in this post:

[1] растет: https://hi-tech.mail.ru/news/121003-cifra-dnya-podschitano-kolichestvo-vseh-kiberatak-na-rossiyu-za-2024-god/

[2] потребности: http://www.braintools.ru/article/9534

[3] Security Gate: https://cloud.vk.com/security-gate/

[4] ошибки: http://www.braintools.ru/article/4192

[5] зрения: http://www.braintools.ru/article/6238

[6] разделе «Сервисы безопасности»: https://msk.cloud.vk.com/app/mcs7160811136/services/security-gate

[7] реагирования: http://www.braintools.ru/article/1549

[8] Источник: https://habr.com/ru/companies/vk/articles/943868/?utm_source=habrahabr&utm_medium=rss&utm_campaign=943868

www.BrainTools.ru

Rambler's Top100