Canary Tokens
Файлы-ловушки для обнаружения несанкционированного доступа к критичным ресурсам
🔧 Team и выше
Обзор
Canary Tokens — это файлы, DNS-записи и переменные окружения-ловушки, размещённые в критичных директориях. Если кто-то (человек, malware, AI agent) читает, модифицирует или перемещает canary-файл — ServerGuard мгновенно детектирует это и отправляет alert. Помогает обнаружить lateral movement, несанкционированное исследование и попытки утечки данных.
Чтение, запись, удаление, перемещение файлов-ловушек
Webhook, Telegram, SIEM — менее 1 секунды от детекции до уведомления
Автоматическая оценка зоны поражения через Infrastructure Map
Механизм детекции
ServerGuard использует inotify (Linux) / FSEvents (macOS) для мониторинга файловой системы. Каждый canary-файл содержит уникальный токен с метаданными: ID агента, путь размещения, время создания. При любом событии файловой системы (access, modify, delete, move) ServerGuard проверяет, является ли файл canary-токеном, и при совпадении инициирует alert-цепочку.
Типы токенов
Файл в критичной директории. Детектирует: read, write, delete, chmod, chown, move. Автоматическое размещение при запуске.
Скрытая DNS-запись. При DNS-запросе на canary-домен → alert. Полезно для детекции DNS-туннелирования.
Переменная окружения с уникальным значением. При чтении через /proc/[pid]/environ → alert.
Фейковая запись в базе данных (токен в .well-known таблице). SELECT → alert. Детектирует SQL injection.
Фейковый API endpoint (/api/v1/.canary-check). Любой запрос → alert. Детектирует сканирование API.
Самоподписанный сертификат в /etc/ssl/certs. При использовании → alert. Детектирует MITM атаки.
Конфигурация
1{2 "canary": {3 "enabled": true,4 "file_canary": {5 "directories": ["/etc", "/root", "/opt", "/var/secrets"],6 "filename": ".flowlink-canary",7 "auto_place": true,8 "detect_read": true,9 "detect_write": true,10 "detect_delete": true,11 "detect_chmod": true,12 "detect_chown": true13 },14 "dns_canary": {15 "enabled": false,16 "domain": "canary.yourcompany.com",17 "record_type": "A"18 },19 "env_canary": {20 "enabled": true,21 "variable_name": "FLOWLINK_CANARY_TOKEN"22 },23 "db_canary": {24 "enabled": false,25 "table": ".canary_tokens"26 },27 "auto_response": {28 "block_agent": false,29 "notify_telegram": true,30 "notify_webhook": true,31 "notify_slack": false,32 "severity": "high"33 }34 }35}
Каналы уведомлений
HTTP POST на ваш endpoint с полным payload события
Уведомление в Telegram бот с inline кнопками (Block/Investigate)
CEF формат в Splunk/ELK/QRadar через Syslog или HTTP
Автоматический ответ
При срабатывании canary-токена FlowLink может автоматически выполнить response-действия:
block_agentБлокировать агент, который вызвал событиеblock_commandЗаблокировать выполнение текущей командыrevoke_credentialsОтозвать API-ключи и токены агентаsnapshotСоздать forensic snapshot файловой системыnotify_socОтправить incident report в SOC (Telegram/Slack/PagerDuty)API Reference
GET /api/v1/canary/tokens
Список всех canary-токенов
1curl -s https://api.flowlink.io/v1/canary/tokens \2 -H "Authorization: Bearer $TOKEN" | jq
1{2 "tokens": [3 {4 "id": "tok_3a1b2c",5 "type": "file",6 "path": "/etc/.flowlink-canary",7 "agent_id": "agent-prod-01",8 "created_at": "2026-01-15T10:00:00Z",9 "last_triggered": null,10 "trigger_count": 0,11 "status": "active"12 }13 ],14 "pagination": { "total": 1, "limit": 50, "offset": 0 }15}
GET /api/v1/canary/triggers
История срабатываний
1{2 "triggers": [3 {4 "id": "trig_7x9z",5 "token_id": "tok_3a1b2c",6 "token_type": "file",7 "path": "/etc/.flowlink-canary",8 "event_type": "read",9 "agent_id": "agent-prod-01",10 "process": "claude-code",11 "pid": 42156,12 "timestamp": "2026-01-15T14:32:01Z",13 "severity": "high",14 "correlation_id": "corr_abc123",15 "actions_taken": ["notify_telegram", "snapshot"],16 "blast_radius": {17 "reachable_services": 3,18 "reachable_agents": 1,19 "risk_score": 7220 }21 }22 ]23}
POST /api/v1/canary/tokens
Создать canary-токен
1curl -X POST https://api.flowlink.io/v1/canary/tokens \2 -H "Authorization: Bearer $TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "file",6 "path": "/etc/.flowlink-canary",7 "agent_id": "agent-prod-01",8 "auto_response": ["notify_telegram", "snapshot"]9 }'
DELETE /api/v1/canary/tokens/{id}
Удалить canary-токен
1curl -X DELETE https://api.flowlink.io/v1/canary/tokens/tok_3a1b2c \2 -H "Authorization: Bearer $TOKEN"
Ложные срабатывания
Некоторые системные процессы могут случайно прочитать canary-файлы. Рекомендации для минимизации ложных срабатываний: