Elektronika.lt

Elektronika.lt - elektronikos, informacinių ir
ryšių technologijų portalas

Adresas: http://www.elektronika.lt
El. paštas: info@elektronika.lt
 Atspausdinta iš: http://www.elektronika.lt/patarimai/programos/15436/apsisaugome-nuo-clickjacking-ataku/spausdinti/

Apsisaugome nuo „clickjacking“ atakų

Publikuota: 2009-02-08 11:09
Tematika: Programinė įranga
Autorius: Kęstas Gudinavičius
Inf. šaltinis: Critical Security

Saugumo tyrinėtojų Jeremiah Grossman ir Robert Hansen paskelbta ataka, kurią jie pavadino „clickjacking“, yra viena įdomesnių praėjusių metų atakų prieš web vartotojus. „Adobe“ kompanijai teko tartis su atakos autoriais, kad šie atidėtų savo pranešimo skaitymą konferencijoje „OWASP AppSec NY 2008“, kadangi kompanija ataką įvertino kaip kritinę jos produktų, konkrečiau „Adobe Flash“, atžvilgiu. Nors ataka nėra paplitusi, tačiau jos likvidavimui yra parengta keletą sprendimų, kurios pabandysime apžvelgti.

Pirmiausia apie pačią ataką. Jos esmė yra priversti vartotoją spragtelėti ant užmaskuotų tinklalapio elementų, pavyzdžiui, įdėtinio rėmelio (angl. iframe), kuriame yra užkrautas tarkime mokėjimų sistemos vartotojo paskyros nustatymų puslapis. Vartotojas nė neįtaria, kad žaisdamas įdomų žaidimą tuo pat metu keičia paskyros nustatymus. Saugumo tyrinėtojai taip pat pateikė „Adobe Flash“ saugumo modelio trūkumus išnaudojantį demonstracinį kodą, kurį pasitelkę piktavaliai galėjo perimti aukos internetinės kameros ir mikrofono valdymą. Kaip ši ataka atrodė realybėje galima pažiūrėti pateiktame filmuke:

Egzistuoja keletas apsaugos mechanizmų nuo „clickjacking“ atakų. Pirmasis žinomas kaip „rėmelių žudikas“. Tai „JavaScript“ kodas, kuris neleidžia tinklalapio atvaizduoti rėmelyje. Šis kodas turi būti įterptas į kiekvieną norimą apsaugoti puslapį. Paprasta realizacija, tačiau tai nėra universalus sprendimas, kadangi „Internet Explorer“ naršyklė supranta rėmelio atributą „security“, kurio reikšmė „restricted“ nurodo, kad rėmelyje esantis tinklalapis yra padidinto saugumo zonoje, kurioje JavaScript kodas paprasčiausiai neveiks. Taip pat šis apsaugos mechanizmas bus bejėgis prieš klientus su atjungtu „JavaScript“ palaikymu.

„Rėmelių žudikas“:

<script type="text/javascript">if (top!=self) top.location.href=self.location.href;</script>

„Microsoft“ jau ankščiau skelbė, kad interneto naršyklė „Internet Explorer 8“ turės integruotą apsaugą, gebančią neutralizuoti „clickjacking“ atakas, o prieš keletą dienų IE tinklaraštyje buvo paskelbtos šios technologijos detalės. Norėdami apsaugoti IE8 naudotojus, web programuotojai gali gražinti specialią antraštę X-FRAME-OPTIONS, kuri nurodo kaip konkretus puslapis gali būti įrėmintas. X-FRAME-OPTIONS reikšmė DENY reiškia, kad puslapis negali būti įrėmintas, SAMEORIGIN – puslapis bus atvaizduotas rėmelyje, jeigu sutaps naršymo kontekstas. Kuomet puslapis pažeidžia nustatytą X-FRAME-OPTIONS politiką, IE8 vietoj tinklalapio rodo įspėjantį pranešimą bei pateikia nuorodą, kuri atidaro rėmelio šaltinį naujame lange. Šios technologijos trūkumas yra tas, kad ji kol kas suderinama tik su IE8 , neaišku kaip greitai technologiją adaptuos kitos interneto naršyklės.

Paskutinis apžvelgiamas apsaugos sprendimas yra „Mozilla“ šeimos interneto naršyklėms skirtas nemokamo papildinio „NoScript“ modulis „ClearClick“. Prieš tai du minėti apsaugos nuo „clickjacking“ atakos mechanizmai negali eiliniam vartotojui garantuoti, kad tam tikra interneto svetainė juos tinkamai įsidiegusi. „ClearClick“ modulis automatiškai aptinka ir nukenksmina bei praneša vartotojui apie vykdomą ataką. Naujausia modulio versija turi eksperimentinį X-FRAME-OPTIONS antraštės palaikymą taip pat moka atpažinti ne vien rėmeliais paremtas „clickjacking“ atakas , kas suteikia dar didesnį patikimumą.

Apibendrinant, galima teigti, kad „NoScript“ papildinys yra geriausia šiuo metu egzistuojanti priemonė apsaugai nuo „clickjacking“ atakų, kol interneto svetainių autoriai ir interneto naršyklių kūrėjai neįsisavino naujausių apsaugos technologijų.


Critical Security
‡ 1999–2024 © Elektronika.lt LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!