2007年11月10日 (土)

OSX.RSPlug に ClamAV と Virex が対応しました

先日「OSX.RSPlug.A Trojan Horse への対応状況」で ClamAV と Virex 7.2 が対応していない様子を紹介しましたが、両方とも既に対応しています。

これを契機に Mac における(個人向け)マルウェア対策についてちょっと考察してみました。


ClamAV 0.91.2

次は Clam AntiVirus (ClamAV) を利用する ClamdOmitScan を用いてスキャンした結果です。使用したウィルスデータベースは main.inc のバージョンが 44 で daily.inc のバージョンが 4741 です。問題のインストーラが収録されている procodec4108.dmg を /private/var/ClamdOmitScan/isolated/hoge/ にマウントした状態で行っています。

$ sudo ClamdOmitScan.pl --data=/var/ClamdOmitScan/scanData --config-file=/usr/local/clamXav/etc/clamd.conf --lock --scan-rsrc --stdout --recursive --infected hoge procodec4108.dmg 
/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Archive.pax.gz: OSX.DNSChanger FOUND
/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Resources/preinstall: OSX.DNSChanger FOUND
/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Resources/preupgrade: OSX.DNSChanger FOUND

----------- SCAN SUMMARY -----------
Start at: Sat Nov 10 17:26:14 2007
Server: /var/ClamdOmitScan/clamd.socket
Engine version: ClamAV 0.91.2/4741/Sat Nov 10 15:34:27 2007
Inspection period: 2419200 sec (4.0 w)
Scanning data: /var/ClamdOmitScan/scanData
Scanned directories: 6
Scanned files: 17
Checked files: 0
Infected files: 3
Data scanned: 103.57 KB
Data checked: 0.00 B
Time: 0.135 sec (0 m 0 s)

dmg ファイルそのものは検出しないので、うっかりダウンロードしただけで ClamXav の ClamXavSentry が見つけてくれるわけではありません。ClamAV を用いる ClamXav だけでウィルス対策をしている場合は次を習慣にするように心掛けましょう。

  • 何かをダウンロードしたらまずそれをスキャンする。
  • ダウンロードしたものがアーカイブなら展開した先もスキャンする。
  • ダウンロードしたものがディスクイメージならマウントした先もスキャンする。

Virex 7.2

.Mac で配布していた Virex で Tiger でも使えるバージョンがこのバージョンです。ウィルス定義は2007年11月07日版を用いました。

2007-11-10 17:28:48 +0900 で診断スキャンが始まりました

/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Archive.pax.gz/Archive.pax
        Found the OSX/Puper trojan !!!
/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Resources/preinstall
        Found the OSX/Puper trojan !!!
/private/var/ClamdOmitScan/isolated/hoge/install.pkg/Contents/Resources/preupgrade
        Found the OSX/Puper trojan !!!

