幕張メッセで開催している「Japan IT Week 秋 2016」で、アンチウィルスソフトの新顔を見つけた。Cylance Japan という会社のCylancePROTECTというエンドポイントセキュリティ製品だ。いわゆるウイルスソフトやマルウェアを検知して隔離する、クライアントにエージェントを入れるタイプのアンチウィルスソフトだ。

このようなアンチウィルスソフトは、以前からトレンドマイクロ、ノートン、マカフィー、カスペルスキーなどが出しており、PCユーザーにはお馴染みのソフトだろう。しかし、そのウイルスの検出方法は昔ながらのシグニチャを利用した「パターンマッチング」が大半だ。数秒で1つの新種が登場すると言われるウイルスは、これらの時代遅れの製品だとせいぜい半分くらいを検出するのがやっとの状態。ましてや標的型攻撃には、まったくの無力でしかない。
5~6年か前からは、「ヒューリスティック」というウイルスが悪さをする動作そのものを検知する手法や、「サンドボックス」という仮想空間で、ウイルスにPCだと思わせて動作したら検知する手法も登場した。しかしこれらの新型の手法も、数年経つとウイルス側が対策してくるため、常に追いかけっこの状態が続いていた。このため大企業では、ウイルスやマルウェアが社内に入り込むこと自体は当たり前とし、社内から社外に情報が流出しないような対策「出口対策」をすることが主流となっている。

ここ数年、アンチウィルス製品に新しい手法が出てこないので、ネタ切れかと思っていたら、やっとAIを利用した製品が登場した。CylancePROTECTの説明には『PEファイルのサイズやコンパイラの利用、バイナリの最初の論理的動作(複雑性)の検証の複雑性が含まれます。Cylanceは潜在的に有害なファイルから何百万もの固有の特性を抽出し、機械分析をしてその真意を突き止めます』とある。おかしな日本語だが、動作原理に関しての記述はここしかなかった。展示会で技術者に説明を求めても、アメリカで開発しているため動作原理の詳細は知らず、『ディープラーニングを用いて大量のウイルスソフトの特徴抽出をしてモデルを作成した』程度しか聞いていないようだ。

ウイルスやマルウェアは、マルウェア作成ツールで誰にでも簡単に作成できる。今はプログラミングの知識などなくても、数クリックだけで作成できてしまう時代だ。だから、数秒で1つの新種が登場するのだが、このようなツールで作成したマルウェアは、PEファイルのヘッダーに特徴があるはず。恐らく(私の想像だが)、このCylance社は膨大なマルウェアの検体を解析してこの特徴量を抽出し、1ビットでも変わればハッシュ値が変わってしまうようなシグニチャではなく、多少の変動には強い特徴量を用いたのだろう。
実際には、こんな単純な仕組みではないだろうし、CylancePROTECの動作原理が判明してしまうと、悪人どもは直ぐに対抗措置を開発するはずなので、決して詳細な情報公開はしないはずだ。しかしウイルス対アンチウイルスの戦いは、これからも永遠に続くのだろうな。