次世代型AIアンチウイルス(Deep Instinct等)を導入している環境で、.NET Reactor等のツールで難読化を行うと、そのコードの特殊性から「悪意あるパッキング」と判定され、ブロックされることがあります。
本記事では、「自己署名証明書」を作成し、アプリに署名を施すことで、Deep InstinctのAI検知をホワイトリスト化(除外)する手順を解説します。
ここが最も重要です。必ず「難読化の後」に署名を行います。
管理者権限のPowerShellで、署名用の証明書(PFXファイル)とDeep Instinct登録用の証明書(CERファイル)を作成します。
PowerShell
# 1. 証明書の作成
$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=Internal-App-Signer" -FriendlyName "DI-Exclusion-Cert" -NotAfter (Get-Date).AddYears(5)
# 2. 署名に使用するパスワードの設定
$pwd = ConvertTo-SecureString -String "password" -Force -AsPlainText
# 3. 署名用ファイル(.pfx)の書き出し
Export-PfxCertificate -Cert $cert -FilePath "$home\Desktop\MySignCert.pfx" -Password $pwd
# 4. Deep Instinct登録用ファイル(.cer)の書き出し
Export-Certificate -Cert $cert -FilePath "$home\Desktop\DI_Exclusion.cer"
signtool.exe を使用して、難読化済みのアプリに署名を付与します。 ※signtoolのパスは環境により異なります。
PowerShell
& "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign `
/f "$home\Desktop\MySignCert.pfx" `
/p "password" `
/fd SHA256 `
/t http://timestamp.digicert.com `
"C:\対象アプリのパス\アプリケーション.exe"
成功メッセージ: Successfully signed と表示されれば完了です。
Deep Instinct側に「この署名があるファイルは安全である」と教え込みます。
(Get-PfxCertificate -FilePath "$home\Desktop\DI_Exclusion.cer").ThumbprintAI検知は「未知の脅威」に強い反面、自社開発の難読化アプリを「怪しい」と決めつけてしまう側面があります。このように「自社専用の署名+EDR側の証明書除外」を組み合わせることで、開発効率を落とさずに強固なセキュリティ環境を維持することが可能です。
これで、今後新しいアプリを作成したり更新したりしても、同じ証明書で署名するだけでDeep Instinctに自動的に許可されるようになります。お疲れ様でした!