迅速な開発のためにセキュリティを犠牲にはできない
発表会後、ヴァン・デ・ヴィーレ氏にインタビューを敢行し、変わりゆく今の開発現場において、開発者はセキュリティをどう考えらよいか聞いた。
――開発者は一般的に、どれぐらいセキュリティについて理解しておくべきでしょうか。例えば、セキュアコーディングの訓練を必ず受けるべき、など。
ヴァン・デ・ヴィーレ氏:まず、開発者というのは未来のインフラの作り手です。インフラというのは、もちろん橋や道路という意味もありますが、主には、ソフトウェアを動かす社会全体を指して言っています。
セキュリティやプライバシーはあとから付け足せるようなものではないので、設計の段階から、これらを土台に組み込んでソフトウェアを開発する必要があります。これは基本です。
ですので、開発者がベストプラクティスを知っておくのは極めて重要です。今日の攻撃だけではなく、将来起こりうる攻撃に備えて、情報やデータをハンドリングし、セキュリティのメカニズムを組み込む必要があります。
そして、そのためには、学校や大学で得る知識は最低限のものでしかありません。開発者にはそれ以上のトレーニングが必要です。「ベストプラクティスとは何か」「どうセキュアに構築するのか」を学ぶだけではなく「何が失敗につながるのか」「どんな(マイナスの)影響があるのか」も見ておく必要があります。
――なるほど。そういったトレーニングを受ける機会は、貴重かと思いますが、開発者はどのようにその知識を得るべきでしょうか?
ヴァン・デ・ヴィーレ氏:IT企業や大きな開発組織を抱えている企業ならば、その開発者たちに定期的なセキュリティトレーニングを受けてもらうのが賢明でしょう。というのも、トレーニングは向こうからはやってこないし、開発者はよっぽどセキュリティに興味のない限り、自分のこと(技術のこと)を学ぶのに常に忙しいからです。
開発者としての職に就こうとした場合、セキュリティについて知っていることは必ずプラスになります。セキュリティについての知識を得ておけば、うまくいけば、さらなるよい就職の機会を得られるでしょう。
――昨今、開発の手法というのは、アジャイルやスクラム、マイクロサービスやDevOpsなどの浸透によって変化を見せつつあります。セキュリティに関してもそのメソッドは変わっていくべきだとお考えでしょうか?
ヴァン・デ・ヴィーレ氏:必ずしも変化が必要なわけではないでしょう。スクラムやアジャイル、MVPの原則といった新しいコンセプトでのすばやい開発を用いると、プロダクトやサービスを迅速にローンチできます。しかし、そこで大切なのは、「迅速な開発のためにセキュリティを犠牲にすることはできない」ということを理解しておくことです。
企業は、経費などのコストを節約した方法をとる必要があるものです。(競合との)ハードな競争があり、時間は有限です。しかしそれに伴ってスピードだけを追求することは、リスクにもつながります。セキュリティのことを忘れてしまい、セキュリティの備わっていない製品を発売してしまう可能性があります。そして、ローンチした後だと、根本にもどって「このセキュリティ機能を付け加えるべきでは」と言うことを恐れてしまうのです。
つまり、先ほども述べた通り、製品やサービスの設計の段階からセキュリティを組み入れることが非常に重要です。それによって起こりうる問題を防ぐことができるでしょう。
――プロダクトのコアでない部分をアウトソースして開発するのはあたりまえになってきていると思います。開発者自身の専門でない部分を外部のソリューションに頼る場合、セキュリティの観点から気を付けなければならないことは何でしょうか。
ヴァン・デ・ヴィーレ氏:まずは、起こりうる問題をリスト化しておくことです。例えば、認証機能がバイパスされる可能性。私がそのシステムに認証して入ることができれば、そのシステム内で私は他の人になりすませるという可能性。こういったシナリオを、開発者は想定しておかなければなりません。
自分ですべてのコードを書いても、一部を外部に委託しても、他社にアナリティクスを任せるとしても、そこは問題ではありません。そのコードが1行であろうが100行であろうが関係ありません。最悪のケースのシナリオを想定していることが重要なのです。
――攻撃者の視点で問題を想定しておくことで、セキュアな製品設計や問題が起きた際の迅速な対応につながるということですね。貴重なお話をありがとうございました。