機械学習に起こり得る3つの障害、外部からの攻撃にどう対処すべきか?:フェイルオーバー計画が必要な理由
機械学習モデルには脆弱性と障害がつきものだ。本稿では障害の発生原因と、障害発生時にもユーザーの作業を中断させないためのフェイルオーバー計画について説明する。
機械学習モデルには脆弱性がある。これが主な原因となって障害が起こりやすい。例えばハッカーは医療現場で健康に関する予測に利用される機械学習モデルをロックして、正当なユーザーがアクセスできないようにすることができる。また、機械学習モデルにコードを挿入して、ネットワーク上での不正な取引に関して欠陥のある予測が行われるようにすることも可能だ。
障害が発生したときに、作業を中断されることを望む機械学習ユーザーはいない。ユーザーに不便な思いをさせないために、企業は主要な機械学習モデルからスタンバイモデルへのフェイルオーバーを可能にするフェイルオーバーメカニズムを検討する必要がある。このメカニズムがあれば、ユーザーはバックグラウンドでフェイルオーバープロセスが発生していることにも気付かないだろう。
機械学習の障害には主に3つの原因がある。1つは「アルゴリズムの欠陥」、もう1つは「ネットワーク構成の欠陥」、そして3つ目は「敵対的な環境への露呈」だ。
併せて読みたいお勧めの記事
機械学習入門
機械学習の使われ方
- 「Microsoft Azure」の機械学習を診療技術支援に応用 慶応義塾と日本マイクロソフトら
- 「機械学習」時代の経営判断はどうあるべきか
- GoogleやAWSが提供する機械学習サービス、ビジネスにどう活用する?
機械学習をセキュリティに応用する
原因1:アルゴリズムの欠陥
管理された機械学習モデルでは、既知の入力データセットと既知の出力データセットを利用する。前者の例は心臓発作患者についてのデータ、後者の例は心臓発作患者からの応答だ。ただし、機械学習モデルのアルゴリズムロジックには欠陥が含まれていることが往々にしてある。そのため、新しいデータを予測するための再訓練が不十分になりがちだ。例えば、新しい患者が1年以内に心臓発作を起こすかどうかを適切に予測できなくなるだろう。
アルゴリズムには、欠陥をキャッチする例外ルーティンやエラールーティンが含まれていない可能性が高い。欠陥が検出されないと、機械学習モデルは動作が遅くなり、メモリを過剰に消費し、新たな脆弱性をもたらす。そして、最終的にはリソースの過剰な消費により、シャットダウンする。
一方、管理されていない機械学習アルゴリズムは、パターンに欠陥を含んでいることがある。データポイントが不適切に接続および関連付けられ、類似したものを適切に分類しないことがある。例えば、リンゴの種類の中にブドウが分類される可能性もあるため、アルゴリズムはリンゴとブドウを適切に分類できないだろう。
原因2:ネットワーク構成の欠陥
ネットワーク上で実行されている機械学習モデルもある。ネットワークが適切に構成されていないと、クラウドとデータセンターのサービスが停止するだろう。起こり得る障害の1つとして、企業のネットワークの全領域で同時にクラウドサービスが停止するというものがある。ダウンしたネットワークで運用している主要なモデルを正常なネットワークのスタンバイモデルにフェイルオーバーすることはできない。フェイルオーバープロセスでスタンバイモデルがアクティブになったときに、どのネットワークの領域でスタンバイモデルを実行させるかを企業が指定しなかったら、主要なモデルが停止したときに全てのデータが失われることになる。
もう1つの問題は、適切に構成されていないSDN(Software-Defined Networking)コントローラーだ。ハッカーは、常にコントローラーの欠陥を見つけ、ネットワークのプログラムを変更して、悪意のあるパケットを正当なパケットとして許可し、正当なパケットを悪意のあるパケットとして拒否されるようにする。SDNベースのネットワークをよりインテリジェントで安全にするために機械学習モデルを利用しても、ネットワークに脆弱性をもたらさないとは限らない。
原因3:敵対的な環境への露呈
適切に保護されていない機械学習モデルは、例外なく敵対的な環境にさらされる。攻撃者は、悪意のあるコードによってトレーニングデータに危害を加え、機械学習モデルで不適切な動作を引き起こすことができる。また、攻撃者は、フィルターを作動させる可能性のある疑わしい単語のつづりを故意に間違えることで、スパムのフィルターメカニズムを回避できる。
他に攻撃者が使う方法には、偽造指紋を使用して正当なユーザーに成りすまし、機械学習モデルとシステムにアクセスするというものがある。この攻撃を受けると通常の機械学習操作が拒否され、害のない入力をモデルに対して行うことができなくなる。
不適切なリスク管理計画
アルゴリズムの欠陥、適切に構成されていないネットワーク、敵対的な環境への露呈は、機械学習のリスク管理が適切に行われていない可能性を示唆している。機械学習プラットフォームに関連のあるソフトウェアやネットワークなどの資産の期限が切れていたり、除外されていたりといった問題が障害を引き起こすこともある。それから、モデルデータとセキュリティログが暗号化されていないこともある。
敵対的な環境における機械学習のリスクが全て評価されているわけではない。そのため、モデルのライフサイクルにDevOpsが適用されないなどの決定が下されることがある。ネットワーク管理者、機械学習プラットフォームの開発者、保守管理者は、クラウドへの移行中にモデルの動作がどう変化し得るかについて共同作業による評価を下せない可能性がある。新たな脆弱性と新しいテクノロジーが導入されて見過ごされる。また、ユーザーフィードバックが計画に含まれていない場合も問題が生じる。
機械学習のフェイルオーバー計画を作成する
フェイルオーバー計画の目的は、ユーザーが作業を中断することなく機械学習モデルを利用して予測できるようにすることだ。ユーザーがネットワークの背後で何が起こっているかを知ることはないだろう。主要なモデルで障害が発生すると、バックグラウンドでフェイルオーバーメカニズムが作動し、全てのデータが正常なネットワーク上にあるスタンバイモデルに移動する。スマートフォンやタブレットのシステムからSMS(テキストメッセージ通知)を受け取らない限り、フェイルオーバーが行われていることをユーザーが知ることはない。
フェイルオーバー計画では、企業が主要な機械学習モデルとスタンバイモデルを異なるネットワーク地域で実行するように規定しなければならない。企業は、主要なモデルで障害が発生したときに、スタンバイモデルを確実に利用できるようにしておく必要がある。計画は3段階に分けると理解しやすくなる。まず、企業が希望する方法で、アルゴリズムとネットワークの欠陥、敵対的な攻撃、その他の機械学習の脆弱性を検出する。次に、ハッカーが回避できない複数の障害を企業が希望する形で用意する。それから、3つ目の段階では、金融、医療、その他の業界でフェイルオーバー計画を実装するシナリオを提供するのが良いだろう。
Copyright © ITmedia, Inc. All Rights Reserved.