Безопасность 2 апреля 2026 г.

2026: runbook — токены регистрации self-hosted runner, область PAT и экстренный отзыв на выделенном Mac mini M4

NodeMac Team

Редакция по безопасности и платформе

Когда Mac mini M4 — это планируемые узлы сборки, утечка токенов регистрации или чрезмерно широких PAT — а не пароли SSH — позволяет злоумышленнику незаметно присоединить runner к вашему пулу, пока дашборды остаются зелёными. Этот чек-лист на 2026 год охватывает периодичность ротации, границы хранения секретов, матрицу разбора утечек, восемь шагов реагирования, квартальные учения, заметки по миграции на OIDC и минимальный набор полей CMDB. Две таблицы разной формы и явные числовые пороги позволяют копировать разделы прямо в биндер дежурства.

Если runner ещё не в сети, начните с self-hosted GitHub Actions на Mac mini M4. Согласуйте обслуживание с drain раннеров и передачей смены. Когда CI делит железо с агентами, читайте совместное использование ёмкости CI и агентов. Для удалённых консолей используйте справку и VNC.

Почему токены опаснее паролей как вектор атаки

  • Злоупотребление одноразовой регистрацией: токен, вставленный в Slack или тикет, может позволить зарегистрировать вредоносный runner примерно в течение 60 минут, пока очереди выглядят здоровыми.
  • Слишком широкие PAT: PAT сборки с правом записи в репозиторий и правкой workflow даёт косвенный доступ ко многим контекстам секретов после одной утечки.
  • Секреты на диске: токены в синхронизируемых с бэкапами файлах .env или plist создают ложную уверенность, когда вы ротируете выше по цепочке, но забываете золотые образы.

Периодичность ротации и паттерны хранения

Учётные данные Макс. рекомендуемый срок Хранение
Токен регистрации org/repo Одноразовый, использовать в течение 1 часа Временная подстановка из secret manager, никогда не вшивать в образы
Fine-grained PAT (только регистрация runner) Пересмотр каждые 90 дней, предупреждение за 30 Связка ключей macOS, минимальные области
Широкий PAT для отладки 7 дней или запрет на билдерах Только ноутбуки, никогда в профиле пользователя runner

Матрица разбора утечки

Используйте матрицу, чтобы прекратить споры «сначала удалить runner или сначала отозвать токен»: выполните действие из второго столбца, затем из третьего, затем подтвердите четвёртый столбец, прежде чем открывать восьмишаговый чек-лист.

Экспозиция Первое действие Второе действие Доказательство
Токен регистрации в публичном канале Инвалидировать и пересоздать org-процесс Аудит runner, зарегистрированных за последние 24 ч Неизвестные хосты удалены
PAT может править репозитории и workflow Отозвать немедленно Сканировать аномальные коммиты в workflow Защиты ветки по умолчанию целы
Подозрение на кражу сессии runner Вывести хост offline, ротировать машинные секреты Проверить неожиданный исходящий трафик Новые сессии только с новых токенов

Минимум для CMDB: у каждого build-Mac должны быть runner_id, отпечаток хэша активного PAT, время последней ротации в UTC и владеющая инженерная группа. Без этих четырёх полей медианное время инцидента растёт с 25 минут до часов.

OIDC-идентичности заданий против PAT

В 2026 году многие флоты macOS обменивают OIDC-токены на краткоживущие облачные учётные данные, чтобы долгоживущие PAT не попадали на диск. Разделите задания «клонировать и тестировать», которым достаточно GITHUB_TOKEN, от заданий «деплой», которые используют OIDC или deploy keys. Тогда украденный образ диска даёт только эфемерный контекст. На миграцию обычно уходит правка 3–5 фрагментов workflow, но ротация PAT для большинства путей с квартальной становится только при инцидентах.

Стримьте аудит-логи в SIEM и оповещайте по событиям repo.* и регистрации runner. Без SIEM cron, подтягивающий изменения API за последний час, всё равно ловит примерно 80% несанкционированных регистраций.

Квартальный учебный «фейковая утечка»

