このプロジェクトは、実際の 脆弱性管理ワークフロー を示しています。Azure VM を使用して、高深刻度の署名検証の欠陥を追跡し、PowerShell で手動確認を行い、レジストリベースの修正を展開して、不正なコード実行からシステムを強化しました。
Windows の WinVerifyTrust 関数には、巧妙な欠陥(CVE-2013-3900)がありました。攻撃者はデジタル署名を破らずに、署名済みファイルに悪意のあるコードを「ヒッチハイク」させることができました。つまり、悪意のあるコードを運んでいてもファイルが「信頼済み」に見え、セキュリティチェックを回避できてしまうのです。
最初に、Azure VM(ホスト: Kaddy)で Tenable スキャンを実行しました。スキャンでは、システムに EnableCertPaddingCheck という特定のセキュリティ設定が欠けていたため、「高」深刻度の脆弱性(VPR 9.0)がフラグ付けされました。

私はスキャナーの言葉を鵜呑みにはしませんでした。PowerShell を使用して、レジストリキーが実際に存在するか確認しました。
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Cryptography\Wintrust\Config" -Name EnableCertPaddingCheck
結果: コマンドは「パスが存在しません」というエラーで失敗しました。これにより、システムがこの特定のエクスプロイトに対して無防備であることが確認されました。

レジストリ (RegEdit) を手動で編集する代わりに、PowerShell スクリプトを使用して修正を適用しました。これは特に数百台のマシンに対して、より高速で再現可能かつ安全です。
修正は次の両方に適用しました:

スクリプトが完了した後、再度確認チェックを実行しました。最終的なログに示されているように、EnableCertPaddingCheck の値が 1 に設定されています。システムは現在、証明書のパディングを厳密に検証し、効果的にセキュリティホールを塞いでいます。
