@ITは2019年11月19日、「@IT ソフトウェア品質向上セミナー 2019 冬〜不確実性が高まるDX時代のソフトウェアテスト/品質保証はどうあるべきか」を開催した。本稿では、リクルートテクノロジーズ 執行役員の竹迫良範氏の特別講演「IoTプロダクトの品質とセキュリティテスト、未知の脅威に対応する開発体制とは」の模様を要約してお伝えする。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「SECCON CTF」をはじめ、産学連携のさまざまな取り組みを通してセキュリティ人材の育成に取り組んできた竹迫良範氏は今、リクルートテクノロジーズの執行役員を務めるとともに、アドバンスドテクノロジーラボ所長として、IoTスマートキーデバイス「iNORTH KEY」などの開発に取り組んでいる。
「その中ではやはりセキュリティに気を付けている。もしこうしたデバイスに脆弱(ぜいじゃく)性があれば、鍵が正常に開かなかったり、逆に不正に開けられたりしてしまう恐れがあるからだ」(竹迫氏)
同氏は、2019年11月19日に開催された「@IT ソフトウェア品質向上セミナー 2019 冬〜不確実性が高まるDX時代のソフトウェアテスト/品質保証はどうあるべきか」の特別講演「IoTプロダクトの品質とセキュリティテスト、未知の脅威に対応する開発体制とは」に登壇。IoT機器で「できてはいけないこと、想定外のことができてしまう」という状況を防ぐために、どのような体制や取り組みが必要かを紹介した。
脆弱性は広い意味でバグの一種だ。そしてバグは、コンピュータが物理的な回路で動いていたころから存在していた。その後、火星探査機「マリナー1号」や放射線治療装置「セラック25」のように、ソフトウェアのバグが原因となって深刻な事故につながったケースが残念ながら発生してしまった。もちろんインターネット普及後も、「モーリス・ワーム」やKerberosの乱数生成アルゴリズムの不備、そしてIntelのプロセッサ「Pentium」の浮動小数点バグなど、世界に大きな影響を与えるバグが時折発覚している。
竹迫氏はこうした歴史を振り返り、「『してほしい動作をちゃんと実装していること』を確認するのが正常系テストだ。逆にセキュリティ脆弱性というのは、インターネット越しに遠隔操作できてしまうといった具合に『明文化はされていないが、してほしくない動作』が起きないことを確認する異常系テストだ」と述べ、きちんと実施しないとさまざまな被害につながってしまうとした。
言うのは簡単だが、脆弱性を見つけて対応するのは難しい。特に、いったん出荷してしまった後に見つかった脆弱性の修正には困難が伴う。ソフトウェアを配布できるインターネットがなかった時代は、なおさらだった。「ただ、昔の人はうまいアイデアを持っていて、脆弱性をうまいこと『裏技』にした」と竹迫氏は述べ、コンシューマー向けゲームに残っていたデバッグ用コマンドを、攻略本で裏技として紹介した例を挙げた。
だが「IoTの世界になると、そうもいかない。IoTセンサーから収集したデータが漏れたり、遠隔から操作できたりすると、物理の世界に影響を与えるなどいろいろな被害が生じる恐れがあり、対策が必要だ」(竹迫氏)
2年前には、Webカメラで認証情報が見えてしまい、それを元になりすまし、ログインを許してしまう深刻な脆弱性が報告されている他、ハードウェアレベルでバックドアが含まれる事例も報告されている。これに対し、サプライチェーンマネジメントの一環として「開発元のサードパーティーに検査ツールを配布して、開発段階、納品前にテストする」「ネットワーク分離のような形で、アクセスできる資産を制限する」「信頼できる会社のものしか納品させないように禁輸措置を取る」といった対策が提示され、実行されつつある。
しかし、「開発現場からすると、どうしても脆弱性は残ってしまうのが現実だ。新人エンジニアに対する教育も必要になる」(竹迫氏)。そこで、セキュア開発を心掛け、設計時点からセキュリティを意識すると同時に、それでも100%脆弱性をなくすことは難しいという前提に立ち、例えば外部のベンダーによる脆弱性診断や侵入テストを行ったり、レッドチームを組織して、物理的な経路も含めて侵入のリスクを洗い出したりする試みが注目されるようになってきた。
ただ、どれほどやっても「本当に大丈夫」とは言い切れないのが開発の世界だ。「そこで、想定外の事象が起きたときに対処するCSIRT(Computer Security Incident Response Team)を設けたり、外部のバグハンターの力を借りて脆弱性を見つける脆弱性報奨金制度を設けたりする会社も出てきている」と竹迫氏は紹介した。
脆弱性報奨金制度の歴史は古く、起源は1995年のNetscapeにさかのぼる。2000年代後半からその取り組みは拡大し、GoogleやFacebook、Microsoftといった大手IT企業がプログラムを設けている他、バグハンターとベンダーをつなぐ仲介プラットフォームを提供する企業も登場してきた。
「ただ、脆弱性報奨金制度も、やればいいというものではない。まずプログラマーに対して既知の脆弱性を減らすための教育や取り組みを進め、QAや外部診断を実施し、脆弱性を検知する取り組みをきちんとやった後で、それでも社内で見つからなかった未知の脆弱性を見つけてもらうのが報奨金制度。成熟度を高めた上で導入しないと、てんやわんやになってしまう」と竹迫氏は述べ、成熟度を高めながら取り組む必要性を強調した。
Copyright © ITmedia, Inc. All Rights Reserved.