clamscan で特定のファイルを除外する方法

古都の老兵
2023-10-13
2023-10-13

はじめに

 LinuxでのウィルスチェックソフトとしてclamAVが良く定番で使われていますが、ファイルを設置した人曰く、誤検出なのか問題ないはずのファイルがウィルスと検出されるようになったとのことで検出から除外したいと要望がありました。少し前は検出されていなかったのが最近のウィルスデータベースが更新されて検出されるようになったようなのですが、取り合えず除外できるかについて調べてみました。

ドキュメントを確認

 ドキュメントを見ると、どうやら Allow List Databases に登録するとできるらしい。またやり方は2つあり、該当のファイルそのものを登録する方法と、検出するウィルスのシグネチャーを対象外に外してしまう方法。
 流石に該当のウィルス検出をさせなくするのは良くないので、該当のファイルを Allow List に登録してみる。

特定ファイルの許可

 特定ファイルを許可するにはMD5での形式を登録するか、SHA1またはSHA256形式で登録する。MD5で登録する場合は登録したファイルの拡張子を .fp に、SHA形式の場合はファイルの拡張子を .sfp にしてウィルスチェック用データベースがあるディレクトリに配置する。パッケージで入れた場合だとディフォルトでは /var/lib/clamav/ 以下になっているはずだ。

試してみる

 ウィルスチェックの動作を確認する為のファイルはEICARというサイトから入手する事ができる。

# wget https://secure.eicar.org/eicar.com.txt
# clamscan .
Loading:    31s, ETA:   0s [========================>]    8.67M/8.67M sigs
Compiling:   6s, ETA:   0s [========================>]       41/41 tasks

/home/test/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND

検出できたので、除外ファイルとして登録

# sigtool --md5 ./eicar.com.txt >> /var/lib/clamav/false-positives.fp
# cat /var/lib/clamav/false-positives.fp
44d88612fea8a8f36de82e1278abb02f:68:eicar.com.txt

除外されたかの確認

# clamscan .
Loading:    29s, ETA:   0s [========================>]    8.67M/8.67M sigs
Compiling:   7s, ETA:   0s [========================>]       41/41 tasks

/root/src/test/eicar.com.txt: OK

最後に

 今回対象になったファイルは複数のファイルをzip圧縮されたものだったのだが、確かに解凍して個々のファイルをスキャンしても何も検出されない為、誤検出なのだろう。圧縮されたファイルの中身がたまたまそれっぽいパターンになってしまったのだろう。
 因みに、拡張しの .fp は false positive、.sfp は SHA false positive だそうだが、SHA形式を .fp の拡張子にしても動作した。