セキュリティ人材に本当に必要なスキル
猪俣 ちょっとこれも話、少しずれてしまうかもしれないのですけど、プログラミングのスキルを持っている子が大きく減っているんですよね。これはなぜかっていうと、私の主観ですけども、高等言語がどんどん登場し出過ぎているのも理由なのかなと。プログラミングっていうと、我々の時はCですら高等言語でしたよね(笑)。
丸山 C、高等言語ですね。
猪俣 私たちがパソコンで動かしたい動作はすべてこのアドレスにこの数値を入れて動かしていくっていうことをやっていたのですけれど、今はそうではなくて、中身が全く見えない暗黙的なブラックボックスに入れると、なんか高級な機能が勝手に処理をしてくれて、きれいにポンと吐き出すっていうふうになっています。教育で使われことの多いJavaが典型的な例で、全部オブジェクトっていうかたまりにして、中身を隠蔽します。それは確かに便利ですし、入出力の振る舞い、すなわちJavaの場合はCのポインタと違ってアドレスを意識せずにオブジェクトへの参照だけを意識すればいいだけなので、プログラムを考える人は中身のことは全然意識せずにプログラミングしちゃうんです。もちろん、これは便利なことですよ。
でも、セキュリティってそうじゃないですよね。中身でどう動いているかっていうのを常に考えていかなきゃいけないはずなんです。見えない闇の中でプログラムが本当はどうやって動いているのかっていうことをきちんと把握しておかなければいけないはず。それを知らずに、Javaしか知らない学生たちは課題のプログラムを実装してなんか出力された結果の値だけを信じる癖が出てくるんです。「なぜこの結果が出てきたの」と聞いても「いや、プログラムは絶対間違ってないです、こういうふうに吐き出したので。もう間違いなくこういうふうな結果なんです」っていう変な自信を持ってしまうわけです。もちろん自信を持ってくれることはいいのですけど、それ以外はもう絶対信じないっていう、固定観念を持った子が多くなっているかなと特に感じますね。悪いことを企むプログラマーは当然、結果を騙そうとしてプログラミングしますよね、私だったら確実にそうします(笑)。一方、凄腕ハッカーたちって、結果そのものより中身が好きでいじくりまわすんです。要するに、出力された値を当たり前のように信じるのではなく、中でどういうふうに値が変わっていったのか、という見方をしていくんです。良いか悪いかは置いときますが、まさに犯罪者の気持ちにもなりきってですね、セキュアプログラミングのコーディング技術なんかを学ぶことも時には必要なのではないかな、なんて私は時々そう思います。とにかく基本が大切なんです。
丸山 なるほど。原点に帰りなさいと。
猪俣 プログラミングなんかも、Cはいいですけど、怒られてしまうかもしれないですがJavaなんか全部捨ててしまって機械語をもう一度取り戻したい。今や、工学系の大学教育でもカリキュラムから機械語がなくなっているのが一般的です。なので、マルウェアの静的解析の演習なんかをやるともうほとんどの学生はちんぷんかんぷんです。でもマルウェアをじっくり学ぶには、機械語の知識絶対に必要なんです、そんなことからもうかれこれ5年ぐらい前から大学教育に機械語のカリキュラムを呼び戻してやっています。
20年前の知識をもう一回掘り出してきて、もちろんいらない昔話も多いのですけれど、使える知識はちゃんとカリキュラムとして提供していくことをやりたいんですね。これは前から早くやらなきゃいけないとずっと思っていて、これを本気でやっていかなければ日本の発展も、危ぶまれてしまうんではないかと本気で感じます。残念ながら、今私たちを支えている技術のほとんどが外から買ってきたものを組み合わせているものばかりだけです。例えば、タネンバウムのアーキテクチャ本が私にとって計算機の根本を理解するには最高と未だに思っているんですが、今や悲しくも教科書として使われていないんですよね。古い本からもしれないけど、きっちりした計算機アーキテクチャの原点を学ぶことをきちんとやはりやっていく必要があるはずなんです。うわべだけのセキュリティより計算機アーキテクチャを理解することの方が、ほんと大切なんですよ。
丸山 メモリリークとか、わからないですよね。
猪俣 今の子たちは、バッファオーバーフローなんていうと、雰囲気だけで考えるんですよね。なんかよくわからないけど溢れちゃったみたいな。イメージでいうならばフラスコみたいな絵が出て、こう、溢れていて(笑)。実際はそんなことではない。でも最近の教科書を見ると、本当にフラスコの水が溢れた絵が描いてあるんです。そんなきれいなものじゃないよ!って(笑)。
丸山 ああ、なるほど。物理的にはさっきの配列の話もそうですが、割り当てるって概念がないから。
猪俣 今の教科書を否定するわけじゃないですけど、現実はそうじゃないんだということに気づいてほしいんです。もっと深刻なことが起きているはずなのに、具体的なイメージが湧かなくなっちゃう気がしますね。
そういう教科書だけを使って学んできた若いエンジニアの方が「バッファオーバーフローを知ってます」と言いつつもやっぱり全然違うことを言ってくることが多いですね。本当にそのあたりを丸山さんと一緒に、どうにかしたいなと思っているんです。もちろん、古くていらない知識がたくさんあるのは事実です。ですが、大事なところは今でも全く変わらず本にすごく大切な知識学なので、それをもう一度きちんと学んでいってほしいですね。
丸山 うちはですね、テクノロジーの中心に育つ人材と、ITやセキュリティをわかっていて、経営者にちゃんと伝える人材というのと、大きく2つに分けて育てようとしています。
猪俣 日本に限る話かどうかわからないですけども、よく文系、理系っていう言い方があるじゃないですか。この分け方はあまり好きではないのですがそれでいくと、理系ってやっぱり、物事をなんでも計算機でどう動かすのかとか、数式でどう落とし込むのかっていう、もちろん私は好きなんですけども(笑)、やっぱりそういう癖はあるので、証明できなきゃイヤだとかわがままな人が多い気がするんです。でも、セキュリティって、実際のところいわゆる理系人間が好きな技術話なんかよりも、マネジメントであるとか組織論であるとか、人の関係であるとかいう、ちょっと論理的には説明できないところがほとんどだったりしますよね。それをきちんと包含できる才能を持っている人、もちろん文系理系っていう区別でわけるのも変ですけども、法律とか経済とかいわゆる文系の知識を持っている方のほうが、どんどんリーダー的な立場に立っている事例って多い気がしませんか。そんな方々と話してみると技術的知識も長けていて、実は私、文系出身なんです、みたいな(笑)。そういう方は、もともとやっぱり物事を丁寧に見極める力を持っていらっしゃることも多く、セキュリティを理解するのに必要な理系の知識なんかすぐに習得されてあっという間にセキュリティのトップリーダーに。
丸山 さっきの話で言うと、経営者と話ができる人間ですね。会社として何を、たとえば、顧客や株主に伝えないといけないからということを視野に入れ、与えられたデータ、個人情報漏えいしましたという中において、このデータを、どういうふうな文脈で株主に説明するのか、また、どういうふうな文脈で顧客に説明するのかを考えて、「こういう情報をくれ」と現場に言わなければいけないですよね。その時に、こういう情報ならたぶん持っているだろう、出せるだろうっていうのがないと務まらないですよ。だから単なる経営者ではダメで、単なる技術者でも難しい。両方に橋渡しできる人がいい。
まとめるとすると、私の求めているセキュリティ人材は、テクニカルな人というのは、オペレーションをきちっとして、コミュニケーションを図れるようなオペレーション系のタイプと、物事を追求していくことに、すごく好奇心が強い人、知的好奇心が強くって、機械語を覚えないと無理だなと思ったら、覚えることに躊躇しない人。いや、これはもう正しいのを出しているに決まっているので、で終わってしまう人ではなくて、なんかこれ、本当にそうなのかな?なんかこいつ間違っているんじゃないの?みたいな考えにいく人がいいですね。
マネジメントのほうの人は、そういう基本的なセキュリティの考え方も技術もある程度知っていて、これってテクニカルができそうだねとか、これってテクニカルにはできないよねとかいうことをある程度わかっていたうえで、経営者の人がどういうふうに考えるかというような視点がある人。
猪俣 やっぱり好奇心が大切ですよね。セキュリティにおいて言えば、解けない問題はまず解けないものばかりです。暗号の話を例に挙げるならばRSAの例がわかりやすいかもしれません。今、どんなことをやっても良いから鍵長サイズが2048ビットである暗号を解きなさいっていう問題が出されたとしましょうか。この問題に対しては「はい、解けません」で終わりなんですね。でも本音はそうであってはいけない。今の計算機環境では絶対に解けない問題だから、じゃあ諦めるしかないとか、他のプロフェッショナルに任せてしまおう、とかじゃなくて、じゃあ攻撃者だったらもしかしたらこんな方法でやるかもしれないとか、正解を見つけることが目的じゃなくてより自由気ままに、若いうちにそういう見方を持てることができるようになることが大切なんじゃないかなって、そんな教育をこれからもずっとやっていきたいなと思います。
猪俣敦夫
東京電機大学 教授
奈良先端科学技術大学院大学 客員教授
一般社団法人 JPCERTコーディネーションセンター 理事
一般社団法人 公衆無線LAN認証管理機構 代表理事
専門分野である暗号理論と高速実装、制御システム・組み込みセキュリティ等の研究開発のかたわら、日頃より若手セキュリティ人材育成に取り組む。奈良県在住。毎週、東京と自宅のある関西の痛勤生活を送りつつ、週末は愛犬(スタッフォードシャー・ブル・テリアのJet)と赤ちゃんの世話という癒しの時間を過ごしている。著書には「サイバーセキュリティ入門(共立出版)」等。