L
次のページ
H
前のページ
U
上のページ

« TimeCapsule への有線 LAN 経由バックアップが復活 | Main | Mac のセキュリティ上のリスクを軽減する簡単な 15 の設定事項 »

2009年04月23日

ClamAV 0.94 以降の PUA 検出機能

ClamAV は 0.91.2 から PUA の検出をサポートし始めました。PUA というのは望ましくないアプリケーションのことです。0.94 以降のこの 機能の紹介します。


PUA 検出機能概要

ClamAV 0.91.2 からサポートされた PUA 検出機能は望ましくないアプリケーションを今までのマルウェアやフィッシングメールのように検出するものです。PUA というのは望ましくないアプリケーションのことです。既知の PUA は、PUA であることと PUA としてカテゴリと共にそのシグネチャー(該当するかどうかを識別するためのもの)がウィルスデータベースに登録されていて、ClamAV はこれに基づいて検査対象が PUA であるかどうかを判断します。

望ましくないアプリケーションという言い方の通り、そのアプリケーションは直ちに悪意があるアプリケーションとは言えません。しかしマルウェアなどに悪用されることが多く、危険要因として列挙することができるものです。

例えばキーロガー。これはシステムの操作を記録して、それを再現するための手順を構築するのに役に立つ一方で、パスワードなどを盗み出すのにも悪用可能です。例えば IRC クライアント。IRC クライアントはチャットするためのアプリケーションで、即時性があるコミュニケーションに役に立つ一方で、マルウェアがその伝搬にしばしば利用します。Mac OS X の iChat でもそういうことがありましたよね。一般ユーザにとってキーロガーはほとんど悪意があり、IRC クライアントはそうではないケースが多いのではないかと思います。しかしそれはユーザの利用形態に依存することです。IRC クライアントを活用する意思が全く無いのにそれがインストールされているだけでなくオンラインになっているとしたら、そこに悪意がある仕掛けがあると疑ってみるのは合理的な用心でしょう。

このため、ClamAV 0.94 以降の PUA 検出機能はその機能自体の有効/無効を設定できるだけでなく、PUA を幾つかのカテゴリに分類して、そのカテゴリ毎に検出機能を有効/無効にすることができます。デフォルトでは PUA 検出機能自体が無効になっています。

利用方法

ClamAV には、そのパッケージに元から含まれているものを利用するとしたらですが、clamscan コマンドによるスキャンと、clamdscan などを通した clamd によるスキャンの二種類のスキャン方法があります。前者はコマンドラインのオプションで指定して PUA 検出機能を利用し、後者は clamd の設定ファイル clamd.conf で有効にして PUA 検出機能を利用します。それぞれ具体的な方法が異なるので分けて説明します。

clamscan での利用方法

clamscan で PUA 検出機能を利用するには、clamscan を実行するときのオプションでそれを指定します。該当するオプションには次のものがあります。

--detect-pua

PUA 検出機能を有効にします。--detect-pua=yes と指定することもできます。

--detect-pua=no で無効にできますが、デフォルトも無効なので敢えて無効であることを明示したいときにこう書くということでしょうね。

--exclude-pua=CATEGORY

PUA の一つのカテゴリに対して PUA 検出機能を無効にします。CATEGORY に当てはめることができるキーワードは後述します。このオプションを CATEGORY の部分を変えて幾つも指定することで複数のカテゴリに対して PUA 検出機能を無効にできます。

--include-pua=CATEGORY

CATEGORY で指定された PUA のカテゴリに対してのみ PUA 検出機能を有効にして、他のカテゴリに対しては無効にします。CATEGORY に当てはめることができるキーワードは後述します。このオプションを CATEGORY の部分を変えて幾つも指定することで複数のカテゴリを指定できます。

例えば自分のホームディレクトリに対して PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

clamscan --recursive --detect-pua ~

自分のホームディレクトリに対してランタイムパッカーとスクリプトというカテゴリ以外について PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

clamscan --recursive --detect-pua --exclude-pua=Packed --exclude-pua=Script ~

自分のホームディレクトリに対してランタイムパッカーとスクリプトというカテゴリにだけ PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

clamscan --recursive --detect-pua --include-pua=Packed --include-pua=Script ~
clamd での利用方法

clamd で PUA 検出機能を利用するには、clamd の設定ファイル clamd.conf で指定します。該当する設定には次があります。

DetectPUA yes

PUA 検出機能を有効にします。DetectPUA true とか DetectPUA 1 と指定することもできます。

DetectPUA noDetectPUA false あるいは DetectPUA 0 で無効にできますが、デフォルトも無効なので敢えて無効であることを明示したいときにこう書くということでしょうね。

ExcludePUA CATEGORY

PUA の一つのカテゴリに対して PUA 検出機能を無効にします。CATEGORY に当てはめることができるキーワードは後述します。この設定を CATEGORY の部分を変えて幾つも指定することで複数のカテゴリに対して PUA 検出機能を無効にできます。

IncludePUA CATEGORY

CATEGORY で指定された PUA のカテゴリに対してのみ PUA 検出機能を有効にして、他のカテゴリに対しては無効にします。CATEGORY に当てはめることができるキーワードは後述します。この設定を CATEGORY の部分を変えて幾つも指定することで複数のカテゴリを指定できます。

例えば PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

DetectPUA yes

ランタイムパッカーとスクリプトというカテゴリ以外について PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

DetectPUA yes
ExcludePUA Packed
ExcludePUA Script

ランタイムパッカーとスクリプトというカテゴリにだけ PUA 検出機能を有効にしてスキャンしたい場合は次のようにします。

