Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ

Canary Tokens

Файлы-ловушки для обнаружения несанкционированного доступа к критичным ресурсам

🔧 Team и выше

Обзор

Canary Tokens — это файлы, DNS-записи и переменные окружения-ловушки, размещённые в критичных директориях. Если кто-то (человек, malware, AI agent) читает, модифицирует или перемещает canary-файл — ServerGuard мгновенно детектирует это и отправляет alert. Помогает обнаружить lateral movement, несанкционированное исследование и попытки утечки данных.

🔍
Детекция доступа

Чтение, запись, удаление, перемещение файлов-ловушек

Мгновенные уведомления

Webhook, Telegram, SIEM — менее 1 секунды от детекции до уведомления

🎯
Blast Radius

Автоматическая оценка зоны поражения через Infrastructure Map

Механизм детекции

ServerGuard использует inotify (Linux) / FSEvents (macOS) для мониторинга файловой системы. Каждый canary-файл содержит уникальный токен с метаданными: ID агента, путь размещения, время создания. При любом событии файловой системы (access, modify, delete, move) ServerGuard проверяет, является ли файл canary-токеном, и при совпадении инициирует alert-цепочку.

Цепочка обработки события:
inotify event → ServerGuard scan → canary check → alert generation → notification → forensic record → auto-response (опционально)

Типы токенов

📄Файл-канарейка (File Canary)

Файл в критичной директории. Детектирует: read, write, delete, chmod, chown, move. Автоматическое размещение при запуске.

🌐DNS Canary

Скрытая DNS-запись. При DNS-запросе на canary-домен → alert. Полезно для детекции DNS-туннелирования.

🔑Env Canary

Переменная окружения с уникальным значением. При чтении через /proc/[pid]/environ → alert.

🗄️DB Canary

Фейковая запись в базе данных (токен в .well-known таблице). SELECT → alert. Детектирует SQL injection.

🔗API Canary

Фейковый API endpoint (/api/v1/.canary-check). Любой запрос → alert. Детектирует сканирование API.

🔐Certificate Canary

Самоподписанный сертификат в /etc/ssl/certs. При использовании → alert. Детектирует MITM атаки.

Конфигурация

json
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": true
13 },
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}

Каналы уведомлений

🔔
Webhook

HTTP POST на ваш endpoint с полным payload события

📱
Telegram

Уведомление в Telegram бот с inline кнопками (Block/Investigate)

📊
SIEM

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-токенов

bash
1curl -s https://api.flowlink.io/v1/canary/tokens \
2 -H "Authorization: Bearer $TOKEN" | jq
json
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

История срабатываний

json
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": 72
20 }
21 }
22 ]
23}

POST /api/v1/canary/tokens

Создать canary-токен

bash
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-токен

bash
1curl -X DELETE https://api.flowlink.io/v1/canary/tokens/tok_3a1b2c \
2 -H "Authorization: Bearer $TOKEN"

Ложные срабатывания

Некоторые системные процессы могут случайно прочитать canary-файлы. Рекомендации для минимизации ложных срабатываний:

Размещайте canary-файлы в директориях, которые не читаются обычными процессами (например, /root, /var/secrets)
Используйте уникальные имена файлов, не совпадающие с системными (.flowlink-canary, не .env)
Настройте whitelist процессов, которым разрешён доступ к canary-файлам (backup, monitoring)
Используйте severity=low для файловых canary-токенов в часто сканируемых директориях

Лучшие практики

Размещайте canary-файлы на каждом production-агенте автоматически через ServerGuard
Используйте разные типы токенов для разных угроз (файлы для RCE, DNS для туннелирования, DB для SQLi)
Настройте auto-response: уведомления для всех, блокировка только для production-агентов
Интегрируйте с Forensics timeline для автоматического создания incident-расследований
Проверяйте trigger history еженедельно для выявления паттернов атак
Edit this page