- Windows GDI akumulira ranjivosti u otkrivanju informacija, uskraćivanju usluge i udaljenom izvršavanju koda koje utječu na više verzija sustava Windows i Windows Server.
- Mnoge od ovih ranjivosti iskorištavaju se putem EMF/WMF datoteka ili oštećenog grafičkog sadržaja koji obrađuju gdi32.dll i win32k.sys, što može uzrokovati BSOD-ove ili curenje memorije.
- Microsoft objavljuje zakrpe u kumulativnim paketima s promjenama binarnih datoteka poput gdi32.dll i pruža hashove i informacije o datotekama kako bi provjerio uspješnu instalaciju.
- Kombinacija agilnog krpanja, segmentacije mreže, ograničavanja opasnih grafičkih formata i praćenja pomoću EDR-a ključna je za smanjenje rizika povezanog s GDI-jem.
La Grafičko sučelje sustava Windows (GDI) Desetljećima je prikazivao prozore, tekst, ikone i slike, a da većina korisnika toga nije ni svjesna. Međutim, ova temeljna komponenta sustava također je bila izvor nekoliko značajnih sigurnosnih ranjivosti, nekih zero-day ranjivosti i drugih zakrpanih u masovnim Microsoftovim ažuriranjima. Kada GDI zakaže, ne samo da ruši aplikaciju: u nekim slučajevima može dovesti do curenja podataka, udaljenog izvršavanja koda ili plavih ekrana smrti (BSOD) koji ruše cijele poslužitelje.
U sljedećim retcima detaljno je opisano kako GDI funkcionira, koje su specifične ranjivosti dokumentirane posljednjih godina (kao što je CVE-2017-11816, CVE-2020-1435 ili CVE-2023-36884), kako se iskorištavajuKakav stvarni utjecaj imaju u kućnim i korporativnim okruženjima i koje praktične mjere administratori i stručnjaci za kibernetičku sigurnost mogu primijeniti kako bi zaštitili svoje Windows sustave, od starijih verzija kao što su Windows Vista SP2 do modernih izdanja sustava Windows 11 i Windows Server.
Što je Windows GDI i zašto je toliko osjetljiv u smislu sigurnosti?
Grafičko sučelje uređaja (GDI) To je stari Windows API odgovoran za upravljanje svime što je povezano s grafičkim renderiranjem: od crtanja linija i pravokutnika do prikaza fontova, bitmapa i slika na zaslonu ili u pisačima. Aplikacije pozivaju funkcije iz biblioteka poput gdi32.dll za stvaranje konteksta uređaja (HDC-ova), kistova, olovaka, regija i drugih grafičkih objekata, kojima se upravlja "ispod haube" pomoću podatkovnih struktura kontroliranih od strane jezgre.
GDI arhitektura je podijeljena na korisnički način rada i način rada jezgreU korisničkom načinu rada, gdi32.dll i druge povezane biblioteke primaju zahtjeve za crtanje od aplikacija. Ti se pozivi prosljeđuju Windows podsustavu za upravljanje prozorima, koji se izvodi u kernel načinu rada putem win32k.sys. Ovaj dio kernela zapravo manipulira sistemskom memorijom, provjerava grafičke objekte i šalje ih hardveru. Svaka nedovoljna provjera pokazivača, veličina ili indeksa u ovom trenutku otvara vrata katastrofalnim pogreškama.
Za praćenje i ponovnu upotrebu resursa, sustav održava GDI tablice objekataSvaki proces ima vlastitu tablicu memorije, ali postoji i globalna tablica za dijeljene objekte, što povećava mogućnost oštećenja ako dođe do prelijevanja međuspremnika, događaja dvostrukog oslobađanja ili nevažeće reference memorije. Ove vrste kvarova mogu dovesti do oštećenja memorije jezgre, uvjeta utrke, rušenja sustava ili čak izvršavanja proizvoljnog koda u najpovlaštenijem kontekstu sustava.
Dolaskom modernijih API-ja (GDI+, Direct2D, DirectWrite ili čak DirectComposition), Microsoft je smanjio upotrebu GDI-ja u novim aplikacijama, ali ekosustav naslijeđenog softvera Utjecaj koji još uvijek ima je ogroman. To nasljeđe čini GDI vrlo atraktivnom površinom za napad za istraživače i napadače.

