マシンラーニングは、マルウェアの分析、予測の実施、セキュリティイベントのクラスタリングなど、さまざまな方法でセキュリティに適用できる。シグネチャの確立されていない、未知の攻撃を検出するために使用することも可能だ。
サイバーセキュリティとデータサイエンスに関心を持つソフトウエア開発者のWendy Edwards氏は、The Diana Initiative 2021で、マシンラーニングのセキュリティへの適用について講演した。
人工知能(AI)を適用すれば、通常と異なるパターンを発見する異常検出が可能になる。ただし、通常と異なることが必ずしも悪意を意味するものではない、とEdwards氏は説明する。
例えば、ソーシャルメディア上で何かが流行ったために、Webサーバに通常より多くのトラフィックがあるのかも知れません。それを判断するには、そのトラフィックが何に関連しているのかを確認すればよいでしょう。例えば、"User-agent"に通常のWebブラウジングでは関係しないものが設定されているHTTPリクエストがあるか?特定のIPアドレスあるいはアドレス範囲からの、予期しない大量のトラフィックが存在するか?エンドポイントに対する通常とは異なるアクセスシーケンスは、ファジング(fuzzing)を示しているのかも知れません。
AIとマシンラーニングには、多くの入力変数を処理して結論を出すための手法がある。時系列データを使って将来を予測し、トレンド、季節、サイクルに対応する方法の例として、Edwards氏は次のようなものを挙げた。
この方法は、CPU使用率やWebサーバアクセスの総量を測定する上で有用です。システムが毎日決まった時間帯に最も負荷が高くなる、というのはよくある話です。新たに立ち上げたWebサイトのヒット数は、おそらく徐々に増えていくでしょう。平均や標準偏差といった統計的情報も有効かも知れません。特定のIPアドレスあるいはアドレス範囲からの"異常な"量のアクティビティが実際には何であるかを判断する上で、これがひとつの材料になります。
次にEdwards氏は、セキュリティイベントのクラスタリングにマシンラーニングを使用する方法について説明した。
クラスタリングはマシンラーニングのテクニックのひとつで、外部のポイントよりも互いに類似したデータポイントのグループを作るものです。セキュリテイインシデントはイベントのセットですが、同じ原因によって複数のロケーションで同じイベントセットが発生する場合が多々あります。
例えば、トロイの木馬(Trojan Horse)は複数のマシンを攻撃しますが、根本的な原因や対処方法は同じです。
セキュリティオペレーションセンタ(SOC)のアナリストが同類のインシデントを識別する上で、クラスタリングは有効な働きをします。このような同類のインシデントには、一般的に同じ対応が必要なのです。これによって多くの面倒な作業が不要になり、時間を節約することができる、とEdwards氏は言う。
Wendy Edwards氏に、マシンラーニングのセキュリティへの適用についてインタビューした。
InfoQ: 人工知能のITセキュリティでの使用について、現状はどのようになっているのでしょうか?
Wendy Edwards: 着実に進んでいますが、スキルを持った実践者へのニーズは変わらないのではないかと思います。人工知能やマシンラーニングが人に取って代わることはないでしょう。人工知能はこの15年程の間に、飛躍的な進歩を遂げました。そして、コンピューティングが複雑さを増したことによって、サイバーセキュリティもまた、以前より難しい問題になっています。
現在では、侵入探知やマルウェア分析、フィッシング検出、ソーシャルメディアにおけるボットアカウントの検索など、サイバーセキュリティにおける人工知能応用の可能性についての広範な調査と開発が行われています。自然言語処理も、その役割を果たしています。最も顕著な例はスパム検出ですが、難読化されたスクリプト内の悪意あるコードの特定にも使用されています。
自社のプロダクトがマシンラーニングをどのように使っているかを語るベンダはたくさんありますが、AIとサイバーセキュリティに関して広く認知されたベストプラクティスというものは、現時点では存在していません。
InfoQ: 講演の中で、アノマリ(anomaly)ベースの検出には、シグネチャの確立していない未知の攻撃を検出できる可能性がある、という話題がありましたが、それはどのように機能するのでしょう?
Edwards: この件は、何がノーマルで何がマリシャス(malicious)か、という議論に関わってきます。シグネチャは既知の攻撃に関連するルールセットですから、これまでになかった攻撃については存在しません。
無害であると説明できない異常が発見されれば、何か問題のある可能性があります。例えば、Webサイトの何かがソーシャルメディアでバズって、それが原因でアクティビティが増加しているのであれば、何の問題もありません。ですが、通常のユーザの振る舞いとは一致しない大量のアクティビティが見つかった場合は、攻撃を受けている可能性があります。
InfoQ: どのようなAIツールがあって、どのように利用すればよいのでしょうか?
Edwards: 完成度の高い無償ツールがたくさんあります。例えば、Pythonのscikit-learnです。GoogleとFacebookは、TensorflowライブラリとPyTorchライブラリをそれぞれリリースしています。
scikit-learnはレグレッションやクラスタリング、クラシフィケーションなど、たくさんの便利なツールを提供してくれますし、
TensorflowとPyTorchはディープラーニングのような、もっと複雑なタスクをサポートします。一般的に、PyTorchは経験豊富なPythonプログラマに向いており、TensorFlowは運用設定での使用に向いている、と考えられています。
InfoQ: AIとITセキュリティに関して、将来的にどのようなことが実現されると思いますか?
Edwards: 攻撃する側も人工知能を利用するようになるでしょうね。モノのインターネット(IoT)などの成長技術の攻撃面はどんどん大きくなるでしょうから、攻撃者もAIを使って悪用する方法を探すかも知れません。National Academy of Scienceのレポート"Implications of Artificial Intelligence for Cybersecurity"には、AIとMLを使って新たな脆弱性を見つけて兵器化する技術は、米国ではすでに概念化と開発の段階にあり、中国やイスラエルでも同様の可能性がある、とされています。
敵対的な(adversarial)マシンラーニングというのは、マシンラーニングアルゴリズムを欺こうとする試みのことです。例えばスパム送信者は、"不適切な"言葉の綴りを誤って記述して、通常はフィルタされない"適切な"言葉を含めることによって、フィルタリングを回避しようとする可能性があります。将来のシステムが運用データを使用してトレーニングされるならば、攻撃者はこのデータに手を加えようとするかも知れません。
この例のひとつが、Microsoftの"Tay"ボットです。トロール(troll)からの人種差別的および性差別的なメッセージに襲われた結果、Tayは不快なメッセージをツイートするようになり、16時間後にシャットダウンされることになりました。