トップページに戻る
tokix.netはネットワーク・セキュリティ周辺から半径rな雑文を垂れ流す不定期更新個人サイト>>このサイトについて

アンチ&アンチアンチ・ウイルス

<<トップカテゴリー「ScriptKiddies」に戻る

超初級ウイルスすり抜け講座 (>>この記事のみを表示)

最早メーカー製マシンにもアンチウイルスがプリインストールされている時代。コンピューターウイルス/トロイを相手に仕込もうと思うならば、「如何にしてアンチウイルスを潜るのか」ということを考えなくてはいけない。そのためにはどうすれば良いかというと、二つの方針がある。

  1. アンチウイルスのスキャンを行わせなければ良い
  2. アンチウイルスのスキャンが行われても検出されないようにすれば良い

ここでは二番目の方針について記述します。これは防衛側から見れば非常に危険な話で、つまり単純に言えば「落としたファイルを欠かさずスキャンしていても危険性は完全には消えていない」ということです。

少し踏み込むと、「スキャンを行わせない」という方針もまた「奥の深い話」です。例えばそれは「メールの自動スキャン機能がなければHTMLメールを利用しプレビューしただけで感染するウイルスも可能だ」という話でもあり、その先にある話もあるのですが今回はその話は外します。
アンチウイルスは基本的に二つの方法で「危険なプログラム」を判定しています。

  1. パターン一致
    ウイルスのパターンファイルとスキャン対象ファイルを比較し、「定義されたパターンが登場するか」を調べる。だからこそパターンファイルはマメに更新しなくては意味がない、という話ですね。
  2. プログラム解析
    「ヒューリスティックスキャン」とかいう言葉で説明されることも多いスキャン方法なんですが、プログラムの動作を解析し「危険な動作を行うプログラムか」を判断する。「パターン一致」と異なり、原理的には未知のウイルスにも対応可能です。

故に、自作したトロイなら検出されることは少ない(パターンに一致することはあり得ないし解析は非常に穴が多い)・・・というのは少し当サイトのストライクゾーンから外れる(多分最近はプログラム組める人自体少ないと思う)のでここでは別の話をします。

さて、単純化して言えば、「プログラム(ウイルス)のパターン」というのは、exeファイルをバイナリエディタで開いたアレです。

つまり、「パターン一致」を潜るためには、ウイルスのプログラムパターンを書き換えてしまえば良い。では如何にして書き換えるのか。最も分かりやすいと思われる例を二つ挙げます。

  • ウイルスファイルを圧縮書庫に入れる
  • ウイルスファイルをCDイメージに入れる

これだけで「パターン」は書き換えられてしまう。ではアンチウイルスソフトはどうすれば良いのか?というと、圧縮書庫やCDイメージを仮想的に展開して内部のファイルに対するスキャンを行えば良い。例えば「a.zip」というZIPファイル内に「a.exe」と「b.exe」が入っていて、「b.exe」がウイルスに感染している場合。

  1. アンチウイルスはa.zipを解析し、その中に「a.exe」「b.exe」が入っていることを知る
  2. アンチウイルスはa.exeとb.exeを取り出し、それぞれに対してスキャンを行う
  3. アンチウイルスはb.exeがウイルスに感染していることを突き止める

このような動作が行われれば「圧縮書庫内のウイルスを発見する」ことが出来る。つまり何が言いたいかと言えば

アンチウイルスはa.zipを解析し

アンチウイルスソフトが対応している形式でなければ、圧縮書庫内のウイルスは発見されない(「圧縮書庫」でなく「CDイメージ」でも同じ)。

「では相手が使用しているアンチウイルスはどのような形式に対応しているのか」ということが分かれば「攻撃のための足がかり」になりますし、「自分が使用しているアンチウイルスは〜」ということが分かれば自己防衛のために役に立つ。ウイルスファイルを何処かから手に入れて(最近だとWinnyあたりでデータベースを調べ「感染している注意!」というファイルを落とすのが一番楽でしょうか)実験してみましょう。

ウイルス(トロイサーバー)を圧縮書庫やCDイメージの中に入れて、その圧縮書庫やCDイメージファイルに対してアンチウイルスのスキャンを行うのです。以下がNortonAntiVirusのスキャン結果。

ファイル形式スキャン結果
無圧縮状態のウイルスファイル検出できる(当たり前ですが)
ウイルスをZIPファイルに入れる検出できる
ウイルスをLZHファイルに入れる検出できる
ウイルスをRAR分割圧縮する検出できない
ウイルスをISOイメージに入れる検出できない

ちなみに何故わざわざLZHを持ち出したかというと、LZHは日本独自の圧縮方式なので海外製のアンチウイルスソフトだと対応していない場合が多いからです(ノートンは対応してましたが)。


ノートン以外を使っている人は自分で実験してみて欲しいですし、またノートンを使っている人でも他の形式に関して自分で実験してみて欲しいのですが、これが現状です。市販ソフトであっても対応形式はこの程度しかない。例えば、CDイメージの中にウイルスファイルを仕込み、自動起動によってそのファイルが実行されるようにしておけば、「CDイメージをスキャンしてもウイルスは発見されず、マウントしてからCD内をスキャンすれば発見できるが自動起動をオンにしているとスキャンする間もなく感染する」という事態が発生する訳です。

