8月に米国・ラスベガスで開催されたセキュリティカンファレンス「Black Hat Briefings 2016」と「DEF CON 24」では、世界中のセキュリティ研究者が、さまざまな「モノ」がはらむリスクについて警告した。今やその多くがソフトウェアに依存している「モノ」のセキュリティを確保するために必要な事柄とは何だろうか? シノプシスに聞いた。
これまで、機械的な仕組みで動き、構築されてきたさまざまな「モノ」の多くが、今やソフトウェアによって制御され、インターネットに接続されるようになってきた。こうしたInternet of Things(IoT)の発展は私たちに利便性をもたらす一方で、モノに内包された脆弱(ぜいじゃく)性を狙うサイバー攻撃などのリスクも助長している。
2016年8月に米国・ラスベガスで開催されたセキュリティカンファレンス「Black Hat Briefings 2016」と「DEF CON 24」では、世界中のセキュリティ研究者によってそんな現状が報告された。では、われわれはどうやってこの課題を解決し、安心してさまざまなモノを利用できる世界を実現していけばいいのだろうか?
関連記事:電球からインフラ制御システムまで、ありとあらゆる「モノ」がハッキングの対象に――米国セキュリティカンファレンスレポート
このテーマは、これらのカンファレンスと同時期に開催された「Codenomicon」でも鮮明だった。このイベントはもともと、「Heartbleed」の脆弱性を発見したフィンランドのコードノミコンが開催していたカンファレンスだ。同社は2015年4月にシノプシスの傘下に入っており、今回のイベントもシノプシスが主催している。
シノプシスはもともと30年近くにわたり、半導体設計など、どちらかといえばハードウェア寄りのソリューションを提供してきた企業だ。しかし最近は、コードノミコンや、ソフトウェアの品質管理やテストのためのツールを提供するコベリティを買収するなど、ソフトウェア領域、それも品質やセキュリティを担保するためのツールの提供に力を入れている。家庭にある身の回りのものから、工場や重要インフラに至るまでのさまざまな「モノ」がインターネットに接続される世界において、セキュリティはどのように確保すべきなのだろうか。同社の担当者らに聞いた。
身近な電化製品も車も医療機器も、形あるハードウェアのほとんどは、今やソフトウェアによってコントロールされている。そのため、これらに搭載されているソフトウェアの安全性を確保することは、情報や金銭のみならず、人命や健康にも関わりかねない重要な問題だ。
シノプシスのソフトウェア インテグリティ グループでシニアバイスプレジデント兼ゼネラルマネジャーを務めるアンドレアス・クエールマン氏は、「こうした機器に搭載されるソフトウェア開発においても、ITシステム同様、新機能の追加などが優先されがちだった」とした上で、「品質と同様に、セキュリティも開発のプロセスに組み込み、あらゆるステップでテストを実施する必要がある。ソフトウェア開発の現場では、従来型のウォーターフォール型開発が限界に直面し、アジャイルやCI/CDといった潮流が生まれつつあるが、そのプロセスの中に“セキュリティテスト”というステップを自動化された形で組み入れていくことが重要だ」と述べる。
ここでのポイントは「自動化」だ。そもそも、アジャイル開発やDevOpsといった開発スタイルにおいて、テスト自動化はアプリケーションの品質を向上させ、迅速なビジネス成長を左右する上で不可欠な要素だ。こうした開発スタイルの中でセキュリティも同様に自動化していくことが、脅威に対抗するだけでなく、ビジネスの価値を高める上でも重要だとシノプシスは考えている。
「セキュリティも含めたあらゆる要素を自動的にテストする仕組みを、開発プロセスの中に埋め込んでいかなければならない」(クエールマン氏)
また、セキュリティテストの自動化は、インフラ構成管理を自動化するInfrastructre as a Code(IaaC)を実践する際にも有効だ。シノプシス セキュリティ ソリューション リージョナルセールスマネジャーのミシェル・マチューロ氏は、次のように付け加える。「さまざまなオーケストレーションツールとテストツールを統合することで、IaaCやCI/CDの中で厳密なセキュリティを実装できるようになる。それも、より短いサイクルでだ」(マチューロ氏)。
シノプシスではこうした開発手法を「ソフトウェア・サインオフ」と表現している。ソフトウェア開発時、マイルストーンごとに一定のクオリティやセキュリティを満たしているかどうかのテストを自動的に実行し、それをクリアしなければ次のステップには進めないようにする、というイメージだ。同社が提供するソフトウェアの静的解析ツールである「Coverity」や、Webアプリケーションの動的解析を行う「Seeker」といったツールも、既存のITシステムやWebアプリケーションだけでなく、IoTや組み込み機器を対象にソフトウェア・サインオフを支援する機能を備えている。
DevOpsを実践して頻繁にリリースを繰り返す際、こうしたツールを用いて必ずセキュリティテストを組み入れるようにすれば、脆弱性の数自体を減らせるだけでなく、万一公開後に脆弱性が発覚した際の対応もプロアクティブになるという。一般に、セキュリティの問題が発覚した場合のコストは、後の段階になるほど大きくなる。セキュリティテストの自動化により、セキュリティ面での改善はもちろんのこと、手戻りや修正に要するコストの削減も見込めるというわけだ。
また、シノプシスのソフトウェア インテグリティ グループでプリンシパルセキュリティエンジニアを務めるクリストファー・クラーク氏は、「こうしたプロセスを実現するには、テストを実践するツールと同時に、ベースラインとなるガイダンスや標準も重要な役割を果たす」と説明する。「米国の場合、自動車業界ではSAE Internationalが、セーフティを構成する一要素としてセキュリティを捉え、ガイダンス作成に取り組んでおり、医療関連ではFDA(Food and Drug Administration)などが、患者のプライバシー保護も視野に入れた標準作りに取り組んでいる。シノプシスは、そのいずれにも協力している」(同氏)米Underwriters Laboratories(以下、UL)も、製品の安全性に関する標準作成と試験に当たる組織の1つだ。「こうしたコミュニティーと密に連携しながら、標準作りとそれに基づく認証制度を展開していくことが重要だと考えている」(クエールマン氏)。
関連記事:IoTデバイスのセキュリティを高める「UL CAP」とは
ITシステムのセキュリティの歴史を振り返ってみると、1990年代後半、ITの世界でセキュリティを重視するベンダーはほとんど存在しなかった。クエールマン氏は当時について、「あのころはマイクロソフトもひどいものだった。しかし、さまざまな危機を経験したことで、同社は変わった」と振り返る。新機能の追加よりもセキュリティ対策を重視するように指示したビル・ゲイツ氏のメモをきっかけに、同社のセキュリティに対する姿勢が大きく変わり、セキュアなソフトウェア開発サイクルを導入するとともに、リリース後に発見された脆弱性を修正する定期的なパッチリリースの仕組みを整えてきたことは、周知の通りだ。
IoTも、まさに当時のマイクロソフトと同じような段階にある。かつてのCode RedやNimdaのようなコンピュータウイルスによる“危機”を繰り返さないためにも、「組み込み機器や車、医療機器など、あらゆる業界がセキュリティを理解する必要がある」(クラーク氏)。シノプシスではその理解を促すべく、セキュリティ実装を支援するテクノロジーやサービス、トレーニングを提供するとともに、コミュニティー作りにも取り組んでいくという。
Copyright © ITmedia, Inc. All Rights Reserved.