OSSのアンチウイルス/アンチマルウェアサービスとして、ClamAVというものがあり、そこそこ広く使われている(私も昔は物理サーバーに入れていたが、CPUやメモリ負荷がかなり高いサービスで、VPSにしてからはメモリあふれが多発してしまうので普段は使っていない)。 現在はCiscoがスポンサーしているようだ。
つい先日、このClamAVのデータベース更新で入ったパターンで、Mackerelエージェントのmackerel-agentバイナリがマルウェア判定されてしまうという現象が発生した。
私のほうでFalse Positiveとして報告したところ、今日の更新で解除になっていた。ほかにも多数報告があっての解除かもしれないが、今後も同様のケースはありそうなので、ざっくり手順をまとめておく。
パターンデータベース更新はおおよそ1日1回はあるので、まず報告しようとしている時点ですでに直っていないかどうか、手元のデータベースを更新する。
$ sudo systemctl restart clamav-freshclam
スキャンしてみよう。
$ clamscan /usr/bin/mackerel-agent Loading: 7s, ETA: 0s [========================>] 8.68M/8.68M sigs Compiling: 2s, ETA: 0s [========================>] 41/41 tasks /usr/bin/mackerel-agent: Unix.Malware.Reverseshell-10013098-0 FOUND
はい。
確かに誤認識されていることはわかったので、誤報だよと報告すべくReport False Positiveサイトにアクセスする。最初は人間かどうかのチェックが入るので、チェックを付けて進む。
報告画面で、Full Nameに自分の名前、Emailにメールアドレスを記入。Virus Nameに「Unix.Malware.Reverseshell-10013098-0」を指定する。
Descriptionに説明を書く。今回は以下を書いた(※英語)。
PlatformはLinux/UNIX、PrivacyはNotify Meをチェック、Do not publish my nameをチェックオフにした。
Upload Your False Positive Fileでamd64アーキテクチャの/usr/bin/mackerel-agentを選択し、「Submit False Positive Report」を実行。
これで報告としては終わりである。場合によっては報告してもまったく対処されないこともあるようだが、今回はすぐに反映された。
データベース更新はメーリングリストに自動投稿されているので、いつ誤パターンが入り、いつ除かれたかは容易にわかる。 今回の場合、11/2 07:40:34 UTC(日本時間16:40:34)のリビジョン27080で「Unix.Malware.Reverseshell-10013098-0」が入ってきた。そして、11/4 07:38:42 UTC(日本時間16:38:42)のリビジョン27082で「Dropped Detection Signatures」に「Unix.Malware.Reverseshell-10013098-0」が掲載されているとおり、パターンから削除された。
$ clamscan /usr/bin/mackerel-agent /usr/bin/mackerel-agent: OK
ヨシ。
そもそもなぜこのシグネチャが入ったのかは、経緯が非公開なのでわからない。Goで書かれたマルウェアの検体から普通によくあるバイナリコードを引っかけてしまったのかな、くらいの推測しかできないね。