連載
» 2015年09月14日 05時00分 公開

クラウド、IoT時代のセキュリティテストとは:地の利を得る攻撃者たちに、ソフトウエア開発者はテストで立ち向かえ (2/2)

[田尻浩規,@IT]
前のページへ 1|2       

出荷前の数十万円か、出荷後の数億円か。エンジニアの果たすべき役割とは

編集部 テストツールによる自動化を進めるとき、テストに関わるエンジニアはどのような役割を果たすべきか。

シャルティエ氏 まず、テストには2種類ある。一つはファジングのように、数十万から数百万件のテストケースをこなすことが必要なテストだ。これは明らかにマシンが行うのに適している。

 一方で、例えばWebアプリケーションやモバイルアプリのロジックに関するテストなどは人間に向いている。ペンテスターが行っているようなことだ。「ロジックの穴を突く使い方」「侵入の仕方」などを考えるのは人間の方が素早く、得意だ。先ほど、90%の脆弱性は製品の品質が低いことに由来すると述べたが、残りの10%を見つけるのが人間の仕事だと言い換えてもよいだろう。

 また、テストツールも結局はツールにすぎない。テスト戦略の立案などは、人間が行う必要があるだろう。適切な戦略がなければ、「ファジングツールが1カ月以上走り続けて、テストが終わらない」などということになりかねないからだ。

編集部 テストツールの導入に際しては、エンジニアがテストツールの必要性を経営層などに説明する必要があると思うが、そのときにはどのような伝え方をするのがよいか。

シャルティエ氏 出荷後の製品に不具合が見つかった場合に、どれだけのコストが発生するかを説明するのがよいだろう。ある試算によれば、出荷後の製品の改修などに掛かる費用は、出荷前に不具合を検出した場合と比較して、およそ10倍から1000倍にのぼるといわれている。出荷前であれば数十万円から数百万円で修正できる小さなバグが、出荷後には数億円から数十億円のコストをもたらす可能性があるということだ。どちらをとるか、という話だ。

現在のソフトウエア業界は、100年前の自動車業界と同じ

編集部 クラウドやIoTでソフトウエアの複雑化が進むという話があったが、多くのコンポーネントを組み合わせてソフトウエアを構築するときには、どのような点に注意すべきか。

シャルティエ氏 サプライチェーンをしっかりと管理することだ。他社のソフトウエアを買って、よく確認もせずにハッキングを受ければ、それは買い手責任ということになる。ベンダーにテストを行ったのか確認することだ。

 例えばソフトウエア市場のトッププレーヤーたちは製品を購入する際に、サプライヤーに指定した方法でテストを実施させ、その結果を要求している。そして各コンポーネントの信頼性を担保した上で、自らはシステム統合テストを行う。システム統合テストを行うのは、脆弱性を持たないコンポーネント同士を組み合わせた結果、脆弱性が生まれることがあるからだ。これが複雑性というものだ。

 各コンポーネントのテストはベンダーにしっかり実施させて、自らはシステム統合テストを行う。複雑なソフトウエアの開発においては、これがベストプラクティスだろう。そして最終製品の特定のコンポーネントで問題が発生した場合には、サプライチェーンの下へ下へと責任を求めていくことになる。米英の政府調達などでもこうした動きは始まっている。

 また、政府による規制や安全性基準の確立も重要だ。食品業界や自動車業界は良い例だろう。100年前の食品は原料表示もされておらず、食べて体調を崩したり、病気になったりする事例がたくさんあった。自動車も同じだ。シートベルトなどに関する規制はなく、事故がある意味で容認されていた。現在のソフトウエア業界は、この100年前の食品業界や自動車業界と同じ状況にあるといえる。業界が進んで取り組まないのであれば、テスト実施に関する規制を作るなど、政府が主導して業界にモチベーションを与えていくべきだ。この流れは今後進んでいくだろう。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。