あんちういるす

このサイトはマルウェア、アンチウイルス、あとはセキュリティ全般について、素人がざっくばらんと書いていくブログです。でもあんまりしっかりと書く気はないというか、わりと適当に書いていくつもりなのでちゃんとした文章を期待している高モチベな方々向けではありません。あらかじめご了承ください。

アンチウイルスの限界

 前回マルウェアを解析する作業もだいぶ自動化されているよ、という話をしました。コンピュータができることはなるべくコンピュータにやらせて、人間は人間でしかできないことをやる、これが現代社会の、というかコンピュータ社会のコンセプトだったりするわけですね。アンチウイルスにおいても、マルウェアはめっちゃ増えているためよりそうなるべきなんですね。
 では今回はアンチウイルス、つまりはマルウェア検知はどう変わったのか?について、またアンチウイルスの限界について書いてみたいと思います。

 ここでもういちどマルウェアの定義について振り返ってみます。マルウェアとは、不正かつ有害な動作を行う意図で作成された悪意のあるソフトウェアや悪質なコードの総称である、わけですが、じゃあ、"不正な動作"とか"有害な動作"ってなに? 悪意あるソフトウェアの"悪意"ってなに? って話ですね。
 マルウェアかどうかを識別するためには、どうやら不正とか有害とか悪意とかそういったものを検知しなければならないようですが、それって可能なの?と。
 ここであらためてコンピュータについて考えてみましょう。
 コンピュータってのは電子計算機と呼ばれてて、まぁ要は計算する機械なわけです。計算する機械なので計算ができますね。というより、計算しかできない。計算というのは数式を解くことですね。1+2=と入力すると3と出力することです。まぁ電卓と変わらないわけです。四則演算を高速に処理(計算)できることが電子計算機の利点なわけです。
 ではコンピュータの限界とはどこだろ?という話になります。プロセッサの性能が限りなく無限大に近づいたとき、それでも実現できないことはなんだろう?という話です。

 たとえば世界の通信を守っているRSA暗号素因数分解の難しさで安全性を保っているので、プロセッサの処理速度が無限になったら崩壊しますね。つまり、理論上はコンピュータが"解ける問題"なわけです。理論上は。
 逆にプロセッサの性能がどれだけ上がっても解けない問題とは何か? それはたとえば証明問題ですね。素数が無限にあることを証明せよ、という問題。これは人間にとってはとても簡単ですが、コンピュータには絶対に解けないわけです。所詮はただの"計算機"なわけですね。数学を理解しているわけではない。
 要するによくもわるくもただの計算機であり、それはつまるところ「数式に変換できるあらゆる問題は解くことができる」というのがコンピュータの本質なのですね。多少例外はありますが(停止性問題)。
 そして、この数式ってやつをアルゴリズムと呼んだりしてるわけで、そのアルゴリズムを"人間が"コンピュータに入力しているわけですね。コンピュータがコンピュータ自身でアルゴリズムを発明したりはしないわけです。いま話題の機械学習データマイニングだって所詮はアルゴリズムを高速に解いているに過ぎないわけです。内積を求めてるだけなわけです。

 つまり、マルウェアを100%完璧に検知することは可能か?という問題は、悪意の識別をアルゴリズムに変換できるか?という問題とイコールなわけです。悪意を識別する数式があるかってことですね。それをコンピュータに入力できればすべて解決、オールオーケーなわけですね。まぁないんですけどね。
 なので、不可能という前提を置いて、じゃあどうするのかってのがアンチウイルスのスタンスであり、いたちごっこがいたちごっこたりうる所以なわけですね。出現したマルウェアに"可能な限り"速く対応する、これがアンチウイルスのひとつの答えであり、限界なのです。

 しかし可能な限り速く対応するだけでは結局のところ後追いですね。未知のマルウェアを検知できません。なのでアプローチを変えましょう。これまで出現したマルウェアをすべて集めて、それらの統計情報から未来のマルウェアを予測できないかという話です。まさに流行りのビッグデータというやつですね。"悪意の識別"ではなく、"悪意の類似"を試みたわけです。過去のマルウェアと類似するものはマルウェアってことですね。
 コンピュータセキュリティの世界では、ベイジアンフィルタというスパムメールのフィルタリングに関する成功例があります。これをマルウェアでもできないのかという話です。
 スパムメール自然言語で、マルウェアはソフトウェアなので一緒くたにできないかもしれませんが、まぁとりあえずやってみようと。そしてこれまたそこそこ良い結果が出ることが分かっています。そこそこですけどもねw
 その理由はマルウェアの類似性にあります。類似性というか亜種の増加性というか、言葉選びは難しいですが、マルウェアには流行があり、ある一定期間に区切ると流行しているものと似たもの、いわゆる亜種が大半を占めることが分かっています。そうなる理由はまだ分かっていませんが、まぁそうなることは経験上分かっていると。
 理由は分からんけども、似たものが増えるっぽいからいま流行りのビッグデータとやらが使えるんじゃないの? ちょっと使ってみようぜ! というのが、未知のマルウェア検知の技術なわけです。かなりざっくりですけどね(それに本当はもうちょっといろいろあるんですけども)。
 んで、マカフィートレンドマイクロシマンテック、カスペルスキ―といった有名どころのアンチウイルスは、当然未知マルウェア検知に対するアルゴリズムも実装しており、それにおいて、じゃあどのくらい未知のマルウェアを検知するのかというと、だいたい20%から多くても50%前後程度です。未知のマルウェアを1000個集めてきたら、500個程度はマルウェアと検知してくれます。え?たった50%なの? もしかしてアンチウイルスって死んでる?
 まぁそこそこ良い結果が出ているって程度が現状なわけですね。もちろんすでに知っている既存のマルウェアについては90~99%くらいは検知しますよ。あくまで未知のマルウェアに対してですね。なので不運にも新種のマルウェアに当たっちゃわない限りはモウマンタイです。新種のマルウェアに当たっちゃったら50/50のコインを投げてもらう感じですねw
 ちなみに論文なんかだと90%以上検知できたとかなんとか書いてたりするものもあるので、研究が進めばもっとよい感じになるのかもしれませんが、現状はそんなもんなわけです。

 というわけで、いろいろとがんばっているけれど、アンチウイルスはいろいろと詰んでる、努力しているんですね。ちなみにMicrosoftWindows8からWindows Defenderというアンチウイルスをデフォルトで付属しているようですね。Microsoft Security Essentialsをパワーアップさせた版っぽいですが、これも一種のコモディティ化というやつですかね(なんじゃそりゃ)。
 そんなこんなでマルウェア検知のざっくりとした話を書きました。未来が明るいセキュリティ万歳!

