2005-05-06

Googlen turbovaihteen ongelmat

Re: Google Web Accelerator: Hey, not so fast - an alert for web app designers.

Näyttää siltä, että Google Web Accelerator (lyhyesti GWA) aiheuttaa paljonkin harmaita hiuksia. Kyseessähän on ohjelma, joka yhtenä ominaisuutenaan lataa sivuja palvelimelta ennakkoon (engl. prefetch), valmiiksi välimuistiin napautusta odottamaan.

Hieman vastaava ominaisuus on löytyvät Mozilla-selaimista jo jonkin aikaa, mutta Mozillan ja Googlen toteutuksilla on yksi huomattava ero. Siinä missä Mozillat noutavat ennakkoon ainoastaan link-elementeillä erikseen osoitetut sivut, hakee GWA myös a-elementeillä viitattuja sivuja.

Tämä tietää pahaa erityisesti, mikäli sivustolla toteutetaan toimintoja GET-metodia käyttävien kyselyiden yhteydessä. Esimerkiksi jos jotain poistetaan napauttamalla linkkiä, ilman erillistä POST-metodia käyttävää lomaketta sisältävää vahvistussivua, saattaa GWA poistaa sen vahingossa. Tällainen käytänne ei ole HTTP/1.1 -standardin hengen mukainen, mutta varsin tavallinen nykyisinkin. Vähemmän tuhoisia vaikutuksia esiintyy esimerkiksi foorumeilla, joissa ennakkoon lataaminen saattaa merkata viestejä luetuksi vaikka kävijä ei olekaan niitä nähnyt.

Kaikki TLS- tai SSL-yhteyttä käyttävät sivut ovat ulkona niin GWA:sta kuin Mozillan ennakkoon lataamisesta. Palvelimen ylläpitäjä voi kieltää ennakkoon lataamisen palauttamalla koodin 403 mikäli kysely sisältää otsakkeen X-moz: prefetch . Mikäli tämän tekee koko sivustolleen, estyy tosin samalla myös tarkoituksella merkittyjen ennakkoon latausten toiminta. On kai myös mahdollista estää kyselyt IP-osoitteiden perusteella, sillä GWA hakee sivut Googlen palvelinten kautta. Linkit voi laittaa viemään vahvistussivulle oletuksena ja ohittamaan sivun, mikäli onclick-käsittelijä suoritetaan.

Ei ole vielä selvinnyt, miten Cache-Control -otsakkeet vaikuttavat GWA:n toimintaan. Luulisi, että mikäli sivu on private ja no-store, ei sillä olevia linkkejä kannata lähteä lataamaan. On myös epäselvää, annetaanko GWA-betan olla saatavilla nykyisessä versiossaan sen aiheuttamien ongelmien takia. Saattaa olla, että beta vedetään pois saatavilta ja tuodaan takaisin pienen virittelyn jälkeen.

Lisäys 7.5.: Nähtävästi GWA aiheuttaa tietoturvaongelmia, mikäli istunnot on sidottu IP-osoitteisiin eikä evästeisiin. Mielestäni tässä asiassa kuitenkin saavat sivustojen ja sovellusten kehittäjät syyttää itseään. Julkisessa Internetissä IP-osoitteisiin perustuvat istunnot eivät ole olleet järkeviä kymmeneen vuoteen. Erilaiset näkymättömät välityspalvelimet ovat aiheuttaneet vastaavia ongelmia jo kauan, tosin pienemmässä mittakaavassa. Intranetit ovat sitten eri asia, mutta niihin ei toisaalta GWA:llakaan ole pääsyä.

Kommentit:

Anonymous Anonyymi totesi...

*mikäli istunnot on sidottu IP-osoitteisiin eikä evästeisiin. Mielestäni tässä asiassa kuitenkin saavat sivustojen ja sovellusten kehittäjät syyttää itseään. Julkisessa Internetissä IP-osoitteisiin perustuvat istunnot eivät ole olleet järkeviä kymmeneen vuoteen.*

Ei millään pahalla, mutta tuntuu, että olisit ymmärtänyt asioita hieman väärin, tai sitten minä ymmärsin sanomasi väärin.

Istunnot nimenomaan pitää sitoa johonkin muuhun kuin pelkästään evästeissä tai osoiterivillä kulkevaan istunnon tunnisteeseen. Muutoin istunnon kaappaaminen on todella helppoa.

Jos istunto on sidottu ip-osoitteeseen tällöin kaappaaminen onnistuu vain samalla ip-osoitteella tai väärentämällä ip-osoite, tämän lisäksi on myös hyvä sitoa istunto selaimen mukaan jos tarvitaan enemmän turvallisuutta.


Jos tosta GWA tulee todella suosittu, niin hitusen se kyllä helpottaa murtautumista, mutta tällöin joutuu yhä arvaamaan mitä selainta käytti, ja istunto tunnuksen... jos istunnot on toteutettu oikein.

Istuntoja kun ei voi mitenkään toteuttaa täysin turvallisesti.

3:06 ip.  
Blogger Aapo Laitinen totesi...

GWA on aiheuttanut ongelmia erityisesti sivustoilla, joissa istunto on sidottu vain ja ainoastaan IP-osoitteeseen. On aika selvää, minkä takia tämä aiheuttaa ongelmia muulloinkin: jos vaikkapa yrityksellä on välityspalvelin, jakavat kaikki työntekijät yhden istunnon tällaiseen sivustoon, mikäli se ei sijaitse intranetissä.

Muita istuntoihin liittyviä ongelmia on aiheutunut siitä, kun Cache-Control -otsakkeet eivät ole olleet kunnossa. Eli GWA on luullut voivansa tallentaa myös kirjautuneen käyttäjän sivut turvallisin mielin ja on esittänyt ne sitten jollekin toiselle henkilölle.

Mitä istunnon rajoittamiseen sen aloittaneeseen IP-osoitteeseen tulee, tästä saattaa aiheutua ongelmia juuri mainitsemieni näkymättömien välityspalvelinten takia. Mikäli käytössä on useamman välityspalvelimen farmi, joiden kesken yhteydet jaetaan satunnaisesti, saattaa IP vaihtua useinkin. En tiedä, tekeekö kukaan suomalaisista operaattoreista näin, mutta ainakin AOL käyttää tuollaista järjestelmää.

Mitä kannattaa tehdä riippuu tietysti aina kontekstista. Joskus voidaan hyväksyä se, että yhteydet eivät toimi muutamista aliverkoista tai istunnon ei voi luottaa olevan tallella koneen nukuttua. Joskus vuorostaan hyökkääjällä saattaa olla helppokin pääsy samalle koneelle uhrin kanssa.

5:33 ip.  
Blogger Aapo Laitinen totesi...

Eli väärinkäsitysten välttämiseksi vielä tarkennan: kommenttini IP-pohjaisista istunnoista koski tilannetta jossa Internetissä oleva järjestelmä seuraa istuntoa vain ja ainoastaan IP-osoitteen kautta. Istunnon IP-osoitteen tarkastaminen evästeen lisäksi puolestaan on jotain, joka voi useinkin olla hyvin järkevää.

5:45 ip.  

Lähetä kommentti

<< Etusivulle