man clamscan 日本語訳

# clamscan(1)

Clam AntiVirus

## NAME

clamscan   -  ファイルとディレクトリのウィルススキャンを実行します。

## SYNOPSIS

```bash
clamscan [options] [file/directory/-]
```

## DESCRIPTION

clamscan はコマンドラインアンチウィルススキャナーです。

## OPTIONS

大半のオプションは機能を有効化または無効化する単純なスイッチです。
オプションは ``[=yes/no(*)]`` で指定します。
``=yes/=no`` で指定することもできます。
オプションが真偽値の引数無しで呼び出された場合、
スキャナーは ``yes`` を指定したものとみなします。
アスタリスクマークは、指定されたオプションの既定の内部設定です。

### -h, --help

ヘルプ情報を出力して終了します。

### -V, --version

バージョン番号を出力して終了します。

### -v, --verbose

詳細を出力します。

### -a, --archive-verbose

スキャンしたアーカイブ内部のファイル名を表示します。

### --debug

libclamav からのデバッグメッセージを表示します。

### --quiet

エラーメッセージのみを出力します。

### --stdout

全メッセージ(libclamav の出力は除きます)を標準出力(stdout)へ出力します。

### --no-summary

スキャン終了時のサマリー表示を行いません。

### -i, --infected

感染したファイルのみを出力します。

### -o, --suppress-ok-results

問題の無いファイルの出力を行いません。

### --bell

ウィルス検知時にベルを鳴らします。

### --tempdir=DIRECTORY

``DIRECTORY`` 内に一時ファイルを作成します。
ディレクトリは ``clamav`` ユーザーまたは
clamscan を実行する非特権ユーザーが
書き込み可能である必要があります。

### --leave-temps

一時ファイルを削除しません。

### --gen-json

