Hlavní navigace

Atributy souboru mohou obsahovat URL, ze které byl soubor stažen

Petr Krčmář

Tušili jste, že soubor stažený z webu si nese také adresu, ze které byl stažen? Ta navíc může obsahovat citlivé údaje včetně jednorázové cesty vygenerované pro konkrétního uživatele či například hesla.

Doba čtení: 3 minuty

Soubor je pro uživatele nějaká změť dat, která má jméno, vlastníka, nějaká práva a informaci o času vytvoření. Tyto obecné vlastnosti obvykle nejsou něco, co by nás příliš trápilo, protože neobsahují citlivé údaje. Existuje ale jedno temné zákoutí, do kterého běžný uživatel nevidí, protože o něm obvykle ani neví: rozšířené atributy.

To je vlastnosti většiny moderních souborových systémů, která umožňuje k souboru poznamenat libovolná textová metadata. Může jít například o elektronický podpis, podrobnosti vzniku dokumentu, bezpečnostní kontext nebo prakticky cokoliv dalšího. Libovolný program si sem může do souborového systému poznamenat něco důležitého.

Překvapením ovšem může být (a nás to v redakci překvapilo), že si sem některé programy ukládají URL, ze které byl soubor stažen. Tato informace je součástí souboru, běžnými nástroji ji neuvidíte a dokáže se souborem přežít velmi dlouhou dobu. Pokud soubor přesouváte mezi souborovými systémy (například s použitím mv) nebo kopírujete včetně atributů ( cp -a), tato informace se zachovává.

Proč vůbec někdo podobnou informaci na disku chce? Důvodem podle vývojářů je, že to umožňuje zachovat pro ostatní aplikace zprávu o tom, odkud daný soubor pochází. Podle kritiků se jedná o velkou díru do soukromí, zastánci naopak argumentují tím, že informace o stažení je stejně už v historii prohlížeče a pokud je soubor poslán e-mailem, nahrán přes internet do úložiště souborů nebo jinak odeslán, zpráva o původu se ztrácí. Zůstává pouze na souborovém systému.

Informace samotná je uložena jako vlastnost user.xdg.origin.url, případně user.xdg.referrer.url a mezi navrhované vlastnosti je řadí Freedesktop.org. Nepříjemné je, že se do této vlastnosti může dostat citlivá informace: jednorázová URL vygenerovaná pro konkrétního uživatele, vůbec samotný zdroj souboru nebo třeba jméno a heslo v případě HTTP autentizace.

Bude vás asi zajímat, které programy tyto rozšířené atributy nastavují. Ve výchozím stavu to dělá wget, do kterého se příslušný kód dostal v červenci roku 2016. Podporu od konce roku 2010 obsahuje i nástroj curl , ale u něj musíte toto chování explicitně vynutit parametrem --xattr. Ve výchozím stavu informaci ukládá i Chromium, tedy i prohlížeč Chrome. Naopak Firefox se takto nechová, přestože byl před mnoha lety návrh diskutován.

Rozšířené atributy si můžete prohlédnout pomocí utility getfattr, která je součástí balíčku attr. Soubor stažený pomocí Chrome obsahuje následující informaci:

$ getfattr -d kombajn-sklizen.jpg
# file: kombajn-sklizen.jpg
user.xdg.origin.url="https://i.iinfo.cz/images/root/368/kombajn-sklizen.jpg"
user.xdg.referrer.url="https://www.root.cz/"

Podobně například při použití utility wget, u které lze ale chování při kompilaci vypnout parametrem --disable-xattr a za běhu pak potlačit s  --no-xattr.

$ wget https://i.iinfo.cz/images/root/368/kombajn-sklizen.jpg
--2018-12-26 23:21:24--  https://i.iinfo.cz/images/root/368/kombajn-sklizen.jpg
Resolving i.iinfo.cz (i.iinfo.cz)... 2001:67c:68::24, 91.213.160.36
Connecting to i.iinfo.cz (i.iinfo.cz)|2001:67c:68::24|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 100058 (98K) [image/jpeg]
Saving to: 'kombajn-sklizen.jpg'

kombajn-sklizen.jpg         100%[===========================================>]  97.71K  --.-KB/s    in 0.08s

2018-12-26 23:21:24 (1.23 MB/s) - 'kombajn-sklizen.jpg' saved [100058/100058]

$ getfattr -d kombajn-sklizen.jpg
# file: kombajn-sklizen.jpg
user.xdg.origin.url="https://i.iinfo.cz/images/root/368/kombajn-sklizen.jpg"

Zřejmě nejde o žádný zásadní bezpečnostní problém, ale v každém případě je dobré vědět, že taková trochu překvapivá funkce existuje. Ostatně podobné je to i na Windows 10 a na macOS.

Našli jste v článku chybu?