Безопасность
Аутентификация, авторизация, валидация ввода, защита данных, безопасность зависимостей. Для ревью безопасности или работы с секретами и пользовательскими данными.
Обзор
Security — справочный навык, загружаемый аналитиками безопасности, ревьюерами, архитекторами и DevOps-агентами при ревью кода или работе с секретами и пользовательскими данными. Предоставляет правила аутентификации, защиты данных, управления зависимостями и критически важный раздел о различении реальной компрометации от фонового шума сканеров.
Аутентификация и авторизация
- Никогда не хардкодьте секреты или API-ключи — используйте
.envи переменные окружения - Валидируйте все входные данные на сервере — клиентская валидация для UX, не для безопасности
- Применяйте принцип наименьших привилегий для всех ключей и сервисных аккаунтов
Защита данных
- Санитизируйте пользовательский ввод для предотвращения XSS и SQL-инъекций
- Шифруйте конфиденциальные данные при хранении и передаче
- Не логируйте персональные данные (PII)
Граница чувствительного исходного контекста
Перед открытием или поиском по файлам задачи сверяйтесь с существующей классификацией источников. Классификация «чувствительный» сохраняется при смене роли, делегировании и передаче сессии. Каждая передача несёт классификацию, одобренный путь санитизированной копии, пин исходника, дайджест санитизированной копии и ограничения редактирования — метаданные, но не значения секретов. Получатель проверяет одобренную копию до чтения; если её нет или она устарела, он останавливается и запрашивает исправленную передачу, а не читает сырой исходник. Сырые оригиналы никогда не попадают в контекст модели.
Кэшированные секреты в быстрых хранилищах
Если payload с секретом кэшируется в Redis, Memcached или in-process map, это фиксируется в реестре принятых рисков проекта даже при ограниченном TTL и изолированном bind: TTL и изоляция — это смягчение, а не отмена остаточного риска. Пересмотр — по циклу реестра (по умолчанию 90 дней).
Безопасность зависимостей
- Аудит зависимостей на известные уязвимости — используйте нативную для package manager проекта команду аудита на заявленном пороге severity
- Фиксируйте версии зависимостей
Разведка vs Компрометация
200-ответ на подозрительное имя файла — не доказательство компрометации. Каждый публичный IPv4 сканируется ежедневно. Перед объявлением взлома проверьте: размер файла, владельца, дату модификации, сравните хэши, ищите настоящие индикаторы — base64-закодированные пэйлоады, eval($_POST[...]), неожиданные cron-записи, исходящие соединения к неизвестным IP.
Tailscale + VPN на macOS
При совместном использовании VPN и Tailscale на macOS: перезагрузка после обновления Tailscale, --accept-dns=false если VPN даёт DNS, запускать Tailscale до VPN, проверять utun-интерфейс, free-ключи одноразовые.
Другие рецепты
Навык также содержит рецепт аудита относительных include при смене document root, chroot или точки монтирования, рецепт очистки git-истории после утечки, стек-нейтральные формулировки для ссылок на аудит зависимостей и два шаблона: план обновления зависимостей и атомарный runbook переключения. Канонические правила S1–S11 — в навыке security-baseline.
Когда используется
Загружается при /dr-design и /dr-qa для ревью безопасности, а также агентом security на панелях Consilium. Справочный навык без привязки к модели.