人間の怠惰、サイバーセキュリティ、そして機械学習

人間は怠けたがる生き物だ、とはよく言ったものだ。やらないことが可能なことならば、やらないで済ませようとする。しかし、逆説的に考えれば、これはいいことなのだ。なぜなら、怠惰は…進歩の原動力だからだ!え?どうしてそうなるかって?それはつまり、人間がやるには大変過ぎる、時間がかかり過ぎる、複雑過ぎると見なされる仕事は、どこかの怠惰な(しかし真面目な)人間(ホモ・サピエンスならぬホモ・レイジエンスか?(笑))たちが、機械にやらせようとするからだ!そういう姿勢をサイバーセキュリティの世界では「最適化」と呼ぶ。

膨大な数の悪意あるファイルやWebサイトを日々解析すること、将来の脅威に対抗するための「ワクチン」を開発すること、プロアクティブな保護対策を絶えず改良し続けること、その他もろもろの重要な作業をこなすことは、いずれもオートメーションなしでは断じて不可能だ。そして、オートメーションで使われる主なコンセプトの1つが、機械学習だ。

機械学習は10年以上前からサイバーセキュリティに利用されてきた。大々的に宣伝されていなかっただけのことだ

サイバーセキュリティの世界では、そもそもの(サイバーセキュリティ自体の)始まりからオートメーションが存在していた。たとえば私は2000年代初め、入ってくるマルウェア検体を解析するロボットのコードを書いたことがある。検知されたファイルの特性を判定し、この判定結果に基づいて、増える一方のマルウェアコレクションの中の該当フォルダーに振り分けるようにするコードだ。過去にはこうしたことをすべて手動で行っていたとは、(その当時でさえ)想像するのは難しかった!

しかし近頃は、ロボットにやらせたい作業について明確な指示を与えるだけでは十分ではない。作業の指示は不明確に与える必要があるのだ。嘘ではない!

たとえば、「この写真の中にある人間の顔を見つけなさい」という作業であれば、人間の顔をどうやって選び出すのか、人間の顔が犬の顔とどう違うのかについては説明しない。その代わり、ロボットに写真を何枚か見せて、「これが人間、これが人間の顔。そしてこちらが犬。残りは自分でやってみなさい」と言う。つまるところ、この「創造の自由」を機械学習と呼ぶのだ。

Source出典

ML + CS =

機械学習(ML)がなかったら、サイバーセキュリティ企業はどこも2010年代まで生き残ることはできなかっただろう(検知結果を他社から単にコピーして済ませるのであれば別だが)。ところが一部のスタートアップが、MLをあたかもサイバーセキュリティ(CS)業界のまったく新しい革命であるかのように、自分たちが「創始し、最前線に立っている」革命のように謳っている。しかし実際は、MLは10年以上前からサイバーセキュリティに利用されてきたというのが事実であって、大々的に宣伝されていなかっただけのことだ。

機械学習は、非常に多くの博士論文や学術書が書かれている分野であり、とても1回のブログ記事で語りきれるものではない。数回に分けても無理だろう。いずれにしても、親愛なる読者諸君、ここで学術的な技術解説は必要だろうか?むろん、ない。そこで代わりに、もっと実用的なこと、この1回の記事で語りきれる範囲のことをお伝えしよう。機械学習と呼ばれるものの中で最も魅力的で関心をそそり、最も重要で画期的な要素について、当社(Kaspersky Lab)の観点から語ろうと思う。

機械学習の手法を実際の作業に適用しようとすると、数々の困難や微妙な問題に直面する

この「旅」の始まりの段階で我々は、オートメーションのさまざまな数学的モデルを、社内ニーズを満たすためだけに使用していた。たとえばマルウェアアナリストのワークステーションのオートメーション(情報フローの中から最も重要な情報を選び出す)、クラスタ化(属性に応じてオブジェクトをグループ分けする)、Webクローラーの最適化(各種要素の重みに基づき、膨大な数のURLに対するクロールの優先度と強度を決定する)といった目的だ。

