サイバースペースのヴォルデモートを追い詰める

どんなマルウェアも、正体がわかっていれば検知できます。たとえばトレーニング可能なふるまいモデルを利用すれば、それが可能になるのです。

おとぎ話やファンタジーは、世界各地の物語に登場する影の支配者や悪の黒幕の無敵神話を打ち砕いてきた(そして我々は、20年以上にわたりサイバースペースにおける同じような神話を打ち砕いてきた)。ヴォルデモートをはじめ、ファンタジー作品の悪者には決まって、その存続を左右するモノがある。彼らが生きながらえるかどうかは、日記や指輪、蛇…といったモノが守られるかどうかにかかっているのだ。分霊箱(ホークラックス)については皆さんもよくご存じだろう。そして、おとぎ話の世界であれサイバースペースであれ、悪との戦いの成否を左右するのは2つの重要な資質、「忍耐強さ」と「知性」(すなわち技術、テクノロジー)だ。今回は、忍耐強さと知性、そしてニューラルネットワーク、機械学習クラウドセキュリティエキスパートの知識(すべて当社の製品に組み込まれている)によって、将来発生する可能性のあるサイバー脅威からいかにして身を守ることができるかをお話しする。

事実、将来のサイバー脅威から身を守るための技術については、当社ブログで以前にも一度ならず二度三度と)取り上げている。どうしてそこまでこだわるのか、と不思議に思う読者もいるかもしれない。

それは、こうした技術こそが、偽の人工知能よそから盗んだ情報を利用してマルウェアを検知する製品と一線を画す堅牢な保護を実現するものだからだ。マルウェアがシステムに忍び込んで悪さをした後で、既知のシグネチャを使用してコードシーケンスを特定する?そんなものは誰も必要としない。いわゆる「義足に湿布を当てる」ようなものだ。

他方で、サイバー犯罪者の思考パターンを予想し、サイバー犯罪者にとって魅力的な脆弱性がどのようなものかを察知し、その場で自動検知が可能な「見えない網」を仕掛けること、それができる企業は業界の中でも少ない。残念だがこれが真実だ。実際、第三者機関によるテストによると、そのような企業はごくわずかだ。ここ10年で最大級の感染規模となったWannaCryは、そのことを示すよい例だ。システムウォッチャー技術のおかげで、当社製品はこのサイバー攻撃によるユーザーの被害を未然に防ぐことができた。

重要な点はこれだ – 将来のサイバー脅威に備える保護は「多くても多すぎることはない」。脅威の経路たりうるものをすべて網羅することのできるエミュレーターや熟練のビッグデータ解析システムは存在しない。見えない網は、問題が発生する可能性をゼロにすべく、可能な限り全階層および全経路をカバーし、システム上の全オブジェクトのアクティビティを監視することができるものでなければならない。と同時に、「死のエラー」と呼ばれるブルースクリーンに陥ることがないよう、リソースの使用を最小限に抑え、「誤検知」をゼロにし、他のアプリケーションとの互換性を100パーセント確保しなければならない。

マルウェア産業の方も発展し続けている。サイバースペースの悪者たちは、自らの作り出したマルウェアを調教してシステム内に身を隠す術を習得させた(そして今も調教を続けている)。具体的には、構造やふるまいを変える、アクションモードを「低優先度」に切り替える(コンピューティングリソースの使用を最小限に抑える、設定された時間にスリープを解除する、標的コンピューターに侵入した直後は目立たないようにするなど)、システムの奥深くに入り込む、痕跡を隠す、「クリーン」または「準クリーン」な手法を使う、といった術だ。しかし、ヴォルデモートあるところにホークラックスあり。ホークラックスを破壊することで、悪意の化身たるその存在を破滅させることができる。問題は、ホークラックスをどのようにして見つけるかだ。

数年前、当社では、ある興味深い発明(特許RU2654151、リンク先はロシア語)を製品に採用し、高度なサイバー脅威に対するプロアクティブな保護技術を増強した。トレーニング可能なオブジェクトふるまいモデルを利用して、システム内の不審な異常アクティビティを高精度で特定し、ソースを突き止め、特に「抜け目のない」ワームでも抑止することができるようにしている。

その仕組みを説明しよう。

どのようなオブジェクトであれ、何らかのアクティビティがあればコンピューター上に痕跡が残る。HDDの使用、メモリの使用、システムリソースへのアクセス、ネットワーク経由でのファイル転送など、なんらかの形で、どのようなマルウェアも、どれほど洗練されたものであっても、いずれは姿を露呈することになる。痕跡を完全に消すことはできない。痕跡を消そうとすれば、消す動作自体の痕跡が残るため、同じことの繰り返しになる。

