Computerbeveiliging - Hoe je bad guys buiten de deur houdt

MS BYOVD blocklist fail

16-10-2022, 14:21 door Erik van Straten, 4 reacties
TL;DR: in elk geval op Windows 10 wordt de blocklist van door malware misbruikte drivers niet automatisch bijgewerkt [4].

Achtergrond
Op 30 sept. schreef de redactie van security.nl [1] "Kwetsbare Dell-driver gebruikt bij aanval op Nederlands luchtvaartbedrijf".

Bij een aanval met een "Bring Your Own Vulnerable Driver" (BYOVD) installeert malware een legitieme, digitaal ondertekende, device driver, die -na installatie- door "minder gepriviligeerde software" misbruikt kan worden om lees- en schrijftoegang tot kernelgeheugen te verkrijgen, als een achterdeurtje dus (de kernel is de "kern" van Windows). Effectief levert dit rootkit-functionaliteit op.

Nb. zelfs software gestart door Administrators heeft niet direct toegang tot het kernelgeheugen (ook niet na akkoord gaan met een UAC-prompt). De reden daarvoor zijn de beveiligingsrisico's: met onbegrensde toegang kun je o.a. beveiligingssoftware (waaronder virusscanner, tamper protection, firewall, ransomware-detectie etc.) geforceerd uitschakelen.

Als het voor software (dus ook malware), draaiend met lage privileges (ook non-admin) via een device driver mogelijk is om beveiligingssoftware uit te schakelen, is dat natuurlijk een kwetsbaarheid (security-bug) in zo'n driver. Normaal gesproken zullen fabrikanten daar dan ook een gerepareerde versie van uitbrengen.

Wat cybercriminelen doen is echter de oude (buggy) versie van zo'n driver meeleveren met hun malware (bijv. met een smoes dat een update van Excel o.i.d. nodig is om een document te kunnen bekijken, waarbij die buggy -doch digitaal ondertekende- driver wordt geïnstalleerd). Zo'n driver hoeft niets met het betreffende systeem te maken te hebben, het kan gaan om een Dell driver op een HP laptop of een AMD-driver op een systeem zonder AMD chips.

Normaal gesproken zul je admin-privileges (ook bekend als admin-rechten) moeten hebben om drivers te kunnen installeren, maar bijvoorbeeld journalisten, regelmatig reizende laptop-bezitters en ontwikkelaars hebben dat meestal (of hebben, naast hun werk-account, ook een beheer-account). Bovendien komen privilege-escalation bugs veel voor, niet alleen in software van Microsoft maar bijvoorbeeld ook in -notabene- beveiligingssoftware. Omdat het bij BYOVD-aanvallen waarschijnlijk vooral om targeted attacks gaat, biedt zelfs een 100% updated systeem geen garanties.

Windows 11 versus 10
Medio september had ik een discussie over BYOVD met tweaker "NTAuthority", zie [3]. NTAuthority geeft in die bijdragen allerlei informatie over dit risico onder Windows 11. Of Windows 11 kwetsbare drivers in alle gevallen blokkeert, betwijfel ik nu echter, maar dit heb ik niet onderzocht (zie ook hieronder).

Onderzoek door security journalist Dan Goodin
Op 5 oktober meldde Dan Goodin van "ARS Technica" [2] al dat hij de kwetsbare Dell driver (die werd/wordt gebruikt bij de aanval genoemd in [1]) zonder waarschuwingen kon installeren. En dat is vreemd, omdat Microsoft steeds riep dat Windows systemen hier vanzelf tegen beschermd zouden zijn.

Na aanvullend onderzoek, in samenwerking met Will Dormann (CERT/CC) en Peter Kálnai (ESET) was Dan's conclusie afgelopen vrijdag [4] dat Microsoft's blocklist voor kwetsbare drivers, in elk geval op Windows 10, al bijna 3 jaar niet is bijgewerkt:
Door Dan Goodin: What the [Microsoft] program manager was saying boiled down to this: If you thought HVCI was protecting you from recent BYOVD attacks, you were probably wrong. Windows 10 hadn't updated the list in almost three years.

