シマンテック社のBloodHoundテクノロジとかち合ってしまった。。。
シマンテック社のBloodHoundテクノロジは,未知のウィルスにいち早く対応するために,疑わしい動作をするコードを発見するように仕組まれています。
BloodHoundの1カテゴリにExcelMacroがあって,オカシナ挙動をするVBAコードを書いてしまうと,未知のウィルスとして認識されてしまいます。
BloodHoundが動作する1パターンとして,
- ".bas",".frm",".cls",".vbs"などそれっぽい拡張子でファイルIOを行う
- VBproject.VBComponents.Importを使用する
- VBproject.VBComponents.Exportを使用する
この3つの要素をもつコードがExcelに含まれていると,そのxlsファイルは感染ファイルとして認識されます。
3つの要素の順番には依存しません。
・サンプル
Private Sub BloodMain()
Dim FileNo As Integer
Dim TestFileName As String
Dim ImportName As String
Dim MeName As String
TestFileName = "C:\test.frm"
MeName = "BloodHound"
FileNo = FreeFile
Open TestFileName For Output Lock Read Write As #FileNo
Close #FileNo
ThisWorkbook.VBProject.VBComponents(MeName).Export TestFileName
ThisWorkbook.VBProject.VBComponents.Import (TestFileName)
End Sub
増殖しそう。っていうコードパターンに引っかかるようです。
実際のファイルIOが不穏なコードを吐き出す必要もないし,インポート/エクスポートの順番が論理的におかしくても反応します。
Excelシートに設定情報なんかを書き込んで,簡単なコードジェネレータをつくったりするとやたら怒られつづけます。