Материал

GitLab Duo Code Review: что видит AI-ревьюер и почему этого недостаточно для security gate

AI смотрит на код — но security gate это не только код

AI-ревьюер в MR — удобно, но что именно он делает?

Когда GitLab добавил @GitLabDuo как назначаемого ревьюера, это выглядело как логичный шаг: AI смотрит на код до того, как это делает человек, и снижает нагрузку на команду. Функция удобная, нативная, не требует внешних интеграций.

Проблема не в том, что она плохая. Проблема в том, как её воспринимают: многие команды негласно начинают считать, что если Duo одобрил MR — значит, с безопасностью всё нормально. Это не так, и это не вина GitLab — документация честно описывает ограничения. Но между «написано в доках» и «понято командой перед релизом» — большая дистанция.

Эта статья — для тех, кто хочет понять, что именно GitLab Duo Code Review делает хорошо, где его границы, и как правильно выстроить security gate вокруг него, а не вместо него.

Материал будет полезен CTO, VP Engineering, Tech Lead и AppSec-специалистам, которые уже используют GitLab и думают о том, как повысить уровень безопасности без лишней бюрократии.

Как устроен GitLab Duo Code Review: от beta к agentic-флоу

Эволюция функции

Duo Code Review появился как эксперимент в GitLab 17.5 (второй квартал 2024 года) под двумя feature-флагами: ai_review_merge_request и duo_code_review_chat. Оба были отключены по умолчанию. В 17.10 флаги включили на GitLab.com, Self-Managed и Dedicated по умолчанию — функция перешла в beta. В 18.1 (начало 2025 года) она стала GA [1].

Параллельно GitLab развивал agentic-версию — Code Review Flow на базе Duo Agent Platform. Она вышла в GA в GitLab 18.8 и работает принципиально иначе: не просто анализирует диф, а запускает агентную сессию с полным контекстом репозитория, многоходовым reasoning и поддержкой кастомных инструкций через mr-review-instructions.yaml [2].

Таким образом, сегодня в GitLab сосуществуют два режима:

  1. Duo Code Review (non-agentic) — доступен при наличии GitLab Duo Enterprise add-on.
  2. Code Review Flow (agentic) — часть Duo Agent Platform, GA начиная с 18.8, доступен с GitLab Credits [2].

Это важно понимать, потому что возможности этих двух режимов существенно различаются, и перед настройкой security gate нужно чётко знать, какой именно инструмент работает в вашем экземпляре.

Что делает AI-ревьюер

По официальной документации, Duo Code Review и Code Review Flow выполняют следующие задачи [2, 3]:

  • анализируют изменения кода в MR (полный контент изменённых файлов, а не только фрагменты вокруг diff-строк);
  • выявляют потенциальные баги и предлагают улучшения, которые можно применить прямо из браузера;
  • создают описание MR (Merge Request Summary) на основе diff;
  • поддерживают follow-up диалог: разработчик может ответить на комментарий @GitLabDuo или упомянуть его в треде;
  • поддерживают кастомные инструкции для проекта — фокус на security, performance, coding standards, специфические паттерны файлов.

Agentic-версия добавляет к этому более глубокий контекст структуры репозитория и cross-file зависимостей в рамках одного репо [2].

Интеграция с SAST и vulnerability workflow

Отдельно от ревью MR — и это важно не путать — GitLab Duo участвует в vulnerability workflow:

  • Duo Vulnerability Explanation: объясняет уязвимость, найденную SAST-сканером, простым языком, указывает на CWE и предлагает вектор эксплуатации.
  • Duo Vulnerability Resolution: генерирует suggestion-комментарий прямо в MR с фиксом уязвимости (поддерживаются конкретные CWE-идентификаторы).
  • Agentic SAST Vulnerability Resolution: multi-shot reasoning, автоматически создаёт MR с фиксом для High/Critical SAST-находок, запускает pipeline для валидации, выдаёт confidence score. Стал GA в GitLab 18.11 [4].

По данным GitLab 2025 DevSecOps Report, разработчики тратят 11 часов в месяц на ремедиацию уязвимостей уже после релиза [4]. Agentic Resolution напрямую атакует эту проблему — но только для SAST-находок с CWE-идентификатором из поддерживаемого списка.

Что AI-ревьюер видит хорошо