Wat kun je er eventueel zelf aan doen?
In [5] (updated op 14 oktober - toeval?) schrijft Microsoft onder meer (opmaak toegevoegd door mij):
Microsoft recommended driver block rules
[...]
With Windows 11 2022 update, the vulnerable driver blocklist is enabled by default for all devices, and can be turned on or off via the Windows Security app. The vulnerable driver blocklist is also enforced when either memory integrity (also known as hypervisor-protected code integrity or HVCI), Smart App Control, or S mode is active.
[...]
The blocklist is updated with each new major release of Windows. We plan to update the current blocklist for non-Windows 11 customers in an upcoming servicing release and will occasionally publish future updates through regular Windows servicing.

Customers who always want the most up-to-date driver blocklist can also use Windows Defender Application Control (WDAC) to apply the latest recommended driver blocklist contained in this article.
[...]
Met andere woorden, onder geen enkele Windows versie is het zeker dat je de laatste lijst met kwetsbare drivers op je systeem hebt. En het lijkt een heel gedoe (met allerlei uitzonderingen, aandachtspunten en waarschuwingen) om dit zelf te fixen.

Merk op dat in genoemde Microsoft pagina staat:
> Expand this section to see the blocklist WDAC policy XML
Als je daarop klikt verschijnt een lange lijst met kennelijk geblokkeerde drivers. Lees ook de waarschuwing in het roze blok daaronder.

Alternatieve aanpak
Will Dormann heeft een PowerShell script geschreven [6] dat de laatste blocklist van Microsoft downloadt ([7]) en, naar keuze, een "audit policy" (alleen waarschuwen) of "enforced policy" installeert. Ik heb dat (nog) niet gedaan, alles wat je doet is natuurlijk geheel voor eigen risico. Verzeker je er in elk geval van wat zo'n PowerShell script gaat doen op jouw systeem voordat je zoiets uitvoert. Bron en iets meer info: [4].

Conclusie
Ik begrijp niet waarom Microsoft onder alle ondersteunde Windows versies je niet in alle gevallen, op basis van de laatste informatie, en zonder dat je zelf allerlei ingewikkelde dingen moet doen, op z'n minst waarschuwt op het moment dat een kwetsbare driver wordt geïnstalleerd. Dat lijkt mij gewoon een standaardtaak van Windows Defender (eerder dan experimentele hosts files in niet door Windows geraadpleegde mappen deleten omdat ze een gevaar zouden vormen voor mijn systeem).

De door Microsoft beschreven doe-het-zelf-fixes zien er ingewikkeld uit, lijken allesbehalve risicoloos en zul je zo te zien regelmatig moeten herhalen. M.i. kan en moet Microsoft beter haar best doen om de computers van haar klanten te beschermen, mede omdat zij er vaak genoeg voor gewaarschuwd is dat "signed" niet "safe" betekent.

Links
[1] https://www.security.nl/posting/769711/Kwetsbare+Dell-driver+gebruikt+bij+aanval+op+Nederlands+luchtvaartbedrijf

[2] https://arstechnica.com/information-technology/2022/10/no-fix-in-sight-for-mile-wide-loophole-plaguing-a-key-windows-defense-for-years/

[3] https://tweakers.net/nieuws/201078/ea-kondigt-anti-cheatsysteem-op-kernelniveau-voor-pc-game-fifa-23-aan.html?showReaction=17922268#r_17922268
en
https://tweakers.net/nieuws/201078/ea-kondigt-anti-cheatsysteem-op-kernelniveau-voor-pc-game-fifa-23-aan.html?showReaction=17922894#r_17922894

[4] https://arstechnica.com/information-technology/2022/10/how-a-microsoft-blunder-opened-millions-of-pcs-to-potent-malware-attacks/

[5] https://learn.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-driver-block-rules

[6] https://raw.githubusercontent.com/wdormann/applywdac/main/applywdac.ps1