Povijesne ranjivosti: od otkrivanja informacija do nultog dana
Među najstarijim nedostacima povezanim s GDI-jem, ističe se ranjivost u otkrivanje informacija dokumentiranih kao CVE-2017-11816U ovom slučaju, problem je bio u načinu na koji je GDI rukovao određenim objektima u memoriji, omogućujući zlonamjernom korisniku da dohvati podatke iz ciljnog sustava koji ne bi trebali biti dostupni. Nije se radilo o izvršavanju koda, već o ozbiljnom kršenju povjerljivosti.
Ova ranjivost utjecala je na različita izdanja sustava Windows i prisilila Microsoft da objavi određeno sigurnosno ažuriranje. Nedostatak je bio u internom rukovanju grafičkim strukturama, gdje podsustav nije uspio pravilno očistiti ili provjeriti određena područja memorije prije ponovne upotrebe, što je omogućilo pročitajte preostale informacije pripadaju drugim procesima ili samom operacijskom sustavu.
Ispravak je došao u sigurnosnom ažuriranju uključenom u redovni ciklus Listopad 2017. „Utorci zakrpa“Uz opis ranjivosti, Microsoft je pružio opsežne tablice s popisom pogođenih datoteka i njihovih novijih verzija: na primjer, različite verzije gdi32.dll za platforme x86, x64 i IA-64, s datumima poput 8. rujna 2017. i verzijama datoteka poput 6.0.6002.24200. Ti su detalji omogućili administratorima da potvrde da je zakrpa ispravno primijenjena.
Kasnije su istraživači iz Project Zero (Google) otkrili još jednu zero-day ranjivost povezanu s gdi32.dll u korisničkom načinu radaOvaj put, ranjivost je utjecala na rukovanje DIB-ovima (Device Independent Bitmaps) ugrađenim u EMF (Enhanced Metafile) registre. Nepravilna manipulacija tim bitmapama unutar metadatoteka omogućila je izdvajanje informacija iz memorije procesa, s izravnim utjecajem na privatnost podataka.
Ova zero-day ranjivost mogla se reproducirati lokalno putem Internet Explorera i daljinski putem Office Onlinea otvaranjem DOCX dokumenta sa posebno konstruiranom EMF datotekom. Popis pogođenih verzija bio je opsežan: od Windows Vista Service Pack 2 do Windows 10putem verzija Windows Servera kao što su 2012 R2 i 2016. Problem je postao javan nakon što je standardni rok od 90 dana za Project Zero istekao bez izdavanja zakrpe, čime je propust službeno postao zero-day iskorištavajući u praksi.
U međuvremenu, Microsoft je imao značajan incident: mjesec u kojem Nikad nije objavio paket zakrpa Zakrpa planirana za "Utorak zakrpa" odgođena je zbog internog problema, čime su ispravci odgođeni do sljedećeg ciklusa. Ove vrste kašnjenja povećavaju vrijeme izloženosti ranjivosti koje su već poznate istraživačkoj zajednici.