Честный разговор о Duo Code Review начинается с признания того, что он делает реально хорошо:

Качество кода и логические ошибки. Duo анализирует весь контент изменённых файлов одновременно, а не по фрагментам. Это позволяет замечать нелогичные условия, потенциальные NPE, неправильную обработку ошибок, дублирование логики [1].

Объяснение SAST-находок. Вместо криптичного CVE-ID или scanner alert — понятное объяснение на человеческом языке: что за уязвимость, как её могут эксплуатировать, как исправить. Это значительно снижает время разработчика на понимание и triaging [5].

Автоматические фиксы для известных уязвимостей. Для поддерживаемых типов уязвимостей (SAST + CWE) Duo может сгенерировать патч и открыть MR. Это полезно для очевидных случаев — SQL injection, insecure API use, небезопасная работа с паролями [6].

Снижение нагрузки на human reviewer. AI делает первый проход, оставляет инлайн-комментарии, человек фокусируется на архитектуре и бизнес-логике. Это разумное разделение труда [7].

Root Cause Analysis для CI/CD. Отдельный, но связанный инструмент — анализ упавших pipeline-джобов: summarize → analyze → fix proposal [1].

Где у AI-ревьюера заканчивается видимость

Здесь начинается главная тема статьи. Давайте пройдём по слепым зонам последовательно.

1. Граница репозитория

GitLab Duo Code Review работает строго в пределах одного MR и одного репозитория [1]. Для монорепо это ограничение менее критично. Для микросервисной архитектуры или распределённых систем — это структурный blind spot.

AI-ревьюер не видит:

  • API-контракты в downstream-сервисах, на которые влияет изменение;
  • shared library version constraints, управляемые в другом репо;
  • cross-service data flow implications.

Это означает, что breaking change, затрагивающий несколько сервисов, может пройти ревью без единого предупреждения [1].

2. Зависимости: транзитивные, lock-файлы, advisories

AI-ревьюер анализирует код изменения. Он не является SCA-инструментом (Software Composition Analysis). Это разные задачи.

Когда разработчик добавляет новую зависимость или обновляет существующую, Duo Code Review не проверяет:

  • известные CVE в пакете или его транзитивных зависимостях;
  • integrity lock-файла (совпадает ли package-lock.json или Gemfile.lock с тем, что реально установится в CI);
  • advisories в реестрах (npm, PyPI, Maven Central);
  • лицензионную совместимость.

GitLab предоставляет для этого отдельный инструмент — Dependency Scanning, который работает в рамках CI/CD pipeline и выдаёт отчёт с известными уязвимостями в зависимостях [8]. Это отдельный модуль, отдельный pipeline-шаг, и он не является частью Duo Code Review.

По данным GitLab 8th DevSecOps Report (2024), 67% разработчиков указали, что более четверти их кода приходит из open source библиотек — при этом только 21% организаций используют SBOM для документирования состава программного обеспечения [9].

3. Package hallucinations — угроза, которую ревьюер не видит структурно

Это отдельная и достаточно новая угроза, заслуживающая особого внимания.

Когда LLM генерирует код, он может сослаться на пакет, которого не существует в реестре. Исследование, опубликованное на USENIX Security 2025, проверило 16 моделей и 2,23 миллиона сгенерированных образцов кода: коммерческие модели галлюцинировали пакеты в 5,2% случаев, open-source модели — в 21,7% [10].

Если атакующий мониторит популярные галлюцинированные имена и регистрирует пакет с таким именем в npm или PyPI — все команды, которые доверяют LLM-output без проверки, рискуют получить malicious package. Trend Micro назвал этот тип атак slopsquatting [10, 11].

AI-ревьюер в MR не проверяет, существует ли пакет в реестре. Он не сверяет имя с advisories. Он не знает, был ли этот пакет зарегистрирован неделю назад под галлюцинированным именем. Это архитектурное ограничение, не баг: для этого нужна интеграция с package registry и SCA, а не языковая модель.

4. Конфиги, IaC, CI/CD-файлы

Изменения в .gitlab-ci.yml, Dockerfile, Kubernetes-манифестах, Terraform-конфигах, Ansible-плейбуках — всё это попадает в MR. AI-ревьюер может прочитать эти файлы и оставить комментарий общего характера, но он не является специализированным IaC-сканером.

