Sur Windows 10/11 , les pilotes Windows Plug-and-Play peuvent automatiquement installer des applications (non sécurisées ou dangereuses parfois) sur l’ordinateur. Cela s’appelle les Co Installers.
Un comportement initialement pratique mais au final indésirable pour la plupart d’entre nous.
Un bug dans le logiciel Razer Synapse permettait par exemple de devenir administrateur d’une machine à cause de cette vulnérabilité :
Chez BoucheCousue dans le cadre de notre infogérance, nous visons à réduire la surface d’attaque sur les machines de nos clients, donc ce réglage nous intéresse fortement.
Comment bloquer les CoInstallers?
Manuellement vous pouvez éditer votre registre en changeant la clef :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer
Modifiez la valeur DisableCoInstallers ou créez la en DWORD-32 et mettez une valeur de 1
Comment gérer ça dans Intune / en Powershell
Pour Intune, vous pouvez utiliser un script de détection et de remédiation
Voici le script de détection que vous pouvez utiliser :
## DetectCoInstallers - BoucheCousue
## Detection script for Intune Remediation
# Parameters
$regkey="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer\"
$name="DisableCoInstallers"
$value=1
# Registry Detection Template
If (!(Test-Path $regkey))
{
Write-Output 'RegKey not available - remediate'
Exit 1
}
$check=(Get-ItemProperty -path $regkey -name $name -ErrorAction SilentlyContinue).$name
if ($check -eq $value){
write-output 'setting ok - no remediation required'
Exit 0
} Else {
write-output 'value not ok, no value or could not read - go and remediate'
Exit 1
}
Et le script de remédiation :
## DetectCoInstallers - BoucheCousue
## Remediation script for Intune Remediation
# Parameters
$regkey="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer\"
$name="DisableCoInstallers"
$value=1
#Registry Template
If (!(Test-Path $regkey))
{
New-Item -Path $regkey -ErrorAction stop
}
if (!(Get-ItemProperty -Path $regkey -Name $name -ErrorAction SilentlyContinue))
{
New-ItemProperty -Path $regkey -Name $name -Value $value -PropertyType DWORD -ErrorAction stop
write-output "remediation complete"
exit 0
}
set-ItemProperty -Path $regkey -Name $name -Value $value -ErrorAction stop
write-output "remediation complete"
exit 0
Script de base par MikeMDM, adapté à la clef de registre appropriée par nos soins.