Archive forSecurity

Între useability și stupidity

Am primit zilele trecute de la Meekuu un articol (apărut pe slashdot) care mi-a dat niște fiori reci pe șira spinării. Nu pentru că ar exista indivizi care consideră că înlocuirea parolelor cu steluțe este prea mult pentru capacitățile utilizatorilor obișnuiți. Ci pentru că respectivii sunt „experți” și „guru”, și încep să am sentimentul că opinia lor începe să devină majoritară.

Nu de alta, dar nu sunt decât câteva luni de când citeam un thread pe un forum românesc în care o altă serie de bizoni indivizi se plângeau că ei nu vor Internet Banking cu token, că le e greu să care tokenul după ei (un dispozitiv de mărimea a 2 cărți de credit, și de câteva zeci de grame – asta în condițiile în care par să nu aibă nici o problemă în a căra un laptop de 2 kile, ca să „intre pe internet banking doar de pe laptop-ul propriu”).

OK, recunosc că sunt somewhat of a „security geek”. Și că mă deranjează până și faptul că pe telefonul meu mobil apare în clar ultimul caracter al parolei (deși trebuie să recunosc că soluția respectivă e un compromis destul de bun între „steluțe” și „toată parola în clar”). Mă uimește totuși că inclusiv Bruce Schneier (unul din oamenii pe care chiar îi consider experți în securitate) pare să fie de acord cu soluția.

Cum nu pot să nu mă amestec în discuție, încerc să explic de ce eu în continuare consider soluția respectivă una neinspirată:

  1. Utilizatorii se împart în 2 categorii: tehnici, și non-tehnici. Soluția este destinată celor non-tehnici (tehnicii au parole lungi, complicate, și le ia mai puțin să scrie din nou parola decât să corecteze un typo în „MyV3ryC0mpl3xP@55w0rD” 😛 ). DAR! Persoanele non-tehnice în general nu sunt touch-typists, și cât scriu parola au ochii pe tastatură, nu pe ecran. Și atunci nu îi ajută foarte mult faptul că apare parola scrisă.
  2. Autorul spune „steluțele nu ajută, că un individ care stă lângă tine poate vedea ce scrii”. Așa am crezut și eu, până când (acum mulți ani) am întâlnit un individ care mi-a explicat că nu e chiar așa. Și la ora actuală sunt dispus să provoc pe oricine să stea lângă mine cât timp eu îmi scriu parola. De zece ori. El stând cu ochii în tastatură, fix pe mâinile mele. Dacă la final el știe parola, dau o bere. Sau zece!
  3. Continuând ideea de mai sus – dacă de citit pe tastatură e practic imposibil (cel puțin pentru un individ care scrie relativ repede), de citit (și reținut) ceva de pe ecran e incredibil de ușor. Acum câteva zile mă uitam la un CBTNugget. Și soft-ul demonstrat de individ era din categoria „parole în clar”. Deși parola respectivă a stat pe ecran sub o secundă (cât i-a luat lui să o scrie și să apese „enter”), am văzut-o, mi-a atras atenția, și ca urmare am reținut-o. Fără să dau filmul înapoi, și fără slow-motion. Era „Mtncl1mbr” (nu mai știu dacă era cu M mare sau mic, dar nu cred că asta e o problemă pentru cineva 😛 ). Ca urmare, mai fac un pariu – cine vrea, scrie parola lui cât de repede poate, în clar. Cu mine undeva în spatele lui. Sunt convins că din maxim 5 încercări știu destul din parolă cât să mă descurc la un login (un pic mai dificil cu parolele de tip „Tqbfj0tld!”, dar nu imposibil 🙂 )
  4. Majoritatea utilizatorilor au parole identice (sau foarte asemănătoare) pe mai multe servicii. Dacă una singură din parolele respective este compromisă, restul se duc prin efect de domino.

Și fix când voiam să spun „nu cred că a posibil ca o bancă având sistemul respectiv de <clear-text passwords> ar trece vreun audit de securitate, găsesc un comentariu interesant pe blog-ul lui Schneier: „I have worked as CISO in several banks and can confirm that shoulder surfing does take place. Consequently, I would ban any system that displays passwords in a shared office or in public.”

Înainte să îmi spuneți „dar noi nu vorbeam de bănci, ci doar de sisteme low-risk”, vă întreb – ce înseamnă „low-risk”? Parola de wireless (care se poate vedea în clar în Win7) înseamnă pentru mine ca administrator accesul unui atacator din parcare în rețeaua mea internă. Parola de login pe sistem este de multe ori parola de domeniu a utilizatorului, și permite un foarte frumos caz de identity-theft electronic între colegi (cu consecințe care pot fi din cele mai neplăcute – nu mai devreme de săptămânile trecute un coleg de facultate a ajuns aproape de exmatriculare printr-o astfel de situație). Adăugați ce spuneam mai sus despre parole similare pentru scopuri diferite, și veți înțelege de ce nu consider nici o parolă „neimportantă” (întrebați-l pe Meekuu ce-a pățit când a vrut parola de pe un sistem de-al meu 😛 )

Slightly OT: Autorul mai spune “Password masking has become common for no reasons other than (a) it’s easy to do, and (b) it was the default in the Web’s early days.”. O fi el expert în usability, dar aici e cam pe lângă. Mecanismele de „password hiding” există de pe vremea mainframe-urilor, fără nici o legătură cu „the Web’s early days”.

Așa că oameni buni, încetați cu argumente de genul „ăla chiar e expert, SIGUR are dreptate”!! Ați auzit de „argumentum ad verecundiam”? Dacă X e „expert”, nu înseamnă că nu poate da cu bâta-n baltă ocazional. Și experții sunt oameni, și orice om poate greși 😛

