~/guides/post-compromise-secret-rotation-scope

.env

После supply chain компрометации: как понять, какие секреты реально были в зоне риска

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

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

Почему обновления пакета недостаточно

1. Установлена скомпрометированная версия пакета
2. Вредоносный код выполнился (install-time или import-time)
3. Секреты, доступные процессу, потенциально переданы command-and-control серверу
4. Пакет обновлён до безопасной версии

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

Что считать в зоне риска

Вредоносный код, выполняющийся внутри процесса Node.js, технически имеет доступ ко всем переменным окружения этого процесса — не только к тем, что логически относятся к скомпрометированному пакету. Изоляции по умолчанию между частями одного процесса не существует.

Тип инцидента Что было в зоне риска
Install-time (например, jscrambler) Переменные окружения сборочной среды — CI, локальная машина разработчика
Import-time (например, AsyncAPI) Переменные окружения реально работающего приложения, включая продакшн

Практический порядок действий после обнаружения

Сначала определить, какие именно окружения использовали уязвимую версию за период между её публикацией и обнаружением. Затем собрать полный список переменных окружения этих окружений — не только связанных со скомпрометированным пакетом. И только потом провести полную ротацию всех найденных секретов одновременно.

Как построить этот список без ручного вычитывания

Post-Compromise Secret Exposure Scope Estimator собирает список переменных из ваших .env файлов затронутых окружений с учётом типа инцидента.

Итоговый чеклист

Обновление пакета до безопасной версии останавливает дальнейшую угрозу, но не отменяет уже произошедшую exfiltration секретов за период exposure.

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

Import-time инциденты потенциально раскрывают секреты продакшн-окружения, а не только сборочной среды, в отличие от install-time атак.