Product ATT&CK, или Недопустимые события в продукте

  • #НедопустимыеСобытия

О чем материал

Объясняем через призму кибербезопасности, почему продуктовые команды медленно теряют контроль над своими продуктами

Представим обычный модный маркетплейс, в каталоге — партнерские бренды и собственная линейка товаров с более высокой маржинальностью. В какой-то момент команда решает «слегка подкрутить» ранжирование: на верхние строчки поднимаются наиболее прибыльные позиции и собственный бренд, при этом сортировка по цене прячется глубже в интерфейс. Исследования пользователей? Потом. Эксперименты? Тоже. При этом звучит знакомый всем аргумент: надо быстрее выкатывать — поторопитесь! Первые результаты выглядят почти идеально: CTR (кликбейт) и средний чек растут — бизнес доволен. Но потом начинается самое интересное...

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

Формально это обычный неудачный запуск. Но если присмотреться внимательнее, произошло кое-что гораздо хуже: продукт потерял доверие пользователей раньше, чем команда вообще признала проблему. Именно здесь продуктовая разработка неожиданно начинает напоминать кибербезопасность…

Почему аналогия с ИБ вообще имеет смысл

На первый взгляд, между продуктом и кибербезопасностью нет ничего общего. В одном мире — UX, discovery, roadmap и метрики. В другом — атаки, уязвимости, threat modeling и инциденты. Но если убрать терминологию, обе эти области занимаются одним и тем же: пытаются удержать сложную систему под постоянным давлением.

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

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

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

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

nedopustimye sobytiya_pic1.svg
Рисунок 1. Путь продукта к недопустимому событию
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Поверхность атаки продукта

В ИБ есть понятие «поверхность атаки» — это совокупность точек, через которые можно атаковать систему. У продукта она ничуть не меньше: код, UX, процессы, backlog, коммуникации, метрики, оргструктура и даже культура принятия решений. Причем проблемы проникают в продукт не только через технические ошибки, но и через управленческие компромиссы, например:

  • discovery, которое «возможно, сделаем потом»;
  • roadmap, который меняется через эскалации;
  • feature flag, который живет по полтора года;
  • детальный Figma-мокап, который создает ощущение готовности;
  • убедительные обобщенные метрики, которые скрывают деградацию сегментов.

В такие моменты понимаешь, что хакнуть продукт подчас проще, чем целую инфраструктуру...

nedopustimye sobytiya_pic2.svg
Рисунок 2. Уязвимые точки продукта 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Product ATT&CK

Важно: мы не пытаемся буквально перенести MITRE ATT&CK в продуктовую разработку. Скорее, это вольная модель, которая помогает смотреть на продуктовые инциденты как на цепочки постепенной деградации системы

MITRE ATT&CK — термин из ИБ. Это модель, которая описывает развитие атаки от первичного доступа до прямого ущерба. Если посмотреть на продуктовые инциденты, там часто обнаруживается почти такая же цепочка.

nedopustimye sobytiya_pic3.svg
Рисунок 3. Product ATT&CK 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Короткий walkthrough (сейчас что-то точно покажется знакомым):

  1. «Очень важный клиент просит срочную фичу»

Фича приходит с уже знакомыми аргументами: «без этого не продлим лицензию», «рынок уже ушел вперед», «конкуренты уже так умеют». В такой атмосфере discovery быстро превращается в необязательную формальность: обсуждают не проблемы, а то, как быстро команда успеет все выкатить. Это Initial Access.

  1. Разработка стартует раньше понимания проблемы

Появляется spike, затем — демо, а потом — и готовое решение. Команда начинает вкладываться в реализацию до того, как успевает проверить саму гипотезу. Это Execution.

  1. Временное становится постоянным

Чтобы не тормозить запуск, все прячут под feature flag. Флаг живет месяц… полгода… год... В какой-то момент он перестает быть временным решением и становится частью бизнес-логики. Никто уже толком не помнит, зачем он появился, но выключить все равно страшно: слишком много других сценариев опираются на этот костыль. Это Persistence.

nedopustimye sobytiya_pic4.svg
Рисунок 4. Кладбище фичефлагов 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Feature flag (он же «продуктовый костыль») — один из самых опасных типов продуктового компромисса, потому что временные решения никогда не выглядят опасными в момент их принятия 

  1. Процесс начинает обходить сам себя