Опубликуйте синтетический фрагмент токена в канале учений и замерьте, применит ли кто-то матрицу в течение 15 минут. Первые попытки обычно проваливаются, потому что никто не знает, кто может отозвать org-учётные данные — исправьте это до продакшена. Фиксируйте задержку решений и ошибки; требуйте два подряд улучшения на 10%, прежде чем реже проводить учения. Сочетайте учения с staging и production пулами runner, чтобы продакшен только проверял, пробиваются ли алерты.

Восьмишаговый чек-лист реакции на утечку

Держите распечатанную шпаргалку у стойки или в runbook региона: кто владеет отзывом, точный URL инвентаря runner и дерево эскалации по телефону. Во время инцидента когнитивная нагрузка растёт — поиск в Notion «как мы отзывали в прошлый раз» сжигает 15-минутное окно между чистым удалением и устойчивым доступом атакующего.

  1. Откройте security-тикет: зафиксируйте канал (Slack/тикет/лог) и примерную длительность экспозиции.
  2. Выполните первое и второе действие из матрицы: избегайте параллельных споров о приоритетах.
  3. Заморозьте новую регистрацию runner: ужесточите политику org, пока не появятся свежие цепочки токенов.
  4. Слейте подозрительные хосты: следуйте SLO drain — часто 60–90 минут естественного ожидания.
  5. Перерегистрируйте чистые runner: новые токены, суффикс имени хоста -rot-YYYYMMDD для аудита.
  6. Проверьте least privilege: выполните read-only clone и no-op сборку, чтобы доказать отсутствие лишних прав записи.
  7. Постмортем: опишите, почему учётные данные оказались в чате и какой разрыв в автоматизации остаётся.
  8. Вторичное сканирование в течение 72 ч: ищите остаточное использование PAT по OAuth-приложениям.
  9. Замкните цикл: обновите отпечатки в CMDB и уведомите заинтересованные стороны, что зелёные сборки возобновились только на новых учётных данных после явной проверки и просмотра логов.

Сервисные учётные записи runner и порядок разблокировки FileVault

Выделенные Mac-сборщики должны работать под неадминской сервисной учётной записью с политикой смены пароля, согласованной с ротацией PAT. Интерактивные админ-логины — на отдельных ноутбуках, не в профиле runner: админы часто оставляют сессии браузера и широкие экспорты PAT. После обновлений macOS убедитесь, что LaunchAgent поднимается до полной разблокировки домашних каталогов пользователя FileVault; иначе появляются нестабильные симптомы «токен валиден, но runner offline», и часы уходят на GitHub вместо порядка launchd.

Задокументируйте, какая команда может вставлять токены регистрации в чат (в идеале никакая). Если маркетинг настаивает на скриншотах, используйте редактированные заглушки и сразу после съёмки ротируйте токены. Измеряйте, как часто токены попадают в поисковые архивы; снижение этой метрики — лучший KPI, чем подсчёт правил сложности паролей, которые никто не читает.

Границы облачного провайдера Mac

Вендоры изолируют bare metal и сетевой периметр; они не могут отозвать ваши GitHub PAT. Пропишите ротацию токенов как обязанность приложения в закупочных документах. При всплеске ёмкости через региональные цены сохраняйте тот же least-privilege PAT вместо временного расширения областей «чтобы быстрее».

Хосты Mac mini M4 на Apple Silicon делают практичными идентичности runner на машину и изоляцию диска, а унифицированная память снижает подозрительный swap при одновременном разборе секретов и компиляции. NodeMac предлагает SSH и VNC в Гонконге, Японии, Южной Корее, Сингапуре и США, чтобы быстро поднимать чистые узлы после отзыва. Почасовая аренда согласует время поставки железа со скоростью ротации учётных данных — оба фактора определяют MTTR, когда узлы считаются скотом, а не питомцами.

Нужен чистый Mac после отзыва токенов?

Bare metal M4 в HK·JP·KR·SG·US с SSH/VNC — быстро меняйте подозрительные хосты.

NM
NodeMac Cloud Mac
Развёртка за 5 мин

Арендуйте выделенный Apple Silicon Mac в облаке. SSH/VNC, узлы HK·JP·KR·SG·US.

Начать