Ce sunt bugurile de tip “0-day”?
In lumea calculatoarelor si a tehnologiei exista numeroase tipuri de erori si defecte ce pot fi depistate in cadrul structurilor software sau hardware. Unele buguri pot fi functionale, daca ne gandim la anumite functii care nu se executa corespunzator (ex: apasam butonul de Login si se inchide aplicatia), sau non-functionale, precum cele referitoare la User Interfaces (UI) sau cele de securitate.
Vulnerabilitatile de securitate sunt destul de sensibile deoarece pot conduce la pagube informatice, materiale si financiare pentru utilizatori, in contextul fraudelor informatice tot mai numeroase din zilele noastre. Un astfel de tip de defecte despre care vom vorbi in continuare sunt cele numite “0-day”.
Ce sunt bugurile 0-day?
Asa cum am mentionat si anterior, bugurile de tip “0-day” reprezinta o problema de securitate. Insa ce sunt ele mai exact? In esesnta, un bug 0-day este o problema ce a fost depistata intr-o aplicatie software, intr-un website sau orice alt sistem informatic (chiar si intr-un sistem de operare), si nu este dezvaluita nimanui, nici companiei care a produs aplicatia respectiva, nici utilizatorilor.
De aici deriva si numele lor, pentru ca sunt 0 zile pana de cand un hacker rau intentionat se poate folosi de acest defect pentru a actiona in consecinta.
Astfel, pericolul cel mai mare al bugurilor de tip 0-day este dat de confidentialitatea lor: un hacker care tocmai a descoperit aceasta vulnerabilitate de securitate din aplicatia respectiva are optiunea sa o foloseasca pentru a sustrage informatii sensibile sau pentru a provoca pagube materiale si financiare.
Exista desigur si cealalta optiune, care de regula este pusa in practica de catre hackerii white-hat, si anume ca odata ce un bug de tip 0-day este descoperit, sa anunte compania sau proprietarul acelui produs soft, astfel incat problema sa fie rezolvata cat mai rapid printr-un update (hot fix), iar utilizatorii sa nu fie afectati (posibil chiar fara sa stie ca au fost in pericol).
Exemple de 0-day bugs
Ca sa intelegem mai clar ce fel de erori pot fi bugurile 0-day, o sa vedem cateva exemple nu foarte complicate din acestea. Cele mai multe buguri de acest tip afecteaza sistemele de operare precum Windows-ul, browserele unde cautam informatii si unde avem salvate anumite date precum parole, sau alte aplicatii folosite pe scara larga de oameni (aplicatii bancare, aplicatii de comunicare etc.).
Un prim exemplu de 0-day bug a fost in 2021 cand browser-ul Google Chrome a suferit o serie de mai multe atacuri in baza unui bug ce se regasea in engine-ul V8 de JavaScript care rula in navigatorul web. Consecinta a fost reprezentata de o serie de mai multe probleme pe partea de updates, pana cand situatia s-a remediat.
Un alt exemplu celebru de 0-day bugs au fost cele depistate in sistemul de operare Windows, pe baza carora a aparut virusul Stuxnet. Acesta a fost un virus malitios (un worm, mai precis), ale carui radacini pornesc de undeva de prin 2005, dar care a fost descoperit oficial in 2010.
Acesta afecata computerele care rulau PLC (programmable logic controller) si era un virus tip worm malitios care exploata respectivele buguri 0-day din Windows, iar una din principalele tinte ale acestui virus au fost uzinele de imbogatire a uraniului ale Iranului, ca sa ii perturbe programul de inarmare nuclear.
Nici sistemele de operare care teoretic sunt atent construite si permanent updatate nu au scapat. In 2020, iOS, sistemul de operare de mobile al celor de la Apple, a fost tinta a doua atacuri de securitate ce aveau la baza buguri 0-day, care permiteau hackerilor sa preieie, in anumite conditii, controlul asupra dispozitivelor de la distanta.
Lucruri interesante despre 0-day bugs
Subiectul vulnerabilitatilor de securitate 0-day este unul cu atat mai interesant cu cat exista si unele aspecte poate mai putin stiute despre acestea, dincolo de gravitatea lor si de faptul ca pot fi extrem de paguboase atat pentru companiile care dezvolta software, dar si pentru clienti.
Un fapt extrem de interesant este acela ca exista o piata de tranzactionare, vanzare-cumparare, a bugurilor 0-day, bineinteles in mod neoficial, deoarece este in afara legii. Pe aceasta piata, care definita in mod conceptual este de fapt un spatiu online intretinut in locuri obscure de pe Internet (cum ar fi Dark web), unde criminali cibernetici vand “marfa” proaspat descoperita: buguri de pot fi exploatate imediat pentru scopuri infractionale.
Aici se pot intalni in mod anonim, iar tranzactiile se efectueaza tot anonim, pe sub radarul autoritatilor publice (aparent, revin la idee putin mai jos), unde plata se face cu cryptomonede. Exista chiar business-uri create pornind de la acest “mediu propice”, precum startup-ul Zerodium.
Un alt aspect interesant este ca, din ce se pare bazat pe marturiile unor oameni implicati, chiar serviciile de informatii ale anumitor tari intra pe aceasta piata si cumpara buguri de tip 0-day. Am fi tentati sa spunem ca le cumpara pentru a le preda companiilor in cauza sa remedieze problema iar oamenii simpli sa nu sufere de pe urma lor. Dar… realitatea este aparent alta.
Unele servicii de informatii, in mod anonim, cumpara buguri 0-day pentru a le tine la pastrare si a le putea folosi ca arme impotriva anumitor grupari infractionale / organizatii ilegale, astfel incat sa le atace si sa le fure informatiile, precum si pentru a le destructura, ori a-si crea o marja de negociere in anumite contexte.
Un alt fapt interesant este ca in ultimii ani a scazut numarul bugurilor 0-day identificate. In aparenta, ar putea fi un lucru pozitiv: aplicatiile software sunt mai sigure, companiile le dezvolta si updateaza mai bine. Dar e destul de probabil sa vorbim aici de reversul medaliei: sunt mai putin identificate de catre cei care ar trebui sa faca asta, dar de fapt aplicatiile tot prezinta asemenea defecte, care nu mai sunt dezvaluite si constituie o amenintare.
Concluzii
In incheiere, reamintesc ca bugurile de tip 0-day sunt in esenta niste vulnerabilitati de securitate speciale, care sunt depistate pe moment, dar identificarea lor publica se lasa asteptata, existand o perioada deci in care oameni rau intentionati precum infractorii cibernetici sau organizatii teroriste cauta sa provoace daune materiale si nu numai sistemelor informatice, si implicit oamenilor care le folosesc.
Este important sa constientizam ca niciun sistem software nu este perfect, si de aceea trebuie sa fim atenti, sa fim tot timpul la zi cu actualizarile, in special cu cele de security, si sa raportam onest daca gasim un bug ce poate fi unul 0-day. Exista chiar unele programe de bug bounty pentru acestea, si pot fi oportunitatea perfecta pentru a invata testare software sau de securitate.
Surse pe acest subiect
Detalii generale despre 0-day bugs
Despre piata de tranzactionare a bugurilor de tip 0-day
Despre 0-day exploits (metodele de a profita de aceste buguri).
Un articol interesant privind statistica descoperirii acestor tipuri de vulnerabilitati
Despre virusul informatic Stuxnet
Despre tool-ul Burp Suite, care ajuta la depistarea vulnerabilitatilor de securitate IDOR