カメノドットコム
Debian大好きでメインで節操ない感じ。
GMOもわりと好き。
RSS feedly

ClamAV®でスキャンしてみる

Squeezeでは インストールの例示 しかしてなくて、実際の使い方は書いてなかった。
なので、ClamAV®でのスキャン方法を一応書いておく。

スキャン方法

「clamscan」と「clamdscan」の2種類があって、「clamdscan」のほうが速い。
「clamscan」は一般ユーザでも使えるが、「clamdscan」はrootでClamAV®のデーモンを起動させておく必要がある。
「clamdscan」はデーモン起動時のウィルスデータベースを使用するため、fresclamを実行してからデーモンを起動させるか、killを送ってやる。
ファイルひとつとかなら「clamscan」でも充分だが、全体をスキャンする場合は「clamdscan」のほうが良いと思われ。
clamscan コマンドオプション(よく使うと思われるもの)は下記の通り。

-r                  サブディレクトリごと再帰的に検査。圧縮ファイルは再帰的に解凍して検査
-i                  ウイルスに感染したファイルのみを出力
-m                  mbox形式、rfc(2)822形式のファイルを検査する
-v                  出力を詳細にする
--remove            ウイルスに感染したファイルを安全に削除する
--force             エラーを無視して強制的に検査を行う
--move=DIRECTORY    ウイルスに感染したファイルをDIRECTORYへ移動する

「clamscan」の使い方は下記のような感じ。

$ su
パスワード:
# freshclam
# exit
$ clamscan -r -i --move=~/out ~/.cache/

とりあえずrootになってデータベース更新。
rootを抜けて一般ユーザでキャッシュディレクトリを再帰的にスキャンし、ウィルス感染ファイルのみを出力。
ウィルス感染ファイルは「out」ディレクトリに移動させる。
続いて「clam*d*scan」のざっくり説明。
clam*d*scan コマンドオプション(よく使うと思われるもの)は下記の通り。

-v                  詳細に出力
-i                  ウイルスに感染したファイルのみを出力
--quiet             エラーのみを出力
--remove            ウイルスに感染したファイルを安全に削除する
--move=DIRECTORY    ウイルスに感染したファイルをDIRECTORYへ移動する

「clam*d*scan」はデーモンを起動させてスキャンを行う。
ウィルスデータベースを更新するたびにデーモンを再起動させるのがちょっと面倒かも。

$ su
パスワード:
# freshclam
# clamd &
# exit
$ clamdscan -i --move=~/out ~/.cache/

rootになってデータベース更新とデーモン起動。
rootを抜けて一般ユーザでキャシュディレクトリをスキャンし、ウィルス感染ファイルのみを出力。
ウィルス感染ファイルは「out」ディレクトリに移動させる。
ちなみにディレクトリの後に「/」を付けておくと安心(←何が?)

てな感じですが、実際にどのくらいスピードが違うのかを確認してみた。
ソースに入っているテスト用ウィルスディレクトリと、溜まりに溜まったキャッシュディレクトリで比較。

$ clamscan -r test/
(略)
----------- SCAN SUMMARY -----------
Known viruses: 2710145
Engine version: 0.97.8
Scanned directories: 2
Scanned files: 142
Infected files: 46
Data scanned: 19.51 MB
Data read: 12.40 MB (ratio 1.57:1)
Time: 10.429 sec (0 m 10 s)
================================================

# clamdscan test/
(略)
----------- SCAN SUMMARY -----------
Infected files: 46
Time: 4.044 sec (0 m 4 s)

「clam*d*scan」が6.385秒速いですな。でもこのくらいなら許容範囲。20MB位なら大した差はないようだ。
キャッシュディレクトリをスキャンしてみる。

$ clamscan -r .cache/
(略)
----------- SCAN SUMMARY -----------
Known viruses: 2710679
Engine version: 0.97.8
Scanned directories: 205
Scanned files: 4309
Infected files: 0
Data scanned: 573.05 MB
Data read: 501.47 MB (ratio 1.14:1)
Time: 129.599 sec (2 m 9 s)
================================================

# clamdscan .cache/
(略)
----------- SCAN SUMMARY -----------
Infected files: 0
Time: 49.990 sec (0 m 49 s)

「clam*d*scan」が79.609秒速いですよ。適当な計算ですが、対象サイズにかかわらず「clam*d*scan」が2.5倍以上高速らしい。
それにしてもキャッシュに500MBも貯めるなよ自分(苦笑)
Core2Duo2GHzでこのスピードだから、新しいCPU積んでればもっと速いはず。

システムオールスキャンー! とかの場合は「clam*d*scan」が断然優位に立つわけですありますな。
あ、そう言えばデーモン起動させるのに設定ファイルいじった。でもどこいじったのか忘れた。
「clamd &」でエラー吐いて起動しなかったので、適当にコメントアウト外したわ。
なんかTCPがどーたらLocalがなんたら言ってたような。そのあたりのコメントアウトを外した記憶がうっすらと。

ClamAV®でスキャンをするときは、とりあえず感染ファイルを別のディレクトリに移して、そのファイルを調べたほうがいい。
ウィルスじゃないのもちょいちょい引っかかるので、ネットで調べてみると大変勉強になる。

Sponsored Link