Incidentul CrowdStrike – Windows si dependenta lumii de tehnologie
Probabil fara exceptie, deja toata lumea stie sau a auzit macar de faptul ca vineri, 19 iulie, a avut loc unul dintre cele mai grave incidente tehnice de natura software din acest an, si posibil chiar din istorie. Un update ce parea banal al platformei de securitate gestionata de compania CrowdStrike a pus la pamant milioane de computere cu Windows, blocand sute de mii de operatiuni de business din diferite domenii (bancar, comercial, aerian etc.).
Acum, dupa ce apele s-au mai linistit si putem reflecta mai bine cu informatiile relevante aparute in spatiul online, merita sa ne aplecam asupra acestui eveniment si sa ne intrebam cateva lucruri in articolul de fata, lucruri pe care acest incident le-a scos in evidenta extrem de clar. Ce s-a intamplat mai exact atunci? Si mai ales, cat de dependenti (daca nu chiar vulnerabili) suntem ca societate de tehnologia IT?
Ce s-a intamplat pe 19 iulie 2024? Relatarea faptica
In dimineata zilei de vineri, 19 iulie (2024), la ora 07:09 ora Romaniei (04:09 UTC), compania CrodwStrike a lansat un update pentru soft-ul lor denumit Falcon. Acesta reprezinta o platforma de securitate cibernetica (un “antivirus” cum s-ar spune in limbaj colocvial), doar ca mai puternic si cu mai multe functionalitati, fiind un EDR (Endpoint Detection and Response), mult mai bine integrat si corelat cu sistemul de operare decat un program antivirus free.
Pana aici, nimic nu parea a fi mai deosebit (desi update-ul a venit vinerea, dar revenim mai incolo la acest detaliu esential). Insa imediat au inceput sa vina rapoarte potrivit carora acel update cauza crash-uri pe computerele clientilor, iar CrowdStrike si-a dat seama de problema ce o crease. La ora 08:27 (ora Romaniei / 05:27 UTC), compania de securitate a lansat un al doilea update care continea fixul pentru problema de mai inainte, insa raul fusese deja produs.
In toata lumea, foarte multe companii si procese de business au fost date peste cap ca urmare a faptului ca acea eroare care se manifesta la nivelul Kernel-ului (codul fundamental al sistemului de operare) a declansat aparitia celebrului “Blue Screen of Death” (BSOD), facand practic nefunctionabile acele computere pentru un timp destul de indelungat.
Desigur, nu vorbim de luni de zile, dar in business timpul inseamna bani, si extrem de multe zboruri aeriene au fost anulate sau amanate, multe tranzactii bancare au fost intrerupte, la multe magazine nu s-a mai putut plati cu cardul, sistemele de asigurari din unele spitale din Marea Britanie au fost blocate, inclusive serviciul de urgenta 911 din SUA si Canada a fost intrerupt cateva ore bune. Inclusiv compania ApaNova si cativa operatori de trafic aerian de pe aeroportul ”Henri Coanda” din Bucuresti au fost afectati de acest update.
Microsoft a estimat ca in lume au fost afectate aproximativ 8,5 milioane de computere, procentual mai putin de 1% din totalul celor cu Windows. De ce nu au fost afectate toate calculatoarele?
Raspunsul e simplu, si e vorba doar de anumiti clienti care au primit respectivul update. Din totalitatea computerelor cu Windows, o parte foloseau componenta de memorie cloud de la Microsoft (mediul numit Microsoft Azure), pentru stocarea datelor. Si din aceste computere cu Azure, o parte au instalat si soft-ul de securitate Falcon de la CrowdStrike.
Desigur, nu toti au facut update-ul de cum a fost acesta lansat, astfel incat numarul PC-urilor afectate a fost de ”doar” 8,5 milioane, si doar din zona cu Windows, macOS / Linux nefiind afectate. Deci nu toata lumea a fost afectata (utilizatorii casnici mai deloc), insa acest incident a provocat pagube financiare si materiale extrem de serioase.
Detaliile tehnice ale update-ului dat de CrowdStrike
Soft-ul de securitate Falcon al celor de la CrowdStrike este un EDR destul de complex, care este inradacinat la nivelul Kernel-ului din cadrul sistemului de operare Windows. Prin Kernel intelegm acel core super important, codul de baza care asigura functionarea sistemelor principale si critice din OS, precum memoria sau Network-ul.
Update-ul respectiv venea cu niste schimbari la nivelul fisierului C-00000291.sys, un fisier printre multe altele care asigura functionarea Kernel-ului cu celelalte componente ale computerului (asemanator cu driverele, dar mult mai complex si profund). Fisierele de tipul .sys se pot regasi pe orice PC (cu sau fara CrowdStrike) in locatia C:\Windows\System32\drivers, insa ideal e sa nu umblam pe acolo ca sa nu stricam / stergem / suprascriem ceva si sa declansam noi vreo eroare.
Versiunea fisierului C-00000291.sys de la ora 7 (primul release, cel cu timestamp-ul 0409 UTC) era cel ce continea bug-ul, iar versiunea aceluiasi fisier cu timestamp-ul 0527 UTC nu il mai continea, fiind deja fixat. Insa cei care au fost mai rapizi si au instalat primul update au avut de suferit, chiar daca putem spune ca cei de la CrowdStrike s-au miscat relativ repede, facand deploy cu fixul in mai putin de 80 minute. Insa cum orice minut conteaza, a fost suficient sa dea lumea peste cap cu un outage serios, demn de un atac informatic planificat in amanunt.
Totusi, desi release-ul cu fix a venit relativ repede, aplicarea lui nu s-a putut face in mod instantaneu pe computerele afectate, deoarece ele erau deja blocate de BSOD. Solutia ce trebuia implementata presupunea interventia personalului IT care sa vina, sa dea Restart in Safe Mode pentru fiecare PC in parte, si apoi sa stearga tot manual fisierul corupt C-00000291.sys ca sa fac loc celui curat. Aceasta a reprezentat o problema suplimentara la tot haosul deja creat, deoarece solutia nu e una la indemana oricui, si a necesitat timp suplimentar, in care business-urile evident ca nu au putut functiona la capacitate normala.
Eroare tehnica propriu-zisa se pare ca a constat intr-o scriere defectuasa a codului aferent acelui fisier .sys, al carui rol este sa evalueze riscurile de securitate de tip Named Pipes folosite in atacurile informatice pe sistemul de operare Windows. Aparent, se pare ca actualizarea de canal a acelui fiser a declansat o eroare logica ca urmare a unui bug in cod, ce a cauzat la randul ei o eroare in accesarea memoriei (practic, o locatie care de fapt nu exista). De aici, Kernel-ul a luat crash iar imaginile cu Blue Screen of Death au impanzit lumea.
Intrebarile si neclaritatile din jurul incidentului
Cu siguranta, acest eveniment a perturbat viata obisnuita a milioane de oameni intr-un mod si intr-un moment la care nu ne-am fi asteptat, mai ales ca problema nu era opera unor hackeri foarte experimentati, ci chiar a celor insarcinati cu apararea securitatii PC-urilor, in speta compania CrowdStrike.
Se ridica totusi niste intrebari la care inca nu a fost dat niciun raspuns si merita sa fie punctate, macar pentru a contextualiza mai bine incidentul, si a trage niste invataminte pentru viitor. In primul rand, de ce s-a facut acest release in productie tocmai vinerea? In industria IT este un lucru destul de bine stiut ca, daca nu e absolut nevoie, sa nu se faca niciun release in productie (deci care sa ajunga direct la utilizatorii finali) vinerea.
Acest lucru se justifica prin faptul ca asta ar pune mai multa presiune pe echipele tehnice sa termine dezvoltarea si testarea cat mai repede, si ar preintampina eventuale probleme ce ar da peste cap vietile oamenilor (precum cei care voiau sa mearga in concediu cu avionul si nu au mai putut), caz in care echipele de Support ar fi nevoite sa lucreze peste weekend ca sa remedieze problemele. Deci, de ce a fost nevoie sa se faca acest update tocmai vinerea? CrowdStrike nu a lasat de inteles ca ar fi vorba de ceva critic (un hotfix, spre exemplu).
A doua intrebare, care e in acord cu specificul discutiilor noastre preponderente, e cum s-a testat acest release si cum de aceasta eroare majora nu a fost depistata de catre echipele de QA? Desigur, nu exista aplicatie perfecta, si mereu se vor strecura bug-uri in aplicatiile ce sunt deployate, pentru ca testarea completa e imposibila. Insa exista o masura in toate.
Ori acest caz de testare, cel de a vedea cum se comporta un update de la o versiune mai veche la una mai noua, este totusi unul extrem de important si nu poate fi ignorat. Daca ar fi fost vorba de o problema doar pe o anumita versiune de OS, mai specifica si prea putin raspandita, atunci ar fi fost clar ca doar acolo nu s-a testat si pagubele ar fi fost mai mici. Dar asa toate PC-urile cu Windows si Falcon instalat care au facut acel update au fost afectate, ceea ce indica o problema generala.
Fie nu s-a testat deloc, fie a fost un proces de verificare pe repede inainte (ceea ce pare in acord cu intrebarea 1, de ce tocmai vinerea?), ambele ipoteze de raspuns sunt grave si indica o problema de SDLC pentru CrowdStrike.
O a treia intrebare ce tine de procesul de deploy este de ce aceasta actualizare a fost livrata deodata tuturor clientilor si nu i s-a facut un proces de rolling out etapizat (5% in prima faza, apoi 10%, 15% si asa mai departe). Insa acest update a venit pentru toti o data, ceea ce face povestea despre incident cu atat mai curioasa. Daca ar fi fost ceva etapizat, atunci clar nu mai vorbeam de atatea milioane de PC-uri afectate.
Cum s-a ajuns la acest incident? Posibile explicatii
In incercarea de a intelege cum anume s-a ajuns la acest incident software major, au fost emise mai multe teorii pentru a explica cauza, cum si de ce a fost posibil acest eveniment neplacut la nivel mondial. Desigur, sunt doar niste idei, adevarul inca nu se cunoaste, si e posibil sa ramana necunoscut publicului.
Prima ipoteza, evidenta, este cea a unei erori umane survenite atat in procesul de dezvoltare, cat si in cel de testare. Aceasta e cauza cea mai frecvent intalnita in situatiile de genul acesta, si e de inteles in limita bunului-simt. Elementul care insa ne face sa ridicam din sprancene aici este chiar evidenta acestui bug: doar din simpla neatentie a fost scapat ceva atat de evident, care nu mergea cum trebuie? Probabil explicatia e mai complexa, pe buna dreptate.
O a doua ipoteza legata de cauza incidentului este cea a unei erori in procesul de management al acestui release. Aici ar fi vorba de detalii mai tehnice ce tine de planificarea acestuia, care a fost intr-o zi de vineri – ceva ce nu se face decat la nevoie, la lansarea acestuia catre toti clientii o data (ceea ce iarasi e chestionabil), precum si la modul in care a fost dezvoltat si pregatit acesta, ceea ce a inclus eroarea.
Ca sa dam si o nota de umor acestui incident, un internaut pe nume Vincent Flibustier s-a dat drept un proaspat junior engineer angajat la CrowdStrike chiar in ziua de 19 iulie, si ca primul lui task a fost sa faca un mic update la aplicatia Falcon, dupa care a ramas somer in aceeasi zi.
Ce scoate in evidenta acest incident global?
In opinia mea, incidentul cauzat de CrowdStrike in ziua de 19 iulie pe computerele cu Windows si Azure a relevat in mod perfect vizibil doua probleme importante: faptul ca lumea noastra in care traim este extrem de dependenta de tehnologia software, si ca sistemele informatice pot fi foarte vulnerabile in fata unor erori tehnice venite chiar din interior, nu neaparat din exterior.
Prima problema ar parea un cost normal, chiar necesar. Tehnologia este peste tot in jurul nostru, de la aplicatiile care gestioneaza sistemele nationale de urgenta pana la telefonul din buzunarul nostru, foarte multe activitati si procese se desfasoara cu ajutorul tehnologiei software, eficientizand simtitor lucrurile, deci ar fi imposibil sa mai renuntam la ea.
De aici si dependenta noastra ca oameni, de multe ori nu avem alte alternative non-tehnice la o activitate care sa fie macar pe aproape la fel de eficiente. Ori de aici deriva aceasta stare, cand tehnologia e incorporata in aproape fiecare activitate casnica sau profesionala, e normal sa se cheme ca esti dependent de ea. Desigur, acest lucru nu e valabil doar pentru tehnologia software, ci pentru multe lucruri care ne definesc confortul si traiul zilnic, un alt exemplu elocvent fiind reteua de curent electric. Daca vine o furtuna solara care distruge temporar alimentarea cu electricitate, cate lucruri nu ar mai putea functiona?
A doua problema e insa si mai grava, caci de fapt ea ne pune in fata unei oglinzi ce reflecta o realitate dura. De multe ori stam cu frica ca poate veni un atac cibernetic care ne poate pune la pamant conturile si sa ne fure datele. Idee ce nu e cu totul de negat, dar se pare ca marile vulnerabilitati pot sa vina (si) din interior. Este cel putin ingrijorator daca fix cei care sunt pusi sa asigure paza software comit asemenea erori cu consecinte globale, si nici metodele de recovery nu sunt chiar cele mai la indemana.
Astfel, cred ca trebuie sa reflectam ca societate mai profund la modurile in care se asigura aceasta protectie la nivel software, si ideal ar fi ca aceste solutii sa fie cat mai diversificate, intr-o piata cat mai deschisa spre mai multi jucatori care sa se dezvolte pe baza mecanismelor economice naturale ale concurentei, nu o piata de monopol dominata preponderent de cativa actori, precum CrowdStrike pe parte de cybersecurity sau Microsoft pe partea de OS.
Concluzii
In incheiere, se poate spune ca incidentul CrowdStrike – Windows a reprezentat evenimentul informatic al anului 2024, in sens negativ. O actualizare ce se dorea benefica a blocat 8,5 milioane de computere apartinand diferitelor afaceri, creand panica, haos, stres pentru oamenii simpli si pierderi financiare masive pentru business-uri.
Desi problema a fost intr-un final depasita, merita sa reflectam, individual si ca societate, la realitatea pe care acest eveniment a pus-o in lumina. Suntem extrem de dependenti de tehnologie, o consecinta ce a venit la pachet cu dezvoltarea si integrarea ei in nenumaratele noastre activitati. In acelasi timp, suntem si vulnerabili, prin faptul ca oricand, din interior, poate veni o problema asemanatoare, care in loc sa rezolve lucrurile si sa ne protejeze mai bine, pune la pamant mii de PC-uri, pentru ca majoritatea sunt conectate la acelasi provider de securitate.
Subiectul e unul amplu, cu numeroase detalii, asa ca discutia e complet deschisa spre alte opinii si argumente, pentru cei care doresc sa le lase in comentarii.
Surse despre subiect
Doua articole foarte bune cu explicatii tehnice detaliate despre incident, de pe blogurile Substack si Medium
Primele marturii despre incident
8,5 milioane de computere afectate, conform Microsoft
Problema monopolului Microsoft si CrowdStrike
Video-uri cu explicatii detaliate despre incidentul CrowdStrike de pe canalele Zona IT, The PC Security Channel (cu resurse atasate in descriere) si Fireship.
Interviu cu expertul in securitate John Hammond despre incidentul CrowdStrike
Comunicatele CrowdStrike despre acest incident
Farsa lui Vincent Flibustier
Inca un articol si o stire despre cum a fost resimtit acest outage software