やがて、こうしたスマートな技術を当社製品に導入しなければ、我々はサイバースペースの濁流に呑み込まれかねないことがはっきりした。我々に必要だったのは、特定の複雑な質問に迅速かつ正確に答えられるロボットだった。たとえば、「おいロボット、ここにある例に基づいて判断してみて、一番怪しいのはどのファイルだ?」、あるいは「ようロボット、いいか。ここにあるのは非常に優秀なヒューリスティックな手順と呼ばれるもので、数万個ものオブジェクトを検知する。これからおまえにやって欲しいのは、他の悪意あるサンプルの共通特性を見つけ出し、それからこれと同じ手順を実行することだ。ただし、別のオブジェクトに対してだ」。

しかし、ここで一言…

なんだ、実に簡単なことじゃないかと思ってもらっては困るので、その前に言っておきたい。機械学習の手法を実際の作業に適用しようとすると、数々の困難や微妙な問題に直面する。サイバーセキュリティの世界では特にそうだ。サイバースペースの地下世界では絶えず新種の攻撃が考案されており、いくら優秀な数学的モデルであっても、常に改良が必要だ。そしてこれこそが、サイバーセキュリティにおける機械学習に伴う、極めて厄介な特徴なのだ。サイバーセキュリティのような変化の激しい、過酷な環境では、機械学習は常に真正面からぶつかってくる障害に直面しなければならない。

Kaspersky Labでは2000年代半ばにすでにエンドユーザー向け製品に機械学習を取り入れていた

第1に、こうした新しい攻撃をすべて検知する必要がある。当然ながら、サイバー犯罪者どもがマルウェアを「どうぞ検知してください」とばかりに我々に送ってくることは、ほとんどない…。その反対で、不正な利益をできるだけ多く、できるだけ長い間稼ぐため、できるだけ長くマルウェアが検知されないようにと懸命に隠そうとする。こうした攻撃を継続的に探す作業は、非常に複雑なツールとインテリジェンスが必要であり、コストのかかる専門職だ。

第2に、重要なものとそうでないものを正しく見分けられるように、ロボットをトレーニングさせる必要がある。これが実に大変な仕事で、言ってみれば芝生の上いっぱいに各種とりどりの熊手が散らばっていて、いつどれを踏んづけてもおかしくない、というような状況だと思えばいい。1つだけ例を挙げれば、過学習の問題がある。

Image source出典

以前からよく知られる過学習の例は次のようなものだ。数学者たちが、多数の牛の写真を使って、牛の画像を認識するシステムを作成した。そして、そのシステムは牛を認識するようになった。ところが複雑な写真を使い始めると、何も認識しなくなった。そこで何が問題なのかを調べてみた。その結果わかったのは、アルゴリズムが(言ってみれば)「賢くなり過ぎ」て、勘違いするようになったということだ。というのも、写真の中で牛が草をはんでいた草地の方を学習してしまったのだ!

このように、技術に「頭脳」を付け加えるのは非常に難しい仕事だ。長く厳しい試行錯誤の連続であり、少なくとも2種類の専門知識を組み合わせて取り組む必要がある。データサイエンスの知識とサイバーセキュリティの知識だ。我々は2000年代半ばまでにはいずれの知識も豊富に蓄積しており、当社製品の「脅威への対抗」技術に機械学習を取り入れ始めた。

それ以来、当社製品のオートメーションは急速な進歩を遂げてきた。製品やコンポーネントの大小を問わず、さまざまな部分に各種の数学的アプローチが取り入れられた。アンチスパム(スパムの程度に基づいたメール分類)、アンチフィッシング(フィッシングサイトのヒューリスティック認識)、ペアレンタルコントロール(望ましくないコンテンツの除外)、詐欺対策標的型攻撃からの保護アクティビティ監視などなど。

「そんなに急かさないでくださいよ、スミスさん」

機械学習の成果について読んでみると、それほど賢いマシンアルゴリズムなら、利用者のコンピューターに直接組み込んでそのまま放置すればいいではないか、という気になるかもしれない。賢いアルゴリズムなら自分で学習させよ、ということだ。しかし、機械学習の世界に一匹狼の存在する余地はない。その理由は以下で述べるとおりだ。

分離型機械学習に反対する主な理由はパフォーマンス低下、保護の不安定化、防御の弱さ