Summary report on /private/var/ClamdOmitScan/isolated/hoge/*
File(s)
        Total files: ...........      17
        Clean: .................      12
        Not scanned: ...........       2
        Possibly Infected: .....       3

2007-11-10 17:28:50 +0900 で診断スキャンが完了しました

次は dmg ファイルそのもののスキャン結果です。

2007-11-10 17:30:27 +0900 で診断スキャンが始まりました

/private/var/ClamdOmitScan/isolated/procodec4108.dmg
        Found the OSX/Puper trojan !!!

Summary report on /private/var/ClamdOmitScan/isolated/procodec4108.dmg
File(s)
        Total files: ...........       1
        Clean: .................       0
        Not scanned: ...........       0
        Possibly Infected: .....       1

2007-11-10 17:30:29 +0900 で診断スキャンが完了しました

このように dmg ファイルのままでもマウントした内容でも検出します。

総括

このトロイの木馬は Windows などで出回っているマルウェアから見れば単純な手口が用いられています。単に拾い食いをしないという原則と、ブラウザなどのアプリの設定を安全側に倒すという原則を守っていれば未然に防げるからです。この単純さは一種の斥候行為と考えるべきでしょう。「増加傾向にあるMac版トロイの木馬--本格的な流行はまだ先:セキュリティ - ZDNet Japan」などにあるように、既にその亜種が幾つも発見されており、更には感染者の IP アドレスを収集もしているようです。

Mac ユーザは「Mac はウィルスは大丈夫」というのはこれから先のことではないということを念頭に置くべきです。まだマルウェアが量産される状況ではありませんから、今のうちに各自のデジタルライフのセキュリティ対策を検討しておきましょう。

話しが分散しないように、ここではウィルススキャナーに的を絞ってマルウェア対策を考えてみます。

マルウェアの侵入経路は様々です。例えば今回のように web ページからダウンロードさせたり、メールで送りつけたり、ネットワークから脆弱性を利用して勝手に入ってきたりです。ダウンロードしたりメールに添付されている場合は、ブラウザやメールソフトでダウンロード後自動実行されてないようになっていなければ直ぐに感染するわけではありませんが、そう設定していても脆弱性を利用して勝手にダウンロードさせられて勝手に実行させられるとか、脆弱性を利用して勝手に入ってくるとか、そういうのが Windows ではたくさんあります。Mac OS X も今後そういう勝手にやってくるケースが増えてくるかもしれませんし、うっかり開いたり実行してしまうということもあり得ます。

ですから水際の対策のために、ローカルにファイルが置かれた瞬間とか、ブラウザに表示させた瞬間に検知するようなウィルス対策ソフトがまずは要ります。Mac OS X 用にもそういうのが色々ありますが、たまたま私は Intego の VirusBarrier X4 を使用しています。十分に比較検討したわけではないのでそれがベストかどうかはわかりません。わかりませんが VirusBarrier X4 だけでは足りないと考えています。それは次の理由からです。

  • 感染ファイルをクリーンにしたとメッセージされても実際にクリーンにならないケースがあり、しかもその指摘をしても改善されない。

    これについては「ウィルス観測: Exploit.HTML.IFrame」を参照してください。

  • 検出率が低い。

    これは「僕は見ていた : ウィルス対策ソフトは最新版を使うべし」が劇的です。この後、私が持っている検証用の(でも実際の)マルウェアを Intego に全てサンプルとして送付しました。その甲斐あってかそれとは関係無くかわかりませんが、それから少しして 50% 程度までには検出するようになりました。それ以降はチェックしていません。

  • ディスクイメージファイルやアーカイブファイルなど直接開いたり実行するものでないファイルはチェック対象外という方針をとっていて、それを変える様子は無い。

    これには参照先はありません。Intego のサポートの方とのやりとりで、なんでこういう Mac OS X ターゲットの攻撃ファイルを検出しないのかという質問に何度かこういう方針を示されました。それでは足りないから考え直してくれとも要望は述べたのですが、まあそれは変える様子はないようです。

いつも Intego の製品にこういう文句を書いていますが、実は高く評価もしています。

  • ストレスを感じさせない。

    よく見ると結構マシンパワーを使っていたりするのですが、それをうまく隠しています。Windows などで入れたとたんにマシンが重くなるウィルス対策ソフトをよく体験しますが、Mac OS X をよく研究してあると思います。

  • Mac OS X ネイティブの脅威への対応は(きっと)確実。

    普段のウィルス定義の更新は緩慢なのですが、今回のように Mac OS X がターゲットのものは対応してきます。そうでなければ存在価値が半減してしまうのでここはきっちりやるはずです。

ここで言いたいのは VirusBarrier X4 の評価ではありません。VirusBarrier X4 のようにいわゆるリアルタイムチェックができる製品は一つは必要だということと、それが万全ではないということです。ベンダーによって得意不得意があるのです。それはウィルス定義に収録されるマルウェアの豊富さだったり、収録のスピードだったり、チェック対象の広さだったり、隔離や駆除の方法だったりと色々です。

ですから一つの製品に頼ってしまうのではなく、その補完として最低限もう一つは使うのがよいのです。

しかし、マルウェア対策に複数の製品を買うほど予算が潤沢にあるわけではないのが普通です。そこで登場するのが無料で使用できる製品です。古い .Mac ユーザなら Virex 7.2 や Virex 7.5 が使えます。Leopard は知りませんが Tiger では 7.5 は使えませんが 7.2 は使えます。しかしもう .Mac では Virex は配布していないので、無くしてしまった人や、最初から持ってない人もいるでしょう。それに Virex も実は検出率でいくと VirusBarrier X4 と同じくらいで、もっと検出率の高い無料のウィルススキャナーがあります。それが ClamAV です。ClamAV は UNIX 向けのものですが、Mac ユーザには ClamXav というその GUI ラッパーがあります。これらを用いてそれぞれの製品の欠点を補完し合うのがベストソリューションです。

私の例ですと次のような使い方をしています。

VirusBarrier X4

リアルタイムチェックによる水際の攻防に使っています。Mac OS X ターゲットのマルウェア担当でもあります。

しかし、マルウェア一般に対する検出能力は高くなく、普段のウィルス定義の更新もぽつぽつなので安心できるものではありません。

ClamXav

ClamXav 本体は使っておらず、そのヘルパーアプリの ClamXavSentry によって重要なフォルダーの監視をしています。ブラウザなどのダウンロードフォルダやキャッシュフォルダ、メールソフトのメール置き場、コマンドやアプリケーションがあるところなどです。これは高い検出率によって VirusBarrier X4 が見逃したものをフォローする目的です。

しかし監視フォルダーに置かれるファイルで ClamAV が検出可能なものであっても検出できないケースも存在します。ダウンロードスピードが間に合わないと、途中までダウンロードした状態でチェックが終わってしまうのです。ダウンロード後に一時ファイルから名前を直すタイプのブラウザ(例えば Firefox)ではかなり使えますが、そういうブラウザでもいつもそうなるわけでもありません。ですから疑似リアルタイムチェックではありますが、これで安心できるものでもありません。

Virex 7.2

Virex + Firefox + SafeDownload」によってダウンロードものの自動チェックに使っています。しかし ClamAV (つまりは ClamXav)の検出率の半分程度なので、どちらかというと多重チェックのためです。この結果、ブラウザでダウンロードしたものは自動で VirusBarrier X4、ClamAV、Virex 7.2 による三重チェックを受けるようになっています。

このやり方によるチェックは、ダウンロードが完全に終わってからチェックされるので ClamXavSentry の欠点を補います。

ClamdOmitScan

上に述べたのはどれも水際の攻防でした。しかし、そのときはウィルス定義に反映されておらず後から対応されたものは侵入を許してしまいます。また複数の人が使っているマシンでは、誰かがウィルススキャナーの利用をやめてしまうと、その人のところで水際の防御ができない状態になります。定期スキャンはこれをフォローするために必要です。

更に Virex や ClamXav そして ClamXavSentry によるスキャンではリソースフォークにマルウェアが隠されていてもこれを検出することができません。それに ClamXav によって設定される ClamAV による定期スキャンはとても重くて実用的ではありませんし、Virex 7.2 も同様です。リソースフォークも見てくれるだろうと予想している VirusBarrier X4 はリアルタイムチェックで使っていてしかもウィルス定義の更新は緩いので定期チェックでも同じチェックしかしないことが多くなって無駄です。どれも定期スキャン向きではありません。

ClamdOmitScan は Virex 7.2 や VirusBarrier X4 を遥かに凌駕する高い検出率の ClamAV を利用し、同じウィルス定義ファイルによる同じファイルのスキャンという無駄を省き、リソースフォークもチェックするソリューションです。

しかも私が必要性を強く感じる機能があれば必ずそれが反映されます。私と意見が合わないことはあり得ません。なぜなら私が作って公開しているからです。今は dmg ファイルや iso ファイルの中身をスキャンする機能のことを考えています。ClamdOmitScan で対応してもよいし ClamAV のパッチを作ってもよいしでどうしようかと思っています。

このように複数の製品をマルウェア対策に使用しています。よく複数使っていると言うと「それは重いでしょう」と言われますが、こういう使い方なら普段はほとんど重くなりませんし、一つだけでリアルタイムチェックも定期チェックも行っているよりは数段安心です。費用も VirusBarrier X4 分だけです。


Posted: 22:25    | Comment | Trackback


以下、類似エントリです。