Comments (3)

Despre securitate

Ca de obicei, XKCD ne aduce încă un comic absolut genial…

Security-XKCD

So true… oh, so true… 😛

Comments (3)

Să hacker-im edu.ro

Dacă tot vorbeam de SIVECO, uite încă un articol interesant. Despre un portal (edu.ro) aparținând Ministerului Educației, creat de firma menționată mai sus:

http://hackersblog.org/2009/02/03/compromiterea-serverului-portaleduro-prin-lfi/

In aceasta dimineata o sa vorbim despre portalul edu.ro creat de SIVECO Romania S.A.

Acesta sufera de o vulnerabilitate de tip Local File Inclusion, adica, putem include orice fisier de pe server pentru a fi executat ca si php, limitati fiind numai de userul sub care ruleaza serverul de HTTP.

[…]

Astfel codul nostru php este executat si rezultatul dupa cum vedeti mai jos, full access asupra serverului(baze de date, fisiere cu informatii sensibile, etc.)

Dacă vă plictisiți, aveți acolo instrucțiuni pas cu pas despre cum se poate executa atacul (din fericire nu sunt atât de detaliate încât să le poată urma oricine – trebuie să știi un pic de PHP 🙂 ). Informațiile sunt furnizate în scop educativ, și „nu ne asumăm nici o responsabilitate pentru eventuale pagube cauzate de folosirea acesteia de catre cititorii noștri”. 😉

Credits go to LifeTester for this one 🙂

Comments (1)

Twitter și securitatea

În ultima vreme, twitter pare să fie o țintă preferată a diverselor atacuri. După o serie de atacuri de tip phishing, un cont de administrator a fost spart printr-un (cât de poate de banal) dictionary attack.

De ce a reușit atacul? Simplu: număr de login-uri eșuate nelimitat, CAPTCHA lipsă la login, etc. Ce mi se pare absolut fascinant este că un site de torrenti sau warez cu câteva mii de utilizatori are întotdeauna elementele respective – în schimb un site cu milioane de useri nu.

Comments (2)

Hash Competition

Nu mai devreme de ieri scriam un lucru pe care îl spun de mult timp:

Și eu (ca și mulți alții) consider că soluția cea mai bună ar fi organizarea unei competiții de tipul celei organizate pentru algoritmii de criptare în 1997 (competiție în urma căreia a apărut AES-ul).

Ei bine, iată că se întâmplă! Se pare că eram în urmă cu știrile – deja există așa ceva!

Concursul este deja deschis, și s-au primit 64 de propuneri. Cel mai probabil vom avea un standard undeva prin 2012. Not a moment too soon, aș putea spune 🙂

Detalii aici (wired.com), aici (schneier.com), sau aici (cio.com).

Comments (4)

MD5 Considered Harmful Today

Urmăresc de ceva vreme progresul făcut în direcția „spargerii” algoritmului MD5. Și nu o dată m-am contrazis cu oamenii care susțineau că a fost deja spart. De ce? Pentru că „posibilitatea găsirii unor coliziuni random” nu echivalează cu „posibilitatea găsirii unor coliziuni pentru un text dat”, sau (și mai important) cu „posibilitatea realizării unui atac pe baza acestor coliziuni”.

Ei bine, iată că a fost făcut și acest ultim pas. Astăzi a fost anunțat ceea ce este (din câte știu eu) primul atac „real-world” bazat pe vulnerabilitățile MD5. Un grup de cercetători au reușit să obțină un certificat „fals”, care apare în browsere ca fiind emis de un CA comercial. Ca urmare, certificatul este recunoscut și acceptat ca valid de către browser-ele web.

Mai mult – certificatul emis este un certificat de CA intermediar. Ca urmare, toate certificatele semnate ulterior folosind acest certificat vor fi recunoscute și acceptate ca valide de către browsere!

Da, cercetarea nu s-a bazat numai pe vulnerabilitățile MD5-ului. S-a bazat și pe anumite vulnerabilități din implementarea CA-ului (numere de secvență liniare, moment predictibil al emiterii certificatului, path length lipsă în CA-ul root, etc). Totuși, faptul că atacul a reușit (timpul necesar pentru calcul fiind de numai câteva zile!!) înseamnă că într-adevăr perioada de utilitate a MD5-ului s-a terminat.

Aș spune că este momentul să ne căutăm alți algoritmi de hashing, dar…. nu prea avem alternative. SHA-1 este mai secure, dar și el are o serie de vulnerabilități (nu de aceeași anvergură, dar vulnerabilități nevertheless). Ca urmare, și el va trebui înlocuit până în 2010 (recomandare NIST).

Cu ce? Încă nu știm. Și eu (ca și mulți alții) consider că soluția cea mai bună ar fi organizarea unei competiții de tipul celei organizate pentru algoritmii de criptare în 1997 (competiție în urma căreia a apărut AES-ul).

Detaliile despre atac le găsiți aici. Credits go to LifeTester, care se pare că în loc să se gândească la anul nou stă și citește despre MD5 pe ‘Net. 🙂

Comments (6)

Atacarea criptării prin… reboot

Se pare că memoriile DRAM pe care le folosim (aproape) cu toții nu își pierd conținutul imediat ce nu mai sunt alimentate. Și niște băieți deștepți și-au dat seama că astfel se pot ocoli multe scheme de criptare

După cum spun și cei de pe slashdot – în momentul în care atacatorul are acces fizic la o mașină, datele de pe mașină sunt practic întotdeauna compromise. Indiferent ce super sisteme de securitate software sunt instalate pe ea.

Comments (4)

Next entries »