ВозможностиДокументацияЦеныPlaygroundFAQ

Shield — Runtime защита

3 вектора атаки, 7 уровней анализа, <1мс

~8 мин чтения

Обзор pipeline

Каждая команда, выполняемая через FlowLink, проходит через 7 уровней анализа. Уровни обрабатываются последовательно, и критические находки блокируют выполнение немедленно.

L1
L2
L3
L4
L5
L6
L7

⚡ Latency: <1ms per command

Пайплайн оптимизирован для минимальной задержки. Команды анализируются в памяти без внешних вызовов.

L1: Docker Escape Detection

Обнаружение попыток побега из Docker контейнера. Критический уровень — блокирует выполнение.

-v /:/hostCRITICAL

Mount root filesystem of host into container

Атакующий получает полный доступ к файловой системе хоста

--privilegedCRITICAL

Grant extended privileges to this container

Контейнер получает почти те же права, что и процесс на хосте

--pid=hostCRITICAL

Use the host process namespace

Возможность видеть и сигнализировать процессам на хосте

--network=hostWARNING

Use the host network namespace

Контейнер использует сетевой стек хоста, может слушать на портах

--cap-add=ALLWARNING

Add all Linux capabilities

Полные права на выполнение системных вызовов

L2: Data Exfiltration

Обнаружение утечки данных через network. Критический уровень — блокирует выполнение.

cat .env | curlBLOCKED

Reading .env and piping to external HTTP request

Классический паттерн exfiltration через HTTP

cat /etc/shadow | ncBLOCKED

Reading shadow file and sending via netcat

Утечка хешей паролей через raw TCP

curl -T /etc/passwdBLOCKED

Uploading sensitive file via curl

Прямая загрузка файла на внешний сервер

wget --post-fileBLOCKED

Sending file content via POST request

Exfiltration через wget POST

Detects:

| curl *| nc *> /dev/tcp/*--post-file--upload-file-d @cat * | *.env

L3: Sensitive Files Access

Чтение критических системных файлов. WARNING уровень — требует одобрения.

/etc/shadowWARNING

Reading password hashes

Хеши паролей могут быть использованы для brute-force атаки

~/.ssh/WARNING

Accessing SSH keys

Приватные ключи для авторизации на других серверах

.envWARNING

Reading environment variables

Могут содержать API ключи, пароли, секреты

/proc/*/environWARNING

Reading process environment

Может содержать секреты других процессов

aws/credentialsWARNING

Reading AWS credentials

Ключи для доступа к AWS ресурсам

Мониторимые пути:

text
/etc/shadow, /etc/passwd, /etc/sudoers
~/.ssh/id_*, ~/.ssh/config
*.env, .env.*, dotenv
.aws/credentials, .aws/config
/proc/*/environ, /proc/*/cmdline
~/.kube/config, ~/.docker/config.json
~/.pgpass, ~/.mylogin.cnf

L4: Destructive Commands

Разрушительные операции без возможности отката. CRITICAL уровень — блокирует выполнение.

rm -rf /CRITICAL

Recursive force delete from root

Удаление всей файловой системы

mkfs.*CRITICAL

Creating filesystem

Форматирование диска — полная потеря данных

dd if=/dev/zeroCRITICAL

Zeroing device

Затирание содержимого диска нулями

> /dev/sdaCRITICAL

Writing directly to disk device

Разрушение данных на диске

chmod 000WARNING

Removing all permissions

Файлы становятся недоступными

L5: Network Operations

Сетевые операции: reverse shell, туннели, проброс портов. CRITICAL уровень.

bash -i >& /dev/tcp/CRITICAL

Reverse shell via bash TCP device

Интерактивный shell подключается к внешнему серверу

socat TCP-L:*CRITICAL

Port forwarding via socat

Проброс портов для обхода firewall

ssh -R *:CRITICAL

SSH reverse tunnel

Обратный туннель для доступа к внутренней сети

nc -l *WARNING

Netcat listener

Может быть использовано для приёма данных

Detects:

>& /dev/tcp/socat *ssh -Rnc -lnetcattunnel *proxy *bind *

L6: Privilege Escalation

Попытки повышения привилегий. ASK уровень — требует одобрения.

sudoASK

Executing command as superuser

Получение root прав

su -ASK

Switching user

Смена пользователя с вводом пароля

pkexecASK

PolicyKit execute