いたちごっこの渦中から

 前回マルウェア作者は、なるべく検知されないマルウェアを作る必要があるという話をしました。そしてポリモーフィックマルウェアや実行形式のまま圧縮するPackerを紹介しましたね。今回は視点をまたアンチウイルス側に戻して、いかにしてこのようなマルウェアに対処するのかを書きたいと思います。

 では最初に"マルウェアを分析することが仕事である"解析者について。
 仕事でマルウェアを扱う人なんて、アンチウイルスベンダーのエンジニアかセキュリティの研究者、あとはインシデントレスポンスでそっち系担当の人くらいしかいないので、マルウェア解析者な人たちも基本的にそういうところにしかいません。マルウェアを渡されて、解析して、その結果をレポートにまとめるなりなんなりしてターン終了、みたいな、そんなお仕事ですね。
 彼らはx86Windows、あとPythonC言語辺りを使ったプログラミングが得意です。マルウェアを解析したり、ソフトウェアの脆弱性を見つけることは最高に大好きですが、ソフトウェアそのものを作るのは苦手で、数万行単位のソースコードを管理したりはできません。でもWindowsについてはカーネルレベルまで知っており、開発者のごとく詳しかったりします。

 ところでマルウェアの解析って具体的になにをするの?って感じですが、基本的に機械語アセンブラに変換して、それを読みつつ動作を解読する作業です。一昔前は本当にアセンブラコードを読むだけのかなり大変な仕事だったのですが、近年はツール類が整備されており、さほど苦労せずに解析を行えますね。
 解析者のだれもが持っているツールIDAと呼ばれる逆アセンブラがあります。ただの逆アセンブラと思いきや、お値段は聞いてびっくり数万円~数十万円とかですね。まぁそれくらいの価値があったりするわけですが。Webページからフリー版や体験版がダウンロードできるので試してみてもよいかと。
 IDAのほかには、WinDbgOllyDbgImmunity Debuggerといったデバッガ系が人気ですが、IDAにもデバッガの機能がついているため必要としない人もいます。あとはプロセス、ネットワーク、ファイル、レジストリモニタといったいわゆるシステムを監視するツール類一式でしょうか(Windows Sysinternals)。またマルウェアを解析する際は、仮想環境や感染しても構わないマシンを用意して行います。当然ですけども。
 といった具合に、近年のマルウェア解析は専門の(そして高価な)ツールを使って行うことが主流だったりするのです。まさに専門家って感じですね。はい。
 そして、そういういわゆる第一線で活躍している人たちのところに当然新種のマルウェアは集まってくるわけです。以前書いたとおり、マルウェアは増加の一途なので、それはもうガンガンと集まってくるわけです。手に負えないくらいに。
 そうなるとヤバいとなって自動化を考え始めます。もう専門家がいちいち解析していたら間に合わない、マルウェア解析をある程度自動化して人間の仕事をなるべく減らすんだ!という方向に進むわけです。マルウェアはほぼ半自動で作られているんだから、解析者も半自動で解析しちゃおうぜ!みたいな。人間は手を抜くことに関してはどこまでも追及できるものなのです。人間万歳!
 そんなこんなで一時期、セキュリティ系の国際会議では○○の自動化ってネタがわんさかあったのでした。まぁいまもありますけどもね。

 具体的にどういった点を自動化するのかというと、たとえば自動unpackerツールなるTitanEngineというものがありますね。これはunpackフレームワーク、つーかライブラリなんですが、サンプルコードに有名どころのpackerに対するunpackerが利用例として入っています。ソースを読めば使い方が一目瞭然ってやつですね。すばらしいですね。
 自動化がたやすいpackingに対して、それを復元するunpackingはその自動化が困難なはずなのですが、実行しちまえばメモリ上にはオリジナルが復元されるやろ、というノリから、TitanEngineではDynamic Unpackingという実際にプロセスを生成し、自動でデバッガで処理を進めて、適当なところをOEPとみなしてダンプする(シグネチャでダンプ箇所を識別)という、まさに解析者がやってることそのままを自動化しました、みたいなノリでunpackingしてくれます。packingはマルウェアの解析対策にも使われるため、このようなツールがあると解析がいくぶん楽になるわけですね。
 さっきも少し触れましたが、マルウェア解析は閉じた環境、いわゆる仮想環境とかネットワークが制限されたマシンで解析を行うため、必然的にEmulation技術が多様されます。パソコンはx86系が主流ですからx86 Emulatorってやつですね。CPUエミュレータ―はQEMUなんかがそのもっとも有名な代表例ですね。
 そういったEmulatorの中でマルウェアを動作させて、その結果を調べたり、unpackの処理をEmulatorの中で行わせたりといったことも、解析の自動化によく使われる手法です。このx86Emulatorというやつはunpackingを目的としたEmulatorのようですね。
 結局のところ、マルウェアをひとつひとつ解析していくのはもう嫌だ、なんかマルウェアを自動で解析してくれるとっても便利なシステムないのー。ドラえもーん、そんな道具出してよー。自分で作れカス!という感じなわけですね。
 また別の理由として、実行ファイルのみから得られる情報よりも、実際に実行することで得られる情報量の方が圧倒的に多い、だから仮想環境なりなんなりで一度実行してみて、その結果も解析の参考に利用しようというのもありますね。Cuckoo Sandboxなんかはそういう目的で作られていますね。

 要するに、マルウェアが増えまくってる昨今、いちいちアセンブラ命令を一個ずつ読んでられないだろどう考えても。だから自動化できるところは可能な限り自動化しようぜってことで、自動でunpackしたり、Emulatorで実行してそのログをとったりするツールを作ったというわけです。
 そしてこういう技術が結果的にマルウェア検知にも生かされることになり、いまに至るわけです。アンチウイルスときくとシグネチャベースの検知方式を思い浮かべますが、現在は、サンドボックスを持ってたり、ヒューリスティックと呼ばれるプログラムの振る舞いでマルウェアを識別したりするアルゴリズムが当たり前に実装されていたりします。DBから特徴的なシグネチャを比較するだけのものとはだいぶ違うわけです。
 もちろん、方向性は違いますが、クラウドを使ったレピュテーションも新しい仕組みで検知しているという点ではシグネチャベースの方式とは大きく異なり、次世代の新技術っぽい感じですね。

 というわけで、これまでの話をまとめると「マルウェアを作ってる側も守ってる側も自動化してなるべく仕事を減らしている」ってことですね。作成側は量産するために、対応側は検知するために自動化しているわけです。涙ぐましい努力ですね。
 そもそも世の中にマルウェアがなければアンチウイルスもないわけですが、それは世の中に犯罪がなければ警察はいらないってことと同じで、まぁ現実あるわけです。そして犯罪者を確実に突き止める方法がないのと同じく、マルウェアを完璧に検知できるシステムもないわけですね。
 いたちごっこを続ける覚悟があるものだけがセキュリティ技術に足を踏み入れなさい、と。つまりはこういうことなんですね(なんじゃそりゃw)。

 まぁ少なくとも一般的なITとはだいぶ違った色の業界であることは確かですね。