GitLab предоставляет для этого Infrastructure as Code Scanning — отдельный инструмент на базе KICS (Keeping Infrastructure as Code Secure), который проверяет конфиги на известные misconfigurations: слишком широкие права, insecure defaults, открытые порты, privileged containers [8].

Duo Code Review не заменяет IaC Scanning так же, как не заменяет SAST или SCA.

5. Секреты и credentials

Hardcoded API keys, tokens, passwords в коде — отдельная, хорошо известная угроза. По статистике за 2025 год, секреты в AI-генерированном коде часто не обнаруживаются стандартными паттернами из-за нестандартных форматов, а 70% организаций не имеют автоматизированного secret scanning для AI-генерированного кода [12].

GitLab имеет встроенный Secret Detection, который работает как отдельный CI-шаг. AI-ревьюер может заметить явно выглядящий хардкод — но это не то же самое, что специализированный инструмент с энтропийным анализом и валидацией активности секрета.

GitLab 18.7 добавил Secret Validity Checks GA: проверка, является ли обнаруженный секрет актуальным [13]. Это полезная функция — но она работает в рамках Secret Detection pipeline, а не в Code Review.

6. Контекст релиза

Merge request — это не весь контекст. Есть ещё: а что именно идёт в этот релиз? Какие другие изменения накапливались в ветке? Какова среда деплоя? Это выходит за пределы того, что AI-ревьюер видит в принципе.

Security gate — это не одна кнопка

Понимание того, что такое security gate в GitLab, помогает правильно встроить Duo Code Review в общую картину.

Merge Request Approval Policies

GitLab позволяет настроить политики, при которых MR нельзя влить без дополнительного approval, если:

  • SAST-сканер нашёл новую Critical или High severity уязвимость;
  • Dependency Scanning обнаружил уязвимую зависимость с доступным фиксом;
  • Secret Detection сработал на новый секрет.

Эти политики работают через Scan Result Policies и требуют GitLab Ultimate [8, 14]. Они создают реальный блокирующий gate — в отличие от комментариев AI-ревьюера, которые носят рекомендательный характер.

Важно: Duo Code Review не является частью этого механизма. Его комментарии не блокируют merge автоматически. Чтобы gate заработал, нужно явно настроить approval policies на основе результатов scanner-инструментов.

Что именно делают сканеры, которые Duo не заменяет

Перечислим конкретно:

  1. SAST (включая Advanced SAST с cross-file taint analysis) — статический анализ кода на уязвимые паттерны. Advanced SAST выполняет cross-function и cross-file taint analysis, отслеживая путь пользовательского ввода к sink [5].
  2. Dependency Scanning (SCA) — CVE в зависимостях, включая транзитивные, с информацией о доступных фиксах.
  3. Secret Detection — энтропийный анализ + паттерны + валидация активности секрета.
  4. Container Scanning — уязвимости в base image и пакетах внутри контейнера.
  5. IaC Scanning — misconfigurations в инфраструктурных конфигах.
  6. DAST — динамический анализ работающего приложения.

Duo Code Review (и SAST Vulnerability Resolution) работает поверх результатов SAST — объясняет, помогает исправить. Но если SAST не запущен — Duo не создаёт security findings самостоятельно [6].

По данным анализа платформы AquilaX (март 2026), GitLab SAST на базе Semgrep — паттерн-ориентированный инструмент. Он не выполняет полный inter-procedural data flow analysis для большинства языков по умолчанию. Advanced SAST закрывает часть этого gap, но требует GitLab Ultimate [8].

Почему "работает" ≠ "безопасно для merge"

Исследование Apiiro зафиксировало: к июню 2025 года AI-генерированный код вносил более 10 000 новых security findings в месяц по изученным репозиториям — 10-кратный рост за шесть месяцев по сравнению с декабрём 2024 [15].

Тот же анализ показывает: AI-инструменты хорошо справляются с тривиальными ошибками — синтаксические баги упали на 76%, логические — более чем на 60%. Но CVSS 7.0+ уязвимости встречаются в AI-генерированном коде в 2,5 раза чаще, чем в человеческом [15].

По данным GitLab Global DevSecOps Report 2026, организации теряют 7 часов в неделю на одного члена команды из-за неэффективных процессов, связанных с AI — инструментальная фрагментация, дублирование проверок, неоднозначность ответственности [16].

