本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
次世代型AIアンチウイルス(Deep Instinct等)を導入している環境で、.NET Reactor等のツールで難読化を行うと、そのコードの特殊性から「悪意あるパッキング」と判定され、ブロックされることがあります。
本記事では、「自己署名証明書」を作成し、アプリに署名を施すことで、Deep InstinctのAI検知をホワイトリスト化(除外)する手順を解説します。
1. 署名と難読化の正しい順番
ここが最も重要です。必ず「難読化の後」に署名を行います。
- ビルド: 通常通りEXEを作成。
- 難読化: .NET Reactor等でパッキングを実行。
- コード署名: 最終的なEXEに対して署名を付与。
2. 自己署名証明書の作成(PowerShell)
管理者権限の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"
3. アプリへのデジタル署名実行
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 と表示されれば完了です。
4. Deep Instinct 管理画面への除外登録
Deep Instinct側に「この署名があるファイルは安全である」と教え込みます。
- フィンガープリントの取得: PowerShellで以下のコマンドを実行し、表示された英数字をコピーします。PowerShell
(Get-PfxCertificate -FilePath "$home\Desktop\DI_Exclusion.cer").Thumbprint - コンソールでの設定:
- [ポリシー] > [許可リスト] > [ファイル証明書] タブへ移動。
- [証明書を追加] をクリック。
- フィンガープリント欄にコピーした英数字を貼り付け。
- プラットフォーム(Windows)と対象ポリシーを選択して保存。
5. 動作確認
- アプリのプロパティを開き、「デジタル署名」タブが存在することを確認します。
- Deep Instinctが有効な端末でアプリを実行し、ブロックされずに起動することを確認して完了です!
まとめ
AI検知は「未知の脅威」に強い反面、自社開発の難読化アプリを「怪しい」と決めつけてしまう側面があります。このように「自社専用の署名+EDR側の証明書除外」を組み合わせることで、開発効率を落とさずに強固なセキュリティ環境を維持することが可能です。
これで、今後新しいアプリを作成したり更新したりしても、同じ証明書で署名するだけでDeep Instinctに自動的に許可されるようになります。お疲れ様でした!