基礎的なセキュリティ学力が落ちてきている
丸山 猪俣先生は現在、東京電機大学で暗号の研究をされています。一方で、前職の奈良先端科学技術大学院大学の准教授を務められていた頃からずっとセキュリティ教育に携わって来られた方でもあります。昨年は、『サイバーセキュリティ入門』という本を出版されました。今日はセキュリティ教育、セキュリティ人材育成といったあたりにテーマを絞ってお話をうかがっていきたいと思います。
猪俣 私は教員になってから主に大学院生向けの教育をやってきましたが、今の時代、定員を充足するのが大変な大学院が結構あるのですよね。その結果、残念ながら学力は本当に落ちてきていて、これは学部教育をちゃんとやらないといけないんじゃないかと思うようになりました。というのも、大学院に入ってくる学生さんの基礎的能力が、本当に落ちてきたんです。さて、セキュリティの基礎的知識をつけてもらうにはこれからどうするかとモヤモヤしていた時に、偶然、大阪大学の先生と出版社さんからの出版話をいただき、高校生や大学の1~2年生ぐらいで学べる本を書いてほしいということで執筆させていただいた次第です。
丸山 じゃあ、きっかけは大学院生の、基礎セキュリティ学力の低下ですか?
猪俣 そうですね。演習なんかで、ちょっとだけ一つ上のことをやろうとすると、いきなり破綻するんです。結局セキュリティって、いろいろな要素が入ってくるのですけど、たとえば暗号であれば、初等代数も必須ですし、ネットワークセキュリティであればいわゆる通信のトラヒック理論とか、単純な数学の話もあります。でもそこを全く知らずに大学院にやって来るので、ちんぷんかんぷんになるんです。私にとっては、素因数分解なんて考え方は当たり前と思っていたんです。だけど彼らにとっては、素因数分解というと、中学校とか高校の数学でやった2次の多項式を素因数分解してください、みたいな問題感覚で学んでいるだけみたいで、例えば、暗号の世界における離散対数問題と全然つながらないのですよね。でも実はそんなことではないので……っていうギャップをすごい感じてですね、これではちょっとダメだと。
丸山 世代的に、いつくらいからダメといえるのでしょうか?
猪俣 私は昨年亡くなられた山口英先生と仕事をご一緒したくてNAISTにやってきました。教え始めたのは2008年からなのですけれど、最初の2年ぐらいは何も問題を感じなかったです。しかし、2011年ぐらいからでしょうか、なぜだか急激に学力が落ちてきたなと感じるようになりました。もちろん、出身大学の名前でどうこう言うわけじゃないですけど、でもやっぱり基礎力が全然たりていないと感じるようになりました。
丸山 基礎力がないっていうのは、どういうことなんでしょうか。
猪俣 たとえば、行列の計算における一次変換ってありますよね。というか行列の一次変換はそもそも、ある点をこっちの点に動かすっていう変換であることはご存じだと思います。でも、驚いたことに、教科書から一次変換が消えたんです。なんと、教科書に載っている行列はただの掛け算問題だけになっていたんです。
丸山 ああ、内積を計算するだけということなんでしょうか?
猪俣 そうです、そうです。これでは全然意味がない。本当に掛け算するだけなんです、例えば2×2の行列を。それで終わりです。
丸山 それはまずいですね。何のために行列計算があるかを理解していないと計算ができても意味がないですね。
猪俣 どんどん簡単な方向に進んで行っている気がします。もちろん、簡単なことはいいのですけれど、役に立たない使えないツールとして終わっちゃってるので。かといって、じゃあ、複素数は大事だといって、ガウス平面だけ、それだけは残っているんです。
丸山 一次変換を学ばずに、テクニックだけ教えている。
猪俣 教科書を見たら今はそういうふうに教えていたので、なんというかちょっとびっくりしてしまいました。
丸山 知りませんでした。そんなことになっているんですね。
猪俣 あともう一つ問題だなと思っているのが、情報共有に必要なコミュニケーション能力です。たとえば、インシデントをハンドリングする演習では、学生たちに、今回起きたインシデントを、あるトップマネジメント層に話すつもりで答えてくださいという演習をやるんです。学生たちはWebサーバの脆弱性や、ログとか、細かいところを説明したがるんです。でもトップマネジメント層ってそういうところには全然興味なくてですね(笑)、今この瞬間何が起きているんだとか、とにかく初動対応は何をすべきかとか、そのために必要な情報共有がもっとも大切なんだってことが欠落しています。でも、学生たちって、すごく細かいところばっかりに目が行くようになっているんです。だから基礎力がないことに加えて、物事を俯瞰的に見るっていうことができずに、ほんとに難しいところだけ、局所的に取り出してあえて難しく議論しちゃうという子が多いですね。だから結局、一匹狼に走っちゃうグループが多くなりがちです。CSIRTを作っても、すごい人たちに任せちゃう。結果、チームで動くのではなくて、一匹狼が活躍するだけの変なグループが出来上がってしまうんです。
丸山 コミュニケーションを取らない。
猪俣 わざわざ情報共有するより、自分でやったほうが早いからって。
丸山 それはチームじゃないですよね。基礎もわかってない人が来て、その人は、自分がやったところだけを集中してやってしまって、周りともコミュニケーションを取らずにやってしまうから、サイバーセキュリティを組織の中での実装するのは難しいという話ですね。
猪俣 そうです。
丸山 社会の中の実装かもしれないけども、とにかく閉じてしまう。もうちょっと俯瞰して全体を見る、数学もしないといけない、法律も必要だし、マネジメントも理解しないといけないし、テクノロジーだと、いろんなテクノロジーがあるから、それぞれを知っておかないといけないというか、あるという存在は知っておかないといけないみたいな、全体見てるので、俺がやっているところはここだなみたいな、そういう関係性を理解せずに、ここしかやってない、見えてないって人が多い。
今、2つ問題が出てきたと思っています。ひとつは、セキュリティの知識自体、知識そもそもの土台ができていないっていう問題です。もう1つは、その知識が仮にしっかりあったとしても、それ以外の人とのつながりの部分が弱い。なんとなく優秀な自分がこれをすべて解決すればいいというところで収まっているから、何かが起きたときにひとりで抱え込んでしまって結果的に最適な解決ができないという問題と2つあるっていう感じですよね。
猪俣 結構難しいのですが、本当にセキュリティだけに限って言えるのかどうか私はわかりませんが、少なくとも経験的に言うならば、わりとセキュリティって、元の状態に戻せてなんぼっていうところもありますよね。実際、日本のあちこちで開催されているCTFなどに参加されている方は、協力しあってやるというよりは自分の力だけに頼ってやっている子が多いですよね。
でも面白かったことは、私もここ5年ほど見てきましたけれど、CTFで1位2位を取る子達って、本当におかしいんです、特に物事の見方、捉え方が。変態的に物事を考えているというか(笑)。たとえば、高校生でプログラムをやっていて何かコードを書けるってというのはすごいことなのかもしれないですけれど、その中でもすごい子たちの頭の中では、計算機に対する表現を機械語レベルで考えていて、いきなりアセンブラでコードを書き始めるんです。本当にびっくりですよ。たぶん私たちが考えているような計算機の学問じゃなくて、もう、真の意味でのローレベルで計算機能の構造を彼らにとっての学問として持っているみたいで、そりゃぁさすがに彼らの伸び方は違うわなと。でもそういう子たちって、残念ながら、国内に残ってくれないんです。じゃぁ、どこ行きたがるかっていうと、やっぱ海外のベンチャーとか、自由にやらせてくれるとこですね。そういうところに逃げられてしまう、あるいは取られてしまうんです。
丸山 優秀なキレッキレの子と、そうでもない子の差はどうですか。
猪俣 本当にできる子たちは、残念ながら我々のコースには来てくれないのが現実です。で、じゃぁ実際どうなのかというと、門をたたいて来てくれた子たちはもちろん彼らの中での差っていうのはあるのですけれども、やっぱり最初のうちは、とにかく、もっと難しいことをやらせろっていう意識が強くて、進捗が芳しくない子たちを引っ張って協力して取り組んでみようという気持ちはほとんどないようです。結果、一人でどんどん先に進めていって、インシデント解析などをやらせてみると、とてもひとりではできないような無理な案を作ってきます。しかし、面白いことに、これを何度か繰り返しているとこれがきっかけとなってお前はこれをやれ!みたいな、ロールの割り当てみたいなものが、自然にできあがっていくような場面に遭遇したりもします。そういう意味では、うまく行っていると言えなくもないのかもしれませんが(笑)。
丸山 スペシャルな子が一人、というのではなくて、そこそこ優秀な子が結果的にチームを作っていくようになっているということですね。面白いですね。