De onderstaande bijdrage is afkomstig van Security.nl bezoeker Bitwiper
Het feit dat wormen zoals Conficker (Downadup) zich zo succesvol kunnen verspreiden via netwerkshares wordt veroorzaakt door een bug in Shell32.dll. Microsoft is van deze bug op de hoogte en heeft er al een half jaar geleden een patch voor gemaakt, maar het niet nodig gevonden om deze voor Windows XP, Windows 2003 Server en ouder als security patch in de maandelijkse patch-cyclus mee te nemen (alleen bij Vista is dit wel gebeurd met MS08-038, zie de FAQ).
NoDriveTypeAutoRun
De bug zit hem in het processen van de registerwaarde "NoDriveTypeAutoRun" (dit is een "REG_DWORD" waarde die standaard voor elke gebruiker bestaat onder de sleutel HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer, en systeembreed by default niet bestaat). De buggy versie van Verkenner (feitelijk Shell32.dll) kijkt uitsluitend naar die registerwaarde bij het mounten van een drive, d.w.z. het insteken van een USB-stick of het mappen van een netwerkdrive op een drive-letter; dat werkt zoals verwacht. Echter, indien men vervolgens in verkenner de drive dubbel-klikt om deze te openen, ofwel er met de rechter muistoets op klikt en voor ofwel Openen of Verkennen kiest, zal Verkenner niet meer naar "NoDriveTypeAutoRun" kijken, maar wel de inhoud van een Autorun.inf bestand in de root van de drive evalueren. Afhankelijk van de inhoud van Autorun.inf kan dan wel degelijk een bestand automatisch worden uitgevoerd!
NoDriveTypeAutoRun waardes
Dat Autorun.inf bestanden toch geëvalueerd worden ondanks dat NoDriveTypeAutoRun anders voorschrijft blijkt uit het volgende. Volgens recente Microsoft documenten (zoals deze) gelden de volgende mogelijke bit-waarden voor NoDriveTypeAutoRun (de waardes moeten bij elkaar opgeteld worden om tot de gewenste totaalwaarde te komen):
bit 0 (waarde = 0x01) Disables AutoPlay on drives of unknown type
bit 1 (waarde = 0x02) onbekend/ongebruikt?
bit 2 (waarde = 0x04) Disables AutoPlay on removable drives
bit 3 (waarde = 0x08) Disables AutoPlay on fixed drives
bit 4 (waarde = 0x10) Disables AutoPlay on network drives
bit 5 (waarde = 0x20) Disables AutoPlay on CD-ROM drives
bit 6 (waarde = 0x40) Disables AutoPlay on RAM disks
bit 7 (waarde = 0x80) Disables AutoPlay on drives of unknown type
D.w.z. een XP SP2 en SP3 default waarde van 0x91 betekent dat standaard AutoPlay (of AutoRun, het onderscheid tussen beide termen is niet altijd even duidelijk) voor network drives uit staat; toch kunnen de wormen zich verspreiden! Kortom, het is zinloos om te proberen genoemde wormen onder XP en ouder tegen te houden door met de beleidseditor (policy editor) of de registereditor aan de gang te gaan totdat Shell32.dll gepatched is.
Testen
Je kunt zelf eenvoudig testen of een Autorun.inf bestand op een USB-stick of netwerkshare wordt uitgevoerd door Notepad.exe naar de root van zo'n drive te kopieeren tezamen met een Autorun.inf met de volgende inhoud:
[autorun]
open=notepad.exe
shell\open\Command=notepad.exe
shell\explore\Command=notepad.exe
shellexecute=notepad.exe
useautoplay=1
Op netwerkshares is het gedrag iets anders dan op USB-sticks (een rechter muisclick op de netwerkdrive in "Deze Computer" gevolgd door "Open" start geen Notepad, terwijl dit wel gebeurt op een USB-stick).
Patch KB953252
Patch KB953252 installeert een update van Shell32.dll die, na het mounten van een drive, ook bij het openen en verkennen van die drive de waarde van NoDriveTypeAutoRun evalueert (er worden, in elk geval onder XP-SP3, geen andere bestanden vervangen). Belangrijk voor systeembeheerders is te weten dat behalve dat Shell32.dll wordt vervangen, KB953252 ook een registerwaarde toevoegt genaamd HonorAutorunSetting met waarde 1; die registerwaarde wordt door de patch alleen onder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer geschreven. Het is belangrijk dat die waarde 1 blijft, zet je die op 0 dan vervalt Shell32.dll in het oude, buggy, gedrag (dit gebeurt onmiddellijk, een reboot of uit/inloggen is niet nodig).
Autorun op netwerkshares en USB-drives betrouwbaar uitschakelen onder XP
1) Installeer de juiste patch vanaf http://support.microsoft.com/kb/953252
2) Maak een registerwaarde NoDriveTypeAutoRun aan onder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer (type DWORD) en geef deze de waarde 0x95
Let op: dit schakelt AutoRun op CDROM's niet uit, en daarmee ook niet voor USB-sticks die, naast een gewone partitie, ook een CDFS partitie hebben om van te starten (zoals U3 Flash Disks). Hoewel eventuele U3 sticks (of andere speciaal geprepareerde sticks) een risico vormen, zullen veel doorsnee gebruikers het gemak van een autostartende CD niet willen missen. Of je (binnen een bedrijf bijvoorbeeld) dit wel of niet wilt is een risicoafweging; het nut van Autorun op netwerkdrives en gewone USB-sticks ontgaat me.
Bovendien zijn er meldingen (bijv. deze en deze) dat Microsoft het uitzetten van AutoRun op CD's (via NoDriveTypeAutoRUn) vanwege mogelijke kopieerbeveiligingen weigert uit te voeren, maar deze kan ik niet bevestigen. Zie het alternatief voor patch KB953252 zoals verderop voorgesteld.
Aanmaken en wijzigen NoDriveTypeAutoRun: hoe doe je dat?
Aanmaken en wijzigen van NoDriveTypeAutoRun kan zoals hier is aangegeven (helaas ontbreekt daar de informatie dat dit onder XP, 2003 en ouder alleen zinvol is indien patch KB953252 is gedraaid).
Voor XP Home zorgt het uitvoeren van een tekstfile met de volgende inhoud ervoor dat alle (en ook toekomstige) gebruikers beschermd zijn:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:00000095
Gratis tool: AutoRunSettings
vooral voor XP home gebruikers die het register niet handmatig of met een bestandje willen wijzigen, maar ook als je alleen wilt kijken en niets snapt van hexadecimaal rekenen, bestaat er een gratis en Engelstalig alternatief van Uwe Sieber: AutoRunSettings. Het makkelijkste is om daarmee de (standaard ontbrekende) HKEY_LOCAL_MACHINE registerwaarde aan te maken door in de rechthoek rechtsboven de gewenste waardes aan te clicken of uit te zetten en Apply te drukken (een vinkje betekent dat uitvoeren van Autorun is toegestaan). Je kunt het alle vinkjes uitzetten en naar keuze CD/DVD aan of toch uit.
Als je links boven waardes hebt gezet maakt het niet meer uit wat er rechtsboven staat. De CD/DVD insert notification kun je het beste aan laten. De waardes in het onderste venster kun je ook het beste ongewijzigd laten.
Alternatief voor NoDriveTypeAutoRun en patch KB953252
Voor degenen die geen enkele Autorun.inf (ook vanaf CD's) meer uitgevoerd willen hebben biedt Nick Brown al geruime tijd op zijn blog een prima alternatief aan, dat natuurlijk niet door Microsoft ondersteund wordt (en dus in de toekomst problemen zou kunnen geven). Deze truck wordt op steeds meer plaatsen vermeld, maar voor zover ik weet is Nick Brown de bedenker ervan. De discussie onder de blog is ook het lezen waard, maar niet altijd correct.
Aanvullende informatie
Ondertussen is de informatie op de WikiPedia Autorun pagina goed up-to-date, maar is de laatste paar weken wel vaak gewijzigd (waarbij soms relevante informatie lijkt te zijn weggehaald). De informatie op de Microsoft site over Autorun en NoDriveTypeAutoRun is op veel punten onvolledig, achterhaald of gewoon fout.
Bij de introductie van XP SP2 heeft Microsoft de default (per user) waarde van NoDriveTypeAutoRun gewijzigd van 0x95 naar 0x91, waarmee removable drives (bijv. USB) bij het mounten al een eventuele Autorun.inf uitvoeren.
Sommige "Autorun onderzoekers" vermelden dat gegevens van eerder gelezen USB-sticks, removable drives e.d. die onder de de MountPoints2 registersleutel zijn opgeslagen ervoor zouden zorgen dat de NoDriveTypeAutoRun instelling wordt genegeerd. In verschillende tests die ik zelf heb doorgevoerd heb ik daar niets van gemerkt, en echt duidelijke bewijzen hiervoor heb ik niet kunnen vinden. Mogelijk dat patch KB953252 (die ik iedereen aanraad) Shell32.dll ook op dit punt heeft aangepast.
Voor degenen die op het indrukken van de Shift-toets vertrouwen: deze werkt alleen bij het inserten van een drive, en niet bij Openen/Verkennen; en onder Vista is deze functionaliteit van de Shift-toets geheel uitgeschakeld!
Conclusie
Microsoft moet KB953252 ASAP als securitypatch verspreiden, alleen al omdat dit, zonder NoDriveTypeAutoRun te wijzigen, het verspreiden van Aurorun-wormen via netwerkshares tegengaat. Tot die tijd kunnen security-aware bedrijven die patch wellicht zelf uitrollen. Na het toepassen van die patch kunnen bedrijven m.b.v. policies betrouwbaar (mogelijk m.u.v. van CDFS partities) het Autorun gedrag betrouwbaar configureren. Indien men geheel geen Autorun.inf bestanden wil uitvoeren kan men Nick Browns's oplossing toepassen, maar dat is een niet door Microsoft goedgekeurde oplossing.
Belangrijke update!
De waarde voor het gedeelte "Autorun op netwerkshares en USB-drives betrouwbaar uitschakelen onder XP" stond in eerste instantie niet goed vermeld. Dit is nu aangepast.
Door Bitwiper
Deze posting is gelocked. Reageren is niet meer mogelijk.