落としたファイルを全てスキャンしていても、ウイルスの「すり抜け」は発生しうる。故に我々は「どうすれば」すり抜けが発生しなくなるのかを知らなければいけない。例えばノートンユーザーであれば「Winnyで落としたイメージファイルは必ず解凍し自動起動オフでマウントし内部をスキャンする」という癖を付けましょう。「CDイメージには対応しているがイメージファイルを圧縮した状態の書庫には対応していない」というアンチウイルスを使っている人であれば「Winnyで落としたイメージファイルは必ず解凍しスキャンする」という癖を付けましょう。

アンチウイルスソフトを選ぶ時に「対応ウイルスの数」という指標ばかりが注目されますが、ここまで書いてきたような「すり抜け」が存在する以上、「対応ファイル形式の数」というのも現実レベルでは重要な指標でしょう。・・・という話(と対応形式が多いアンチウイルスソフトの紹介)を明後日発売のネットランナー9月号で書いているので詳細は省略しますが、「アンチウイルスのパターンを更新し落としたファイルを(落とした状態のまま)スキャンしていれば安心」という「常識」には大きな穴があり、その穴は攻撃側にとっても防衛側にとっても非常に興味深い。という話でした。

アンチウイルスを複数入れてみよう (>>この記事のみを表示)

「アンチウイルスソフトを複数インストールするのは危険」

この台詞はいわゆる「パソコン初心者向けサイト/雑誌」でも頻繁に見ることが出来る訳ですが、この台詞はどういう意味なのだろうか、というところから話を始めます。


前提として、アプリケーションというのは組み合わせ次第で「競合」「相性問題」といった現象を起こしうる代物です。新しいソフトを精力的に試している人なら「何故か分からないが動作しなかった」ということが希にあると思います。ライブラリとかランタイムとかそういう問題でなくて、何故かどうしても動作しないアプリ。ああいうのは基本的には、既に入っているどれかのアプリと相性が悪い、ということ、が多いと思います。

だから世界中のあらゆるアプリがそうであるように、アンチウイルスソフトも他のアプリと「競合しうる」。でもそれは正直言って交通事故のような存在であって、遭遇してしまったら「運が悪かった」と思うのが「一般的」な対処法です。だから雑誌だってウェブだって何らかのアプリを紹介する時にイチイチ「ひょっとしたら何かのアプリと相性悪かったりする可能性もある、ような気がします」なんて書かない。


問題なのは、「何故アンチウイルスは他の種類のアプリよりもそういった現象を起こしやすいのか」ということです。アンチウイルスだけにそういう記述があるのには理由があり、つまりアンチウイルスソフトが他のソフトよりもシステムの深部に入り込むソフトだからです。深部に入り込むソフトであるが故に、その「深部」において「競合」「相性問題」を起こしやすい。

さて、では「アンチウイルソフト」というモノの仕事を羅列しましょう。

  • (ファイルやフォルダの)右クリックメニューからファイルをスキャンしパターン一致やパターン解析によってそのファイルがウイルスに侵されているかを判断する
  • 上記のスキャンを、定められたスケジュールに従い実行する
  • メールソフトとメールサーバーの間にローカルプロキシとして入り込み受信メールをスキャンする
  • ブラウザとウェブサーバーの間にローカルプロキシとして入り込み受信データをスキャンする

他にもソフトによって実装していたり実装していなかったりする機能もありますが、メインとなるのは上記でしょうか。さて。

  • 右クリックメニューからソフトでファイルを開き、そのファイルに対し何らかの処理を行う
  • タスクスケジュールからソフトを起動しドライブ内のファイルに対し何らかの処理を行う

ここに、「アンチウイルスソフト特有の競合/相性問題」は存在し得ない。これは別に圧縮解凍ソフトでもコーデック判別ソフトでもMP3タグ編集ソフトでもデフラグソフトでも行っている処理です。

  • メールソフトとメールサーバーの間にローカルプロキシとして入り込み何らかの処理をする
  • ブラウザとウェブサーバーの間にローカルプロキシとして入り込み何らかの処理をする

ここになると少し違ってくる。例えばアンチウイルスソフトAとBを同時にインストールしていたら

メールサーバー→アンチウイルスA→アンチウイルスB→メールソフト

といった具合にデータが転送されないと正常に動作しない。例えばメールサーバーからのデータをアンチウイルスAとBが取り合ってしまったら問題が起こる。ブラウザでも話は同じで。こういった、本来想定していない転送(単独でインストールされている場合とは異なる転送)に、自動であれ詳細設定が必要であれ、対応しているソフトであれば問題(アンチウイルスソフト特有の)は起こらない。

