luni, 15 mai 2017

WannaCry și cum putea fi prevenit

Dacă nu cumva trăiești într-o peșteră probabil ai auzit despre WannaCry, ransomware-ul ce a afectat peste 230.000 de calculatoare în 150 de țări, cu Sistemul Național de Sănătate al Marii Britanii ca vedetă în rândul victimelor ce s-au trezit cu fișierele criptate. Ransomware-ul, un tip de program rău-intenționat care îți criptează fișierele și apoi îți cere o răscumpărare pentru a putea primi din nou acces la ele, nu este ceva nou în peisajul malware-ului; ce are WannaCry mai special e că acesta se răspândea prin intermediul unui vierme informatic.

Există mai multe tipuri de malware (programe rău-intenționate), iar ceea ce noi numim generic "viruși" sunt doar o mică categorie din acest tip de programe. Virușii se deosebesc de celelalte tipuri de malware prin faptul că se pot multiplica singuri, infectând alte fișiere cu speranța că acestea vor ajunge în alte calculatoare de unde procesul de multiplicare poate să o ia de la capăt. În era internetului de mare viteză epoca virușilor a cam trecut deoarece lumea face mai rar schimb de fișiere prin intermediul mediilor de stocare. Cel mai răspândit tip de malware în zilele noastre sunt troienii, programe care la prima vedere sunt utile (și care de multe ori chiar sunt) dar pe lângă munca utilă mai prestează în calculatorul utilizatorului și alte activități ascunse și rău-intenționate: furt de date personale, monitorizare, etc.

Ransomware-ul a început să își facă și el prezența mai ales în ultimii cinci ani, mulțumită monedelor virtuale cum ar fi Bitcoin care permit încasarea de răscumpărări sub forma unor sume de bani fără să se poată da de urma destinatarului. Spre deosebire de viruși ransomware-ul nu se multiplică singur ci ajunge de obicei în calculatoarele noastre prin intermediul atașamentelor de email, a găurilor de securitate din browsere sau a programelor descărcate de pe site-uri dubioase. Odată rulat codul executabil al unui malware de tip ransomware acesta scanează memoria calculatorului în special după fișiere de tip document sau imagini (deoarece au dimensiuni mici deci pot fi criptate rapid și sunt și cele mai dragi utilizatorului), le criptează cu o cheie unică stocată pe un server și afișează un dialog prin intermediul căruia utilizatorul este anunțat că a pierdut accesul la fișierele sale și că trebuie să plătească o răscumpărare pentru a le decripta. Fișierele sunt imposibil de decriptat fără cheia cu care au fost criptate, iar spargerea acesteia nu este fezabilă putând dura chiar și mii de ani pe un calculator din zilele noastre.

Ce are în special WannaCry, după cum spuneam, este faptul că acesta e transportat de un vierme informatic, probabil EternalBlue, dezvoltat de către Agenția Națională de Securitate a Statelor Unite ale Americii și furat de acolo de către un grup de hackeri. Procedeul clasic de infectare (prin descărcarea unui executabil de pe un site dubios sau prin deschiderea unui atașament) este în acest caz doar vectorul inițial prin care ransomware-ul ajunge într-un calculator; odată executat acesta caută în rețeaua locală alte calculatoare care rulează un serviciu ce permite sharing-ul de fișiere sau imprimante pe sistemele Windows și se copiază și apoi execută automat grație unei găuri de securitate în acest serviciu. Practic nu e nevoie ca tu să faci nimic pentru a te infecta: e de ajuns ca cineva din rețeaua ta locală să fie infectat iar tu să rulezi o versiune de Windows fără update-urile la zi. Acest lucru a permis ca WannaCry să se poată extinde la o asemenea scară, Interpol descriind atacul ca unul fără precedent.

Cum putea fi prevenit un astfel de atac

Foarte simplu, prin instalarea actualizărilor de securitate puse la dispoziție de Microsoft. Spre deosebire de cazurile mai grave (dar din fericire mai rare) când atacatorii profită de găuri de securitate neștiute de nimeni alții, în cazul exploatat de WannaCry Microsoft a fixat breșa încă din luna martie a acestui an. Proporția atacului arată însă că oamenii nu prea dau doi bani pe actualizările de securitate (lucru de înțeles, instalarea actualizărilor pentru Windows este deranjantă, durează mult timp și vine în cele mai nepotrivite momente) ori că folosesc versiuni de Windows pentru care Microsoft nu mai oferă suport (mai ales Windows XP).

Lumea se întreabă dacă utilizarea unor alte sisteme de operare precum Linux nu putea să prevină un atac de o asemenea amploare. Din păcate răspunsul este nu, un atac cu ransomware poate avea loc fără probleme și pe acest sistem de operare (software-ul din Linux a avut și probabil are și el găurile lui de securitate de genul celei exploatate de EternalBlue) iar genul de fișiere spre care țintește acest tip de malware (fotografii, documente, etc) nu sunt protejate în mod obișnuit de mecanismul de permisiuni caracteristic sistemelor Unix. Sunt doi mari factori care fac ca ransomware-ul pe Linux să fie atât de rar: numărul mic de utilizatori care face neprofitabil un atac asupra acestora și dificultatea prin care un program poate fi distribuit către aceștia (din cauza numărului mare de distribuții și a incompatibilității la nivel de binare chiar și între versiuni ale aceleiași distribuții).

În schimb o mare problemă aici e software-ul cu sursă închisă (closed source). Nu mă refer la faptul că în cazul unui proiect cu sursă liberă (open source) cineva ar putea să observe o breșă de securitate înainte ca aceasta să poată fi exploatată ci că în multe cazuri sunt folosite versiuni vechi de Windows din cauza unor programe sau drivere care funcționează corect doar pe acestea. Fiind vorba de programe cu sursă închisă cei care le folosesc nu au nici măcar șansa de a putea angaja o echipă de ingineri care să adapteze acele programe la versiuni mai noi de Windows așadar sunt condamnați la a folosi versiuni vechi și vulnerabile în fața unor astfel de atacuri.

Adevărul e că, de fapt, genul ăsta de atacuri nu prea pot fi prevenite. În cazul particular al lui WannaCry am fost norocoși să avem un update de securitate încă din martie, însă putea fi și mai rău dacă atacatorii ar fi folosit o breșă de securitate care nu era cunoscută de Microsoft sau de public (așa numitele zero day attack). Programele de calculator devin din ce în ce mai complexe și cu cât mai complexe sunt cu atât e mai dificil de controlat fenomenul breșelor de securitate. Ca și cum n-ar fi suficient chiar și malware-ul devine din ce în ce mai complex iar piața acestuia a înflorit în ultimii 10 - 15 ani, de când internetul a început să devină omniprezent în casele tuturor.

Cât mai e până la un astfel de atac? Nimeni nu știe, și ce e mai îngrijorător e că s-ar putea întâmpla fix în timp ce citești aceste rânduri.