第1に、そのようなアプローチにはパフォーマンス面で限界がある。利用者にとっては、保護品質と速度との間に適切なバランスがとれている必要があるが、既存の技術を拡張したり、新技術を追加したりすると、(どれほどスマートなものであっても)必然的に貴重なシステムリソースを消費することになる。

第2に、アップデートもしなければ、新しい学習材料も一切与えない「孤立主義」は、どうあっても保護品質の低下をもたらす。アルゴリズムには、まったく新しい種類のサイバー攻撃について定期的に学習させる必要がある。そうしなければ、「脅威の動向は常に変化している」と口に出して言う間にもそのアルゴリズムの検知能力は後れを取ってしまうだろう。

第3に、すべての「対抗」技術を1台のコンピューターに集中させると、サイバー犯罪者にとって保護技術について詳しく調査し、それに対抗する手法を考案するチャンスが広がることになる。

ここでは、上位3点だけ挙げたが、これ以外にもさまざまな根拠がある。

では、何をすべきなのか?

実のところ、すべきことは実に単純だ。強力な武器、つまり機械学習技術の中でも特に重要で、リソース使用量の多い技術をすべて、一個人のコンピューターよりも遥かに高度な環境に置き、「リモート頭脳」を作ることだ!リモート頭脳は、膨大な数のクライアントコンピューターから学習したデータに基づき、迅速かつ正確に攻撃を認識して必要な保護を提供することができる。

ふわふわした小さな「雲」(クラウド)

というわけで、10年前に我々は、求められている「リモート頭脳」たるKaspersky Security Network(KSN)(関連する特許と特許出願は17件)を開発した。KSNは、保護されたコンピューターに接続された高度なインフラを持つクラウド技術で、エンドポイントのリソースはほとんど使用せずに保護品質を向上させる。

要するに、KSNはロシアのマトリョーシカのように、1つの「クラウド」の中にサイバー攻撃と戦うためのスマートな技術がいくつも入っているものと思えばいい。「対抗」システムや継続的に開発中の実験モデルも含まれている。その中の1つであるAstraea(特許US7640589US8572740US7743419)については以前にも書いたが、これは2009年から導入された技術で、保護されたコンピューターで発生したイベントを自動的に解析して未知の脅威を発見している。現在Astraeaは、1日に10億件以上のイベントを処理し、1,000万個のオブジェクトのレーティングを算出している。

クラウド技術がいかに優れているかはすでに実証されているが、それでも依然として分離型自律システムも販売されている。こうしたシステムは事前に機械学習を1回行ったきりで、クライアントコンピューターに入ってからはほとんどアップデートされない。信じがたいことだ。

Kaspersky Labでは、サイバー脅威の99.9%を、機械学習を取り入れた基盤アルゴリズムを使用して解析

ここで詳しく考察してみよう。

こうした分離型製品を開発している会社は、機械学習のおかげで、定期的にアップデートしなくとも「新世代のマルウェア」を検知できる、と謳っている。しかし、そのような検知技術は、あまり重要でない「表面」を保護するだけのものなので、魅力を感じる人はおらず、犯罪者の側から見ても十分な経済的利益が見込めないことになる(利用者が少な過ぎると、関心を持たれない)。たまには脅威を検知することがあっても、誰も聞いたことがないような脅威だ。たとえばDuquFlameEquationといった高度なメガ級のスパイ攻撃を検知したことがあるわけではない。

現在、当社では、サイバー脅威の99.9%を、機械学習を取り入れた基盤アルゴリズムを使用して解析している。保護されたデバイスで不審な動作を検知してから、該当する新しい「お薬」を公開するまでの時間は平均10分だ。ただし、もちろんこれは、その不正アイテムをプロアクティブ保護(たとえばエクスプロイトに対する自動保護)によって事前に検知していなかった場合の話だ。不審なオブジェクトを検知してからアップデートを公開するまでの時間がわずか40秒だったことも何度かあった。これに対してアンダーグラウンドのフォーラムでは不満の声が多々聞かれた。「一体、なんだってこんなに早く見つけやがるんだ?追いつかれちまう!」

まとめると、「クラウドインフラ + 機械学習 = 驚くほど効果的な保護」という計算式になる。それ以前にも、第三者評価機関によるテストで当社製品の成績が振るわなかったことはあまりなかったが、KSN導入以来、当社は紛れもなくナンバーワンの地位を保っている。また、誤検知の数も低い水準に留まっており、スピードの点でも業界の上位に入っている。