では、どの痕跡が正規のアプリケーションのもので、どの痕跡がマルウェアのものか、いかにして判別するのだろうか?しかも、処理能力不足でコンピューターがダウンすることがないようにしながら判別するには?その方法は次のとおりだ。

アンチウイルス製品もといセキュリティ製品は、アプリケーションのアクティビティに関する情報(実行されたコマンド、そのパラメーター、重要システムリソースへのアクセスなど)を収集し、その情報を使用してふるまいモデルを構築し、異常を検知し、悪意性の因子を算出する。注目してほしいのは、この計算に使用される手法だ。ご存じのとおり、当社は信頼性だけでなく動作の速度も重視している。ここで登場するのが数学、より具体的には数学的ダイジェストだ。

構築されたふるまいモデルは、ごく小さなパッケージに格納される。必要なオブジェクトふるまい情報の詳細度は維持しつつも、多大なシステムリソースを必要としないようになっているのだ。コンピューターのパフォーマンスを詳細に監視しても、この技術が使われていることには気付かないだろう。

説明用に例を示そう。

悪意性因子の計算は、次の4つの外部属性によって行う。

  • オブジェクトタイプ(実行可能か非実行可能か)
  • サイズ(100KBより大きいか小さいか)
  • ソース(インターネットからダウンロードしたか、USBメモリ上のアーカイブから解凍したか)
  • 拡散範囲(KSNの統計でインストール数が1,000台より多いか少ないか)

さらに、次の4つのふるまい属性も使用する。

  • オブジェクトがネットワーク経由でデータを転送するかどうか
  • オブジェクトがHDDからデータを読み込むかどうか
  • オブジェクトがレジストリにデータを追加するかどうか
  • オブジェクトがウィンドウインターフェイスを使用してユーザーにメッセージを表示するかどうか

各項目に「いいえ(0)」または「はい(1)」で答える。

たとえばapp.exeというファイルがあったとする。サイズは21KB。ソースはotherstuff.zipからの解凍。検知されたコンピューターは2,113台。ネットワーク経由でデータを転送。HDDデータは読み込まない。レジストリにデータを追加。ウィンドウインターフェイスはない。この場合、答えは次のようになる。

1 0 0 1 1 0 1 0

この数値を8ビットの整数で表すと0b10011010 = 154となる。これを当社ではダイジェストと呼んでいる。従来のハッシュ関数(MD5やSHA-1など)に比べてはるかにスマートだ。現実の世界では、膨大な数のオブジェクト属性が登録されており、各属性から複数のダイジェストが作成され、そのダイジェストがトレーニング可能モデルによってパターンの特定に使用されている。その結果、きわめて精度の高いふるまいパターンが得られる。スピードも速い。

悪意性因子は、これとはまったく別の話だ。マルウェアと正規のアプリケーションがまったく同じふるまいを示すことがあり得る。たとえば、データをシステムフォルダーに追加するアプリケーションは多いが、どれが正規のタスクの一環で、どれが悪意ある意図によるものか、どのように見分けられるだろうか?

まず、悪意性因子は累積作用を持っている。端的に言うと、数学用語の単調増加だ。そのため、時間が経つにつれて、ごく目立たないマルウェアも偽陽性が生じることなく検知されるようになる。不審なアクティビティが短時間に集中して起きても(アプリケーションがインストールされるたびに起きるシステムレジストリの変更など)、アンチウイルスが作動してしまうことはなくなる。作成されたダイジェストは「ブラックボックス」トレーニングされたニューラルネットワークを通じて配信され、オブジェクトのふるまいに悪意があるかどうかの判定が下される。

そしてもちろん、この技術ではKaspersky Security Network(KSN)が大いに活用されている。クラウドベースのKSNシステムを利用して不審なサンプル、その自動解析結果、この技術そのものの改良策をやりとりし、判定の精度向上に役立てることができる。KSNの能力は、ニューラルネットワークの微調整や他のアルゴリズムやエキスパートによるトレーニングに継続的に活用されている。その結果、危険なファイルだけでなく、ネットワーキングセッション、コンポーネント、その他のごく微細な要素も特定しやすくなる。このようにして、最終的にサイバースペースのヴォルデモートにたどり着くのだ。

ヒント