機械学習: ダメなデータからはダメな結果しか生まれない

機械学習で適切なデータセットを使用すれば、マルウェアを正確かつ効率的に除去するのに役立てることができます。しかし、機械学習に与えられるのはデータモデルであるため、偏向した問題のあるデータモデルを投入すれば、ゴミのような結果しか生成されません。

ソフォスのデータサイエンティスト Hillary Sanders が Black Hat USA 2017 において、「Garbage in, Garbage Out: How Purportedly Great Machine Learning Models Can Be Screwed Up By Bad Data (ゴミデータからはゴミ結果しか生まれない: 優れた機械学習も意図的に与えられたゴミデータで台無しに」と題した講演を行いました。

機械学習の動向

多くのセキュリティ専門家が、機械学習は次世代のマルウェア対策技術だと高く評価しています。ソフォスが今年初めに Invincea 社を買収したのも、機械学習ベースのマルウェア対策技術を取り込むことが目的でした。

機械学習は、マルウェアがエンドユーザーにとって問題になる前に未然に阻止する効率的な方法であると考えられています。重要なポイントは次のとおりです。

  • ディープラーニング型のニューラルネットワークモデルを使用することで、検出率は向上し、誤検出は低減します。
  • 既知のマルウェアと共通の特徴を持つコードが一掃されます。人間による分析では、このような共通の特徴はしばしば見過ごされてしまいます。
  • 動作ベースの検出により、高度な攻撃者が用いる戦術と技術が幅広くカバーされます。

しかし、機械学習が万能な解決策であるとは言えません。Sanders が指摘しているように、完璧な技術など存在しませんし、機械学習を生み出した人々は常にその弱点を分析し、より大きく、より良いモデルを考え出す必要があります。

偏ったデータ

Sanders は講演の中で、この問題を次のように説明しています。

  1. セキュリティ分野の機械学習研究者が主張するモデルの精度は常に間違っている。
  2. ほとんどの場合、楽観的な傾向が強すぎる。
  3. ゴミのようなモデルを使用しないためには、そうしたバイアスの重大度を推定する必要がある。

Sanders は次のように述べています。

標準的なモデル検証の結果は誤解を招きかねません。私たちが知りたいのは、使用するモデルが実環境でどのような結果を出すのかですが、それは不可能です。しかし、推測することはできます。実際のデータに近い偏りのないサンプルにアクセスできる場合、使用するモデルのデプロイメントエラーを時間減衰分析によってシミュレートできます。ただし、そのようなデータにアクセスできない場合は、テストに適したデータがないため、デプロイメント時のモデルの性能を正確に推測することは不可能です。

次善策は、新しいデータセットに対する特定のモデルの感度をテストし、(モデルのトレーニング用データセットと起源を同じくするテスト用データセットに限らず) さまざまなテストセットで一貫して優れた性能を発揮するトレーニング用データセットとモデルの構成を選択することだ、と Sanders は述べています。

この方法では、モデルの精度に関する非常に大まかな「信頼区間」を知ることができます。また、モデルの性能も向上します。

ゴミ結果が出る可能性を最小化するには

セキュリティ分野の機械学習は比較的新しいため、ゴミを除去する決定的な方法はありませんが、Sanders はヒントをいくつか提示しています。

最善のトレーニングセットと最善のモデル構成を選択するためには、より正確な出発点を見つけられるように、適合モデルの限界を特定する必要があります。

Sanders はより正確な測定を行う目的で、悪意のある URL を検出するように設計され、3 つの異なる URL データソースでトレーニングおよびテスト済みの同じディープラーニングモデルの感度結果を、Black Hat 参加者を対象に調査しました。

エラーをシミュレートすることで、より良いトレーニングデータセットとモデル構成を作成し、信頼性の高い結果を出す可能性を最大化することができます。