TOUCH THE SECURITY Powered by Security Service G
「セキュリティエンジニアとデータサイエンティスト視点」と題してお送りする本稿。第二回目は、昨今話題となっているセキュリティ分野における「機械学習」について書いてみたい。先ず、機械学習と聞いて皆さんはどのようなイメージを抱くだろうか。近い言葉として、AI(人口知能)なんて用語も並べて耳にすることが多いだろう。
目次
1.情報セキュリティ分野における機械学習とAI
機械学習とAI(人口知能)については、様々なサイトで既に比較解説されているが、少々語弊があるかもしれないが恐れずに私の言葉で表現するならば、「機械学習はIDS的であり、AIはIPS的である」といえよう。大変申し訳ない。もっと混乱させてしまったかもしれない。そもそもIDS的、IPS的って何だろう?という話から続けて解説していこう。
IDSは「Intrusion Detection System(侵入検知システム)」、IPSは「Intrusion Prevention System(侵入防御システム)」の略である。どちらもネットワークやサーバの出入口位置に配備して、外部又はネットワーク内部からの通信を監視し、不正・異常な通信が確認された際に対処するネットワーク機器である。何らかの異常を検知した場合、管理者に対して異常な状態である旨を通知する。その先には通知を受けたシステム管理者が異常な通信をブロックするなどの判断・対処を実施することで、企業ネットワークを脅威から守る働きをするのである。
対して、IPSはIDSのように管理者へ通知するだけではなく、更に脅威の種類によっては、その通信を即時的に遮断することも可能となる。従って管理者が異常に気づいてから対処するIDSとは異なり、より迅速に脅威に対して対処ができるネットワーク機器である。
IDS IPSの仕組み
では、あらためて機械学習とAIに戻って解説するが、「機械学習はIDS的であり、AIはIPS的である」と表現をした意味として、「機械学習」は、何等かの動作・状況を人間以外のシステムがナレッジを蓄積・学習し、何等かの異常を検知した際には人間に通知する、もしくは可視化して時には警告をあげてくれるIDS的な働きであり、AI(人工知能)は、機械学習で実施した対応に対して人間の指示を待たずに即時的に処置まで行うことが可能となるIPS的な働きであるからである。その意味ではIDSの先にIPSがあるのと同様、機械学習の先にAIがあると捉えていただいても問題ない。機械学習はAIの一部であるという説明をされることもあるようだが、その所以でもある。
2.従来技術との比較
ここまでは、より最先端である尖端部分の機械学習、AIについて言及してきた。次に、不正検知の根底をなす従来の技術についても書いてみたい。
不正検出におけるベース技術の種類
2-1.シグネチャ検知型
シグネチャ検知型は、不正なアクセスについて、事前にシステムがデータベースや設定ファイルを持ち、その情報と照らし合わせて判断をする仕組みである。この手法は、セキュリティ手法の原点であると言っても過言ではないだろう。今も引き続きシグネチャ検知は健在である。しかし残念ながら今の時代は、シグネチャ検知だけでは不十分である。ウィルスが世界的に初めて出現したのは、1986年のブレインウィルスであった。今から40年も前の話であるが、ブレインウィルスの出現をきっかけとしてアンチウイルスソフトベンダーでは、自前のウィルス対策ソフトを開発し、新種のウィルスが出現する度にそれに対処する定義ファイルを更新して対処してきた。シグネチャ検知型は、セキュリティ対策黎明期においては誰もが認める大変有効な対策手段であった。
しかしながら現代は単純なコンピュータウィルスを超えて、現在は1日あたり世界規模で計算すると30万以上の新しいマルウェアが出現し、まるで海の砂粒程の現実的な脅威が日々発生している状況である。以前のように脅威の発生が限定的(既知の脅威)であった時代ならば、その脅威に対して対処したシグネチャを更新することで対処可能であったが、現代は所謂ゼロデイ攻撃として、シグネチャ型のセキュリティ製品が対策できる前に日々新しいマルウェアが生み出され、企業ネットワークに対して、常に未知の脅威が押し寄せているのである。
2-2.ヒューリスティック検知型
シグネチャ型の次の段階として、1990年台に入ってから出てきた検知手法としてヒューリスティック検知型がある。ヒューリスティック検知型は、今では「サンドボックス製品」のように表現されることもあるが、もともとのヒューリスティックの語源が示す通り「必ず正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる」ことを期待された検知方法である。
ヒューリスティック型検知もシグネチャ型検知と同様、アンチウィルスソフト製品などでコンピュータウィルスの検知手法の一つとして採用されてきた歴史がある。特徴としては、シグネチャ型が事前に定義されたパターンマッチングであるのに対して、ヒューリスティック検知は、プログラムの動作パターンを分析してコンピュータウィルスか否かを判別する手法である。ヒューリスティック型の検知例を一つだけあげるとしたら、システム領域を書き換えるといった、通常のプログラムは行わない動作が突如おこなわれた際、不審な挙動として検出することができる等がある。
2-3.機械学習型の担うこと
パターンマッチング方式のシグネチャ型と、異常な振舞いを検知する方式のヒューリスティック型の特徴を、以下に簡単にまとめた。
メリット | 既知の脅威対策に最適 |
---|---|
デメリット | 定義ファイルを不断に更新し続ける必要がある 未知の脅威検知には不向き |
メリット | 未知の脅威対策に対応可能 |
---|---|
デメリット | "振舞い"をベースとした検知であるが故の過剰な反応 |
シグネチャ型の検知の弱点であるゼロデイ攻撃、未知の脅威への対策としてヒューリスティック型が登場したが、実質的には検知精度の限界の問題は完全に解決されなかった。
検知技術の変遷において、過検知(誤検知)と正しい検知は表裏一体であり、過検知(誤検知)を恐れていては何もはじまらない。白黒明確でないグレーゾーンに対し「疑わしいならば一旦は検出した上で人が判断する」が鉄則である。とはいえ、実際の運用に際して過検知(誤検知)が多い分コストが増大するし判断する担当者のストレスも多くなる。検知技術の永遠のテーマとして「過検知(誤検知)の低減と未知の脅威への対策」が大事な点であることは、今後もきっと不変であろう。そのような不変のニーズに対する解決手法の一つとして機械学習型がうまれたのは1990年台半ばであった。
機械学習の場合は、その名のとおりナレッジ蓄積型であり、経験値をあげて判断基準の精度を高めていくことが可能となるという点でヒューリスティック検知よりも優れていると言えよう。深い内容は、次回詳しく触れるようにして、その為の予備知識である「AI型(人工知能)とは?」について最後に触れておこうと思う。
3. 機械学習の為の予備知識 ~AIってなんだろう~
AI型は、大きく分けて2つに区分される。一つは特化型人工知能、もう一つは汎用人工知能である。前者は、今まさにAI製品として世の中に出ているAI製品の大部分を占める。非人間であるロボットやシステムが、あたかも人間のように決められた判断基準に則り、また予め定められた導出手順に従って人間に成り代わって処理を行うものである。ここで重要なのは、あくまで人間が意図したとおりに動かす絶対予定的な処理であるということだ。それに対して汎用人工知能は、まさに人間の脳そのものであり人間そのものの存在に近く相対予定的な処理が期待されている。
特化型人工知能とは
代表例としてはiphoneで標準使用が可能なSiriが有名である。Siriも音声認識技術をベースとしてユーザの質問を認識し、それを文字列として置き換え、事前に人間がプログラミングしたロジックに基づき、ひとつの回答を導出するプログラムである。私自身もユーザ視点でSiriを試してみたが、時にはウェブの検索結果を表示させる場合もあれば、音声認識、若しくは文字認識したINPUT情報に含まれているキーワードから、ピンポイントの回答を導出する動きをしていることがわかった。以前Siriで何を質問しても、「すみません。よくわかりません」という回答が多かった印象だが、最近は何かしらの答えを返してくることが多くなった印象だ。「わからない」にしても、「すみません。聞き取れませんでした(文字で入力してください)」とか、「〇〇はわかりませんが、Webで検索してみましょうか」など、「わからない」なりにも、何とか解決する道を模索するべく学習機能も日々バージョンアップしているようだ。
更にもう一つの例が「チャットボット」である。数年前には、ユーザサポートの現場では、人間がチャットをしてサポートしていた時代から更に発展をして、今はAIでチャット対応する時代にかわってきている。チャットボットの世界は更に拡張し続けており、アプリケーションを選ばず、今や大衆コミュニケーションの代表格でもあるLINE上でも自動回答可能なボットプログラムを容易に作成できる時代となってきている。ここまで例示してきた内容は、どれも人間がプログラミングし、人間が定義したキーワードに応じた回答を忠実にOUTPUTする機械処理そのものであり、一見機械が学習し自ら成長し続けているようにも見えるが、その内実は、その回答を導出するためのプログラムロジックが人間の手によりバージョンアップされ、回答するためのデータベースの最適化が重要となっているのである。それが特化型人工知能の処理である。
Microsoft社のチャットボット「りんな」
汎用人工知能とは
汎用人工知能は、まさに現在のAIの研究テーマの最先端であり、取り組み段階のため、完全な意味での汎用人工知能を使った製品は出現していない状況である。汎用人工知能は、謂わば機械の中に人間の脳をつくることと等しいことである為、どんなに科学が進歩していったとしても完全な人間の脳を再現するレベルでの汎用人工知能をつくりあげることは不可能であると私自身は考えている。そのくらい人間の脳は高性能であるからだ。
機械と人間の脳の比較において、機械の最大の強みは大量・高速・高精度であるが、逆に機械の弱みは少ない情報からの推論が得意ではなく、原理原則的であり変化に弱い等があげられる。それに対して人間の脳は機械に比べると処理は遅く処理量も少量であり、時には勘違い・錯覚も生じてしまい、機械にくらべると精度が落ちてしまうことがあるが、最大の強みは「臨機応変さ」「第七感を使った洞察力」「状況判断力」であるといえよう。つまり、感情を持ち、感情を理解し、その場の空気を読み、行間までも読み取ることができることが最大の特徴である。汎用人工知能を機械で完成させることができるならば、人格、感情、精神を持ち、神経が通った存在物をつくることであり、到底人間が成せる技ではない。
汎用人工知能のAI研究者は何万光年先の星に向かう光のように、汎用人工知能の完成に挑戦し続けている永遠な旅人であるとも言えよう。
焦らしてしまい申し訳ないが、今回は本丸の『機械学習』を遠目から眺めながら、まずは外堀を埋めてみたところ迄でディスプレイ画面を閉じることにする。次回「セキュリティエンジニアとデータサイエンティスト視点 その3」も乞うご期待ください。