ビンテージワインvs.去年の安ワイン

ここに来て、あたかもサイバースペースにおけるすべての悪に効く万能薬が見つかったかのように言われている!エンドポイントには軽めのクライアントインターセプターだけ、負荷の高い仕事はすべてクラウドで処理しますというが、実際はそうもいかない。というのも、ネットワークの問題が発生したら、エンドポイントは保護されなくなるからだ。実際、スマート技術を導入すべき理想的な環境は、両極端な環境の間にあることが経験から実証されている。すなわち、自律環境とクラウド環境を組み合わせる手法だ。

それから、機械学習がトータルセキュリティに向けた他のすべてのアプローチに取って代わるかもしれないという考え方がある。いわばすべての卵を1つのかごに入れる、というわけだ。

機械学習は万能薬ではない。最善の保護は、すべての階層で多様な技術を組み合わせ、あらゆる攻撃ベクターを考慮に入れること

しかし…良からぬ意図を持った人間が最終的にアルゴリズムの仕組みを理解し、保護を迂回する方法を知ってしまったらどうなるだろうか?そうなったら、すべての数学的モデルを調整し、セキュリティ製品がインストールされているデバイスのためにアップデートを公開しなければならない。そしてモデルの調整とアップデートの送受信が済むまでの間、利用者はたった1人で何の保護もないまま、サイバー攻撃に直面しなければならない。

結論は明白だ。最善の保護とは、あらゆる攻撃媒介を考慮に入れ、すべての階層で多様な技術を組み合わせることだ。

そして最後に、最も重要な点に目を向けよう。機械学習は、人間が作った。データとサイバースペースの危険の解析に関して最高水準の専門知識を持つ人間だ。機械と人間、この2つを切り離すことはできない。すべて「HuMachine (ヒューマン + マシン)インテリジェンス」あってのことなのだ。

そしてその実現に向けた取り組みは、何年もの歳月がかかる、試行錯誤の連続だ。たとえるならビンテージワインといったところか。ビンテージワインは、去年の安ワインより必ずおいしい(安ワインのラベルがいくら魅力的であっても)。機械学習という長く険しい道をいち早く歩み始めた人ほど、それだけ経験豊富な専門家、質の高い技術、信頼性の高い保護を手にすることになる。これは何も私1人の意見ではない。数々のテスト調査や研究、そして顧客によって裏付けされている。

ボーナストラック:なんという時世だ!

一部のITセキュリティスタートアップが掲げるビジネスモデルは明白だ。そうした企業のスローガンは「どれだけ儲けられるかではなく、どれだけの企業価値があるかだ」。目指すのは、挑発やごまかしやはったりを駆使した矢継ぎ早の集中的なマーケティング活動で、寄せられる期待の泡をさらに膨れ上がらせることだ。

詐欺を生業とするスタートアップでないなら、いずれ必ず、自社の未来が多層防御、各種の最新保護技術、自社の専門技術の開発なしでは立ち行かなくなることに気づくはずだ。さもなければ、投資金や利用者からの「信頼」が尽きてしまうからだ。

他方で、必要な要件をすべて満たす優秀なセキュリティ製品をゼロから作り上げるのは、近頃は、不可能とは言えないまでも困難だ。資金よりも、むしろ頭脳と時間の方が必要になるからだ。それでも、小さく始めて着実に積み上げて行くことを選んだスタートアップもおそらくあるだろう。

machine-learning-robots-dilbert

いずれ「革新的な」スタートアップが、適切なテストを通過し時の試練を経た技術を導入し、こうした技術が効果を実証するようになると信じている。若い優良なスタートアップがやがて本物の経験を積み重ねて独自の専門知識を蓄積し、潜在的な攻撃シナリオに対抗できる保護製品によってラインナップを拡張していくだろう。製品を徐々にプロレベルに磨き上げ、「真のサイバーセキュリティ」で採用されている客観的な品質基準との相関関係を、身をもって示してくれるだろう。

#機械学習 は #サイバーセキュリティ の基本。 @E_KASPERSKY が語る興味深い事実 #AI_OILTweet
コメントを読む 0
コメントを書く