Copilot сливает .env в облако и хранит запросы открыто
📊 Copilot сливает .env в облако и хранит запросы открыто
Автор эксперимента настроил VS Code на mitmproxy по адресу http://localhost:8080 и перезапустил Extension Host. До первого введённого символа Copilot отправил запросы OAuth, /models, /agents/swe/models, к реестру MCP. Это обычная телеметрия. Дальше — интереснее.
При вводе в pyproject.toml Copilot отправил в запросе содержимое .env: TEST_ENV_VAR_SECRET="..." — хотя для .env подсказки были отключены. Запрос связан с активным файлом, а не с расширением секрета. Контекст включал пути .env и недавние изменения. Отключение Copilot для .env не спасает.
Локальная база session-store.db в ~/Library/Application Support/Code/User/globalStorage/github.copilot-chat хранит user_message и assistant_response без шифрования. Тестовые GITHUB_TOKEN=ghp_... и DATABASE_URL=postgres://admin:password@... оказались там в исходном виде. Инструмент session_store_sql читает историю через SQLite, а схему модель получает из sqlite_schema. По данным habr_infosec, в подсказках передаются max_tokens 500, temperature 0, language dotenv и контекст последних правок.
Copilot из генератора кода стал системой с сохранением состояния. Рабочая станция с Copilot — это открытый источник секретов в открытом виде при компрометации. В DLP такие базы SQLite обычно не учитываются.
Я бы начал с простого: скопировать session-store.db с компьютера разработчика и проверить по маскам ghp_, AKIA, postgres://, PRIVATE KEY. Если совпадения есть, ваш ИИ-помощник уже ведёт второй журнал секретов, и перехват трафика для этого не нужен.
#GitHubCopilot #VSCode #AppSec #secretsmanagement #mitmproxy
Такие разборы выходят в канале каждый день — коротко и со ссылкой на первоисточник.