マルウェアはなぜ作られるの?

 前回、なんかマルウェアが増えてるとか、アンチウイルスは死んだとか、あと対応策としてレピュテーションとか機械学習とかそんな感じのことを書きました。つまりは"対策を講じる側の視点"で書いたわけですね。なので今回はその逆の立場となるマルウェアを作る側の視点で書こうかと思います。

 そもそも「なぜマルウェアを作るのか?」という疑問がありますね。マルウェアを作ってる連中に聞いてみたいわけです。おまえらなんでマルウェアを作るのか?ってね。するとおそらく「いや仕事だから」みたいな感じで返ってきます。仕事というかお金儲けですね。金、すなわちマニーが欲しいわけです。ぐへへ。
 え?マルウェアを作るとお金が儲かるの?って話ですが、まぁ儲かりますね。わりとガッツリと儲かるようです。
 少し前にMITB(Man in the Browser)攻撃というのが流行りました。なにそれ?って話ですが、ブラウザに感染して入力情報などなどを盗む手法のことです。MITB攻撃っていうか、MITBマルウェアって言った方がよい気がしますが、まぁ要するにブラウザに感染するタイプのマルウェアなわけです。ブラウザに感染するとどんな良いことがあるのかというと、たとえばネットバンキングなどの情報をガッツリと盗むことができるわけですね。いまは銀行口座にオンラインでアクセスし放題、とっても便利、でもそこを利用して情報を盗もうとするのが悪い人たち、マルウェア作者なわけです。
 いやいや、でもオンラインバンキングとかって絶対SSLで暗号化されてんじゃん。盗むとか無理じゃね?って話ですが、暗号化されているのはあくまで通信であって、ブラウザの中では復号されて処理されているわけです。当然ですね。なのでブラウザに侵入すれば情報盗み放題じゃんという仕組み。素因数分解の難易度に守られているのは通信データであって、ブラウザの中じゃないんですね。

 いずれにしてもマルウェアを作ることでお金儲けができるわけです。ビジネスになるわけですね。そうなると効率化が行われます。

 大昔のマルウェア作者はビジネスでマルウェアを作ってはいませんでした(最初のマルウェア)。それは趣味だったり、ジョークだったり、自分の技術力を誇示するためだったり様々でしたが、少なくともお金儲けじゃなかった。でもいまはお金儲けなわけです。完全にビジネスなわけですね。ビジネスなので効率化のためにフレームワークを作ります。マルウェアのためのフレームワーク。そしてもちろんそれはバージョンアップが繰り返され、より洗練されていくわけですね。ビジネスのために。その果てが昨今よく使用されているRAT(Remote Administration Tool)だったりするんですね。クリック数回で好みのマルウェアを作るソフトウェアです。
 個人的には「欲しいマルウェアをより簡単に作れる環境が出来上がったから、マルウェアは増加しまくっている」という意見ですが、これはマルウェアを作ることがビジネスに直結しはじめたからそうなったんじゃないかと思うわけです。まぁ違っているかもしれませんが。

 こうなると、今度はより検知されないマルウェアを作る必要が出てきます。アンチウイルスに検知されないマルウェアですね。なんてったってお金儲けなのですから、ビジネスなのですから、手抜きは許されません。可能な限りアンチウイルスに検知されずに動作し続けるマルウェアが求められます。
 検知されないマルウェアというキーワードで調べると、ポリモーフィック型マルウェアという単語が出てきます。アンチウイルスは結局のところファイルやその動作のどこかを使って検知しなければならないので、マルウェアが自己を書き換えながら感染していけば、検知されないマルウェアが作れるんじゃないの?という考えから、ポリモーフィック型、メタモーフィック型と呼ばれるマルウェアが作られました。
 ポリモーフィズム(Polymorphism)、メタモーフィズム(Metamorphism)、オリゴモーフィズム(Oligomorphism)と手法によって名称は違うのですが、すべて自己を書き換えるという点で同じです。ファイルが改変されるが、しかし機能は変わらない、つまり等価の価値を持った異なるコードを作り続けるマルウェアというわけです。なかなか面白いですね。
 等価の価値を持った異なるコードはPackerと呼ばれるツールで実現できます。Packerとは実行ファイルを実行できる形式のままサイズのみ圧縮するツールです。たとえばPEファイルのままサイズを圧縮するわけです。有名なものにUPXASPackがありますね。本来のコードを圧縮し、その展開処理をプログラムの先頭にくっつければ(圧縮後の差分>展開処理であったなら)ファイルサイズは小さくなります。もちろん機能は変わりません。
 このようなコードをマルウェアに実装してやれば、ポリモーフィズムマルウェアとなるわけです。もちろんマルウェアで使う場合は圧縮ではなく改変が目的なので、暗号化でもよいですね。ファイルが変わればなんでもオーケー。
 でも、自己改変型のマルウェアが広まったらヤバくね?って話ですが、じつはそんなに広まってないんですね。あんまりない。まぁあるけどそんなに、みたいな。意外ですね。でもよく考えるとなんとなく分かります。
 マルウェアが簡単に作れるようになったってことは、検知されるようになったらまた新しいのを作ればいいやという話になります。別に数クリックで作れるわけですから。わざわざ検知されないマルウェアを作るのはそもそもマルウェアを作るのが大変だったからであって、大量生産、大量消費のこの時代にはそんなものは必要ないわけです。世知辛い。

 根本的な問題として、マルウェアは作る側の方が有利な状況です。検知する側はどうしても後追いになります。これはマルウェアです、と確定するまでのタイムラグがどうしてもあるわけです。アンチウイルスベンダーが検体を入手し、特定し、アンチウイルスソフトに適用するまでのラグですね。
 このラグをゼロにするには、検体がなくともそれを検知できる仕組みが必要です。マルウェアは持ってないけどマルウェアを検知できるシステムです。いわゆる未知のマルウェア検知ってやつですね。セキュリティ系の学会、国際会議、論文などを調べるとこれ系のものが山ほど出てきます。それほど研究されている分野ですし、まぁ実現したいことなのですね。
 またそういったものを売りにしているセキュリティ製品も最近は多いです。FireEyepaloaltoといったものが有名ですね。次世代うんたらかんたらというような、これまでのとはちょっと違うよ感を出してたりしますね。

 というわけで、マルウェアはなぜ作られるのか?ですが、お金儲けのためですね。はい。ちなみにいまはマルウェアに限らず、脆弱性情報もビジネスとしてやり取りされたりしていますね。こっちは(悪いことじゃないので)わりと大企業も公式にやっていて、例えばGoogleは脆弱性情報(エクスプロイト)に報奨金を出していますし、国によっては軍事目的で攻撃コードを購入したりもするそうです。戦車や戦闘機を買う感覚でエクスプロイトコードを買ってるのかなーと思うとちょっと面白いですけどね。