[7] https://aka.ms/VulnerableDriverBlockList
Reacties (4)
17-10-2022, 19:10 door Anoniem
Dag Erik,

ter info:
heb vanmiddag gepoogd om e.e.a op windows 11 home (op nog nieuwe lenovo laptop) volgens de ms instructies uit te voeren en was niet succesvol.
- present driversipolicy.p7b is van 7 mei 2022
- checked eventlog according ms instructions. d2bda982-ccf6-4344-ac5b-0b44427b6816, 10.0.25090.0 matched niet met nieuw A244370E-44C9-4C06-B551-F6016E563076, 10.0.25210.0
- alleen trusted installer heeft permissie op driversipolicy.p7b, waardoor je eerst met ownership en permissie ad slag moet.
- wdac updater runned alleen na rename en zegt succesvol te zijn
- na reboot start systeem met unsuccesfull repair, waarna ik system restore moest aanspreken
- daarna systeem nog steeds beetje over de zeik, waarna ik 22-10 cum update opnieuw heb installed en sfc heb gerunned (een enkele repair).
- na bovenstaande was de succesvol copied file weer door de oorspronkelijke vervangen (system restore).

Resume:
- (b)lijkt dat ook windows 11 dit niet update
- de ms instructie heeft (op zijn minst) enkele lancunes

Aanvullend:
- zal kijken of ik een dezer dagen het dormann script draai en resultaat rapporteren

Mvg
18-10-2022, 10:55 door Erik van Straten
@Anoniem 17-10-2022, 19:10: dank voor de reactie en de uitgevoerde tests! Niet zonder risico's dus.

Het bestand "c:\Windows\System32\CodeIntegrity\driversipolicy.p7b" op mijn W10 PC is leesbaar voor Users en is laatst gewijzigd in december 2019. Het bevat 2 Microsoft certificaten waarvan er een verlopen is.

Het bevat o.a. de volgende mogelijk interessante strings:
BSMI.sys
BS_HWMIO64_W10.sys
BS_I2cIo.sys
cpuz.sys
ElbyCDIO.sys
libnicm.sys
mtcBSv64.sys
NCHGBIOS2x64.SYS
NICM.SYS
nscm.sys
NTIOLib.sys
rtkio64.sys
rtkiow10x64.sys
rtkiow8x64.sys
sandra.sys
segwindrvx64.sys
Elaborate Bytes AG
Novell, Inc.
SiSoftware Ltd
Benjamin Delpy
Open Source Developer, Benjamin Delpy
Sokno S.R.L.
ChongKim Chan
innotek GmbH
Realtek Semiconductor Corp.
Mitac Technology Corporation
BIOSTAR MICROTECH INT'L CORP
MICRO-STAR INTERNATIONAL CO., LTD.
TOSHIBA CORPORATION
Micro-Star Int'l Co. Ltd.
Insyde Software Corp.
10.0.19014.0
Nb. Benjamin Delpy is de ontwikkelaar van Mimikatz.

De enige andere file in die map (naast 2 lege directory-trees) is "c:\Windows\System32\CodeIntegrity\driver.stl" (laatst gewijzigd in mei 2022) dat een revocation list zou moeten zijn (geen 3D-iets) ondertekend met een certificaat dat geldig was tot 9 juni 2022.
19-10-2022, 10:15 door Anoniem
Dag Erik,