Вот где возникает реальный операционный риск: PR написан AI, ревью сделал AI, пайплайн зелёный — и никто не дочитал диф до конца. Если SCA не запущен, lock-файл не проверен, конфиг не просканирован — риск едет в прод незаметно.

По данным Fortune (декабрь 2025), supply chain атаки выросли на 40% год к году, и AI-инструменты стали одним из факторов расширения этой поверхности [17]: "Supply chain has always been a weak point in security for software developers. It's even more prevalent now with AI tools."

Архитектура security gate: что должно быть рядом с Duo

Следующий блок — практический. Не теория "надо бы добавить", а конкретные слои контроля.

Слой 1: CI/CD security scans в каждом MR

Минимальный набор для teams на GitLab:

  1. SAST (Semgrep) или Advanced SAST (для cross-file analysis) — включить в merge request pipelines через rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event".
  2. Dependency Scanning — ловит CVE в зависимостях включая транзитивные.
  3. Secret Detection — блокирует секреты до push или хотя бы до merge.
  4. IaC Scanning — если в репо есть инфраструктурные конфиги.

Эти инструменты дают structured findings — machine-readable результаты, которые можно использовать для Merge Request Approval Policies.

Слой 2: Merge Request Approval Policies

Настраиваются на уровне группы или проекта (требует Ultimate tier). Рекомендуемая конфигурация:

  1. Любой новый Critical или High SAST-finding требует approval от AppSec-инженера или Security Manager.
  2. Dependency Scanning: новая уязвимость с доступным фиксом — warn mode или require approval.
  3. Secret Detection: любой hit — блокировка merge (не warn, а hard block).
  4. IaC Scanning с критическим мисконфигом — require approval.

Это не бюрократия ради бюрократии: это конкретный gate с конкретным сигналом [14].

Слой 3: Lock-файлы и SCA-валидация

Политика для команды: любое изменение package-lock.json, Gemfile.lock, poetry.lock, go.sum — обязательный Dependency Scanning в пайплайне. Не опционально, не только для main branch, а в каждом MR с этими файлами.

Дополнительно: верифицировать, что lock-файл совпадает с тем, что реально устанавливается в CI. Атаки через подмену lock-файла — не гипотетические.

Слой 4: Проверка пакетов на hallucinations и slopsquatting

Если в команде используется AI-кодинг (а он уже используется — явно или неявно через AI-IDE), нужна проверка новых пакетов перед installpm. Несколько подходов:

  1. Registry policy: разрешённые namespace'ы и publisher'ы для внутренних пакетных зеркал.
  2. Дата регистрации пакета как сигнал риска: если пакет зарегистрирован на прошлой неделе и не имеет звёзд — это повод для проверки.
  3. Инструменты типа pip-audit, npm audit, Snyk, Socket.dev — они специализируются на SCA и имеют более глубокий анализ, чем GitLab Dependency Scanning для некоторых реестров.

Слой 5: Human review для критических файлов

CODEOWNERS — встроенный механизм GitLab для назначения обязательных ревьюеров для конкретных файлов. Список файлов, которые всегда должен смотреть человек:

  • .gitlab-ci.yml и все CI/CD-конфиги;
  • Dockerfile, базовые image-файлы;
  • /migrations/ — миграции баз данных;
  • /internal/, /admin/ — внутренние утилиты и admin tools;
  • все файлы secrets management, Vault-конфиги, IAM-политики.

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

Ошибки и анти-паттерны

Анти-паттерн 1: "Duo одобрил — значит безопасно"

Duo Code Review — это рекомендательный инструмент. Его комментарии не являются blocking gate. Если команда не настроила Approval Policies на основе scanner-находок, merge можно провести мимо любых security findings.

Анти-паттерн 2: Запускать SAST только на main branch

По умолчанию SAST в GitLab запускается только в branch pipelines. Для MR security gate нужно явно добавить правило запуска в merge request pipelines [8]. Без этого сканнер видит код после merge, а не до.

Анти-паттерн 3: Игнорировать транзитивные зависимости

Большинство реальных supply chain атак приходят через транзитивные зависимости, а не прямые. Если Dependency Scanning не настроен или настроен без full tree traversal, вы видите только верхний уровень.