はじめに

 このサイトはマルウェアアンチウイルス、あとはセキュリティ全般について、素人がざっくばらんと書いていくブログです。でもあんまりしっかりと書く気はないというか、わりと適当に書いていくつもりなのでちゃんとした文章を期待している高モチベな方々向けではありません。あらかじめご了承ください。

 それでさっそくですけども、まず「マルウェア」の定義について。

マルウェア(malware)とは、不正かつ有害な動作を行う意図で作成された悪意のあるソフトウェアや悪質なコードの総称である。(wikipedia

 これって「コンピュータウイルス」と何が違うん?って話ですが、コンピュータウイルスはもっと狭い意味で使われるようですね。

コンピュータウイルス(computer virus)とは、マルウェア(コンピュータに被害をもたらすプログラム)の一種で、自立せず、動的に活動せず、プログラムファイルからプログラムファイルへと静的に感染するものを指す。(wikipedia

  あっ、はい…。みたいな。正直どっちでもいいだろこんなもんって感じがしなくもないですが、きっとえらい人たちや賢い人たちが頑張って考えたのでしょうから従うことにしましょう。

 まぁ詳しいことはよくわからんけどもマルウェアって呼べばとりあえずOKみたいな感じっぽいので、このブログでも今後マルウェアと呼ぶことにします。

 それで、そのマルウェアってやつをこの世から根絶するぜ!と立ち上がったのがアンチウイルスですね。アンチウイルスは無償のものから商用のものまで幅広くあり、コンピュータセキュリティにおいてもっとも活躍しているソフトウェアというか、もっとも金、いわゆるマニーを生み出しているプログラムですね。ぐへへ。
 マカフィートレンドマイクロシマンテック、カスペルスキ―辺りが有名どころでしょうか。どこも大企業でうはうはですね。アンチウイルスは儲かるぜ!ひゃっはー!

 あまりに儲かりすぎてるからかどうかは分かりませんが、一時期アンチウイルスの会社がマルウェアを作成して広めているんじゃないかというジョークがありました。まぁさすがにそんなマッチポンプはやっていないだろうというか、昨今のマルウェアは多すぎて「もはやアンチウイルスは死んだ」とか言われてるくらいなので、作成する必要もなく大量生産されている現状をかんがみるに、まぁないでしょう。
 というかアンチウイルス会社のえらいひとがアンチウイルスは死んだとか言っちゃうのはヤバいと、ちょっと話題になったのですが、なぜこんなことが言われているのかというと、一言でいうとマルウェアがここ数年で増加の一途をたどっており、もう右肩上がりどころじゃない、これ累乗されてない?みたいなレベルの増加傾向だからです。総務省の方々が「情報セキュリティに関する脅威の動向」に関してレポートを出していますが、マルウェアが毎月300万検体くらい増加してますよ(てへぺろ、みたいに書かれてあって、ちょ、毎月300万増加っておまえパズドラのDL数か何かと勘違いしてない?みたいな、そういうレベルなわけですね。

 あと少し話がそれますが、昨今の携帯市場を制圧しているスマートフォンAndroid」もかなりマルウェアの被害を受けているようで、セキュリティ業界では「Androidはもろ刃の剣、素人にはおすすめできない」みたいに言われてますね。ただそのへんの携帯ショップいけば普通におすすめされますけどもね。もうパソコン触ったこともないような人たちにもガンガンおすすめしていってますけどもね。もまいら…悪いことは言わないからせめてiPhoneにしとけと。

 それで、じゃあなんでそんな毎月300万検体とかも増えてんの?って話なんですが、いまはクリックひとつでマルウェアを作れる時代なんですね。3分クッキング感覚ですね。Remote Administration tool、通称RATってツールがそれなんですが、試しにぐぐってみるとhackだのアンダーグラウンドだのもうアレな感じ満載なんですね。
 結果ガンガンとマルウェアが量産される残念な世界が出来上がってしまったわけです。あっでもアンチウイルスなビジネスが成り立ってるのもそのおかげなのでむしろすばらしい世界が出来上がってるわけなのかもしれませんね。ひゃっはー。

 ひゃっはーといえば北斗の拳を思い出しますね。あの雑魚キャラのクズっぷりや秘孔をついて人間を破裂させるネタとかどう考えても少年誌でやってよいレベルじゃない感じですが、あれ一応週刊少年ジャンプの連載漫画でしたからね。すさまじいですね。というかまったく関係ない話ですね。ソーリー。

 それで話を戻すとRATがあるからマルウェアが増えてるんよーみたいなこと書いちゃいましたが、じつはRATって10年以上前からすでにあるんですよね。RATのせいでマルウェア増えてるんよーつってドヤ顔で書いちゃいましたが、ぶっちゃけRAT関係なかったwサーセンwwみたいになっちゃいました。はい。
 でも、じゃあ何が原因なんよ?という話になるんですが、それはみんな意見が違ってて、結局真相は分からずじまいなので、それはみなさんの心の中に。ってことになります。要するに、お前がそう思うんならそうなんだろう。お前の中ではな。ってことですね。世知辛い。

 まだ世の中にあるマルウェアの数が少なかったころは「全部データベースにぶち込めばええやん」という作戦(パターンマッチング方式)で、ほかのソフトウェアと重複しないコードの一部をDBに突っ込んで、はい終了、お疲れ様でしたーみたいなノリでOKだったけれど、いまはめっちゃマルウェアが多いからそれやり続けるのがわりと大変なんですね。毎月300万検体がうんたらという総務省のレポートから察すると、毎月300万個、1日10万個、8時間労働だとすると1時間で1万2500個、1分で200個以上の検体をDBに入れていく作業になります。たぶん人件費ヤバいし、DBもすごいことになるし、とにかくいろいろヤバい。この仕組み、近いうちに破たんするんじゃね?と言われてたのがほんの少し昔の話。そして「実際に破たんしてるよ、もまいら乙!」と言ってみたのが先ほど挙げた「アンチウイルスは死んだ」って記事ですね。
 でも「アンチウイルスは死んじゃったからアンインストールしてマルウェアの好き勝手、なすがままにされようぜー」ってことにはできないので、じゃあどうするんよ?というわけで、クラウドとかヒューリスティックとか機械学習とかとかの、いわゆる流行り?な技術をガンガン使って対応しているのがいまのアンチウイルスだったりするわけです。でもその副作用で誤検知問題とか起こったりしてたりしてなかったり

 要するに、アンチウイルスにはいまちょっとしたイノベーションが求められていて、いろいろと試行錯誤されている段階なんです、ってことですね。
 そしてわりと結果を出しているのがレピュテーションっていう技術です。「アンチウイルス レピュテーション」でぐぐると分かりますが、次世代の検知手法!みたいな感じでガンガン宣伝されていたりします。シマンテックのサイトでも「古典的なパターンマッチング方式に頼るウイルス対策の限界」って感じで、新たな手法であるレピュテーション方式が紹介されています
 レピュテーションを一言でいうと、みんながマルウェアと言ったらそれはきっとマルウェアだよね、ってことです。クラウドに各ユーザーの情報を集約して、それを元にマルウェアかどうかを判断し、検知する、みたいな。なんとなく近未来的でかっくいい!でもオンラインが前提になってるし、なんか重そう。でもそこは技術力でカバー。そんな感じの対応策なのですね(おそらく)。

 ビジネス分野ではレピュテーションマンセーなのですが、研究分野ではわりと機械学習系のネタが多いですね。ここ数年は特に。マルウェアの類似性を調べてうんたらかんたらといった論文は所狭しと並んでいます。大量のマルウェアを統計分析して傾向をつかみ、それを用いて検知!みたいなノリですね。まさにビッグデータ時代なわけですね。研究の世界も流行を追ってそれっぽくみせないと研究費がもらえない時代なのですね。世知辛い。

 というわけで、いろいろなことが起こっているマルウェアアンチウイルスの世界ですが、こんな感じで気の向くままに書いていこうと思います。