ここでは触れませんが、更にシステムの深部に関わる「仕事」であれば更に問題が発生する可能性は高くなる。何が言いたいかというと、「ウイルスを探す」という処理自体に問題がある訳ではなくて、「それを確実にする」という部分(例えば添付ファイルを手動スキャンするより自動でスキャンした方が安全だ)に「アンチウイルスソフトを複数入れると問題が起こりやすい」という、その「起こりやすい」の原因がある。


この世には数多くの「アンチウイルスソフト」が存在します。それは逆に言うと、それだけ「完璧」なソフトは無い、ということでもあります。

※参考

Warezのためのウイルス防衛術

市販の有名アンチウイルスではトロイの驚異を現実的に消すことができない、という話

超初級ウイルスすり抜け講座

圧縮書庫やCDイメージ内ファイルに隠蔽されたウイルスを検出するには、という話

アンチウイルスソフトの「常駐機能(例えば上記のようにメーラーやブラウザとサーバーの間に入り込む機能)」は有用ですが、それがアンチウイルスソフトを「競合/相性問題が起こりやすいソフト」にしている原因でもある。本来、「右クリックでパターンファイルとファイルを照合しウイルスを探す」程度の処理であれば問題が起こる可能性は極めて低い。

だからこそ、「ウイルス対策」ということを真面目に考えるのであれば、フリーのアンチウイルスソフト・・・それは多くの場合常駐機能を持つ有料版から常駐機能を外して無料で配布されている・・・の存在を無視してはいけないと思います。あるアンチウイルスソフトでは発見できないが他のソフトでは発見できるウイルスもある。あるアンチウイルスソフトでしかスキャンできない形式のファイルもある。


例えば、僕が提案するのは、市販アンチウイルスソフト(常駐機能有り)+何らかの方向に強い海外製フリーアンチウイルスソフト(常駐機能無し)です。「何らかの方向」というのは考え方次第です。「トロイに強い」でも「CDイメージ内のスキャンに対応している」でも何でもいいです。Antinnyの時は「局所的なウイルスでも対応が迅速」というソフトの株が上がりましたね。どのような点を重視するかというのは、つまり「自分が使っているメインアンチウイルスは何に弱いのか」「自分はどういった方面に強いアンチウイルスを必要としているのか」という点次第です。

「ノートン買ったからフリーはどうでもいいや」という考え方は実のところ危険でもある。総じて「市販ソフト>フリーソフト」なのは事実かもしれませんが、基本的にアンチウイルスソフトというのは「どれか一つでOK」というタイプのツールではない。「一匹でも魚が網から抜けたら終わり」という世界であり、そして穴のない網が存在しない以上、基本的に網の枚数は多い方が良い。

これは僕自身も反省しなくてはいけない話なんですが、どうしても「アンチウイルス」というのは紹介する際に「あー競合とかで苦情くると嫌だなぁ」という防御姿勢を見せざるを得ないソフトなので「どれか一つにしようぜ」という論調が目立ってしまう訳ですが、「何故『一つにしよう』と言われるのか」という点を踏まえた上で、自分にとってベストな組み合わせ・・・つまり競合などの問題が起こらずお互いの弱点をフォローし合える組み合わせ・・・を、探していくべきソフトだと思います。

Warezのためのウイルス防衛術 (>>この記事のみを表示)

まぁ、何というか、記事タイトルをどう誤魔化すか考えたっちゃ考えたんですが、つまるところそういう話なので「ウェブ媒体で気にしすぎても意味ないしな」ということでこのタイトルで書きます。

いわゆる「カジュアルなWarez」がWinMX以降蔓延し、ウイルス・トロイといった攻撃に対する防御力のないユーザーが危険性を認識せずにアプリケーション(と称されているファイル)を実行するケースが増えている。といった話を聞いたことはあるような気がするんだけど実際問題どうすればいいのか分からないしまぁ大丈夫だろう。と思っている人向けです。

□1:落とした段階での最低限のスキャン

超初級ウイルスすり抜け講座でも書いているのでここでは省略説明しますが、基本的には「アンチウイルスソフト」というのは「常駐機能のある市販ソフト+常駐機能のない海外製フリーソフト」の組み合わせがベストでしょう。「常駐機能のある市販ソフト」は別に何でも良いのですが問題は「常駐機能のない海外製フリーソフト」。ここでは具体的なソフト名を挙げずに書きますが、「どういうツールが(この用途で)オススメなのか」という点を理解して欲しいのです。この文章が読まれるのが2006年だろうと2010年だろうと、「そういう機能(性質)を持ったウイルススキャナーが良い」という点は変わらない(はず)。

で、この用途に適したスキャナーですが、「落としたファイルをそのままスキャンすれば内部ファイルに対するスキャンが行われるツール」です。今の主流で言うなら「圧縮書庫の中に含まれるCDイメージの中に含まれるファイルのスキャン」が可能なツール。つまるところ、いわゆる「*****(ISO).rar」といったファイルを普通にスキャンすればイメージ内のファイルまで潜ったスキャンが行われる、という意味です。超初級ウイルスすり抜け講座でも書きましたが、市販ソフトでもここまで潜ったスキャンが可能なツールは少ない。逆に言うと、ここまで潜れないスキャナーで「*****(ISO).rar」をスキャンしても内部のウイルスは発見されない。