Nedavne kritične greške: BSOD, udaljeno izvršavanje i velike serije zakrpa
Tijekom vremena, ranjivosti u GDI-ju su se razvile u ozbiljnije scenarije. Jedan posebno upečatljiv slučaj je onaj Ranjivost uskraćivanja usluge identificirana je kao CVE-2023-36884 što utječe na verzije sustava Windows 10 (od verzije 1607 nadalje), Windows 11 te Windows Server 2016, 2019 i 2022. Iako je identifikator povezan s različitim komponentama ovisno o biltenu, tehnička analiza opisuje kritičnu manu u grafičkom podsustavu koja može uzrokovati plave ekrane smrti (BSOD) prilikom obrade oštećenih grafičkih objekata.
Problem se odnosi na funkciju NtGdiDdDeleteDeviceBitmap u win32k.sysPrilikom rukovanja nevažećom bitmapom ili grafičkim uređajem, ranjivi kod ne uspijeva izvršiti temeljitu provjeru granica međuspremnika prilikom kopiranja podataka iz strukture uređaja (npr. tipa DD_DEVICE_OEM). Ovo izostavljanje omogućuje prepisivanje susjedne memorije u kernelu, generirajući iznimku pristupa memoriji (PAGE_FAULT_IN_NONPAGED_AREA, kod 0x00000050) i pokrećući plavi ekran smrti (BSOD) s kodovima kao što su IRQL_NOT_LESS_OR_EQUAL ili slično.
Tipičan tijek rada za iskorištavanje podataka započinje grafičkim podacima ugrađenim u mrežne protokole kao što su SMB ili RDP, ili čak putem WebDAV-a ili usluga ispisa. Oštećena EMF datoteka putuje kao dio udaljenog dokumenta ili streama, a kada aplikacija poput Office, Edge, preglednik slika ili sam File Explorer Kada program pokuša interpretirati njegov sadržaj, poziva se GDI podsustav za njegovu obradu. Rutina parsiranja ne validira ispravno određene registre objekata, što omogućuje dereferenciranje pokazivača izvan raspona i destabilizaciju memorije kernela (posebno nestraničnog bazena).
Iako se utjecaj prijavljen u službenim biltenima usredotočuje na Uskraćivanje usluge (DoS)Razni istraživači istaknuli su da bi, s naprednijim tehnikama iskorištavanja oštećenja memorije (na primjer, napadom na heap), moglo biti moguće izgraditi lance koji vode do izvršavanja koda u kernel modu, slično onome što je viđeno s ranjivostima u drugim komponentama poput MSHTML-a (slučaj CVE-2021-40444).
Kritičnost GDI-ja odrazila se i u velikim valovima zakrpa. U srpnju 2020. Microsoft je objavio veliko ažuriranje koje je ispravilo 123 ranjivosti u svojim proizvodima, od kojih je 18 klasificirano kao kritično. Među potonjim je bio i CVE-2020-1435, izravno povezan s načinom na koji GDI manipulira objektima u memoriji. Ako bi napadač uspio prevariti žrtvu da otvori posebno izrađen sadržaj (na primjer, pristupom zlonamjernoj web stranici), mogao bi pokrenuti udaljeno izvršavanje koda s istim privilegijama kao i korisnik.
U istoj toj seriji pojavio se CVE-2020-1436, povezan s rukovanjem posebno pripremljenim izvorima, i onim posebno medijski vođenim. CVE-2020-1350Kritična mana u Windows DNS poslužitelju s mogućnostima sličnim crvima, sposobna širiti zlonamjerni softver bez interakcije korisnika. Iako ova posljednja ne utječe na GDI, ilustrira kontekst: jedan paket zakrpa sadržavao je ranjivosti u mrežnim uslugama, hipervizorima (nekoliko mana udaljenog izvršavanja u Hyper-V-u) i samom grafičkom sučelju.
CVE-2020-1435 se, konkretno, odnosi na način na koji GDI obrađuje grafičke objekte u memorijiUspješno iskorištavanje ranjivosti omogućilo bi napadaču instaliranje programa, pregled, izmjenu ili brisanje podataka te stvaranje korisničkih računa s punim privilegijama. Tipičan vektor napada uključuje prevaru korisnika da posjeti zlonamjernu web stranicu ili otvori datoteku koja sadrži grafičke resurse dizajnirane za iskorištavanje ranjivosti. To je u skladu s povijesnim obrascem GDI-ja: bilo koji vizualni sadržaj koji se oslanja na njegov mehanizam za renderiranje može biti vektor ako sustav nije ažuriran.
U istom ciklusu zakrpa iz srpnja 2020., najavljeno je i nekoliko kritičnih ranjivosti u Hyper-V (CVE-2020-1041, -1040, -1032, -1036, -1042 i -1043)Ovo pokazuje kako različite komponente sustava Windows (mreža, virtualizacija, grafika) mogu postati karike u istom lancu napada ako organizacija ne održava rigorozan program upravljanja zakrpama.
Stvarni utjecaj na Windows sustave, pogođene verzije i vektore
Raspon verzija pogođenih GDI ranjivostima je širok. U zero-day slučajevima koje je dokumentirao Project Zero, ranjivost u gdi32.dll je utjecala Windows Vista SP2, Windows 7, Windows 8.1, Windows 10 i razna izdanja sustava Windows Server (2012 R2, 2016, itd.). To implicira da bi ogroman broj računala, i kućnih i poslovnih, mogao postati žrtvom curenja memorije jednostavnim otvaranjem dokumenta ili pregledavanjem pomoću Internet Explorera ili korištenjem Office Onlinea.
U najnovijem scenariju, usmjerenom na BSOD-ove, Microsoft je potvrdio da analizirana ranjivost utječe Windows 10 od verzije 1607 nadalje, Windows 11 i Windows Server 2016/2019/2022To uključuje izdanja Enterprise, Education i LTSC. Verzije koje više nisu u proširenoj podršci, kao što su Windows 7 ili 8.1, nisu unutar službenog opsega zakrpe, ali to ne znači da nemaju problema s GDI-jem; to jednostavno znači da ne primaju redovite ispravke.
Na operativnoj razini, utjecaj se može sažeti u tri kategorije: otkrivanje informacija (memorija za čitanje koja bi trebala biti privatna), uskraćivanje usluge (ponavljajući BSOD-ovi) i daljinsko izvršavanje kodaU poslovnim okruženjima, BSOD na poslužitelju s kritičnim ulogama (na primjer, dijeljeni poslužitelj ispisa ili Hyper-V host) može uzrokovati lančanu reakciju kvarova: prekid usluga ispisa, neočekivano gašenje virtualnih strojeva, gubitak podataka u udaljenim sesijama i dugo vrijeme oporavka.
Iz mrežne perspektive, GDI se može iskoristiti putem protokola kao što su SMB (port 445), RDP ili WebDAV Ako bilo koja usluga automatski obrađuje primljene EMF/WMF slike ili metadatoteke. Lokalno, dovoljno je samo da korisnik otvori zlonamjernu datoteku u aplikacijama koje koriste GDI, kao što su Paint, WordPad, stariji preglednici slika ili čak procesi uključeni u pregled ikona i sličica u File ExplorerNajčešći lanci napada kombiniraju phishing e-poštu s DOCX ili PDF dokumentom koji integrira oštećeni EMF.
U reguliranim organizacijama (financije, zdravstvo, javna uprava), incidenti uzrokovani nezakrpanim ranjivostima Ovi incidenti mogu imati pravne i regulatorne posljedice. Plavi ekran smrti (BSOD) koji ruši kritični sustav može se smatrati sigurnosnim događajem koji ugrožava kontinuitet usluge, što zauzvrat može pokrenuti revizije i kazne povezane s okvirima kao što su GDPR ili HIPAA. Nadalje, razna izvješća o obavještajnim podacima o prijetnjama pripisala su iskorištavanje ranjivosti u grafičkim podsustavima APT skupinama koje ciljaju visokovrijedne mete u Aziji i Europi.
Vrijedi zapamtiti da, prema uobičajenim podacima iz industrije (na primjer, onima koji se odražavaju u godišnjim izvješćima o kršenju podataka), značajan postotak Windows uređaja ostaje bez zakrpa Više od 90 dana nakon objavljivanja kritičnih ažuriranja. To napadačima ostavlja širok prozor mogućnosti za automatizaciju iskorištavanja i njihovu integraciju u okvire poput Metasploita ili Cobalt Strikea, koji su sposobni skenirati cijele mrežne raspone u potrazi za ranjivim hostovima.
Kako Microsoft distribuira popravke i koja se datoteka mijenja
Kada se u GDI-ju pojavi ranjivost, Microsoft objavljuje sigurnosno ažuriranje, obično u mjesečnim zbirnim paketima. Ta ažuriranja obično stižu putem Windows Updateiz kataloga Microsoft Update ili putem alata za upravljanje kao što su Windows Server Update Services (WSUS) i Microsoft Endpoint Configuration Manager (MECM). U slučaju ranjivosti CVE-2017-11816, odgovarajuće ažuriranje (na primjer, KB4042121 za Windows Server 2008) moglo bi se dobiti s Windows Updatea ili iz kataloga, u samostalnom .msu formatu.
Jedna osobitost koju Microsoft naglašava jest da, ako su instalirani jezični paketi nakon primjene ažuriranjaPotrebno je ponovno instalirati sigurnosnu zakrpu. Stoga se uvijek preporučuje prvo instalirati potrebne jezike, a zatim ažuriranja. Ovaj detalj, koji se može činiti beznačajnim, doveo je do više od jednog slučaja u kojem se pogrešno vjerovalo da je sustav zakrpan, iako u stvarnosti određene GDI binarne datoteke nisu sadržavale ispravljenu verziju.
U dokumentaciji vezanoj uz ove biltene, Microsoft navodi vrlo opsežne tablice s arhivskim informacijamaTablica uključuje naziv datoteke (npr. gdi32.dll), specifičnu verziju, veličinu, datum, vrijeme i platformu (x86, x64, IA-64). Ove tablice omogućuju administratorima i revizorima da forenzički provjere je li instalirana ispravna binarna datoteka. Sličan proces se događa s .msu i .exe paketima za različita izdanja sustava Windows i Office, gdje su navedeni SHA1 i SHA256 hash-ovi za svaku datoteku kako bi sustavi mogli provjeriti njezin integritet.
Popis datoteka i hashova je ogroman: od Windows6.0-KB2834886-x86.msu i njegove x64 i ia64 varijante, uključujući Windows6.1-KB2835364-x64.msu, Windows8-RT-KB2835361-x86.msu, desetke instalacijskih programa za Windows Server 2003 i Windows XP na svim vrstama jezika (CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR, PTB, PTG, RUS itd.) te zakrpe za komponente sustava Office i Lync kao što su AttendeeAdmin.msp, ogl2007-kb2687309-fullfile-x86-glb.exe i lyncloc2013-kb2817465-fullfile-x64-glb.exe. Svaka od njih uključuje vlastite SHA1 i SHA256 hashove radi lakše provjere.
U svim tim slučajevima, krajnji cilj je isti: da datoteka gdi32.dll (ili povezane binarne datoteke grafičkog podsustava) Provjerite jesu li ažurirani na sigurnu verziju. Na platformama poput Windows Servera 2008, na primjer, gdi32.dll ima verziju 6.0.6002.24200, s veličinama koje variraju ovisno o arhitekturi (oko 299.520 bajtova na x86, 391.680 bajtova na x64 i 955.392 bajtova na IA-64). Ove vrijednosti, zajedno s datumom izrade, osnovna su referenca za određivanje je li na sustavu primijenjena zakrpa.
Službena dokumentacija također upućuje na članke u Bazi znanja s detaljima o implementacija i primjena ovih ažuriranja, kao i poveznice na resurse podrške: stranice pomoći za Windows Update, sigurnosni portali za IT stručnjake (kao što je TechNet Security), međunarodna web-mjesta za podršku i namjenske usluge zaštite od zlonamjernog softvera pod robnom markom Microsoft Secure.
Dobre prakse za ublažavanje, praćenje i odgovor
Osim instaliranja zakrpa čim postanu dostupne, postoji niz mjere ublažavanja i dubinske obrane koji pomažu u smanjenju rizika povezanog s GDI kvarovima, posebno u korporativnim okruženjima sa stotinama ili tisućama uređaja.
Prvo, preporučljivo je ograničiti površinu napada onemogućavanjem ili ograničavanjem automatska obrada određenih grafičkih formata u aplikacijama i preglednicima. Na primjer, u Microsoft Edgeu moguće je konfigurirati grupne politike za blokiranje ili kontrolu preuzimanja i rukovanja EMF/WMF metadatotekama pomoću ključeva registra u HKLM\SOFTWARE\Policies\Microsoft\Edge koji se odnose na ograničenja preuzimanja. U drugim aplikacijama, opcije konfiguracije mogu se koristiti za sprječavanje automatskog pregleda dokumenata s nepouzdanih lokacija, a smjernice se mogu primijeniti na Ispravak problema s Explorerom datoteka koji ne reagira.
Još jedan bitan sloj je segmentacija mreže prema principima nultog povjerenjaTo uključuje ograničavanje SMB, RDP i drugog potencijalno iskoristivog protokolnog prometa samo na strogo potrebne podmreže, implementaciju vatrozida sljedeće generacije s dubinskom inspekcijom paketa i provođenje pravila temeljenih na identitetu i kontekstu. Ograničavanjem koji uređaji mogu komunicirati s kojim uslugama, utjecaj pokušaja lateralnog širenja iskorištavanja drastično se smanjuje.
Što se tiče detekcije, implementacija EDR (Endpoint Detection and Response) rješenja, kao što je Microsoft Defender for Endpoint, pomaže u praćenju anomalnog ponašanja povezanog s Događaji win32k.sys, gdi32.dll i BSODKonfiguriranjem upozorenja o porastu pogrešaka na plavom ekranu (na primjer, počevši od ID-a događaja 1001 u Pregledniku događaja) i o neobičnom pristupu grafičkom podsustavu mogu se identificirati pokušaji iskorištavanja ili nestabilnosti uzrokovane zlonamjernim softverom.
Za upravljanje zakrpama, toplo se preporučuje automatizacija implementacije pomoću Windows Update for Business, WSUS-a ili MECM-a, ali uvijek uz uključivanje faza testiranja u pripremnim okruženjima kako bi se otkrile potencijalne regresije prije puštanja u produkciju. U infrastrukturama s odvojenim prostorom preporučljivo je revidirati sve dolazne datoteke alatima kao što su YARA pravila osmišljena za prepoznavanje sumnjivih obrazaca u EMF/WMF i drugim grafičkim formatima.
U naprednijim scenarijima, neke organizacije razmatraju postupno premještanje svojih internih aplikacija na modernije API-je kao što su Direct2D, DirectWrite ili višeplatformski grafički mehanizmi (Cairo, Skia), koji nude bolju izolaciju i manje oslanjanje na naslijeđeni GDI. Srednjoročno gledano, Microsoft bi mogao ukinuti značajne dijelove GDI-ja u budućim verzijama sustava Windows kako bi smanjio površinu za napad, iako će unatrag kompatibilna verzija i dalje biti izazov.
Iz perspektive forenzičke analize i preokretanja, alati poput WinDbg, KD ili volatilnost Omogućuju korisnicima analizu memorijskih izvataka nakon BSOD-a i promatranje oštećenja u memoriji označenoj s "Gdi" u kernel poolu. Proof-of-concept exploits objavljeni u istraživačke svrhe pokazuju kako EMF s određenim neispravnim registrima (na primjer, u EMR_HEADER-u) može izazvati uvjet utrke i izazvati rušenje. Ovo znanje je ključno za timove za odgovor na incidente kako bi rekonstruirali što se dogodilo u stvarnom napadu.
U slučaju incidenta, preporučljivo je slijediti akcijske okvire poput onih NIST-a (Identify, Contain, Eradicate, Recover - Identificiraj, Obuzdaj, Iskorijeni, Oporavi). To uključuje izolirati pogođenu opremuSačuvajte dokaze (izvještaje memorije, zapisnike, uzorke sumnjivih datoteka), implementirajte zakrpe na čekanju, skenirajte sustave ažuriranim alatima protiv zlonamjernog softvera i vratite podatke iz provjerenih sigurnosnih kopija ili povratak na prethodnu točkuOsim toga, preporučljivo je povremeno pregledavati naučene lekcije kako bi se poboljšali procesi ažuriranja i osiguranja sustava.
Cijela ova povijest kvarova i zakrpa koje okružuju Windows GDI naglašava koliko krhke mogu biti naslijeđene komponente bez robusne višeslojne strategije sigurnosti i ažuriranja. Razumijevanje kako se te ranjivosti iskorištavaju, koje su verzije u opasnosti i koje se dodatne kontrole mogu primijeniti omogućuje administratorima i stručnjacima za kibernetičku sigurnost da ojačaju svoje sustave i spriječe jednostavnu sliku ili posebno dizajnirana metadatoteka završiti urušavanjem ili potpunim ugrožavanjem Windows infrastrukture.
Sadržaj
- Što je Windows GDI i zašto je toliko osjetljiv u smislu sigurnosti?
- Povijesne ranjivosti: od otkrivanja informacija do nultog dana
- Nedavne kritične greške: BSOD, udaljeno izvršavanje i velike serije zakrpa
- Stvarni utjecaj na Windows sustave, pogođene verzije i vektore
- Kako Microsoft distribuira popravke i koja se datoteka mijenja
- Dobre prakse za ublažavanje, praćenje i odgovor


