Co odhalil GitHub Copilot za MITM proxy: kontext, historie a routing

Autor analyzoval síťový provoz GitHub Copilotu přes mitmproxy a sledoval routing modelů, lokální historii i kontext z nedávno upravených souborů.

12. srpna 2026

Autor Lighthouse newsletteru vložil GitHub Copilot ve VS Code za mitmproxy a sledoval, jaké požadavky klient odesílá a jaký kontext do nich přidává.

Nejde o audit celého GitHub Copilotu ani důkaz, že se všechny instalace chovají stejně. Jde o konkrétní experiment na jednom klientovi a účtu.

Bootstrap a dostupné modely

Při startu Copilot podle autora provádí OAuth bootstrap, kontrolu entitlementů a discovery dostupných modelů.

V Auto mode autor pozoroval také request na endpoint /models/session/intent.

Výsledek klasifikace rozděloval požadavky například do kategorií:

  • code-gen,
  • debugging,
  • reasoning,
  • tool-use.

Podle pozorovaného chování tato klasifikace pomáhá Copilotu určit, který z dostupných modelů má úlohu obsloužit.

Lokální historie v SQLite

Autor našel lokální databázi session-store.db.

V ní jsou uloženy například uživatelské prompty a odpovědi asistenta.

Při kontrole zapisovací cesty nenašel redakci nebo maskování polí user_message a assistant_response, takže tyto hodnoty byly v jeho testu uložené jako plaintext.

To je konkrétní lokální pozorování, ne tvrzení o tom, že Copilot „bez jakékoliv ochrany“ ukládá všechna citlivá data.

Experiment s .env

Zajímavější část testu se týkala kontextu z nedávno upravených souborů.

Autor vložil falešný secret do .env.

Samotné otevření souboru síťový request nespustilo. Když ale později upravil jiný soubor a použil Copilot, obsah .env se objevil v kontextu „recently edited files“ odeslaném do API.

Podle autorovy následné kontroly implementace může mechanismus zahrnovat až 20 souborů, 8 edit summaries a 3 řádky okolního kontextu.

Na individuálním plánu autor nenašel speciální výchozí pravidlo, které by .env automaticky vylučovalo. Repository policy exclusion podle jeho zjištění souvisí s Business a Enterprise variantami.

Copilot jako stateful systém

Hlavní pointa zdroje není jen v tom, že lokální SQLite obsahuje plaintext.

Autor dochází k širšímu závěru, že současné AI coding nástroje nejsou jednoduchým klientem, který odešle jeden prompt modelu.

Copilot kombinuje:

  • pracovní prostor,
  • nedávné editace,
  • historii konverzací,
  • dostupné nástroje,
  • routing modelů.

Čím více kontextu systém používá, tím užitečnější může být, ale zároveň roste množství vývojářských dat, ke kterým má přístup.

Co z experimentu nelze vyvozovat

Jeden MITM experiment neukazuje kompletní interní architekturu GitHub Copilotu.

Některé mechanismy se mohou lišit podle plánu, verze klienta nebo konfigurace organizace.

Praktický závěr je proto užší: pokud AI coding nástroj automaticky pracuje s historií a nedávno upravenými soubory, je potřeba počítat s tím, že do modelového kontextu může vstoupit více dat, než uživatel vidí v aktuálním promptu.