後述しますが、海外製フリーソフトはAntinnyのように国内局所的ウイルスなどへの対応が弱く、「これで発見されなければ安全」という訳ではない。あくまでこれは最低限のスキャンです。

□2:解凍しマウントした段階でのスキャン

ぶっちゃけWarezなんてのは落としたファイルの8割くらいはインストールせず交換材料にするライフスタイルなので、正直Winnyなどの匿名ネットワーク上で全てのファイルを丁寧にスキャンする手間は微妙でしょう(ただ言うまでもなく会員制とか直接交換制とかでウイルススキャンが不十分なファイルを交換材料にすると普通に嫌われるので止めた方が良いよ、とだけ)。ただ、どんな交換手段だろうと、自分でインストールするファイルは□1のスキャンだけでは圧倒的に足りない。インストール前には、まず(自動起動をオフにして)仮想ドライブに当該ファイルをマウントし内部ファイルへのスキャンを行いましょう。このようにしてスキャンを行えば、□1のように「圧縮書庫の中に含まれるCDイメージの中に含まれるファイルのスキャン」に対応していないスキャナーでも内部ファイルのウイルスを発見することが出来る。

この用途に関しては、市販ウイルススキャナーとトロイスキャナー(アンチトロイソフト)の併用をオススメします。まずもって、□1では不十分になりがちな「国内局所的ウイルス」「新種ウイルス」への対応がまともな市販ソフトは使わざるを得ないし、アンチトロイも正直不可欠だと思います。トロイなんてのは攻撃者からすれば「どのトロイでも良い」訳であり、人気の高いトロイとは「ノートンでは発見できないトロイ」「ウイルスバスターでは〜」等です。つまり市販ソフトで発見できない(対応してない)から便利なのであり、市販ソフトが世に出回るトロイの99%を発見できるとしても、残り1%のためにアンチトロイを導入すべきです。それなりのスキルを持った攻撃者が使うトロイは、間違いなく「残り1%」なのだから。

□3:最終チェックのための仮想OS

ここまででのチェックで何も発見されなければ、そのファイルには

  • ある程度古い有名なウイルス
  • 国内局所的ウイルス
  • 新種ウイルス
  • ほぼ全てのトロイ

は含まれていない。しかしそれでも全く対応できない種類の「危険」はまだ存在している。攻撃者が自作したウイルス(攻撃ツール)/トロイ。はっきり言って、自作の攻撃ツールによる危険を完全に取り除く手段など存在しない。存在しないけど確率を下げることは出来る。自作攻撃ツールは基本的に潜伏性が低い(というか基本的に潜伏する必要がない)ので感染すれば分かります。目に見える障害(HDDがインストールされた!とか)や外部から目に見える異常(不審なIPアドレス等宛に通信を行い続けるとか)が感染直後から発生することが多い(と思う)ので、最終チェックとは「感染しても構わない環境でインストールする」です。マシンが複数台あればスタンドアロン環境でインストールしても良いんですが、一番手軽なのは仮想OS。MSのVirtualPCなどを使いWin上でWinを動かし、そのWinに対して当該ファイルをインストールすれば良いでしょう。この場合、「外部から目に見える異常」の「外部」とは「(非仮想の)メインOS」です。

ちなみに何故「最終チェック」かというと、この方法では普通のウイルスを発見するのが意外と難しいからです。つまり潜伏期間を持った「普通の」ウイルス。元々仮想OSなんか動作は軽快でないので「何か重いのでおかしい」というのも分かりにくいし。


まぁ単純なアウトラインなので「この方法を試したのに感染したよ責任取れ」と言われても「そう言われても」としか言いようがないですが、この方法で大半のウイルス・トロイには対応できると思います。で、つまり

  • 所詮「大半」でありいわゆる「at your own risk」なんだよどこまでいっても
  • アプリに関しては「安全性の確保」というのはこのくらい面倒な作業なんだよ(動画や画像などは「メディアプレイヤーでそのファイルを開く」という方法で鑑賞するが故に例外的なセキュリティホールを除けば基本的に安全なファイルだが、アプリは基本的に「そのファイルに好きなことをさせる」訳であり、危険度が段違いに高い)

ので、そのことを認識した上で(どこまでいっても完全には取り除くことの出来ない危険性が残ることを覚悟した上で)こうした手間をかけるか、別の方法で安全を図る(信頼できる人が「安全」と判定したファイルだけを実行する、など)か、手を出さないか。選択肢はそのくらいしか無いとは思います。

AV比較サイトのススメ (>>この記事のみを表示)

アンチウイルスソフトを、どのように選んでいるだろうか。一つの方針として、「インターネット上の比較サイトを参考にする」という方法論を紹介します。

ただし、この方法論に関してはお決まりの「ケチ」があるので先に書いておくと

その比較方法に意味はあるのかい?

即ち、アンチウイルスソフトという商品が「性能と利便性が高い」といった、極めてファジーな評価でしか語れない代物であるが故に、どんなテストを行ったところで、「全ての人間にとって有意義な数字」なんて比較は不可能だ。