Вы наверняка с этим знакомы: приоритеты меняются через личные сообщения или прямо на созвонах, и вот это «надо срочно» постепенно превращает roadmap в декоративный документ. Формально дорожная карта существует, но реальные решения все чаще принимаются за ее пределами. Как? Выберите то, что вам больше нравится: через давление и манипуляции, статус или хаотичные эскалации. Это Privilege Escalation в чистом виде.

  1. Метрики лгут

На верхнем уровне мониторинга (ведь он у вас есть?) все выглядит вполне нормально. Активность пользователей растет, релизы выходят стабильно, engagement выглядит здоровым, отчеты и демки по-прежнему показывают «позитивную динамику». А что там за декларациями, уровнем ниже? Может, при росте MAU ухудшается retention? Или на фоне сходящихся burn down по таскам спринта ломаются привычные пользовательские сценарии? Команда вообще понимает реальное состояние продукта? Это Defense Evasion.

nedopustimye sobytiya_pic5.svg
Рисунок 5. Метрики лгут 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

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

  1. Проблема масштабируется

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

  1. Наступает недопустимое событие

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

Повторюсь, это аналогия, а не точная копия MITRE ATT&CK. Но она хорошо показывает, как маленькие управленческие компромиссы постепенно приводят к полной потере контроля над ситуацией

Артефакты как вектор атаки

Одна из самых недооцененных проблем — артефакты. В нашем контексте это не риски, которые проникают в продукт через код, а скорее сущности, которые выглядят как прогресс. Мокапы, презентации, дашборды, «срочные» письма от клиентов, демосборки и отчеты — все это создает ощущение контроля (да, я в курсе, что так и должно быть), но при этом убаюкивает бдительность. Особенно опасны артефакты, которые начинают работать как доказательство правоты: например, подробные мокапы создают ощущение, что решение пользовательской проблемы почти готово, а результаты эксперимента на трех пользователях внезапно превращаются в стратегическое обоснование для всего продукта.

В кибербезопасности злоумышленники атакуют голыми руками — у них всегда есть подходящие инструменты: exploit frameworks, phishing kits, obfuscation tools. В продукте роль этих инструментов нередко играют вполне легитимные артефакты. Тот же мокап помогает обойти неудобный разговор про ценность, агрегированный дашборд скрывает деградацию сегментов, feature flag позволяет бесконечно откладывать решение, а личные чаты и закрытая переписка постепенно выносят управление за пределы официального процесса. Чем сложнее организация, тем опаснее обходные пути. Рано или поздно продукт начнет терять наблюдаемость, а команда — понимание того, где и почему принимаются реальные решения.

nedopustimye sobytiya_pic6.svg
Рисунок 6. Артефакты продукта 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Что на самом деле хакает продукт

Самые разрушительные продуктовые проблемы редко выглядят как большой очевидный баг. Обычно это именно постепенная потеря управляемости, например:

  • бэклог переприоритизируется через давление;
  • критичный контекст хранится в головах отдельных людей;
  • решения не фиксируются и не документируются;
  • никто уже не понимает, почему feature flag, который повесили полгода назад, все еще включен;
  • roadmap перестает отражать реальное состояние продукта;
  • команда все больше реагирует и все меньше управляет.

И вот здесь появляется важное осознание: зрелость продукта как системы определяется его способностью сохранять управляемость под давлением.

nedopustimye sobytiya_pic7.svg
Рисунок 7. Как продукт теряет управляемость 
(Изображения подготовлены автором с помощью нейросети. Публикуем как есть, мы их не редактировали)

Что с этим делать

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

  • Product Threat Modeling — регулярный разбор на планировании: какие события для нас действительно недопустимы, и какие изменения могут к ним привести.
  • Наблюдаемость — уход от vanity и агрегированных метрик к когортному анализу и метрикам второго порядка.
  • Гигиена feature flags — жесткая политика жизненного цикла. Например, если флаг живет дольше 3–4 месяцев, команда обязана либо удалить его, либо признать частью архитектуры.
  • Rollback culture — не только для кода, но и для продуктовых решений.
  • Product post-mortem — после значимых изменений важно не только разбирать очевидные проблемы, но и обсуждать, какой недопустимый сценарий мы потенциально приблизили.
  • Bus factor audit — регулярный вопрос: что произойдет, если завтра уйдет ключевой человек?

***

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

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

Мы дěлаем Positive Research → для ИБ-экспертов, бизнеса и всех, кто интересуется ✽ {кибербезопасностью}