スーパーコンピュータ「不老」のAI基礎/応用研究への期待
近年、いわゆるAIと呼ばれる、機械学習(ML: Machine Learning)や深層ニューラルネットワーク(DNN: Deep Neural Network)の世の中の情報システムへの応用が非常に盛んとなっております。そのため、情報学研究科においても、ML/DNNを様々な分野に活用する研究は盛んに行われておりますし、ML/DNNのアルゴリズムやフレームワークを改善する基礎研究も行われております。
スーパーコンピュータ「不老」は、従来のスーパーコンピュータの得意とする高精度な大規模計算(例: 気象シミュレーションや分子動力学シミュレーションなどの大規模物理シミュレーション)への対応だけでなく、ML/DNNで必要となる低精度だが超大規模な計算にも対応しており、ML/DNNの基礎/応用研究への利用が非常に期待されています。
本コラムでは、サイバーセキュリティ研究を例に出しつつ、ML/DNNの応用研究における必要計算量の増大の問題とスーパーコンピュータ「不老」への期待を記します。
ML/DNNのサイバーセキュリティ分野への応用
情報システム学専攻 情報ネットワークシステム論講座では、サイバー攻撃検知、セキュリティインシデント対応支援、セキュリティリスク検討、脅威情報の自動収集と防衛適用など、幅広い分野に渡ってサイバーセキュリティ分野の研究を行っております。この分野の研究においてもML/DNN応用は広く行われており、我々の過去の研究においても、悪性通信検知、マルウェア検知マルウェア分類、脅威情報の自動分類などにML/DNNを応用しております。
サイバーセキュリティへのML/DNN応用は、すでに多くのセキュリティ対策機器やアンチウィルス・ソフトウェアで利用されています。どのような点で従来型の検知より優れているのでしょうか? 以下、特に優れると考えられている点について、説明します。
●亜種攻撃や亜種マルウェアの検知
従来の攻撃検知やマルウェア検知の代表としてシグネチャ型検知と呼ばれるものがあり、「このような通信が来たら攻撃」「このような命令列があったらマルウェア」のように、検知の鍵となる特徴(シグネチャ)を定義して、それにひっかかったら警告を出すという動きをします。このような検知では、ある攻撃やマルウェアに対してシグネチャを作っても、ダミーの通信や命令を織り交ぜたりした亜種攻撃や亜種マルウェアによって回避されてしまうことが多いです。もちろん、亜種までもカバーするよう上手にシグネチャを作ることは可能ですが、熟練したセキュリティ技術者でも労力のかかる仕事になりますし、そこまでやっても、攻撃者は検知を回避する亜種をやすやすと作ってきます。これは、サイバーセキュリティ問題は「攻撃者側は市販のセキュリティ対策を評価した上で亜種を作ることができる」という攻撃者側に有利な問題でもある点が関係しています。
一方で、ML/DNNを応用した識別器では、人手では作れない複雑な識別器を学習によって作ることができ、一般的に、シグネチャ側検知よりも亜種攻撃や亜種マルウェアに強いものになります。また、ロバスト性を持つように識別器を学習させることも、ロバスト性を持つシグネチャ作成よりははるかに容易です。もちろん、攻撃者側がしつこく亜種攻撃や亜種マルウェアの作成と評価を行うことで検知逃れを実現することは不可能ではありませんが、必要な労力はシグネチャ型検知よりははるかに多くなるでしょう。
●アノマリ検知による未知攻撃の検知
サイバー攻撃は、これまでの攻撃と同じもしくは焼き直しである既知攻撃と、全く新しい攻撃パターンである未知攻撃に分けることができます。特に、新たなソフトウェア脆弱性が発覚した後にセキュリティ・パッチが提供される前に攻撃が始まるゼロデイ攻撃は、最も恐ろしい未知攻撃の一つになります。
このような未知攻撃を見つけるために、「正常通信や正常挙動を定義し、それを外れた物を攻撃と判断する」というアノマリ検知という方法があります。膨大な数の正常通信や正常挙動を判別するシステムを作るためには、ML/DNNによる識別器の利用が欠かせません。例えば、アノマリ検知システム構築方法の代表例として、通常時の通信を学習データとして識別器を作成し、現在の通信を識別器を通した結果、「学習時の通信」と判断されない物を攻撃通信と判断する方法があります。もちろん、学習時に存在しなかった通信全てが攻撃通信になるわけではありませんが、攻撃通信の候補を絞り込めるとう点で、アノマリ検知は活用できます。
情報システム学専攻 情報ネットワークシステム論講座でのサイバーセキュリティ研究(外部リンク)
ML/DNN応用システムに対する攻撃と研究例
前節では、ML/DNN応用システムはサイバーセキュリティで大いに活用されているとともに、従来型の検知よりも優れた点が多くあることを示しました。では、ML/DNN応用システムによる攻撃検知があれば、セキュリティは万全で心配はなくなるのでしょうか? 実は、今度は、ML/DNNを標的とした攻撃が懸念されることになります。このような、ML/DNNを標的とした攻撃には、入力に対してノイズを加えて識別器に誤判定を起こす回避攻撃、誤判定を誘発するデータを学習データに紛れ込ませる中毒攻撃、入力に対する出力の統計などをもとに識別器の内部パラメータや学習データの抽出を目的とする移転攻撃などがあります。いずれも、ML/DNNを応用したセキュリティ・システムにおいて大きな脅威になります。
このようなML/DNNを標的とした攻撃に対抗する研究として情報ネットワークシステム論講座で実施したものに、「特定の攻撃の検知のみを下げるML/DNN応用システムへの中毒攻撃」の脅威について研究を行い、文献[1]として発表しています。文献[1]では、「マルウェアを用いてサイバー攻撃を行う者が、事前に偽学習データとなる偽マルウェアをばらまいた上で、偽学習データによる中毒攻撃が成功したタイミングで本命(ターゲット)マルウェアで攻撃」というシナリオが成立するかの検証を行った結果をまとめています。文献[1]では、図1と以下の手順に示すように、マルウェア識別器(代替識別器)、偽学習データを生成するGAN(Generative Adversarial Networks)、偽学習データの生成を誘導するDeep Q Networkによる強化学習を利用し、偽学習データの生成を検証しています。
- 偽学習データ生成用としてベースとなるベースマルウェア特徴量を設定する。
- 強化学習のエージェント側からの変化対象特徴量選択を受け、偽学習データの特徴量を変化させる。
- 代替識別器に対して偽学習データをバッチサイズ分複製し学習させる。
- 検知を回避させたいターゲットマルウェア特徴量を偽データ学習後の代替識別器に識別させ、悪性度を出力させる。
- オリジナルの代替識別器が出力した悪性度と手順4.で学習した識別器が出力した悪性度を比較し、どのくらい悪性度が低下したかを報酬として出力する。
- 強化学習のエージェント側は報酬を受け取り、最適な行動を選ぶためのQ関数のパラメータを更新して、より正確に最適な行動(より悪性度を低下させる特徴量変更)が選べるように学習する。
- エージェント側において、Q関数の出力と前状態の偽学習データをもとに、次に変化させるべき特徴量を選択する。
図1: 特定マルウェアのみの検知逃れを引き起こす中毒データの生成検証
[1] 高木聖也, 長谷川皓一, 山口由紀子, 嶋田創, “機械学習を用いたマルウェア検知システムに対する強化学習による敵対的サンプル生成の課題,” 電子情報通信学会研究報告, Vol. 119, No. 288, ICSS2019-62, pp. 13-18, 宮崎県宮崎市, 2019年11月.
スーパーコンピュータ「不老」のML/DNN性能への期待
前節の図1中の「GANによる特徴量サンプル生成/更新」「偽学習データあり代替識別器」はそれぞれがML/DNNを応用したシステムであり、敵対的サンプル生成研究の1回の試行の中で、それぞれ100回以上の学習と評価を行います。この試行を数十パターン実施すると、学習の回数は1万回以上になり、非常に大きな計算力を必要とします。文献[1]では検証研究で小規模であったにも関わらず、通常の計算サーバを使って評価した場合、文献[1]に掲載したデータの取得に数日かかりました。より大規模なデータかつ試行回数を増やした評価を行った場合、通常の計算サーバでは評価に数ヶ月と、研究を遂行する上で非現実的な時間がかかる可能性があります。
文献[1]の研究の実施時には、まだスーパーコンピュータ「不老」はありませんでしたが、試験導入されたGPUサーバであるHPE Apollo SX 40を使わせていただいて、最終的に文献[1]に載せるに至らなかったデータを含め、多くのデータの取得時間を短縮でき、大きな助けになりました。スーパーコンピュータ「不老」には、ML/DNN利用に適したGPUを多く備えたType IIサブシステムが新たに備えられています。
この先増えるであろう、文献[1]のような「複数のML/DNNを組み合わせて推進する研究」の加速に、スーパーコンピュータ「不老」は大いに役立つものだと期待しています。