十三回目の投稿です。今回は、「Eicar.txt」と呼ばれるファイルを用いたウイルス対策ソフトの
挙動確認について紹介します。構築案件などに携わっていると、サーバにウイルス対策ソフトを
導入する機会があります。導入後は、挙動を確認するための単体テストを実施することが多い
ですが、その際に本物のウイルスを使うわけにはいきません。そこで用いられる代表的なものが
Eicar.txtであり、本投稿ではこれによる疑似的なウイルス検知をウイルス対策ソフト「ClamAV」に
対して行ってみます。
◆ Eicar.txtの概要
まずはEicar.txtについて説明します。このファイルは、ウイルス対策ソフトの挙動を確認するための
ファイルで、EICARという組織によって作成されました。中身は単なる文字列であり、自身で作成
することもWeb(例えば参考1)から入手することも可能です(当然このファイルは無害です)。
以下にも、Eicar.txt内の文字列を記載しておきます。
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
◆ ClamAVの概要
本投稿で使用するClamAVというウイルス対策ソフトについても簡潔に説明します。 ClamAVは、
WindowsやMac OS、各種Linux系ディストリビューションに対応しているオープンソースのウイルス
対策ソフトで、ウイルス定義ファイルを用いたウイルススキャンを実施します。ウイルススキャンは
「clamscan」コマンドで実行でき、スキャン時によく使われるオプションには次のものがあります。
・---infected:ウイルス検知したファイルの情報のみ表示する
・--recursive:スキャン対象に指定したディレクトリを再帰的にスキャンする
・--remove:ウイルス検知したファイルを削除する
各オプションの詳細やその他のオプションについてはmanで確認してみてください。
$ man clamscan
次節では、Linux系ディストリビューションの一つであるFedoraに対し、ClamAVの導入とEicar.txtを
用いた挙動確認を行ってみます。
◆ ウイルス対策ソフトの挙動確認
ClamAVをインストールし、その挙動を確認します。
【手順】
[1] ClamAVのインストール
次のコマンドにて、対象ホストにClamAVをインストールします。
※ OSやディストリビューションによってコマンドは異なります
$ sudo -s
# dnf -y install clamav
「Complete!」と表示されれば完了です。5つのパッケージがインストールされたことが分かります。
[2] 動作確認(ウイルスファイルなし)
clamscanコマンドを実行し、スキャンができることを確認します。作業用の任意のディレクトリ
(今回は「/tmp/test」)に対し、ウイルススキャンを実施してみます。
# clamscan /tmp/test
「Infected files」が「0」と表示され、ウイルススキャンに引っ掛かったファイルがないことが
分かります(そもそも対象ディレクトリにファイルがないため、当然といえば当然ではあります)。
なお、スキャンに使用したウイルスデータベースが古い旨の警告が出ていますが、今回は簡単の
ため、この警告は無視します。ただし、実際の運用では最新のデータベース(定義ファイル)を
用いたスキャンを実施することがほとんどです。ちなみに、データベースを更新するためには
「flashclam」 コマンドを用います(利用には「clamav-update」パッケージのインストールが必要
ですが、詳細は参考2が詳しいです)。
[3] 動作確認(ウイルスファイルあり)
それでは次に、Eicar.txtの検出を確認してみます。任意のコマンドでEicar.txtを作成しておきます。
先ほどと同様にスキャンすると、今度は「Eicar-Signature FOUND」といった表示があったり、
「Infected files」が「1」となったりしていることが確認でき、ウイルススキャンにてEicar.txtを
検知できたことが分かります。
なお、上述の例では、ウイルスと検知されたファイルを自動で削除していません。 検知時に
自動で削除したい場合は、「--remove」オプションを指定して実行します。
※ ウイルスでないファイルがウイルスと検知された場合も削除されてしまうため、
このオプションの指定は慎重に行う必要があります
# clamscan --remove /tmp/test
[4] ClamAVのアンインストール
必要に応じてClamAVを次のコマンドにてアンインストールします。
# dnf erase clamav
次のように、「Complete!」と表示されれば完了です。[1]でインストールした5つのパッケージが
アンインストールされたことが分かります。
最低限ではありますが、ウイルス対策ソフトの挙動テストを実施しました。今回は手動スキャン
のみを確認しましたが、実際の単体テストなどでは、自動スキャンやリアルタイムスキャンの
実行についても挙動を確認することになると思います。
◆ 感想など
思いのほか簡単に挙動確認をすることができました。また、現在の業務は運用保守がメインですが、
構築フェーズにおける作業について意識するきっかけとなりました。
◆ 参考
・【参考1】https://www.eicar.org/download-anti-malware-testfile/
・【参考2】https://www.server-world.info/query?os=Fedora_35&p=clamav
以上です。