スキャンしたファイルの説明を JSON 形式で生成します。
JSON は出力され、 [--leave-temps](#--leave-temps) が有効である場合は
一時ディレクトリへ配置されます。

### -d FILE/DIR, --database=FILE/DIR

``FILE`` からウィルスデータベースを読み込みます。
または ``DIR`` からウィルスデータベースファイルを
全て読み込みます。

### --official-db-only=[yes/no(*)]

ClamAV プロジェクトによって発行された
公式シグネチャのみを読み込みます。

### -l FILE, --log=FILE

スキャンレポートを ``FILE`` へ保存します。

### -r, --recursive

ディレクトリを再帰的にスキャンします。
指定されたディレクトリ配下の
サブディレクトリ全てをスキャンします。

### -z, --allmatch

マッチ後に追加で一致したファイルを含めて
スキャンを継続します

### --cross-fs=[yes(*)/no]

他のファイルシステムの
ファイルとディレクトリをスキャンします。

### --follow-dir-symlinks=[0/1(*)/2]

ディレクトリのシムリンクをたどります。
3 つのオプションがあります:

* 0 - ディレクトリのシムリンクをたどらなくします。
* 1 (既定値) - clamscan の引数へ直接指定されたディレクトリの
  シムリンクのみをたどります。
* 2 - ディレクトリのシムリンクを常にたどります。

### --follow-file-symlinks=[0/1(*)/2]

ファイルのシムリンクをたどります。
3 つのオプションがあります:

* 0 - ファイルのシムリンクをたどらなくします。
* 1 (既定値) - clamscan の引数へ直接指定されたファイルの
  シムリンクのみをたどります。
* 2 - ファイルのシムリンクを常にたどります。

### -f FILE, --file-list=FILE

``FILE`` に列記されたファイル群を一つ一つスキャンします。

### --remove[=yes/no(*)]

感染したファイルを除去します。扱いに注意してください。

### --move=DIRECTORY

感染したファイルを ``DIRECTORY`` へ移動します。
ディレクトリは ``clamav`` ユーザーまたは
clamscan を実行する非特権ユーザーが
書き込み可能である必要があります

### --copy=DIRECTORY

感染したファイルを ``DIRECTORY`` へコピーします。
ディレクトリは ``clamav`` ユーザーまたは
clamscan を実行する非特権ユーザーが
書き込み可能である必要があります

### --exclude=REGEX, --exclude-dir=REGEX

正規表現に合致する名前のファイル/ディレクトリをスキャン対象外とします。
このオプションは複数回使用することができます。

### --include=REGEX, --include-dir=REGEX

正規表現に合致する名前のファイル/ディレクトリのみをスキャンします。
このオプションは複数回使用することができます。

### --bytecode[=yes(*)/no]

このオプションを有効にすると
ClamAV はデータベースからバイトコードを読み込みます。
このオプションを常に on にしておくことを強く推奨します。
off にした場合、新種のウィルスが検知されないことがあります。

### --bytecode-unsigned[=yes/no(*)]

外部の電子署名された ``.c[lv]d`` ファイルから
バイトコードを読み込むことを許可します。

**警告**: 信頼されていないソースから
バイトコードシグネチャを実行しないでください。
読み込んだファイルから任意のコードが
実行される恐れがあります。

### --bytecode-timeout=N

バイトコードのタイムアウト時間をミリ秒単位で設定します。
(既定値: 10000 = 10s)

### --statistics[=none(*)/bytecode/pcre]

実行統計を収集して出力します。

### --detect-pua[=yes/no(*)]

望ましくない可能性を持つアプリケーションを検知します。

### --exclude-pua=CATEGORY

指定した PUA カテゴリーを除外します。
このオプションは複数回使用することができます
PUA の完全な一覧は [Potentially Unwanted Applications (PUA)](https://docs.clamav.net/faq/faq-pua.html) を参照してください。

### --include-pua=CATEGORY

指定した PUA のみを検知対象とします。
このオプションは複数回使用することができます。
PUA の完全な一覧は [Potentially Unwanted Applications (PUA)](https://docs.clamav.net/faq/faq-pua.html) を参照してください。

### --detect-structured[=yes/no(*)]

SSN と文書/テキストファイル内のクレジットカード番号を検知する為に
DLP(Data Loss Prevention)モジュールを使用します。

### --structured-ssn-format=X

* X=0: ``xxx-yy-zzzz`` 形式(通常)の有効な SSN を検索します。
* X=1: ``xxxyyzzzz`` 形式(省略)の有効な SSN を検索します。
* X=2: 上記両方の形式で有効な SSN を検索します。

既定値は ``0`` です。

### --structured-ssn-count=#n

このオプションは、検出を生成するためにファイル内で見つかった
SSN(Social Security Numbers)の最小数を設定します(既定値: ``3``)

### --structured-cc-count=#n

このオプションは、検出を生成するためにファイル内で見つかった
クレジットカード番号の最小数を設定します(既定値: ``3``)

### --scan-mail[=yes(*)/no]

メールファイルをスキャンします。
このオプションを off にした場合でも、元のファイルはスキャンされます。
ただし個別のメッセージ/添付ファイルの解析は実行されません。

### --phishing-sigs[=yes(*)/no]

電子メール署名ベースのフィッシング検出を有効にします。

### --phishing-scan-urls[=yes(*)/no]

URL 署名ベースのフィッシング検出を有効にします。
(Heuristics.Phishing.Email.*)

### --heuristic-alerts[=yes(*)/no]

いくつかの事例(例. 複雑なマルウェア、画像ファイルの悪用等)では
ClamAV は正確な検知を提供する為に特別なアルゴリズムを使用します。
このオプションはアルゴリズム検知の制御に使用することができます。

### --heuristic-scan-precedence[=yes/no(*)]

ヒューリスティックマッチを優先させます。
有効にした場合、ヒューリスティックスキャン(例えばフィッシングスキャン)は
ウィルス/フィッシングの疑いがあるものを検出すると、
スキャンを即時停止します。
CPU スキャン時間の節約にお勧めです。

無効にした場合、ヒューリスティックスキャンによって検知された
ウィルス/フィッシングはスキャン終了時に限り報告されます。
アーカイブにヒューリスティックに検出された
ウイルス/フィッシングと実際のマルウェアの両方が含まれている場合、
実際のマルウェアが報告されます。

``Heuristics.*`` ウイルスを ``実際の`` マルウェアとは
異なる方法で処理する場合は、これを無効にしてください。
ヒューリスティックに検出されないウイルス(シグネチャベース)が最初に見つかった場合、
この設定オプションに関係なく、スキャンは直ちに中断されます。

### --normalize[=yes(*)/no]

html、スクリプト、テキストファイルの
標準化(空白スペースの圧縮、小文字表記への変換等)
を実施します。
yara 互換にしたい場合は ``normalize=no`` を使用してください。

### --scan-pe[=yes(*)/no]

``PE`` は ``Portable Executable`` の略語です。
``PE`` は全ての 32 bit 版 Windows OS において使用される
実行可能ファイル形式です。
ClamAV は既定の動作では、実行可能ファイルを深く解析します。
UPX や Petite 、 FSG のような
一般的な実行可能圧縮ファイルに対して解凍を試行します。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-elf[=yes(*)/no]

ELF(Executable and Linking Format)は UN*X 実行可能ファイルの標準的な形式です。
このオプションは ELF サポートを制御します。
当オプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-ole2[=yes(*)/no]

Microsoft Office ドキュメントと ``.msi`` ファイルをスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-pdf[=yes(*)/no]

PDF も含めてスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-swf[=yes(*)/no]

SWF ファイルをスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-html[=yes(*)/no]

HTML ファイルと HTML 内の埋め込みスクリプトを
検出、標準化/復号、スキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-xmldocs[=yes(*)/no]

libclamav がサポートする xml ベースのドキュメントファイルをスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-hwp3[=yes(*)/no]

HWP3 ファイルをスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --scan-archive[=yes(*)/no]

libclamav がサポートするアーカイブをスキャンします。
このオプションを off にした場合でも元のファイルはスキャンされます。
ただし追加の処理は実行されません。

### --alert-broken[=yes/no(*)]

破損した実行可能ファイル(PE & ELF)を報告します。

### --alert-encrypted[=yes/no(*)]

暗号化された圧縮ファイルと文書を報告します。

* ``.zip``
* ``.7zip``
* ``.rar``
* ``.pdf``

### --alert-encrypted-archive[=yes/no(*)]

暗号化された圧縮ファイルを報告します。

* ``.zip``
* ``.7zip``
* ``.rar``
* ``.pdf``

### --alert-encrypted-doc[=yes/no(*)]

暗号化された文書を報告します。

* ``.zip``
* ``.7zip``
* ``.rar``
* ``.pdf``

### --alert-macros[=yes/no(*)]

VBA マクロを含む OLE2 ファイルを報告します。
(Heuristics.OLE2.ContainsMacros)

### --alert-exceeds-max[=yes/no(*)]

最大ファイルサイズ、最大スキャンサイズ、最大再帰制限の
いずれかを超えるファイルを報告します。
(Heuristics.Limits.Exceeded)

### --alert-phishing-ssl[=yes/no(*)]

URL 内の SSL が一致しない電子メールを報告します。
(誤検知につながる可能性があります)

### --alert-phishing-cloak[=yes/no(*)]

隠し URL を含む電子メールを報告します。
(誤検知につながる可能性があります)

### --alert-partition-intersection[=yes/no(*)]

ヒューリスティックを使用して
ローディスクイメージ内のパーティション交差を検出します。

### --nocerts

PE ファイルの認証コード証明書チェーン検証を無効化します。

### --dumpcerts

PE ファイルの認証コード証明書チェーンを破棄します。

### --max-scantime=#n

スキャンを中止するまでの最大時間をミリ秒単位で指定します。
``0`` を指定すると制限を無効化します。
このオプションはシステムを DoS 攻撃から保護します。
(既定値: 120000 = 120s or 2min)

### --max-filesize=#n

個々の圧縮ファイルから最大 ``#n`` バイト
展開してスキャンします。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
このオプションはシステムを DoS 攻撃から保護します。
(既定値: 25  MB, 最大値: <4 GB)

### --max-scansize=#n

個々の圧縮ファイルから最大 ``#n`` バイト
展開してスキャンします。
圧縮ファイルのサイズと
圧縮ファイル内の全ファイルのサイズの合計が
スキャンサイズに加算されます。
例えば単一の ``1M`` ファイルを持つ
``1M`` 非圧縮アーカイブの [max-scansize](#--max-scansizen) は ``2M`` です。

値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
このオプションはシステムを DoS 攻撃から保護します。
(既定値: 100 MB, 最大値: <4 GB)

### --max-files=#n

個々のスキャンされたファイル
(対象が圧縮ファイル、ドキュメント、他種のコンテナである場合)から
最大 ``#n`` 個のファイルを展開します。
このオプションはシステムを DoS 攻撃から保護します。
(既定値: 10000)

### --max-recursion=#n

圧縮ファイルの再帰レベル制限を設定します。
このオプションはシステムを DoS 攻撃から保護します。
(既定値: 17)

### --max-dir-recursion=#n

スキャン対象とするディレクトリの最大深度を設定します。
(既定値: 15)

### --max-embeddedpe=#n

埋め込み PE を確認するファイルの最大サイズを設定します。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
(既定値: 10 MB, 最大値: <4 GB)

### --max-htmlnormalize=#n

標準化する HTML ファイルの最大サイズを設定します。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
(既定値: 10 MB, 最大値: <4 GB)

### --max-htmlnotags=#n

スキャン対象とする標準化された HTML ファイルの最大サイズを設定します。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
(既定値: 2 MB, 最大値: <4 GB)

### --max-scriptnormalize=#n

標準化するスクリプトファイルの最大サイズを設定します。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
(既定値: 5 MB, 最大値: <4 GB)

### --max-ziptypercg=#n

種類を再解析する圧縮ファイルの最大サイズを設定します。
値はキロバイト(``xK`` または ``xk``)
またはメガバイト(``xM`` または ``xm``)で指定します。
``x`` は数値です。
(既定値:  1  MB, 最大値: <4 GB)

### --max-partitions=#n

このオプションは、スキャン対象とする
ローディスクイメージのパーティションの
最大数を設定します。
値は必ず正の整数で指定してください。
(既定値: 50)

### --max-iconspe=#n

このオプションは、スキャン対象とする
PE を含むアイコンの最大数を設定します。
値は必ず正の整数で指定してください。
(既定値: 100)

### --max-rechwp3=#n

このオプションは、 HWP3 パース関数を
再帰的に呼び出す最大数を設定します。
(既定値: 16)

### --pcre-match-limit=#n

PCRE マッチ関数を呼び出す最大数を設定します。
(既定値: 100000)

### --pcre-recmatch-limit=#n

PCRE マッチ関数を再帰的に呼び出す最大数を設定します。
(既定値: 2000)

### --pcre-max-filesize=#n

PCRE サブシグマッチングを実行する
ファイルの最大サイズを設定します。
(既定値: 25 MB, 最大値: <4 GB)

### --disable-cache

スキャンされたファイルのハッシュサムの
キャッシングとキャッシュチェックを無効化します。

## ENVIRONMENT VARIABLES

clamscan は以下の環境変数を使用します:

### LD_LIBRARY_PATH

起動時に ``libclamunrar_iface`` 共有ライブラリモジュールを検索して、 RAR アーカイブサポートを有効にするために使用できます。

## EXAMPLES

(0) 単一ファイルをスキャンします:

```bash
clamscan file
```

(1) 現在の作業ディレクトリをスキャンします:

```bash
clamscan
```

(2) ``/home`` 内の全ファイルと全ての子ディレクトリをスキャンします:

```bash
clamscan -r /home
```

(3) ファイルからデータベースを読み込みます:

```bash
clamscan -d /tmp/newclamdb -r /tmp
```

(4) データストリームをスキャンします:

```bash
cat testfile | clamscan -
```

(5) メールスプールディレクトリをスキャンします:

```bash
clamscan -r /var/spool/mail
```

## RETURN CODES

* 0 : ウィルス検出無し

* 1 : ウィルス検出有り

* 2 : エラー発生

## SEE ALSO

* [clamdscan(1)](https://qiita.com/JhonnyBravo/items/a82b4658fa32d7380a3e)
* freshclam(1)
* freshclam.conf(5)