Анти-паттерн 4: Считать false positives оправданием для отключения сканеров

GitLab SAST (Semgrep-based) генерирует false positives, особенно при масштабировании. По данным AquilaX (март 2026), это приводит к тому, что разработчики начинают игнорировать security alerts как шум [8]. Решение — не отключение, а AI-assisted triage (GitLab Duo предоставляет confidence scores для false positive detection в SAST) и кастомизация правил.

Анти-паттерн 5: Полагаться на Duo Code Review для IaC security

CI/CD-файлы — одна из наиболее опасных поверхностей: job token permissions, privileged containers, exposed secrets в переменных. AI-ревьюер прочтёт файл, но специализированный IaC Scanning на базе KICS проверяет его против конкретного набора правил безопасности.

Контрастный взгляд: а что реально ограничено в Duo?

Честность требует указать на ограничения, которые сам GitLab признаёт в документации:

  • GitLab явно предупреждает: нельзя гарантировать, что LLM всегда производит корректные результаты. Предложенные фиксы нужно проверять вручную [6].
  • Agentic SAST Resolution иногда не может сгенерировать фикс: слишком сложный паттерн кода, требующий дополнительного контекста, или LLM-модель оценила это как false positive [4].
  • Обратная связь, предоставленная GitLab Duo в одном MR, не влияет на последующие ревью — каждый MR анализируется заново без "памяти" [2].
  • Code Review Flow не читает AGENTS.md и SKILL.md файлы [2].

Всё это — не поводы не использовать Duo. Это поводы понимать, что стоит за той или иной функцией, и строить security процессы с учётом этих свойств.

Что будет дальше: agentic security в GitLab

GitLab движется в сторону "AI as platform" — агентные флоу, оркестрация, специализированные агенты. Несколько сигналов из 2025–2026:

  • Agentic SAST Vulnerability Resolution (GA в 18.11): не просто объяснение, а автоматическое создание MR с фиксом и confidence score [4].
  • Security Analyst Agent (beta в 18.2+): специализированный агент для анализа security posture.
  • Context exclusion (18.4): команды могут явно исключить sensitive файлы/директории из контекста Duo — важный governance-рычаг [13].
  • Separate model selection для chat vs agents (18.7) [13].

По данным GitLab Global DevSecOps Survey 2026 (опрос 3 266 специалистов), 85% считают, что agentic AI будет наиболее эффективен при реализации через platform engineering подход [16]. Это и есть вектор: не отдельный AI-инструмент поверх процессов, а AI, встроенный в управление изменениями как часть платформы.

При этом сам GitLab фиксирует "AI Paradox": 82% организаций деплоят в прод как минимум еженедельно, но 60% используют более 5 инструментов для разработки, и 49% — более 5 AI-инструментов. Семь часов потерь на члена команды в неделю — это не AI, это инструментальный хаос поверх AI [16].

Заключение: security gate требует слоёв, а не одного инструмента

GitLab Duo Code Review — это ценный первый проход: AI видит весь контент изменённых файлов в рамках MR, объясняет SAST-находки, предлагает фиксы, снижает нагрузку на human reviewer. Agentic-версия добавляет multi-shot reasoning и контекст репозитория.

Но это именно первый проход, а не security gate.

Security gate в GitLab — это:

  1. SAST в каждом MR (не только на main).
  2. Dependency Scanning с полным обходом транзитивных зависимостей.
  3. Secret Detection с блокировкой merge при срабатывании.
  4. IaC Scanning для инфраструктурных конфигов.
  5. Merge Request Approval Policies, привязанные к scanner-результатам.
  6. CODEOWNERS для критических файлов — CI/CD, миграции, admin code.
  7. Понимание угрозы package hallucinations и проверка новых пакетов.

AI-ревьюер делает этот стек быстрее и понятнее. Но заменить его не может.

Практический вопрос, который стоит задать команде перед следующим релизом: "Если в этом MR пришла новая транзитивная зависимость с CVE-9.0 или галлюцинированный пакет, который зарегистрировала атакующая сторона — кто это заметит и что остановит merge?"

Если ответ — "надеемся на Duo Code Review", архитектура security gate требует пересмотра.

Именно в этом пространстве работает HighVibe — как дополнительный слой контроля для команд, которые уже ускорили разработку с AI. Не замена GitLab SAST, SCA или Duo, а фокусированный сигнал перед merge и релизом: что именно в этом изменении требует внимания, и можно ли безопасно принять его прямо сейчас.

