Jump to content
php.lv forumi

FireSheep - sesiju pārtveršana tējkannām


Aleksejs

Recommended Posts

Pirms dažām dienām uzradās jauns Firefox plugins Firesheep - http://codebutler.com/firesheep

Īsumā - tas ļauj veikt sesiju pārtveršanu "session highjacking" cilvēkieb bez jebkādām priekšzināšanām, kas nozīmē, ka jebkurš zaļknābis var uzinstalēt šo pluginu, pieslēgties neaizsargātam WiFi vai nesvičotam tīklam (piemēram bezmaksas wifi kafejnīcās vai tie daudzie wifji, kas ir mājās bez parolēm) un pārtvert strādājošas citu cilvēku Facebook/Twitter/(potenciāli arī draugiem)/u.c. neazsargātās sesijas.

 

Kaut gan sesiju pārtveršana nav nekāds jaunums - svarīgā lieta ir tas, ka šis rīks ļauj cilvēkiem bez gandrīz nekādām priekšzināšanām un pieredzes par to kā tiek veikti šie uzbrukumi (kā piemēram jūsu brālim/māsai greizsirdīgajai draudzenei/draugam, klasesbiedram utt) sekmīgi veikt šo uzbrukumu.

 

Tomēr nevajag arī pārlieku satraukties, jo tomēr šis konkrētais uzbrukuma rīks ir lokāli ierobežots (uzbrucējam jāatrodas kaut kur starp jums un serveri un šī vieta šī rīka kontekstā ir jūsu subnets).

 

Chris Wysopal twitterā teica: "#firesheep is to cleartext web sessions as chainsaws are to trees. Everyone gets to be a lumberjack."

 

Ko darīt kā lietotājam: Izvairīties no neaizsargātu tīklu izmantošanas; izmantot SSL kad vien iespējams; izmantot pluginus, kas piespiež izmantot SSL (protams, ja tāds konkrētajam portālam ir pieejams).

 

Ko darīt kā izstrādātājam: Nodrošināt, ka sesijas ID ir labi pasargāts - izmantot SSL lai aizsargātu sesijas cepumus. Neviena cita alternatīva īsti prātā nenāk. Piesiet sesijas ID klienta IP adresei varētu nebūt efektīvs risinājums, jo šis konkrētais rīks ja tiks izmantots tad tiks izmantots no tā paša subneta un līdz ar to uz āru tiks rādīta tā pati NATotā IP adrese kā upurim. http://stackoverflow.com/questions/22880/what-is-the-best-way-to-prevent-session-hijacking

 

Vēl resursi:

Autora prezentācija (pārslēgt slaidus var ar klaviatūras bultiņām) - http://codebutler.github.com/firesheep/tc12/#1

http://www.h-online.com/security/news/item/Firefox-extension-steals-Facebook-Twitter-etc-sessions-1124596.html

http://blogs.pcmag.com/securitywatch/2010/10/with_firesheep_all_your_http_s.php

http://www.f-secure.com/weblog/archives/00002055.html

 

+ Šīs pašas tēmas paziņojums iekš boot.lv http://www.boot.lv/forums/index.php?/topic/131434-firesheep-sesiju-partversana-tejkannam/

Link to comment
Share on other sites

Neesmu tajās WiFi pārtveršanas lietās iedziļīnājie, tāpēc jautāšu uzreiz šeit:

1)Cik saprotu, tad neaizsargātam WiFi tīklam var pārķert visu tīklā sūtīto informāciju?

2)Ja WiFi tīkls ir aizsargāts ar WPA2, bet kādam citam arī ir zināma parole, vai tad arī var pārķert visu informāciju?

 

Vispār interesants plugins. Šodien laikam hobija pēc pabraukāšu ar portatīvo pa dzīvojamajiem rajoniem. Gribās pārbaudīt praksē, cik tas viegli ir.

Link to comment
Share on other sites

Pārdomas par to, kā realizēt aizsardzību bez SSL (vai ar minimālu SSL iesaisti).

 

Ja ir pieejams jauns pārlūks un LocalStorage.

1) Cilvēks atver pārlūkā login lapu.