- mbt tot mijn aangegeven permissies op de p7b file: alleen trusted installer heeft permissies op die copy-slag te kunnen maken, de permissies komen overeen met windows 10 iedereen heeft rx en trusted installer full controll.
- je bevindingen over windows 10 komen overeen met mijn windows 10 (inclusief die 2 certs waarvan 1 verlopen)
- je genoemde strings geven zeker te denken; de hele materie geeft te denken
- mijn windows 11 heeft meer en recentere files:
Directory of C:\Windows\System32\CodeIntegrity
10/18/2022 02:54 AM <DIR> .
10/18/2022 11:23 PM <DIR> ..
05/07/2022 07:24 AM <DIR> CiPolicies
05/07/2022 07:19 AM 10,823 driver.stl
05/07/2022 07:19 AM 53,280 driversipolicy.p7b
05/07/2022 07:24 AM <DIR> Tokens
2 File(s) 64,103 bytes
Directory of C:\Windows\System32\CodeIntegrity\CiPolicies
05/07/2022 07:24 AM <DIR> .
10/18/2022 02:54 AM <DIR> ..
09/28/2022 11:01 AM <DIR> Active
05/07/2022 07:24 AM <DIR> Internal
05/07/2022 07:24 AM <DIR> Staged
0 File(s) 0 bytes
Directory of C:\Windows\System32\CodeIntegrity\CiPolicies\Active
09/28/2022 11:01 AM <DIR> .
05/07/2022 07:24 AM <DIR> ..
09/28/2022 10:59 AM 80,742 {0283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip
05/07/2022 07:20 AM 4,893 {0939ED82-BFD5-4D32-B58E-D31D3C49715A}.cip
09/28/2022 10:59 AM 80,018 {1283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip
05/07/2022 07:20 AM 4,408 {1678656C-05EF-481F-BC5B-EBD8C991502D}.cip
05/07/2022 07:20 AM 4,913 {1939ED82-BFD5-4D32-B58E-D31D3C49715A}.cip
05/07/2022 07:20 AM 4,428 {2678656C-05EF-481F-BC5B-EBD8C991502D}.cip
6 File(s) 179,402 bytes
Directory of C:\Windows\System32\CodeIntegrity\CiPolicies\Internal
05/07/2022 07:24 AM <DIR> .
05/07/2022 07:24 AM <DIR> ..
0 File(s) 0 bytes
Directory of C:\Windows\System32\CodeIntegrity\CiPolicies\Staged
05/07/2022 07:24 AM <DIR> .
05/07/2022 07:24 AM <DIR> ..
0 File(s) 0 bytes
Directory of C:\Windows\System32\CodeIntegrity\Tokens
05/07/2022 07:24 AM <DIR> .
10/18/2022 02:54 AM <DIR> ..
05/07/2022 07:24 AM <DIR> Active
05/07/2022 07:24 AM <DIR> Staged
0 File(s) 0 bytes
Directory of C:\Windows\System32\CodeIntegrity\Tokens\Active
05/07/2022 07:24 AM <DIR> .
05/07/2022 07:24 AM <DIR> ..
0 File(s) 0 bytes
Directory of C:\Windows\System32\CodeIntegrity\Tokens\Staged
05/07/2022 07:24 AM <DIR> .
05/07/2022 07:24 AM <DIR> ..
0 File(s) 0 bytes
Total Files Listed:
8 File(s) 243,505 bytes
- zoals voorheen gemeld betreft het "nieuwe" laptop; 28-9-22 is datum dat ik voor eerst heb opgestart van internal disk, waarbij het factory image installed werd (nadat ik daarvoor diskimage gemaakt had om altijd naar factory toestand terug kan)
- na 28-9 heb ik ook nog win 11 versie update gedaan toen die uitkwam
- 10/18/2022 02:54 AM kan ik niet (meer) goed plaatsen
- momenteel draai in win10 versie update maar verwacht daarvan geen wonder tav byovd


Resume:
- win 11 (b)lijkt meer up2date in deze materie
- zou me niet verbazen als een opmerking die ik meen ergens te zijn tegen gekomen dat spul alleen (automatisch) bijgewerkt wordt bij volledige (nieuw) install van windows; factory image of downloaded windows install image.

Mvg
19-10-2022, 10:45 door Anoniem
Correctie en aanvulling:
- 10-9-22 was mijn 1e boot, 28-9 was versie update naar Windows 11, version 22H2
- 10/18/2022 komt overeen met install van Windows 11 KB5019509 preview cumulative update to enable new features that were not ready when 22H2 (o.a. Windows 11 tabbed File Explorer en zeer welkom)

Mvg
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.