従って

  • そのテストはどのような方法で行われたのか
  • その方法はどのような需要に合致するか
  • その方法はどのような需要には合致しないか

これを自分で判断できなければ意味がない。先に「需要」の選択肢を書いておくと

  • 有効な(例えば、実際に流通してもいないマイナーウイルスへの対応が多いことが「有効」かどうかは人それぞれだろうし、亜種を同種と数えるか別カウントするかによってウイルスソフト自信が自己申告する「対応数」など変わってくる)対応ウイルス数が多いアンチウイルスソフトが欲しい(対応数が多ければ当然感染の危険性は下がる)
  • ヒューリスティックスキャン*1エンジンの精度が高いアンチウイルスソフトが欲しい(個人作成のトロイなどパターン一致ではどうにもならないケースにも対応できる)
  • スキャンが早いアンチウイルスソフトが欲しい(スキャンが早ければちょっとした時間にウイルスチェックが可能なので早期発見が可能)

と、いった感じでしょうか。

当サイトは以前から圧縮書庫・CDイメージファイル内のファイルがウイルスに感染していた場合のスキャン性能(例えばノートンでは分割rarやイメージファイル内のウイルスを検出できない)をピックアップしてきましたが

※参考

超初級ウイルスすり抜け講座

この件に関してはマトモな比較を行っているサイトが(僕の知る限り)存在しないので(というか、だからピックアップした、という言い方が正しい)ここでは外しておきます。正直、金にもならないのに仮想OS総動員で比較とかやってられないので紙媒体に書くチャンスがあったら主要アンチウイルスできちんと比較しますがね!

と、いうことで「こういう世界(アンチウイルス同士をデータ的に比較する)があるんだ」というのがこのテキストの要点なんですが、主な比較サイトを紹介して記事を終わらせます。見れば分かると思いますが、例えばノートンやウイルスバスターといった有名市販アンチウイルスが、決して世界的に見て「性能の良い」アンチウイルスな訳ではない。

「ウイルスに感染したんです助けてください」とかサポート電話をかけるためにも有名ソフトの方がいいぜ、という「需要」はもちろん存在すると思いますが、それ以外の人は下記のような比較サイトを一度でも見るべきだ、と思います。最初に書いたように、こうした比較サイトに絶対的な意味があるとは思いませんが参考文献として。「対応ウイルス数が多い?出回ってもいないマイナーウイルスに対応しまくってても意味がないし処理が重くなるだけじゃん」「ヒューリスティックスキャン性能が高い?パターンファイルがしっかりしていれば意味がない機能じゃん」などなど、各比較サイトの出した「データ」をどのように判断しどのソフトを選ぶかは人それぞれ、ということで。


そんな訳で比較サイトリンク集。

  • AV-Comparatives.org
    有効な対応ウイルス数の指標となる「On-demand comparative」と、ヒューリスティックスキャンエンジン性能の指標となる「Retrospective/ProActive Test」
  • www.virus.gr
    有効な対応ウイルス数の指標
  • Virus Bulletin
    アンチウイルスソフト比較では一定の権威があるサイトですが比較記事は年間195ユーロ払わないと読めないので正直アレだ。ただ各ソフトの受賞回数は参照できるので、金を払わなくても「長期的に一定の評価を受けている安定したソフト」という指標には利用できます。

他にもあったら教えて下さいまし。


  • *1: プログラムファイルを解析し危険な処理を行うかどうかを判断するスキャン方法。原理的には未知のウイルスにも対応可能、という感じです。少なくとも市販アンチウイルスには大抵搭載されているので「そのエンジンの精度の差」という指標が存在する訳です。

Winnyとウイルス感染の危険性 (>>この記事のみを表示)

ウイルスの感染防止に有効な手段は見つかっておらず、「パソコンを使わないことが唯一の対策」というのが現状だ。


少し前に「Winnyネットワーク上で実際に流通している各種ウイルス(亜種)を集めまくり各フリーアンチウイルスソフトが何処まで亜種に対応しているのか実験」を(紙媒体で)やったので当時の亜種なら大体コンプしてるはずなんですが、このウイルスの正確な仕様に関して。・・・まぁWinny使ってる人はこんな記事読まなくても実体験として知っていると思いますが、要は非Winnyユーザーを全力で誤解させる記事があるから、なんですけどね。

ページ末尾の日時を見ていただければ分かると思いますが、この記事は2005年6月に書かれたものです。2006年春現在再びWinnyウイルスが注目を集めていますが、この記事は様々な点において「古い」ことをご了承下さい。

  • 基本的には単体exeファイルでの拡散(圧縮し再配布していると思われるケースもある)
  • 異常に長いファイル名が基本仕様(「お宝ファイル.zip   .exe」といった二重拡張子・・・実際にはもっと空白が長い・・・で、つまり本来の拡張子を誤解させダブルクリックを誘うという感じです)
  • アイコン偽装が基本仕様(例えば上記のウイルスファイルならばアイコンはフォルダアイコンになっているでしょう。exeファイルは内部リソースによってアイコンを任意に・・・フォルダと同じアイコンでも何でも・・・設定可能なので)

