Vandaag gaan we het hebben over de nieuwste PrintNightmare-crisis met betrekking tot Windows-gebruikers en enkele aanbevelingen doen om uw pc te beschermen. Het is een kritieke kwetsbaarheid die zich in de Windows-afdrukwachtrij bevindt. Het Amerikaanse Cybersecurity & Infrastructure Security Agency (CISA) heeft er een verklaring over afgegeven, en sindsdien heeft iedereen het over iets anders. Vandaag bespreken we deze kwestie van A tot Z.
PrintNightmare: hoe het begon?
Begin juni, op 8 juni, publiceerde Microsoft CVE-2021-1675, getiteld “Windows Print Spooler Remote Code Execution Vulnerability”. Op dat moment leek het een kleine bedreiging te zijn die was geïdentificeerd voordat deze werd uitgebuit en gemakkelijk kon worden verholpen. Er was dus geen reden tot ongerustheid.
Toen begonnen ‘s werelds grootste beveiligingsinstanties verklaringen af te geven die waarschuwden voor een grote update van CVE-2021-1675. Deze berichten spoorden gebruikers en organisaties aan om onmiddellijk maatregelen te nemen om zichzelf tegen deze dreiging te beschermen. In hetzelfde tijdsbestek publiceerde Microsoft de kwetsbaarheid CVE-2021-34527, die de bijnaam PrintNightmare draagt.
Microsoft heeft CVE-2021-34527 toegewezen aan het beveiligingslek met betrekking tot het uitvoeren van externe code dat de Windows Print Spooler treft. Krijg hier meer informatie: https://t.co/OarPvNCX7O
— Microsoft-beveiligingsinformatie (@MsftSecIntel) 2 juli 2021
In tegenstelling tot CVE-2021-1675, dat een hoge risicobeoordeling kreeg, verdiende PrintNightmare vanaf het begin de beoordeling van kritieke kwetsbaarheid, omdat het uitvoering van externe code mogelijk maakt. Sindsdien zijn er verschillende updates geweest en Microsoft werkt de klok rond aan dit probleem. Ondertussen, en in afwachting van een definitieve oplossing, hebben we ook verschillende aanbevelingen kunnen vinden om de risico’s te mitigeren.
Wat is PrintNightmare?
Het probleem ligt in een functie van de Windows-afdrukwachtrij, met name in RpAddPrinterDriverEx() waarmee, zoals de naam al doet vermoeden, de installatie van een nieuwe printer op het systeem mogelijk is. Hoewel de printmanager de toegang ertoe niet beperkt, kan elke geverifieerde gebruiker het op afstand gebruiken.
Dus wat is het probleem met een gebruiker die op afstand een printer kan installeren, en wat maakt PrintNightmare zo gevaarlijk? Als we het hebben over het installeren van een printer, hebben we het over het stuurprogramma. Als iemand zonder toestemming een stuurprogramma kan installeren, kan het veel schadelijke elementen bevatten. Een aanvaller die toegang krijgt tot een systeem en RpAddPrinterDriverEx() gebruikt om kwaadaardige code uit te voeren, kan dus privileges escaleren, payloads naar het besmette systeem sturen en zelfs de volledige controle over een pc overnemen.
De printmanager is een onderdeel dat aanwezig is in alle versies van Windows, dus Microsoft geeft aan dat elke installatie van zijn besturingssysteem vatbaar is voor aanvallen met PrintNightmare. Daarom, wat uw versie van Windows ook is, uw systeem wordt in principe blootgesteld aan PrintNightmare en daarom moet u maatregelen nemen om uzelf te beschermen.
Hoe bescherm je jezelf tegen PrintNightmare?
Er is al een Microsoft-patch om PrintNightmare te repareren, maar de waarheid is dat deze niet effectief is.
Maar voordat we hierop ingaan, moeten we onthouden wat we in het begin noemden, en onderscheid maken tussen CVE-2021-1675 en CVE-2021-34527. Voor het eerste heeft Microsoft al fixes uitgebracht die de specifieke risico’s van dit beveiligingslek beperken. Deze patches lossen echter het probleem van CVE-2021-34527 niet op.
Aan de andere kant heeft Microsoft gisteren patches voor PrintNightmare uitgebracht voor verschillende versies van Windows, waaronder enkele die officieel niet langer worden ondersteund:
- KB5004945: Windows 10 20H1, 20H2 en 21H.
- KB5004946: Windows 10 versie 1909
- KB5004947: Windows 10 versie 1809 en Windows Server 2019
- KB5004949: Windows 10 versie 1803
- KB5004950: Windows 10 versie 1507
- KB5004951: Windows 7 SP1 en Windows Server 2008 R2 SP1
- KB5004958: Windows 8.1 en Windows Server 2012
- KB5004959: Windows Server 2008 SP2
Het slechte nieuws begon na deze releases te komen, sommige gebruikers beweren dat de officiële patch onvolledig is en geen effect heeft.
0Patch had een onofficiële patch uitgebracht die effectief was gebleken tegen PrintNightmare, maar de toepassing van de officiële Microsoft-patch verzacht het effect van de patch die is ontwikkeld door 0patch, dus het systeem is opnieuw kwetsbaar voor een aanval op basis van dit beveiligingsprobleem:
Als u 0patch gebruikt tegen PrintNightmare, pas dan NIET de Windows Update van 6 juli toe! Het repareert niet alleen de lokale aanvalsvector, maar ook de externe vector niet. Het verandert echter localspl.dll, waardoor onze patches die het probleem WEL oplossen, niet meer worden toegepast. https://t.co/osoaxDVCoB
— 0patch (@0patch) 7 juli 2021
Microsoft heeft aangegeven aan het probleem te werken, maar in de tussentijd is de aanbeveling om de automatische update van Windows niet toe te staan als de patch van 0patch wordt gebruikt, aangezien de bescherming die de patch biedt al voldoende is. Een andere mogelijkheid is om de afdrukservices die u niet nodig heeft op elk systeem uit te schakelen. Voor servers, tenzij het bijvoorbeeld printservers zijn, moeten deze services om veiligheidsredenen zijn uitgeschakeld. En wat betreft de endpoints, precies hetzelfde, beperk de actieve services met betrekking tot printen tot een minimum, zeker als we het hebben over systemen van waaruit je nooit print.
Om de huidige status van de afdrukwachtrijservice te controleren, moeten we een PowerShell-console openen en Get-Service -Name Spooler typen in de opdrachtregel. Als gevolg hiervan krijgen we de huidige status ervan. Als de service uitgeschakeld of uitgeschakeld wordt weergegeven, hoeven we ons geen zorgen te maken, omdat de PrintNightmare-deur op dat systeem gesloten blijft. Als de dienst actief is, zijn er twee mogelijkheden, zolang we het niet over een printserver hebben, in dat geval kunnen deze maatregelen niet worden toegepast, aangezien de dienst ermee ophoudt.
De eerste is ongetwijfeld de meest ingrijpende, en die kunnen we alleen gebruiken als we nooit vanuit dat systeem printen. In dezelfde Powershell-console die we gebruiken om de status van de service te controleren, moeten we de volgende opdrachten typen:
Stop-Service -Naam Spooler -Force
Set-Service -Name Spooler -StartupType uitgeschakeld
De eerste zal de Windows-afdrukservice onmiddellijk stoppen, terwijl de tweede de configuratie zal wijzigen zodat deze niet opnieuw wordt geladen nadat het systeem opnieuw is opgestart. Wanneer Microsoft een patch uitbrengt die PrintNightmare voorgoed herstelt, kun je deze opnieuw activeren met deze opdracht;
Set-Service -Name Spooler -StartupType ingeschakeld
Op deze manier kunt u na het opnieuw opstarten van het systeem weer normaal vanaf dat systeem afdrukken.
De tweede methode is om alleen de printserverfunctie van het systeem uit te schakelen. Op deze manier kunt u nog steeds afdrukken vanaf het systeem, maar heeft het niet langer de printserverfunctie voor andere computers en apparaten in het netwerk. Om dit te doen, moet u de Editor voor lokaal groepsbeleid openen en moet u naar Lokaal computerbeleid > Computerconfiguratie > Beheersjablonen > Printers gaan en zoeken naar het item Sta Print Job Manager toe om clientverbindingen te accepteren.
Dubbelklik er vervolgens op en controleer de status, die moet worden uitgeschakeld om PrintNightmare-risico’s te voorkomen. Dus, als het is ingesteld op Niet geconfigureerd of Ingeschakeld, wijzigt u deze waarde en start u het systeem opnieuw op.
Wat als je de Microsoft-patch voor PrintNightmare al hebt geïnstalleerd?
Het is mogelijk dat u, tegen de tijd dat u dit leest, de officiële Microsoft-patch al heeft geïnstalleerd. Het probleem is dat het het PrintNightmare-probleem niet oplost. In een dergelijk geval moet u een wijziging aanbrengen in de registerinstellingen van Windows. De snelste manier om dit te doen, is door een console (opdrachtprompt) te openen en de volgende opdracht te typen:
“HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT Printers PointAndPrint” / v RestrictDriverInstallationToAdministrators / t REG_DWORD / d 1 / f
Typ het precies zoals weergegeven, u kunt kopiëren en plakken. Houd er rekening mee dat, hoewel het is gesplitst vanwege zijn lengte, het een enkele opdracht is.
Deze maatregelen zouden in principe al voor het nodige beveiligingsniveau moeten zorgen, al zullen we inderdaad nog moeten wachten tot Microsoft een definitieve oplossing publiceert.