Анализ уязвимостей кода - как защитить приложение до того, как его взломают
Обновлено: 27.03.2026
Каждый день разработчики выпускают обновления, деплоят новые сервисы и запускают приложения в продукт — и почти никогда не знают наверняка, есть ли в коде уязвимые места. Не потому что они плохие специалисты, просто скорость разработки и требования бизнеса оставляют мало пространства для глубокой проверки безопасности. Злоумышленники этим и пользуются.
Что такое анализ уязвимостей кода
Экспертная проверка исходного кода программного обеспечения, направленная на поиск уязвимостей, которые могут привести к несанкционированному доступу, утечке данных или нарушению работы системы.
Проще говоря, это медицинский осмотр вашего приложения: вы не ждете симптомов болезни — вы проверяете состояние здоровья заранее.
Поиск уязвимостей в коде преследует три ключевые цели, напрямую связанные с требованиями информационной безопасности:
- Конфиденциальность — гарантия того, что данные пользователей, платежная информация и коммерческие секреты не попадут в чужие руки из-за ошибки в коде
- Целостность — защита данных и логики приложения от несанкционированного изменения: подмены транзакций, модификации профилей, манипуляций с бизнес-процессами
- Доступность — предотвращение сбоев и отказов, которые могут быть вызваны уязвимостями типа DoS или ошибками обработки входных данных
Без анализа исходного кода на уязвимости безопасность приложения остается предположением. После него — становится измеримым фактом.
Чем анализ кода отличается от пентеста
Эти два понятия часто путают или используют как синонимы. На практике это разные инструменты, которые работают на разных уровнях и решают разные задачи.
Представьте здание. Анализ кода — это рентген, специалист изучает строительные чертежи и видит, что несущая стена возведена с нарушениями, в перекрытии трещина, а замок на сейфовой комнате можно открыть скрепкой. Пентест — это реальная попытка проникнуть в здание. Эксперт приходит, пробует все двери, окна и вентиляционные шахты, проверяя, какие из найденных слабостей реально эксплуатируемые прямо сейчас.
Один подход показывает что потенциально уязвимо, второй — что можно реально взломать сегодня. Оба важны, и в зрелой программе безопасности они используются вместе.
Сравнительная таблица анализ кода с пентестом
| Параметр | Анализ уязвимостей кода | Пентест (тестирование на проникновение) |
| Объект | Исходный код, архитектура, зависимости | Работающее приложение, инфраструктура |
| Метод | Статический/динамический анализ, code review | Имитация реальных атак, эксплуатация уязвимостей |
| Доступ | Требуется доступ к исходному коду | Не требует исходного кода (black/grey box) |
| Когда применять | На этапе разработки, перед релизом, при аудите | После выхода в production, при периодических проверках |
| Скорость | Выше — можно автоматизировать большую часть | Ниже — требует ручной работы эксперта |
| Глубина | Высокая для архитектурных и логических ошибок | Высокая для реальных векторов атак «снаружи» |
| Стоимость | Ниже при встраивании в SDLC | Выше при комплексном тестировании инфраструктуры |
| Результат | Список уязвимостей с рекомендациями по коду | Отчёт об эксплуатируемых векторах атак |
Использовать только один инструмент — значит видеть лишь половину картины. Анализ кода находит потенциальные слабые места еще до того, как приложение запущено. Сканирование уязвимостей и пентест проверяют, насколько эти слабости опасны в реальной среде. Вместе они формируют полноценную стратегию безопасности приложения — от первой строки кода до производственного сервера.
Какие уязвимости ищут в коде
Когда речь идет о веб‑приложениях, разработчикам и CTO важно понимать не «общие уязвимости», а именно те десять классов проблем, которые чаще всего приводят к утечкам персональных данных, финансовым потерям, штрафам и дискредитации продукта. OWASP Top‑10‑2021 как раз и фокусируется на таких рисках, которые реально встречаются в production‑среде и которые должен закрывать ваш код, архитектура и процессы.
Топ-10 угроз по OWASP 2021
A01:2021 — Нарушение контроля доступа (Broken Access Control)
Когда пользователь получает больше, чем ему положено: просматривает чужие данные, редактирует заказы других клиентов или выполняет административные действия. Часто это просто манипуляция идентификаторами в URL или API, но последствия — несанкционированный доступ к ПДн, финансовым операциям и критичным функциям.
A02:2021 — Недостатки криптографии (Cryptographic Failures)
Хранение и передача чувствительных данных без корректного шифрования или с использованием слабых алгоритмов и ключей. Это открывает путь к чтению номеров карт, персональных данных и токенов, даже если пакетный перехват или доступ к логам и базам происходит «в тихом режиме».
A03:2021 — Инъекции (Injection)
Внедрение произвольного кода (SQL, NoSQL, OS‑команд, LDAP‑запросов) через входные данные пользователя. Атакующий может читать, изменять или удалять данные в базах, выполнять команды на сервере и получать доступ к закрытой бизнес‑логике.
A04:2021 — Небезопасный дизайн (Insecure Design)
Ошибки на уровне архитектуры и логики, когда сама схема приложения не предусматривает нормального контроля рисков: слабые ограничения по частоте действий, непродуманные денежные схемы, отсутствие верификации критичных операций. Это не «баг в коде», а заложенный бизнес‑риск, который потом очень сложно закрыть патчами.
A05:2021 — Неправильная конфигурация безопасности (Security Misconfiguration)
Открытые debug‑режимы, стандартные пароли, лишние порты, подробные stack‑трейсы и API‑документы, которые достаются в интернет. Всё это даёт злоумышленнику «карту» системы и сильно упрощает поиск точки входа и эксплуатации уже существующих уязвимостей.
A06:2021 — Уязвимые и устаревшие компоненты (Vulnerable and Outdated Components)
Использование библиотек, фреймворков и сторонних модулей с известными уязвимостями или без регулярного обновления. Уязвимость часто живёт не в вашем коде, а в зависимостях, но ответственность перед пользователями и регуляторами всё равно лежит на вашей организации.
A07:2021 — Ошибки идентификации и аутентификации (Identification and Authentication Failures)
Слабые схемы логина, неправильная работа с паролями, сессиями, токенами и MFA‑механизмами. В результате атакующий может подменить пользователя, перехватить сессию или подобрать учётные данные — и действовать от имени легального клиента или сотрудника.
A08:2021 — Нарушения целостности ПО и данных (Software and Data Integrity Failures)
Отсутствие контроля за тем, что именно загружается и выполняется: неподписанные обновления, модифицированные пакеты, подмена скриптов или образов. Это прямой путь к бэкдорам, скрытому майнингу и подмене логики приложения без ведома разработчиков.
A09:2021 — Ошибки логирования и мониторинга безопасности (Security Logging and Monitoring Failures)
Плохая регистрация событий, отсутствие детекта подозрительной активности и уведомлений. Система не даёт уязвимость сама по себе, но позволяет атаке пройти незамеченной — и бизнес узнаёт о масштабном инциденте уже тогда, когда ущерб нанесен, а доказательства искажены.
A10:2021 — Подделка запросов на стороне сервера (Server‑Side Request Forgery, SSRF)
Когда сервер выполняет сетевые запросы к внутренним ресурсам на основе несанкционированных данных пользователя. Это может привести к доступу к метаданным, административным интерфейсам, внутренним API и базам, даже если они не должны быть доступны извне.
Уязвимости бизнес‑логики и архитектурные ошибки
Помимо классических технических багов вроде SQL‑инъекций существует еще один опасный пласт проблем — уязвимости бизнес‑логики и архитектуры. Их редко находит автоматическое сканирование, потому что здесь ошибка не в конкретной функции, а в том, как работает процесс целиком.
Представьте интернет‑магазин. Пользователь оформляет заказ и попадает на страницу /order/123. Если достаточно просто изменить ID в URL на /order/122, чтобы увидеть чужой заказ с персональными данными, — это классический пример уязвимости бизнес‑логики и некорректного контроля доступа. Формально код может быть написан «чисто», но сама логика проверки прав отсутствует или реализована неверно.
К архитектурным уязвимостям относятся и такие сценарии, как:
- отсутствие разделения прав между сервисами и модулями
- хранение критичных секретов (ключи, токены) в общедоступных местах
- неправильно спроектированные потоки аутентификации и авторизации
- небезопасная обработка сессий и токенов в распределённых системах
Такие проблемы редко подсветит статический анализатор. Их выявляет только ручной анализ кода и архитектурный ревью: эксперт смотрит, как устроены основные сценарии (регистрация, оплата, изменение прав доступа, работа с балансом), строит модель угроз и проверяет, где пользователь или интеграционный сервис может выйти за рамки своих полномочий.
Пользователь меняет параметр user_id или order_id в запросе и получает доступ к чужим данным.
Автоматический сканер может не понять, что это нарушение бизнес‑правил, а вот эксперт по безопасности сразу отметит: «Здесь нет проверки, что ресурс принадлежит текущему пользователю», и предложит корректный механизм авторизации на уровне объекта.
Именно поэтому качественный анализ уязвимостей кода всегда сочетает автоматические проверки с ручным ревью критичных участков и архитектурных решений — только так можно закрыть не только технические, но и логические риски для бизнеса.
Методы анализа уязвимостей кода
Не существует одного универсального инструмента, который найдет все уязвимости сразу. Профессиональный анализ кода — это комбинация нескольких методов, каждый из которых закрывает слепые зоны другого. Ниже — пять ключевых подходов, которые применяются в комплексном аудите безопасности.
Статический анализ (SAST)
SAST (Static Application Security Testing) — это анализ исходного кода без его запуска. Инструмент читает код так же, как это делает разработчик, но ищет не логику, а уязвимые паттерны: небезопасные функции, опасные вызовы, неверную обработку данных.
Хорошая аналогия, SAST — это корректор в Word. Он подчёркивает ошибки красным ещё до того, как вы отправили документ. Вы не ждете, пока читатель наткнется на опечатку — вы исправляете заранее. Именно так работает SAST в цикле разработки: он встраивается в CI/CD-пайплайн и проверяет код автоматически при каждом коммите или сборке.
Главный экономический аргумент в пользу SAST прост: уязвимость, найденная на этапе написания кода, обходится в 10–100 раз дешевле, чем та же уязвимость, обнаруженная после выхода продукта в production или, тем более, после инцидента.
Динамический анализ (DAST)
DAST (Dynamic Application Security Testing) работает принципиально иначе. Если SAST смотрит на чертеж здания, то DAST приходит к уже построенному зданию и методично пробует каждую дверь, окно и вентиляционную шахту — не зная, что внутри, но проверяя, что можно открыть снаружи.
Инструмент не имеет доступа к исходному коду — он имитирует действия реального злоумышленника: отправляет вредоносные запросы, пытается внедрить SQL-код, тестирует заголовки, анализирует ответы сервера. Именно поэтому DAST особенно важен при подготовке к production-релизу: он проверяет не то, как написан код, а то, как ведет себя приложение в реальной среде под нагрузкой атаки.
Интерактивный анализ (IAST)
IAST (Interactive Application Security Testing) — это «лучшее из двух миров». Метод работает через агент, встроенный непосредственно в среду выполнения приложения. Пока тестировщик или автоматизированные тесты взаимодействуют с приложением, агент IAST изнутри отслеживает каждый поток данных, вызов функции и запрос к базе данных — и мгновенно фиксирует уязвимости с точным указанием уязвимой строки кода.
Результат: минимум ложных срабатываний, максимальная точность и контекст — инструмент знает и исходный код (как SAST), и реальное поведение приложения (как DAST). Ограничение — IAST требует интеграции агента в рантайм, что усложняет первоначальную настройку. Этот метод оптимален для зрелых команд с выстроенными DevSecOps-процессами и комплексными тест-сьютами.
Анализ зависимостей (SCA)
SCA (Software Composition Analysis) решает проблему, о которой многие разработчики забывают: современное приложение на 70–90% состоит не из собственного кода, а из сторонних библиотек, фреймворков и open-source компонентов. И каждый из них может содержать уязвимость, о которой вы не знаете.
Самый показательный пример — Log4Shell (CVE-2021-44228): уязвимость в популярной Java-библиотеке log4j позволяла выполнить произвольный код удаленно. Её последствия ощутили тысячи компаний по всему миру — хотя их разработчики не написали ни строчки уязвимого кода. Именно такие ситуации и предотвращает SCA: инструмент сканирует все зависимости, сверяет их версии с базами CVE и NVD и сигнализирует о каждой проблемной библиотеке.
SCA контролирует безопасность 70–90% кодовой базы, которую команда не писала сама.
Ручной code review
Автоматика дает скорость и охват. Человек дает глубину и контекст. Ручной анализ кода — это экспертная проверка критичных участков специалистом по безопасности, который не просто ищет известные паттерны, а думает как атакующий.
В ходе ручного code review эксперт применяет методологию моделирования угроз STRIDE — систематически проверяя каждый критичный модуль на шесть классов угроз: Spoofing (подмена), Tampering (подделка данных), Repudiation (отрицание действий), Information Disclosure (раскрытие информации), Denial of Service (отказ в обслуживании), Elevation of Privilege (повышение привилегий). Это позволяет выявить уязвимости, которые не имеют «сигнатуры» в базах данных и невидимы для любого автоматического инструмента.
Для оценки соответствия по ОУД4 в рамках ГОСТ Р ИСО/МЭК 15408‑3 в состав мероприятий входит анализ уязвимостей и экспертиза исходного кода и архитектуры программного обеспечения, что на практике обычно реализуется через ручной ревью и экспертный анализ.
Что делает эксперт при анализе критичного модуля:
- Изучает архитектуру — схемы потоков данных, точки входа, интеграции
- Строит модель угроз — применяет STRIDE к ключевым компонентам
- Проверяет критичные сценарии — авторизация, оплата, управление сессиями, API
- Верифицирует находки SAST/DAST — убирает ложные срабатывания, подтверждает реальные
- Ищет логические уязвимости — то, что автоматика принципиально не видит
- Формирует рекомендации — конкретные фиксы с примерами кода
Сравнение методов анализа уязвимостей кода
| Метод | Описание | Плюсы | Минусы | Примеры уязвимостей |
| SAST (Static) Белый ящик, код без запуска | Анализ исходного кода на ранних этапах. | Раннее выявление (до деплоя), 100% покрытие кода, CI/CD интеграция. | Много ложных срабатываний, не видит runtime-ошибки. | SQL-инъекции, XSS, слабая криптография |
| DAST (Dynamic) Чёрный ящик, работающее app | Тестирование запущенного приложения, симуляция атак. | Реальные угрозы в runtime, независимо от языка. | Не анализирует код напрямую, пропускает логику. | Атаки на сессии, конфигурационные дыры |
| IAST (Interactive) Гибрид в реальном времен | Агент внутри app, сочетает SAST+DAST во время выполнения. | очная детекция (до 100% OWASP), мало фолсов. | Требует внедрения агента, нагрузка на prod. | Потоки данных, динамические пути кода. |
| SCA (Composition) Анализ зависимостей | Сканирование библиотек и open-source на известные CVE. | Быстрое покрытие third-party, базы NVD. | Только известные уязвимости, не кастомный код. | Устаревшие пакеты с эксплойтами. |
| Ручной code review Ручной аудит экспертами | Глубокий человеческий анализ кода/логики. | Логические ошибки, бизнес-уязвимости, zero-day. | Медленно (2-3 недели), дорого, субъективно. | Авторизация, архитектура, кастом-логика. |
Кому и когда необходим анализ кода
Отрасли и типы компаний
Анализ уязвимостей кода нужен не только крупным корпорациям с отделом безопасности. Он критичен для любой компании, где ошибка в коде может стоить денег, данных или доверия клиентов — то есть практически для всех, кто разрабатывает или использует программное обеспечение.
Финансовый сектор (банки, fintech, платёжные системы)
Утечка платёжных данных или взлом ДБО — это не просто технический инцидент, это предписание регулятора, штраф, судебные иски и волна оттока клиентов. Плюс прямое требование Банка России по 683-П и 719-П: анализ кода по ОУД4 обязателен.
E-commerce и маркетплейсы
Миллионы транзакций, данные банковских карт, личные кабинеты пользователей — всё это лакомая цель для атакующих. Уязвимость в корзине или API оплаты способна обнулить доверие к платформе быстрее, чем любой негативный отзыв.
Медицина и Healthtech
Медицинские данные стоят на чёрном рынке дороже, чем платёжные. Утечка истории болезней — удар по репутации клиники и прямое нарушение 152-ФЗ о персональных данных. Анализ кода защищает самое ценное: информацию о пациентах.
Госсектор и критическая инфраструктура
Государственные сервисы обрабатывают данные миллионов граждан. Требования ФСТЭК к защищенности ПО обязательны, а любой инцидент немедленно становится публичным и репутационным скандалом федерального масштаба.
SaaS-компании и B2B-платформы
Один клиент — это ещё допустимый риск. SaaS-платформа с сотнями корпоративных клиентов — это риск цепного поражения: уязвимость в общем коде затрагивает всех сразу. Партнеры и корпоративные заказчики всё чаще требуют подтверждения безопасности кода как условие сделки.
Стартапы перед выходом в production
У стартапа нет запаса прочности на инцидент. Первая утечка данных на этапе роста — это часто конец проекта. Аудит кода перед релизом — это не трата денег, это защита того единственного актива, который уже есть: доверия первых пользователей.
Требования регуляторов: ГОСТ 15408-3, ОУД4, 683-П
Для кредитных организаций анализ уязвимостей прикладного ПО по уровню доверия ОУД4 не является вопросом зрелости процессов, а прямо вытекает из требований Положений Банка России № 683‑П и № 719‑П. Если вы разрабатываете или эксплуатируете банковское платежное ПО, анализ уязвимостей по ОУД4 по факту становится обязательным элементом работы с банком.
Ключевые документы в банковской сфере — Положение Банка России № 683‑П и связанное с ним № 719‑П. Они обязывают кредитные организации использовать прикладное ПО, для которого либо проведена сертификация в системе сертификации ФСТЭК, либо выполнен анализ уязвимостей/оценка соответствия по оценочному уровню доверия ОУД4 по ГОСТ Р ИСО/МЭК 15408‑3, что включает исследование исходного кода программного обеспечения.
Положение № 719‑П устанавливает, что оценка соответствия по ОУД4 должна выполняться организацией, имеющей лицензию ФСТЭК на техническую защиту конфиденциальной информации (ТЗКИ); внутреннее заключение без участия такой организации, как правило, не признаётся выполнением требования регулятора.
Нормативные требования к анализу кода:
| Документ | Кого касается | Требование | Периодичность |
| ГОСТ Р ИСО/МЭК 15408-3 (ОУД4) | Разработчики банковского и платёжного ПО | Комплексный анализ уязвимостей, ручной ревью исходного кода, пентест | При каждой значимой версии ПО |
| Положение Банка России № 683-П | Кредитные организации | Оценка соответствия прикладного ПО по ОУД4 | Не реже 1 раза в год / при обновлении ПО |
| Положение Банка России № 719-П | Операторы платёжных систем, разработчики ПО для переводов | Оценка соответствия по ОУД4, привлечение лицензированного оценщика | При выпуске / обновлении ПО |
| 152-ФЗ «О персональных данных» | Все операторы персональных данных | Обеспечение безопасности ПО, обрабатывающего ПДн | Постоянно, при изменениях систем |
| Приказы ФСТЭК № 17, 21, 239 | ГИС, ИСПДн, КИИ | Анализ уязвимостей ПО в рамках аттестации и проверок | При аттестации / изменениях ИС |
Ответственность за нарушение требований давно определены: регуляторные предписания, штрафы (до нескольких миллионов рублей по 152-ФЗ), приостановка деятельности, а в случае КИИ — уголовная ответственность по ст. 274.1 УК РФ. Инвестиция в аудит кода несопоставимо меньше, чем стоимость последствий.
Как выбрать подрядчика для анализа кода
Рынок ИБ-услуг насыщен предложениями, но не все из них равноценны — и не все законны. Выбор подрядчика для анализа кода — это решение, которое напрямую влияет на юридическую силу результата и реальную защищенность вашего продукта.
Первое и жёсткое требование: подрядчик обязан иметь лицензию ФСТЭК России на техническую защиту конфиденциальной информации (ТЗКИ). Это не формальность — анализ кода без лицензии ФСТЭК является незаконным видом деятельности и не имеет юридической силы при проверках регулятором. Убедитесь в наличии лицензии до подписания договора: реестр лицензиатов ФСТЭК открыт и доступен онлайн.
Второй критерий — методология и стандарты. Профессиональный подрядчик работает по признанным методологиям: OWASP Testing Guide, ГОСТ Р ИСО/МЭК 15408-3, ГОСТ 58143-2018. Если компания не может объяснить, по какому стандарту проводится работа, — это тревожный сигнал.
Чеклист: на что обратить внимание при выборе подрядчика для пентеста
При выборе поставщика услуг по тестированию на проникновение (пентесту) обращайте внимание на следующие критерии:
✅ Модель тестирования и нарушителя. Возможность согласования модели без влияния на итоговую стоимость.
✅ Коммуникация с исполнителями. В ходе проекта должна быть прямая оперативная связь с пентестерами для решения вопросов и согласований.
✅ Перепроверка уязвимостей. Бесплатная в течение 14 дней после завершения проекта.
✅ Сертификация специалистов. У членов команды должны быть актуальные профессиональные сертификаты (OSCP, OSWE, eWPTX, BSCP, CEH, OSCE), выданные не более года назад.
✅ Собственная команда. Все специалисты по тестированию на проникновение должны состоять в штате компании и получать официальную заработную плату. Избегайте подрядчиков которые перепродают ваши работы на субподрядчика.
✅ Подробный SLA. Документ должен содержать чёткие сроки, описание этапов и конкретный перечень предоставляемых услуг, а не быть формальностью на одной странице.
Качественный отчёт. Результаты пентеста должны быть понятны бизнесу, ИТ-отделу и службе ИБ, включать скриншоты и практические рекомендации по устранению уязвимостей.
✅ Дополнительные услуги. Возможность получения льготных условий на мониторинг и реагирование на киберугрозы (SOC).
✅ Опыт команды. Наличие не менее 50 успешно выполненных проектов разной сложности и направленности.
✅ Ответственное проведение тестов. Не допускается использование уязвимостей типа DoS (отказ в обслуживании) без предварительного согласования с заказчиком.
Выбирая подрядчика только по цене, вы рискуете получить формальный документ без реальной ценности — или, что хуже, передать исходный код ненадежной стороне. Правильный партнёр по безопасности — это не разовый исполнитель, а долгосрочный консультант, который помогает выстроить защищённую разработку системно.
Александр ЗубриковГенеральный директор ITG Security
Стоимость и сроки
Один из самых частых вопросов — «сколько это стоит?». Честный ответ: стоимость анализа кода всегда индивидуальна, потому что каждый проект уникален по объёму, технологическому стеку и требуемому уровню глубины проверки. Но есть важный контекст, который стоит осознать до того, как сравнивать цифры.
Средняя стоимость устранения уязвимости, найденной на этапе разработки, в 10–100 раз ниже, чем устранение той же уязвимости после инцидента. А цена самого инцидента — утечки данных, штрафов регулятора, судебных исков и репутационного ущерба — может исчисляться десятками миллионов рублей и полной потерей доверия клиентов. Анализ кода — это не статья расходов, это страховой полис с прозрачной стоимостью.
Факторы, влияющие на стоимость аудита кода:
| Фактор | Влияние на стоимость | Пояснение |
| Объём кодовой базы | ↑ при большом объёме | Чем больше строк кода и модулей — тем больше времени на проверку |
| Используемые языки и стек | ↑ при редких/сложных стеках | Анализ С/C++ или legacy-кода требует более высокой квалификации |
| Набор методов | ↑ при комплексном подходе | SAST+DAST+SCA+ручной ревью стоит дороже, чем один автоматический скан |
| Уровень сертификации | ↑ при ОУД4 / ГОСТ 15408-3 | Регуляторный аудит с оформлением официального заключения — отдельный объём работ |
| Наличие документации | ↓ при полной документации | Архитектурные схемы и описание бизнес-логики сокращают трудозатраты эксперта |
| Сроки выполнения | ↑ при срочности | Ускоренный режим требует привлечения дополнительных ресурсов |
| Тип приложения | Варьируется | Мобильное, веб, десктоп, embedded — разная специфика и инструментарий |
| Повторный аудит | ↓ | При повторной проверке после устранения замечаний объём работ меньше |
Ориентиры по срокам
Сроки анализа уязвимостей зависят от тех же параметров, что и стоимость. Типичный диапазон — от 5 рабочих дней для небольшого сервиса с автоматизированным сканированием до 4–8 недель для комплексного аудита крупной платформы с ручным ревью и оценкой по ОУД4. Регуляторный аудит с официальным заключением требует дополнительного времени на оформление документов.
Хорошая новость, встраивание анализа кода в CI/CD-процессы сокращает время каждой последующей проверки — автоматические проверки работают параллельно с разработкой, не останавливая релизный цикл.




