Biztonság

A xAI Grok Build forráskódját nyílt forráskódúvá tették a adatvédelmi viták után

A főszereplő az xAI és annak Grok Build nevű parancssori eszköze, amelynél közösségi felháborodás tört ki, miután kiderült, hogy a parancs egy könyvtárban futtatva azt feltölthette az xAI Google Cloud tárolóiba.

A xAI Grok Build forráskódját nyílt forráskódúvá tették a adatvédelmi viták után

xAI néhány órával azután tette közzé a Grok Build teljes kódtárát Apache 2.0 licenc alatt, hogy a közösség éles kritikával illette a Grok parancssori eszközt (CLI). A vita abból robbant ki, hogy kiderült: egyes körülmények között a Grok Build parancs futtatása egy könyvtárban az adott teljes könyvtár feltöltését eredményezhette xAI Google Cloud tárolóiba.

Mit jeleztek a felhasználók

Egy felhasználó arról számolt be, hogy a Grokot a saját home könyvtárában futtatva „feltöltötte az SSH-kulcsaimat, a jelszókezelő adatbázisomat, a dokumentumokat, fényképeket, videókat, mindent”. A bejelentések után xAI reagált a visszajelzésekre: Elon Musk a megjegyzésében azt írta: „Biztonsági óvintézkedésként minden, a SpaceXAI-hoz eddig feltöltött felhasználói adat teljesen és maradéktalanul törlésre kerül.” Emellett a vitatott feltöltési funkciót letiltották.

Forráskód nyilvánossá tétele és adatkezelési változások

A nyilvános kódtár bejelentésében xAI arról ír, hogy a korábbi bétaidőszakban a nem ZDR felhasználók esetén alapértelmezett volt az adatok megtartása, és a visszajelzések hatására ezt megváltoztatták. Azóta – állításuk szerint – minden megtartott adat törlésre került, az alapértelmezett megtartás kikapcsolva, és az eszköz teljes forráskódja elérhetővé vált, így a felhasználók helyben, saját inferenciával is futtathatják a Grok Buildet.

A vállalat közlése szerint az összes Grok Build felhasználónál 2024. július 12-től letiltották az alapértelmezett megtartást, és a korábban megtartott kódolási adatokat törlik, hogy minden felhasználó beállításai tiszteletben legyenek.

A kódbázis mérete és jellemzői

A nyilvános repo egyetlen commitban jelent meg, így nem látszik belőle a fejlesztés története időben. A publikált kódbázis 844,530 sor Rust kódot tartalmaz (ez a szerző által használt SLOCCount eszközzel számolt érték, amely kizárja a szóközöket és a kommenteket), amelynek körülbelül 3%-a tűnik vendorizáltnak (más projektekből átemelt kódnak).

A kódban található néhány érdekesség:

  • Az xai-grok-agent/templates/prompt.md tartalmazza a fő rendszer promptot; az xai-grok-agent/templates/subagent_prompt.md pedig az alügynök promptját. Érdekes módon az alügynök prompt tiltja a rendszer prompt tartalmának felfedését a felhasználó számára, míg a fő promptban ilyen tiltás nem szerepel.
  • Az xai-grok-markdown/src/mermaid.rs egy önálló, terminálon futó renderer a Mermaid-diagramokhoz, amely a Unicode vonalrajzoló karakterekkel egy részhalmazát képes megjeleníteni a Mermaid grafikáknak.
  • Az xai-grok-tools/src/implementations könyvtár számos eszközimplementációt tartalmaz, amelyek más kódolóügynökök funkcióit utánozzák: például a Codex apply_patch, grep_files, list_dir és read_dir eszközeit, valamint OpenCode-ból származó bash, edit, glob, grep, read, skill, todowrite és write implementációkat. A xai-grok-tools/THIRD_PARTY_NOTICES.md fájl szerint ezek „portolások” az említett projektekből, ami úgy tűnik, megfelel az Apache és MIT licencek feltételeinek.

A szerző megjegyzése szerint ezek a más projektekről átvett másolatok azért vannak jelen, mert a Grok képes lehet váltani közöttük, például a meglévő Codex, Claude vagy Cursor beállítások észlelése alapján, bár a pontos működés ebből a single-commit publikációból nem teljesen egyértelmű.

A feltöltési logika maradványai

A kódban még fellelhetők azok a részek is, amelyek korábban a feltöltést végezték a Google Cloud Storage-ba, de ezek a részek jelen állás szerint letiltottak:

  • xai-grok-shell/src/upload/gcs.rs tartalmaz feltöltéshez kapcsolódó kódot GCS vödörre.
  • upload/trace.rs közt található egy upload_session_state() függvény, amely mereven beállított session_state_upload_unavailable hibát ad vissza.

Összehasonlítás és következtetés

A Grok Build mérete (kb. 844,530 sor Rust) összehasonlítható a nyilvános openai/codex repóval, amely körülbelül 950,933 sor Rustot tartalmaz. A közzététel és az Apache 2.0 alatti megnyitás láthatóan a felhasználói bizalom visszaszerzésére tett lépés: a vállalat letiltotta a vitatott funkciót, állítja, hogy törölte a megtartott adatokat, és teljes forráskódot tett elérhetővé, miközben a nyilvános kódban is láthatóak a korábbi feltöltési megoldások maradványai, de azok jelenleg nem aktívak.

A nyilvános repo bejelentését és a kód részleteit a közösség tovább vizsgálja; a most közölt információk a közzétett commitból és a fejlesztői bejelentésekből származnak.