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