1

ClamAV の CLI ツール sigtool を使用して SpamAssassin テストを構築しようとしています。これは、添付された .xls や .doc などの MS Office レガシー ファイルにマクロが含まれている可能性があり、実際に実行可能なマクロが含まれていることを検出します。

perl で sigtool を呼び出して、このようにスキャンするファイル名を渡すのは簡単です。

my $filename = "email_attach";
my $scan = `/usr/bin/sigtool --vba="$filename"`;
if ($scan =~ /autoopen/i ) {
  print "Scanning $file: INFECTED VBA\n";
}

ただし、SpamAssassin テストとして、テストに渡される変数として、電子メールの添付ファイルが既にメモリに格納されています。したがって、時間をかけて各添付ファイルをディスクに書き込んでから、sigtool にそれを読み取るように指示することはしたくありません。

インタープロセス通信とプロセス管理と通信に関するプログラミング Perl と Perl クックブックの第 16 章全体を調査しました。そこには大量の情報がありますが、外部への入力として内部の perl プログラム データをストリーミングすることに対処するものは何も見当たりませんでした。コマンドライン引数として渡されるパス/ファイル名を探しているアプリケーション。

これを達成する方法についてご意見をお寄せいただきありがとうございます。または、MS Office レガシー ファイル内の VBA マクロまたは実行可能ファイルを検出する簡単な方法を誰かが知っていれば、それも問題ありません。

4

1 に答える 1