ま、つまるところ、別に新しくも何ともない感染方法だ。ウイルスの性能というのは基本的に

  • いかにして新規ターゲットのマシン上で実行されるか(例えば「プレビューしただけで感染するメール添付型ウイルス」はこの意味で新しかった)
  • 感染後ターゲットマシン上で何を行うか(Winny上で流通しているデータ暴露型ウイルスはこの意味で新しかった)
  • いかにして新規ターゲットへの二次感染を促すか(「メール差出元を偽装し自身のコピーを送信するメール添付型ウイルス」はこの意味で新しかった)

という三つから成っていると思いますが、別にWinnyネットワーク上において一点目で「新しい」ウイルスは(少なくとも僕がチェックした範囲では)流通などしていません。

ウィニーを使いさえしなければ、暴露ウイルスには感染しない。機密情報や個人情報を入れたパソコンで、趣味を楽しむためにウィニーを利用したことが、被害を招く。「軽率」と批判されても仕方のない行為だ。暴露ウイルスの感染防止に有効な手段は見つかっておらず、「ウィニーを使わないことが唯一の対策」というのが現状だ。

MSN-Mainichi内「「トロイの木馬」がファイル内データを暴露」より

「ウイルスに感染する確率」「感染時に失うもの」というのは自身のパソコン利用法によって異なる。従って僕らはその「リスク」を考慮しセキュリティ対策を行う「のが得」である。

※参考

セキュリティリスクとは何なのか

既に読んでくれている人向けに捕捉を行うと、正直言って、メール添付型ウイルスの基本仕様が「自身のコピーを送る際に差出人を偽装する」になって以来「感染すると知り合いにもウイルスメールが送られるので信用を失います」という論は成立していないんじゃないか?(で、結局残ったのが「迷惑だから」なんですか?)という記事です。

「Winnyを使う」ということは「ウイルスが届けられる経路が一つ増える」「世界的にマイナーでも日本独自のファイル共有ソフトであるWinny上ではメジャーなウイルスを処理するケースが増える」という意味であり、それ以上ではない。

当サイトは

暴露ウイルスの感染防止に有効な手段

として以下の二つの話を紹介します。

  • 国内マイナーウイルスにも対応できるアンチウイルスソフト(この話は紙媒体でも書いたので割愛しますが要は「フリーの中のあんまアテにならないツールは良くない」という感じです、Winny使えば色々アレで金もアレだしアンチウイルスくらい買うのは「結果的に得できる類の出費」なんじゃないですかね、上の話的に)を使いましょう
  • ダウンロードフォルダでは実行ファイルの実行を禁止しましょう

※参考

添付ファイルの自動実行を抑止する

「添付ファイルが保存されるフォルダにおいて実行ファイルの実行を禁止する(ダブルクリックしてもエラーが出て実行できない)」設定を行う方法ですが、同じ方法でダウンロードフォルダパスを指定すればOKです。あくまで「実行ファイル実行の禁止」なので、例えばダウンロードフォルダ内の圧縮ファイルを解凍ツールで開いたり、動画ファイルをメディアプレイヤーツールで開いたりすることは通常通り可能です(「ダブルクリックにより関連付けされているツールでそのファイルを開く」は「そのファイルを実行する」ではない)。

マニュアルの隙とは何なのか

と、いう話の続き。

まぁ有名な話ですしWinnyユーザーの多くは知っていると思うんですが、上の毎日新聞の記事を読んで「あぁWinnyを使うとウイルス感染を防げないんだ、怖いな」とか言っている友達を見かけたらこのページを紹介してあげて下さい(そんなまとめか)。

マニュアルの隙とは何なのか (>>この記事のみを表示)

「絶対に捕まらないための殺人マニュアル」を書くことはおそらく可能だ。だが、多くの人間は、そのマニュアルに書いていないことを行い、そのせいで捕まるだろう。


「ウイルス感染を防ぐにはどうすればいいか」という論は(当サイトも公開しているし)ネット中にあるだろう。だが例えば「解凍ツールの解凍先指定をどうしていますか?」というテーマを「ウイルス」と絡めて書くテキストがどのくらいあるだろうか。


前提として書いておくが、ダウンロードフォルダでは実行ファイルの実行を禁止すべきだ。アイコンを偽装したウイルスファイル(実行ファイル)を「うっかり」ダブルクリックする危険性は否定できない。その場合でも感染することがないように。

※参考

添付ファイルの自動実行を抑止する

「添付ファイルが保存されるフォルダにおいて実行ファイルの実行を禁止する(ダブルクリックしてもエラーが出て実行できない)」設定を行う方法ですが、同じ方法でダウンロードフォルダパスを指定すればOKです。あくまで「実行ファイル実行の禁止」なので、例えばダウンロードフォルダ内の圧縮ファイルを解凍ツールで開いたり、動画ファイルをメディアプレイヤーツールで開いたりすることは通常通り可能です(「ダブルクリックにより関連付けされているツールでそのファイルを開く」は「そのファイルを実行する」ではない)。