Выполнение команды с правами polkit

chmod 777WARNING

Making file world-writable

Создание файла с полными правами

chown rootWARNING

Changing ownership to root

Изменение владельца на root

L7: Custom Policy Rules

Пользовательские правила из политик: allow/deny паттерны с glob.

Примеры политик

docker ps*ALLOWpriority:100List docker containers
*rm -rf*DENYpriority:200Block recursive delete
npm installALLOWpriority:100Allow npm install
curl * | bashDENYpriority:300Block pipe to bash

Правила с более высоким priority перезаписывают правила с низким priority. DENY всегда имеет приоритет над ALLOW при одинаковом priority.

Режимы одобрения

Auto

Команды выполняются автоматически. Блокировка только для CRITICAL уровней (L1, L4, L5).

Use case: Development, доверенные окружения

Soft Ask

Подтверждение для WARNING+ уровней. timeout 5 мин, затем auto-reject.

Use case: Staging, production-like

Hard Ask

Все команды требуют явного одобрения. Максимальный контроль.

Use case: Production, критические системы

Модель угроз

FlowLink спроектирован с расчётом на компрометацию каждого компонента. Ниже — анализ трёх ключевых сценариев и механизмы минимизации ущерба.

🤖

Сценарий 1: Скомпрометирован AI-агент

Атакующий получил контроль над AI-агентом через prompt injection, poisoned tool response или уязвимость в модели. Агент пытается выполнить вредоносные команды.

Shield — 7 уровней анализа

Каждая команда проходит pipeline: Docker escape, exfiltration, sensitive files, destructive ops, network ops, privilege escalation, custom policies. Критические — блокируются.

Approval workflow

В режимах Soft Ask и Hard Ask подозрительные команды требуют явного подтверждения через Telegram или Dashboard. Таймаут = auto-reject.

Секреты изолированы

Агент никогда не видит plaintext секретов. Secret Injection подставляет значения только в env vars конкретного exec-вызова. Секреты хранятся encrypted в DB и расшифровываются relay «на лету».

Scope на host + org

Агент привязан к конкретному хосту и организации. Не может выполнять команды на других хостах или обращаться к секретам других org.

💥 Ущерб ограничен: агент заблокирован на уровне relay, секреты не утекли, другие хосты/org не затронуты.

🔀

Сценарий 2: Скомпрометирован Relay

Атакующий получил доступ к relay-серверу. Самый серьёзный сценарий — relay видит все команды и управляет routing.

Шифрование секретов в DB (AES-256-GCM)

Секреты хранятся encrypted с per-org ключами. Relay расшифровывает только в момент injection. Компрометация DB не даёт plaintext.

Separation of encryption keys

Ключ шифрования секретов отделён от ключа relay. Хранится в env / Vault, не в DB. Компрометация relay + DB ≠ компрометация секретов без ключа.

Ограниченные токены (scoped tokens)

API-ключи relay имеют минимально необходимый scope: read commands, write audit. Не могут создавать новых пользователей, менять политики или выводить секреты.

Полный audit trail

Каждая команда, каждый доступ к секретам, каждый login логируется с timestamp, IP, agent ID. Аномалии видны постфактум.

⚠️ Ущерб: атакующий видит проходящие команды, но не может расшифровать секреты без отдельного ключа. Audit trail фиксирует все действия.

☁️

Сценарий 3: Скомпрометирован Control Plane

Атакующий получил доступ к dashboard/API. Может менять политики, видеть организации, управлять агентами.

httpOnly cookies + CSRF protection

Токены авторизации хранятся в httpOnly, Secure, SameSite=Lax cookies. XSS на dashboard не может украсть токены. JavaScript не имеет доступа к cookie.

RBAC: роли и org isolation

Каждый пользователь привязан к org с ролью (owner/admin/member). Cross-org доступ невозможен. Platform admin ≠ org admin.

2FA для критических действий

Удаление агентов, смена политик, вывод секретов — требуют повторной аутентификации или 2FA.

Immutable audit log

Логи нельзя удалить или изменить — только дописать. Даже компрометация control plane не позволяет скрыть следы.

🛡️ Ущерб ограничен: атаки на dashboard не дают доступ к секретам (они на relay), атаки на API ограничены RBAC и audit trail.

Архитектура разделения ответственности

🤖

Agent

Выполняет команды

Не видит секреты

Scoped к хосту

