
نص PowerShell للتخفيف من CVE-2013-3900 عن طريق تمكين التحقق الأكثر صرامة من توقيع Authenticode WinVerifyTrust عبر تكوين السجل.
#CVE-2013-3900 هي ثغرة تنفيذ تعليمات برمجية عن بُعد في الطريقة التي تتعامل بها دالة WinVerifyTrust من Microsoft مع التحقق من توقيعات Authenticode في Windows. يسمح هذا الخلل لمهاجم بتعديل ملف تنفيذي موقّع عن طريق إضافة تعليمات برمجية خبيثة إلى جزء غير مُتحقَّق #من الملف دون إبطال توقيعه.
#التخفيف من هذه الثغرة هو ميزة اختيارية (opt-in) تتطلب إعدادًا محددًا في سجل النظام (Registry). بمجرد تفعيلها، سيجري Windows تحققًا أكثر صرامة من توقيعات Authenticode، مما يضمن عدم وجود بيانات دخيلة في الملف الموقّع.
$regPath32 = "HKLM:\Software\Microsoft\Cryptography\Wintrust\Config" $regPath64 = "HKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config" $valueName = "EnableCertPaddingCheck" $valueData = 1
if (-not (Test-Path $regPath64)) { New-Item -Path $regPath64 -Force | Out-Null Write-Host "Created registry path: $regPath64" }
Set-ItemProperty -Path $regPath64 -Name $valueName -Value $valueData -Type DWord -Force | Out-Null Write-Host "Set $valueName to $valueData in $regPath64"
if (-not (Test-Path $regPath32)) { New-Item -Path $regPath32 -Force | Out-Null Write-Host "Created registry path: $regPath32" }
Set-ItemProperty -Path $regPath32 -Name $valueName -Value $valueData -Type DWord -Force | Out-Null Write-Host "Set $valueName to $valueData in $regPath32"
Write-Host "`nMitigation script complete."