OK。これでダウンロードフォルダ内アイテムは、自覚的に他フォルダに移動(ないし、解凍後内部CDイメージファイルをマウント、など)しなければ実行できない。

(いわゆる「files」形式で配布されている)オンラインソフトをダウンロードした場合は「C:\Program Files」などに移動させてから実行するだろうし、具体的に書くと当サイトの厨サイト度が上がりそうな様々な事情で手に入ったCDイメージファイルはマウントして使うだろうから、特に「不便」になることはない。設定が若干面倒なのがネックだが、一度設定すればそれで「セキュリティが上がる」訳だ。


そして、ここで「解凍ツールの解凍先指定をどうしていますか?」というテーマが登場する。多くの解凍ツールは

  • あらかじめ指定しておいたフォルダに書庫内ファイルを解凍
  • 書庫ファイルと同じフォルダに書庫内ファイルを解凍

といった設定を行うことが出来る。そしてここで「あらかじめ指定しておいたフォルダに書庫内ファイルを解凍」を選ぶ人・・・別にそのこと自体が悪い訳ではない・・・は、更にここから先を行わなくてはいけない。

指定したフォルダでは実行ファイルの実行を禁止する

例えば。

  1. 「a.zip」の中に「a.zip  .exe(いわゆる二重拡張子のウイルスファイル)」が含まれていた
  2. ZIPファイルの解凍先がデスクトップであるなら、「a.zip  .exe」は「C:\Documents and Settings/ユーザー名/デスクトップ/」に生成される
  3. それは、(明示的に禁止しなければ)実行ファイルの実行が許可されているフォルダだ。


更に続けよう。(エクスプローラー以外の)高機能ファイラーは「ウイルス防止」という意味でも有用だ。何故なら

  • 特定拡張子のファイルを色分け表示できる(例えばexeファイルを赤文字で表示するよう設定しておけば「うっかりダブルクリック」する危険性は下がるだろう)
  • 表示方式(アイコン/詳細表示/縮小表示・・・)を固定できる(ダウンロードフォルダでは詳細表示を行うよう設定しておけば「うっかりダブルクリック」する危険性は下がるだろう)

からだ。そしてその環境を作ったのならば(&フォルダをファイラーに関連付けしていないならば)、解凍ツールの「解凍後に出力先フォルダを開く」といった設定はオフにすべきだ。

  1. ダウンロードフォルダをファイラーで開く
  2. (ZIPファイルのダブルクリックにより)解凍を行う
  3. 解凍先フォルダがエクスプローラで開かれる
  4. エクスプローラの「表示方式」固定は弱いので、例えば「大きなアイコン」で当該フォルダが開かれる
  5. それは、長いファイル名の場合にファイル名の末尾が隠れる表示方式だ(「この中にお宝があるよ    .exe」とかだと「exe」は見えない)

分かりやすく言うと、右のような設定を(特に意識無く)行うことが危険なのだ。

ダウンロードフォルダで圧縮ファイルをダブルクリックし、この「フォルダらしきもの(実体はexeファイルでありウイルス)」をダブルクリックしたら感染する、と。


普段自分が(何気なく)何をしているのか、客観的に観察しなければいけない。「何気なく」行っていることにこそ、隙が存在するんだ。「テーマ」とされることが多い行為には、それぞれ「マニュアル」が用意されているし、それを目にすることも多いのだけど。

ヒューリスティックの数字ゲーム (>>この記事のみを表示)

長らく休業状態でしたがムックの仕事が終わり通常運営に戻ります。今回のムックは、長かった・・・。


最初に書いておきますが、これは数字ゲームです。


例えば、今Astalavistaだかから落としてきた怪しげなexeファイルが「未知のウイルス」に感染している確率を10%としよう。

これに対抗するために「未知ウイルス検出」「ヒューリスティックスキャン」といった機能が存在する。ただ、どうしたってこの手の機能は100%の精度を実現することはできない。絶対に漏れ/誤検出は生じる。ならば、どういう性質のエンジンが良いのだろうか。・・・と、いう話です。

□1:検出率90%・誤検出率10%

つまり

  • 未知ウイルスが含まれていた場合90%の確率で「嫌疑ファイル」などと検出する(100-90=10%は検出漏れを起こす)
  • 未知ウイルスが含まれていない場合でも10%は「嫌疑ファイル」などと検出する

というエンジン。

この場合、以下のような計算が可能です。

  • スキャンしたファイルに実際にウイルスが含まれている(仮定より10%)
    • ウイルスをエンジンが検出した(10%の中の90%=9%)・・・a
    • ウイルスをエンジンが見逃した(10%の中の10%=1%)・・・b
  • スキャンしたファイルに実際にウイルスが含まれていない(仮定より90%)
    • エンジンがウイルスを誤検出した(90%の中の10%=9%)・・・c
    • エンジンが「安全なファイル」と判定した(90%の中の90%=81%)・・・d

図で示せばこんな感じでしょう。青が「実際安全」で赤が「実際危険」、ベタ塗りが「エンジンが安全と判定」で格子が「エンジンが危険と判定」の意味。

