Jakmile uživatel otevře zprávu, spustí se útočníkem vložený javascript a jeho prostřednictvím může komunikovat s webovým rozhraním Zimbra.
Nevíte prosím někdo, k čemu se v e-mailové zprávě má spouštět javascript? Možná nějaká rozbalovací textová pole, ale bez toho se snad dá žít. Připadá mi to vhodné spíše ke šmírování příjemce nebo právě k šíření virů. Do SMS se doufám žádný script nevejde a uživatel by musel ručně kliknout na odkaz, mít prohlížeč a data (což většina uživatelů asi má), aby se škodlivý SW stáhl a aktivoval.
Normálně se v e-mailové zprávě JavaScript samozřejmě nespouští a žádný klient to nedovoluje (resp. snaží se o to).
Jenže e-mailové zprávy se často posílají ve formátu HTML. Pro rozumné zobrazení HTML potřebujete jádro webového prohlížeče, které samozřejmě umí zpracovávat i JavaScript. Takže pokud chcete zabránit zpracování JavaScriptu, musíte najít všechna místa v HTML e-mailu, kde může být JavaScript, a JavaScript tam odstranit. (Už jenom zjištění, kde všude může být JavaScript, není nic snadného).
No a k tomu ještě přidejte HTML standard, podle kterého neexistuje žádná posloupnost znaků, o kterých by prohlížeč směl prohlásit, že tohle teda zobrazovat nebude. Prostě když budete výstup z /dev/random
cpát do webového prohlížeče, ten to musí nějak zobrazit. A teď na takovémhle vstupu zkuste dělat sanitizaci tak, aby se do prohlížeče nedostal žádný JavaScript. Mne spíš překvapuje, že chyb tohohle druhu je vlastně hodně málo.
Jakmile si budete psát vlastní jednoduché jádro prohlížeče, nebude to (ani zdaleka) podporovat aktuální standardy. Takže to bude HTML e-maily zobrazovat různě zpotvořeně až nečitelně.
Už teď je tvorba HTML e-mailů samostatná disciplína, která toho nemá moc společného s kódováním HTML pro běžný web. Protože rozšíření klienti jako Outlook nebo GMail mají právě vlastní HTML a CSS parsery, které podporují jenom něco. Takže pokud se chce někdo vrátit do doby Internet Exploreru 4.0 a Netscape Navigatoru 4.0, může se realizovat na kódování HTML e-mailů – situace je velmi podobná. Nemyslím si, že bychom chtěli, aby se rozšiřovaly řady HTML parserů – nedochůdčat implementovaných v e-mailových klientech. Lepší by bylo používat standardní jádra prohlížečů, ale je potřeba umět v nich spolehlivě vypnout provádění JavaScriptu (což je myslím dnes paradoxně díky CSP jednodušší u webových klientů).
Uživatelský zákaz JavaScriptu v prohlížeči je v tomto případě k ničemu. U webových klientů potřebujete umět zakázat JavaScript jen uvnitř kódu e-mailu (což dnes díky CSP jde – v prohlížečích, které CSP podporují, což jsou dnes všechny). U desktopových aplikací, které používají pro zobrazení e-mailu jádro prohlížeče, to pro zobrazení potřebujete umět vypnout programově, což nevím, zda příslušné embedované prohlížeče umí. No a pak je tu editace HTML e-mailu (třeba když odpovídáte), kterou zase bez JavaScriptu v prohlížeči neuděláte. Takže by bylo potřeba umět tomu embedovanému prohlížeči říct to samé, co umí CSP – tedy „tyhle skripty můžeš spouštět, nic jiného ne“. Nevím, zda jsou embedované prohlížeče až takhle konfigurovatelné, když jsem je zkoumal před pár lety, neuměly nakonfigurovat ani mnohem základnější věci. A vzít jen samotné jádro a prohlížeč a editor e-mailů postavit kolem něj (podobně, jako kolem jádra Vivaldi nebo Internet Explorer postaví svůj prohlížeč), to není žádná legrace.