2) Serveris izveido sesiju, uzģenerē un piesaista sesijai virkni RND1 un arī nosūta RND1 cookiju un SID cookiju.

3) Cilvēks ievada un nosūta username.

4) Serveris atrod šo username DB un tam atbilstošās sāls S un paroles hasha H vērtības(vai ja tāds username neeksistē uzģenerē kautko randomā), kuru izmanto, lai izrēķinātu hmac(H,RND1)=K un saglabā sesijā šo K, izveido, saglabā sesijā RND2 un nosūta AES_CBC(RND2,K) un S.

5) Cilvēks ievada paroli P, no kuras pārlūks izmantojot S dabū H. izmantojot RND1 un H tāpat kā serveris - dabū K, kuru saglabā savā localstorage, tur pat saglabā arī atšifrēto RND2=RND2 + 1. Serverim atpakaļ sūta nemainīgu SID (lai serverpusē var identificēt sesiju) un hmac(SID . RND2,K)=Q

6) Serveris pārbauda vai viņa pusē ģenerētais Q sakrīt ar klienta atsūtīto.

7) Pie katra pieprasījuma klients palielina RND2 par 1 un ģenerē atbilstošu Q.

 

Sarežģīti & piņķerīgi. :D

 

Edit: Papildinājums no autora (vakardien FireSheep bija desmitais meklētākais vārds googlē ASV teritorijā)

http://codebutler.com/firesheep-a-day-later

Link to comment
Share on other sites

Jānosaka likumos, ka ielaušanās svešā sesijā ir tāds pats kriminālnoziegums, kā, piem., ielaušanās svešā dzīvoklī.

Absurds. Fiziskai telpai ir daudz lielāka prioritāte, kā informatīvai, savādāk tādā gadījumā arī jebkāda ielaušanās manā privātā informācijas telpā jānosaka kā kriminālnoziegums:

- Paskatījies uz mani (nolasīji manu vizuālo informāciju), kriminālpārkāpums

- pateici kaut ko man ne tā, kriminālpārkāpums

 

Ir vienkārši jānosaka, ka šādas darbības ir pretlikumīgas, bez nekāda norādīta soda, bet sodu tālāk kā par pretlikumīgu darbību veikšanu pēc sekām. Savādāk tas ir absurdi, ja kāds paņem savam draugam blakus istabā nozog soc. tīkla sesiju un aizsūta citam draugam viltus vēlstuli kā joku un par to viņam ir kriminālsods. Nav seku, nav nozieguma. Ir sekas, soda pēc sekām. Piemēram, ja sekas ir tikai morālais kaitējums, tad pierādot to tu vari civiltiesiskā ceļā pieprasīt kompensāciju. Ja sekas ir ar kriminālu raksturu, tad šāda darbība ir tikai kā vainu pastiprinošs līdzeklis.

 

Tai pašā laikā ar ko atšķirās publiski pieejama lapa internetā, no publiski un brīvi pieejamas sesijas WiFi tīklā?

Drīzāk tad jau atbildība ir jāuzņemās tiem, kas organizē tavas informācijas transportu internetā ne tā kā tam būtu jābūt. Attiecīgi tīklu administrātoriem, provaideriem, weblapu īpašniekiem, utt.

Link to comment
Share on other sites

7) Pie katra pieprasījuma klients palielina RND2 par 1 un ģenerē atbilstošu Q.

 

Ja nemaldos, šo varēs darīt tikai pie ajax pieprasījumiem.

Kā ar parastiem lapas GET pieprasījumiem? Vai tas nozīmē, ka visiem a tagiem javascriptiski jāpiekabina klāt Q?

Protams var jau plānot tā, ka informācija aiz paroles nāk tikai caur ajax pieprasījumiem.

Link to comment
Share on other sites

to Q jāsaglabā kā cookiju, tad tas sūtīsies ar katru pieprasījumu...

Vienīgi bilžu/utt resursus, kas nav jāaizsargā jānoliek tādā pathā, lai uz tiem nesūtītu neko tādu.

Arī AJAX variants darbotos (jo ja jau varam LocalStorage izmantot, tad AJAXam jāiet bez problēmām).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...