しかし我々は「そのファイルが実際には安全なのかどうか」ということを知らないわけです。我々に与えられるのは「エンジンがそれをどう判定したか」であり、つまりどういう事かと言えば

  • エンジンがウイルスを検出した(a/c)
    • ウイルスをエンジンが検出した(10%の中の90%=9%)・・・a
    • エンジンがウイルスを誤検出した(90%の中の10%=9%)・・・c
  • エンジンがウイルスを検出しなかった(b/d)
    • ウイルスをエンジンが見逃した(10%の中の10%=1%)・・・b
    • エンジンが「安全なファイル」と判定した(90%の中の90%=81%)・・・d

図で示せば以下。

「検出率90%・誤検出率10%」程度の精度では、ヒューリスティックスキャンはあまり意味を持っていない。そのエンジンが「危険」と判定するファイルの中で実際に危険なのは半分でしかない。

安全と検出されたファイルが実際に安全である確率(d/b+d):98.8%

危険と検出されたファイルが実際に危険である確率(a/a+c):50%

では、ちとエンジンの方向性を変えてみましょう。

□2:検出率95%・誤検出率15%

少し厳しく判定するエンジンを仮定します。検出率はさっきのより高く、ただ誤検出率も高い。

  • スキャンしたファイルに実際にウイルスが含まれている(仮定より10%)
    • ウイルスをエンジンが検出した(10%の中の95%=9.5%)・・・a
    • ウイルスをエンジンが見逃した(10%の中の5%=0.5%)・・・b
  • スキャンしたファイルに実際にウイルスが含まれていない(仮定より90%)
    • エンジンがウイルスを誤検出した(90%の中の15%=13.5%)・・・c
    • エンジンが「安全なファイル」と判定した(90%の中の85%=76.5%)・・・d

ということで、図は省略しますが

  • エンジンがウイルスを検出した(a/c)
    • ウイルスをエンジンが検出した(10%の中の95%=9.5%)・・・a
    • エンジンがウイルスを誤検出した(90%の中の15%=13.5%)・・・c
  • エンジンがウイルスを検出しなかった(b/d)
    • ウイルスをエンジンが見逃した(10%の中の5%=0.5%)・・・b
    • エンジンが「安全なファイル」と判定した(90%の中の85%=76.5%)・・・d

安全と検出されたファイルが実際に安全である確率(d/b+d):99.4%・・・□1より↑0.6%

危険と検出されたファイルが実際に危険である確率(a/a+c):41.3%・・・□1より↓8.7%

□3:検出率85%・誤検出率5%

逆にもう少し緩いエンジンの場合は。

  • スキャンしたファイルに実際にウイルスが含まれている(仮定より10%)
    • ウイルスをエンジンが検出した(10%の中の85%=8.5%)・・・a
    • ウイルスをエンジンが見逃した(10%の中の15%=1.5%)・・・b
  • スキャンしたファイルに実際にウイルスが含まれていない(仮定より90%)
    • エンジンがウイルスを誤検出した(90%の中の5%=4.5%)・・・c
    • エンジンが「安全なファイル」と判定した(90%の中の95%=85.5%)・・・d

ということで、図は省略しますが

  • エンジンがウイルスを検出した(a/c)
    • ウイルスをエンジンが検出した(10%の中の85%=8.5%)・・・a
    • エンジンがウイルスを誤検出した(90%の中の5%=4.5%)・・・c
  • エンジンがウイルスを検出しなかった(b/d)
    • ウイルスをエンジンが見逃した(10%の中の15%=1.5%)・・・b
    • エンジンが「安全なファイル」と判定した(90%の中の95%=85.5%)・・・d

安全と検出されたファイルが実際に安全である確率(d/b+d):98.3%・・・□1より↓0.5%

危険と検出されたファイルが実際に危険である確率(a/a+c):65.4%・・・□1より↑15.4%


我々はヒューリスティックが完璧でないことを知っている。それは前提で、ヒューリスティックの判定結果を無視できないような状況においては、「安全」「危険」という判定結果もそう簡単に信じてはいけないことくらい知っている。それは前提であり、ヒューリスティックエンジンは判断材料の一つだ。そしてその上で、例えば自分が買うアンチウイルスソフトに入っている「べき」エンジンは上のどれか、と。

ヒューリスティックエンジンとは使い手からすれば本質的にこういう類の代物であり、多分作り手はこのことをあまり意識していない。この話だけに限らないが、「警告」はそれ自体が「ユーザーに行為を止めさせる」効果を持つ訳ではない。早い話、僕はテキストエディタとかに「保存しますか?」と聞かれてるのに反射的に「いいえ」を押して後から「しまった大事なデータを保存し損ねた」と思ったことが何度もあるよ(Windowsアプリは終了時の警告が多すぎるため我々はそれを無視する癖が付いている)。


ちなみにこれは「HIVに感染してる人」「検査の精度」という単語に置換すると結構有名なロジックだったりする。

dammy

Credit

SeeAlso

OtherSubCategory

Footprint

Navigation