DetectPUA yes
IncludePUA Packed
IncludePUA Script

PUA カテゴリのキーワード

PUA のカテゴリの指定に使用するキーワードは「PUA FAQ - Clam AntiVirus」に記載されています。今は英語でしかこのページが書かれていないので参考までに和訳してみました。

PUA – Possibly Unwanted Applications

ClamAV はいわゆる PUA の検出をサポートしています。現在、次のカテゴリを使用することができます:

Packed

これは、幾つかの種類のランタイムパッカーを使用しているファイルの検出に関するものです。ランタイムパッカーは外部の解凍ツールを使わなくても実行ファイルのサイズを戻すことができます。これが悪意あるものだと一般的には言えませんが、アンチウィルス製品による検出から逃れるために既に知られているマルウェアがランタイムパッカーを悪意あるファイルに広く使用しています。

PwTool

パスワードツールは、様々なアプリケーション(例えばメールクライアントやシステムパスワード)のためにパスワードの復元や暗号化をすることができる全てのアプリケーションを指します。パスワードを忘れてしまったときにはこのようなツールはとても役に立ちますが、パスワードを盗み出すのにも使用できます。

NetTool

ネットワークトラフィックあるいはネットワークをスニフ、フィルター、加工あるいはスキャンするのに使用することができるアプリケーション。例えば networkscanner は管理者にとってきわめて役に立つツールですが、一般ユーザがそれをいじくり回すのを目にしたくないかもしれません。同様のことが netcat やそれに類似したツールにも言えます。

P2P

ピアツーピアクライアントは大量の望まれないトラフィックを発生させることができ、ときには著作権が保護されたコンテンツ(楽曲や映画)をダウンロードすることで著作権を侵害することがあります。このためあまり望ましくないと考えています。

IRC

IRC クライアントは生産性を悪化させたり、依存症にさせたり … 悪意があるスクリプトの強力なプラットフォームです。(例として mIRC があります)

RAT

Remote Access Trojan は遠隔的にシステムにアクセスするのに使用されますが、VNC や RAdmin などのようにシステム管理にも使用することができます。

Tool

プロセスを強制終了させたり探したりするような一般的なシステムツールです。

Spy

キーロガー、スパイツール。

Server

DistributedNet のようなサーバベースのバッドウェア。

Script

Javascript、ActiveX あるいはそれに類似したもので書かれた既知の「問題がある」スクリプト。

2009年4月23日に Clam AntiVirus から和訳

方針に関するディスカッション

例えば RAT に分類される VNC は、そのコンピュータを遠隔操作して利用する場合に(他に選択肢が無ければ)必須のアプリケーションです。Mac OS X の中にも「デスクトップ共有」という名前で、VNC サーバもクライアントも入っているほどです。IRC に分類されるものもそこで IRC チャットを行う人が利用するコンピュータでは必須のアプリケーションです。IRC ではありませんがチャットクライアントなら Mac OS X にも iChat がバンドルされていますよね。しかし、多くの場合操作手順を記録する目的があってもキーロガーは必要ありません。単純にターミナルの内容を保存すればよいからです。

このように幾つかのカテゴリの PUA はそのシステムに無ければならず、幾つかのカテゴリの PUA はそのシステムにあってもよくて、更に幾つかのカテゴリの PUA はそのシステムにあってはならないということになります。まずは PUA のカテゴリ毎に、無ければならないもの、あってもよいもの、あってはならないものを考えてみることです。

それが面倒なときは時間がかかりますが clamscan に --infected --detect-pua --recursive オプションを付けて --remove オプションや --move=DIRECTORY オプションを付けずにシステムのアプリケーションやコマンドがあるディレクトリをスキャンしてみたらどうでしょう。ClamXav 用に ClamAV がインストールしてある Mac OS X でそうするには例えば次のようにします。

/usr/local/clamXav/bin/clamscan --infected --detect-pua --recursive /Applications /usr /System /Library /usr/local

何も検出されなければ、後で管理者であるあなたが敢えてインストールしなければ PUA がシステムのアプリケーションに追加されないので、勝手にインストールされないように PUA 検出機能の有効化だけをして、特に除外カテゴリは設定しないということにしておけばよいでしょう。逆に何かが検出されて、それらの全てが必要だったりあってもよいアプリケーションならば、それらが所属するカテゴリを除外して PUA 検出機能を有効にするか、そのカテゴリが多いならば逆にそれらが所属しないカテゴリだけに PUA 検出機能を有効にすればよいでしょう。

しかしながらこれはシステムワイドな領域について言えることです。各ユーザの領域にデータや設定ファイルはともかく、これらのアプリケーションがあること自体がおかしいです。特に理由がなければユーザ領域を検査するときは PUA 検出機能を有効にしておくのがよいでしょう。メールのフィルタとして ClamAV を利用しているときも同様です。メールは各ユーザが受け取るものですからこれもユーザ領域に属します。

このようにシステム領域とユーザ領域とで PUA 検出の方針が異なってきます。clamscan を利用している場合はその検査対象によってオプションを変えれば済みますが、clamd を利用しているときはそうはいきません。異なる方針で clamd を使用したい場合は異なる clamd.conf で複数の clamd を使用することになります。

複数の clamd を使用するときには、もし設定しているなら重ならないようにすべき設定が幾つかあります。ざっと見て次のものは重ならないようにしておく必要があります。

  • LogFile
  • PidFile
  • LocalSocket
  • TCPSocket
last generated
2009-12-29
page view