Источники

[1] Augment Code — "GitLab Duo AI Code Review: 6 Features for CI/CD Teams" — https://www.augmentcode.com/tools/gitlab-duo-ai-code-review

[2] GitLab Docs — "Code Review Flow" — https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/

[3] GitLab Docs — "GitLab Duo in merge requests" — https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/

[4] BusinessWire / Help Net Security — "GitLab Extends Agentic AI with Automated Security Remediation" — https://www.helpnetsecurity.com/2026/04/17/gitlab-18-11-agentic-ai/

[5] GitLab Blog — "Quick vulnerability remediation with GitLab Advanced SAST + Duo AI" — https://about.gitlab.com/blog/quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai/

[6] GitLab Docs — "Resolve vulnerabilities with AI" — https://docs.gitlab.com/user/application_security/remediate/duo/

[7] Panto.ai — "AI Code Review Tools for GitLab Merge Requests" — https://www.getpanto.ai/blog/ai-code-review-tools-gitlab-merge-requests

[8] AquilaX — "GitLab CI/CD Security Scanning: SAST, DAST, and SCA Integration Guide" — https://aquilax.ai/blog/gitlab-security-scanning-cicd

[9] Developer-tech.com — "GitLab's DevSecOps report highlights AI challenges" — https://www.developer-tech.com/news/gitlab-devsecops-report-highlights-ai-challenges/

[10] USENIX Security 2025 / arXiv — "We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs" — https://arxiv.org/abs/2406.10279

[11] DevOps.com — "AI-Generated Code Packages Can Lead to Slopsquatting Threat" — https://devops.com/ai-generated-code-packages-can-lead-to-slopsquatting-threat-2/

[12] SQ Magazine — "AI Coding Security Vulnerability Statistics 2026" — https://sqmagazine.co.uk/ai-coding-security-vulnerability-statistics/

[13] ALMtoolbox — "GitLab 2025 Release Highlights: AI-First DevSecOps" — https://www.almtoolbox.com/blog/gitlab-2025-release-highlights-ai-cicd-devsecops/

[14] GitLab Docs — "Merge request approval policies" — https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/

[15] Apiiro — "4x Velocity, 10x Vulnerabilities: AI Coding Assistants Are Shipping More Risks" — https://apiiro.com/blog/4x-velocity-10x-vulnerabilities-ai-coding-assistants-are-shipping-more-risks/

[16] GitLab IR — "GitLab Survey Reveals the AI Paradox" — https://ir.gitlab.com/news/news-details/2025/GitLab-Survey-Reveals-the-AI-Paradox-Faster-Coding-Creates-New-Bottlenecks-Requiring-Platform-Solutions/default.aspx

[17] Fortune — "AI coding tools exploded in 2025. The first security exploits show what could go wrong" — https://fortune.com/2025/12/15/ai-coding-tools-security-exploit-software/

Нужен такой же контроль в ваших изменениях и релизах?

Покажем пример такого замечания на вашем сценарии и соберём пилотный контур без лишней суеты.

Запросить пилот Все статьи
Дальше по теме

Ещё материалы

Все статьи
24 июня 2026 18 мин

Политика использования ИИ в команде разработки: как не опоздать, когда всё уже идёт

Если разработчики уже пишут код с ИИ ассистентами, политика нужна сегодня — а не после первого инцидента TL;DR Более 84% разработчиков уже используют или планируют использовать ИИ инструменты 1 , и большинство делают эт…

Открыть материал
23 июня 2026 16 мин

Регистрация и онбординг пользователей: где появляются первые уязвимости

Форма регистрации выглядит просто. За ней скрывается один из наиболее атакуемых периметров приложения. TL;DR Форма регистрации и онбординг флоу — это первая поверхность атаки, которую видит злоумышленник. Большинство уя…

Открыть материал
23 июня 2026 15 мин

Бизнес-логика и мошенничество в продукте: что проверять до запуска

Ваш продукт работает правильно. Но это не значит, что он работает безопасно. TL;DR Уязвимости бизнес логики — это не сломанный код, а сломанные правила: приложение делает именно то, что написано, но не то, что задумывал…

Открыть материал