🔀

Relay

Анализ + routing

Инжектит секреты на лету

Не хранит ключи шифрования

☁️

Control Plane

Управление + аудит

Не видит plaintext секретов

RBAC + immutable logs

Ни один компонент не имеет полного доступа. Ущерб от компрометации любого одного компонента ограничен.

Secret Discovery (Roadmap)

BETA

Автоматическое обнаружение, шифрование и централизация секретов из инфраструктуры. AI-агент получает доступ к секретам через relay — никогда не видит plaintext.

Pipeline: 4 шага

🔍

1. Scan

Инвентаризация сервисов, конфигов, .env, DSN

🔐

2. Encrypt

E2EE на агенте → relay видит только ciphertext

🏦

3. Store

Vault / encrypted DB с иерархией по host/service

💉

4. Inject

JIT injection в env vars агента — без plaintext

Что обнаруживается

🐘 PostgreSQL

pg_hba.conf, .pgpass, DATABASE_URL

🐬 MySQL

my.cnf, ~/.mylogin.cnf

🔴 Redis

redis.conf, requirepass

📊 Prometheus

prometheus.yml, alertmanager

🔔 Zabbix

zabbix.conf, API tokens

🐰 RabbitMQ

rabbitmq.conf, user credentials

🐳 Docker

config.json, .env, compose

☸️ Kubernetes

kubeconfig, secrets, service accounts

☁️ AWS/GCP

credentials, config, IAM

Как это работает

01

<strong className="text-white">Администратор запускает discovery</strong> — указывает scope: какие директории, сервисы, типы файлов сканировать. AI-агент НЕ может запустить discovery сам.

02

<strong className="text-white">Агент сканирует хост</strong> — находит конфиги, DSN, credentials, API tokens. Парсит только то, что указано в scope.

03

<strong className="text-white">E2EE шифрование на агенте</strong> — данные шифруются локально ключом org. Relay видит только ciphertext + метаданные (имя сервиса, тип, хост).

04

<strong className="text-white">Approval на запись</strong> — список найденных секретов (без значений!) показывается в dashboard/Telegram. Админ подтверждает: какие записать в Vault.

05

<strong className="text-white">Запись в Vault / encrypted DB</strong> — секреты раскладываются по иерархии: <code className="text-[#aaa]">env/{"{host}"}/{"{service}"}/...</code>. Версионность + метаданные.

06

<strong className="text-white">JIT injection при работе агента</strong> — агент просит «DSN для прод-БД сервиса X». Relay достаёт из Vault, инжектит в env vars exec-вызова. LLM видит только имя, не значение.

⛔ Safety-ограничения

Явный opt-in, не auto-scan

Администратор определяет scope перед каждым запуском. Никакого «поставили и забыли». Discovery запускается вручную или по расписанию, подтверждённому админом.

AI-агент НЕ запускает discovery

Discovery — привилегированная операция для DevSecOps/admin. Агент может только использовать уже одобренные секреты через injection.

Approval на запись в Vault

Список найденных секретов показывается без значений. Админ выбирает какие записать, какие проигнорировать, какие удалить из результатов.

Audit trail: полное логирование

Кто запустил scan, что найдено (тип + путь, без значения), что записано в Vault, какие injection были. Всё immutable.

Scope ограничен host + service

Агент не может запросить секреты с другого хоста или для другого сервиса. Injection проверяет org + host + service соответствие.

💡 Продуктовый стори

«Мы не только контролируем команды AI-агентов, но и помогаем автоматически собрать и централизовать секреты из инфраструктуры в Vault и управлять доступом агентов к ним. Агент никогда не видит plaintext — только запрашивает доступ, relay инжектит на лету.»

Сравнение с альтернативами

Они следят за контейнерами и сетью. FlowLink — за AI-агентами.

FalcoTetragonCiliumFlowLink
НазначениеRuntime securityeBPF tracingNetworking + CNIAI agent security
ФокусКонтейнерыKernel eventsСеть / L3-L4Команды AI-агентов
MCP-протоколнативно
Approval workflowTelegram + Dashboard
7-уровневый pipeline
Pattern Learningauto-правила
НастройкаСложнаяСредняяСложная1 строка + curl

Дополнение, не замена

FlowLink дополняет Falco/Tetragon. Они защищают контейнеры и сеть, FlowLink — защищает от AI-агентов. Можно использовать вместе.