Zkoumání GitHub Copilot za proxy: Co jsem se naučil
Autor analyzuje, jak GitHub Copilot funguje za proxy serverem a odhaluje detaily o jeho síťovém provozu.
V nedávném experimentu autor zkoumal, jak GitHub Copilot funguje za proxy serverem, konkrétně pomocí nástroje mitmproxy. Tento přístup mu umožnil odhalit detaily o síťovém provozu a způsobu, jakým Copilot zpracovává kontext.
Jedním z prvních zjištění bylo, že GitHub Copilot provádí HTTP požadavky na autentizaci a validaci uživatelských oprávnění při spuštění. Autor popisuje, jak Copilot získává OAuth token a ověřuje uživatelské oprávnění, což je klíčový krok pro zajištění správného fungování nástroje.
Dalším zjištěním je, že Copilot používá SQLite databázi pro uchovávání historie interakcí a proměnných. Autor zjistil, že uživatelské zprávy a odpovědi asistenta jsou ukládány v databázi session-store.db. Alarmující je, že žádné mechanismy pro šifrování nebo maskování citlivých dat nejsou implementovány, což znamená, že data jsou uchovávána v prostém textu bez jakékoliv ochrany.
Při generování návrhů Copilot posílá kontextové informace, jako jsou nedávno upravené soubory. Autor ukazuje, jak se tyto informace dostávají do HTTP požadavků, což zvyšuje užitečnost asistenta, ale také vyvolává otázky o ochraně soukromí.
Zajímavé je, že Copilot provádí klasifikaci záměru před generováním odpovědí. Tímto způsobem hodnotí vstupy a určuje, který model použít na základě klasifikace záměru.
Architektura GitHub Copilot je založena na Electronu, což usnadňuje vývoj multiplatformních aplikací. Tato technologie umožňuje vývojářům vytvářet aplikace, které běží na různých platformách z jediné kódové základny.
Většina síťového provozu Copilota je šifrována pomocí HTTPS, což je standardní praxí pro moderní aplikace. Přesto je důležité si uvědomit, že i přes šifrování mohou být citlivá data stále vystavena, pokud nejsou správně chráněna na úrovni aplikace.
Autor experimentoval s reverzním inženýrstvím a sledováním síťového provozu, což mu umožnilo lépe porozumět tomu, jak AI nástroje shromažďují a uchovávají kontextové informace. To zvyšuje jejich užitečnost, ale také vyvolává otázky o ochraně soukromí a bezpečnosti dat.