組み込み機器のセキュリティ対策に内在する“2つの問題”とはIoTセキュリティ

IoTが当たり前になる中で組み込みシステムに関わる技術者にとって大きな課題になっているのがセキュリティ対策だ。実際には「具体的に何をやる必要があるのか」「それをどうやって実装するのか」という2つの問題にぶつかることになるが、統合開発環境「IAR Embedded Workbench(R)」で知られるIARシステムズが最適なソリューションを提供している。

» 2020年02月19日 10時00分 公開
[PR/MONOist]
PR

 組み込みシステムが「動作に問題なければ出荷して作業完了」となる時代は、もう過去のものになった。例えば、インターネットとつながるIoT(モノのインターネット)機器の場合、開発段階では露呈しなかった脆弱性が後から発覚して、その対応が必要になる場合もある。そうした脆弱性を悪用された結果、全製品の回収を余儀なくされたケースも報告されている。あるいは、証明書の期限切れやプロトコルの変更(非セキュアなプロトコルが廃止され、セキュア対応が必須になった)など、出荷後に思わぬ事態に直面することもまれでは無くなりつつある。

 「IoT機器じゃないから大丈夫!」と思われる方もおられよう。ところがIoT機器でなくても、模造品の開発を目的とした内部IP(ハードウェアやソフトウェアを含む)の盗難に遭うこともあり得る。特に最近は、小ロットの生産を海外の工場に委託するというケースが多いが、その結果として模造品が突如として(下手をすると自社製品の出荷前に)市場に登場、などという笑えない事態も発生している。

 こうした一連の問題は、全てセキュリティ対策を怠ったことに起因する。確かに開発コストや生産原価をどこまで抑えられるかを日々追及している立場からすれば、セキュリティ対策の追加コストはできれば避けたいところだろう。しかしながら、セキュリティ対策を怠った結果として、全品リコールや模造品対策の費用といった猛烈にコストがかかるイベントが後から発生するのを防ぐには、最初に対策をきちんと取っておく必要がある。言ってみれば「これまでは無保険で走っていたけど、これからはちゃんと保険を掛けましょう」という話である。セキュリティに絡むような事故あるいは事象が次第に増え、その際の対策費用が次第に増えつつあることを考えれば、そろそろ無保険のままではいられないだろう。

海外で導入されるセキュリティガイドラインへの対応も必須に

 しかし、一般的な組み込みシステムのエンジニアが「セキュリティの対策をやってね」と言われたとしても「何をすればいいの?」という状況に陥る可能性はかなり高い。セキュリティ対策という観点では、クラウドやWebサービスのエンジニアであれば、「どんな脅威が想定され、それに対してどんな対策を最低限施す必要があるのか」について慣れ親しんでいるだろう。残念ながらこうしたエンジニアを組み込みシステムの開発現場に連れてきてもあまり役に立たない。ハードウェア的なリソースの制限が厳しい上に、クラウドやWebサービスとはまた異なった脅威や脆弱性が想定される組み込みシステムでは、取るべき対策が異なってくるからだ。

 加えて言えば、国内出荷だけを考えている場合であればともかく、世界中に販売されるような機器向けの場合、相手国の要求するセキュリティ標準を満たす必要も出てくる。現状はまだガイドライン止まりで強制力はないが、逆に何かあればこれが強制力を持つ規制に昇格する可能性もないとはいえない。その意味ではこうしたガイドラインに準拠するセキュリティ対策を実装しておくのが確実な対策といえるわけだ。

各国で導入が進むIoTセキュリティのガイドライン 各国で導入が進むIoTセキュリティのガイドライン

「具体的に何をやる必要があるのか」「それをどうやって実装するのか」

 さて、ではセキュリティ対策を何か講じることにしたとしよう。すると「具体的に何をやる必要があるのか」「それをどうやって実装するのか」という2つの問題が当然出てくることになる。まず1つ目の「何をやる必要があるのか」は、開発する組み込み機器とアプリケーションがどのようなものなのかによって変わってくる。これが、Webサービスを利用するようなアプリケーションであれば、そのWebサービスとつなぐ部分に関してはセキュリティの方法が規定されているからそれに従えば良いが、機器単体をどう守るかは開発者が決める必要がある。もっと面倒なのは、自社の製品同士がネットワークでつながっているというケースで、この場合は個々の製品のセキュリティに加え、通信のセキュリティも考えてやる必要がある。いわば、「セキュリティの設計」に当たる作業は欠かすことができないというか、これをしっかりやらないと、どんなセキュリティを実装しても意味が無い。

 2つ目の問題が、そのセキュリティの実装である。一般論として言えば、まずRoT(Root-of-Trust:セキュリティの根幹をなす基本要素)を実装し、通信あるいはアプリケーションのアクセスに利用する暗号鍵や、クラウドサービスなどを利用する場合に備えた証明書を利用する仕組みを用意(これも広義にはRoTの一部)しつつ、アプリケーションがこのRoTを利用するように書き換えれば完了である――と書くと極めて簡単そうに思えるが、実際はえらく面倒である。

組み込みソフトウェアをセキュア化する際の必須プロセス 組み込みソフトウェアをセキュア化する際の必須プロセス

 まずRoTの実装そのものが相当に大変だ。既存のアプリケーションからアクセスできない領域を作り、ここで暗号化/復号の処理を行うとともに、鍵や証明書その他を保管できるセキュアなストレージ領域を確保しなければならない。また、セキュアブートと呼ばれる仕組みも必須である。さらに言えば、開発だけでなく量産の場面においてもセキュリティの配慮が必要になる。こうしたセキュリティの実装の経験を持つ組み込みエンジニアは非常に少ないし、付け焼刃の勉強で何とかなるというレベルでもない(というか、付け焼刃で実装を行ってミスがあった場合、その代償がえらく高くつくことになる)。

MCUに合わせてRoot-of-Trustを自動生成

 これら2つの問題に対してIARシステムズ(以下、IAR)が提供するのが「Embedded Trust(TM)/C-Trust(R)」というツールを核に、組み込みセキュリティ実装のトレーニングを組み合わせたソリューションである。IARはご存じの通り「IAR Embedded Workbench」という統合開発環境を提供する組み込み開発ツール専業メーカだが、2018年に英国のセキュリティ専門企業であるSecure Thingzを買収している。このSecure Thingzが提供するソリューションが、Embedded Trust/C-Trustという形でIAR Embedded Workbenchに統合された形である。

「Embedded Trust/C-Trust」でできること 「Embedded Trust/C-Trust」でできること

 Embedded Trust/C-Trustを利用することで、まず2番目の問題が一気に解決する。IARシステムズ セールスチーム マネージャの原部和久氏は「Embedded Trust/C-Trustは、MCUに合わせてRoTを自動生成してくれるので、開発者はRoTそのものの実装作業から解放され、アプリケーションの開発に専念できるようになります。実際に、IAR Embedded Workbenchから数ページのウィザードに入力するだけで、RoTを含むセキュリティ機能を実装するのに必要な処理は全て終わるのです」と語る。後は、アプリケーションがこのセキュリティ機能を利用できるようにコーディングするだけだ。つまり、Embedded Trust/C-Trustの使い方さえ学べば、セキュリティ対策に詳しくない組み込みエンジニアでもセキュリティ対応の実装が可能になるというわけだ。

数ページのウィザードに入力するだけ 数ページのウィザードに入力するだけで、RoTを含むセキュリティ機能を実装するのに必要な処理が全て終わる

 これにまつわる副次的な問題としてハードウェアリソースの不足がある。現在では多くの半導体メーカがセキュアMCUをラインアップしており、「これを利用すればセキュアな組み込み機器が簡単に作れます」と説明している。しかし、これらのセキュアMCUは当然リソースリッチな構成であり価格も高い。また、これまで使っていたMCU製品と必ずしも互換性があるとは限らない。もちろん、Embedded Trust/C-Trustでも、こうしたセキュアMCUを利用すればより容易にシステムを構築できるが、従来のMCUでも構成次第では(ハードウェアを変更せずに)セキュアな環境を構築できるとしており、コストと性能のバランスの選択肢を増やしてくれる、というのも有り難いポイントだ。

セキュアなMCUにもノンセキュアなMCUにも対応している セキュアなMCUにもノンセキュアなMCUにも対応している

トレーニングとツール利用権をセットにした安価なソリューションも

 では1つ目の問題である「何をやる必要があるのか」については、さすがにこれは数ページのウィザードで解決というわけにはいかない。これは、そもそもセキュリティに対する体系的な教育が欠如していることが根本的な問題になっている。そうした体系的な教育を受ける方法が無い、あるいはそもそもどこでセキュリティの教育が受けられるか分からないという方も多いだろう。

 そこでお薦めするのが「Security from Inception Suite」である。先ほど、IARのソリューションについて「ツールを核に、組み込みセキュリティ実装のトレーニングを組み合わせた」と書いたが、そのうちのトレーニングがこれに当たる。IARは以前からトレーニングにも力を入れており、IAR Academyと呼ばれるグローバル規模のトレーニングコースや、日本オフィスでのArm MCUハンズオンおよびウェビナーを定期的に開催している。その中で、特にセキュリティに特化したのがSecurity from Inception Suiteだ。

「Security from Inception Suite」のトレーニングコース 「Security from Inception Suite」のトレーニングコース

 Standardでは2日間で基本的なセキュリティ設計に必要な知識を体系的に解説。Advancedでは実際の実装に基づいた応用まで踏み込んでのトレーニングが受けられる。このStandard/AdvancedはIARのトレーニングルームで行われるが、Premierは「実際に開発中の製品の設計レビュー」まで踏み込んだものであり、こちらは顧客のオンサイト(つまりIARからエンジニアが出向いて講義してくれる)での提供となる。

 こういったトレーニングコースは高価なことが問題になることも多いが、Standardの場合、受講生2人に対してのトレーニング+1年間の期限付きながらC-Trustの利用権も付いて60万円台(税別)という格安な価格設定となっている。セキュリティの実装経験のある組み込みエンジニアを雇ったら、1人月60万円台ではまず済まないことを考えると、費用対効果は相当高いと考えるべきだろう。

 自社製品を悪意ある攻撃から守るとともに知的財産を保護することは、企業活動を存続させていく上で欠かせない、自社にセキュリティ関連の専門部署があって、そこがまとめて対処してくれるといった場合は、自身で対処する必要はないだろう。IARシステムズ 技術チーム フィールドアプリケーションエンジニア チームリーダの横尾今日太氏は「こうした部署がない企業の組み込みエンジニアが、セキュリティ対策を容易に行うための手段としてのEmbedded Trust/C-Trustと、体系的にセキュリティ知識を獲得するためのSecurity from Inception Suiteは最適だと考えています」と述べている。

 なお、IARシステムズは2020年4月8〜10日に東京ビッグサイトで開催される「第29回 Japan IT Week 春」内の「第23回 組込み/エッジコンピューティング展【春】(旧称:組込みシステム開発技術展)」に出展し、本稿で紹介したEmbedded Trust/C-Trustを展示する。さらに、ブース内ハンズオンセミナ(事前申し込み制)で実際に体験することも可能だ。展示の詳細は以下の出展社Webサイトで確認してほしい。

>>IARシステムズ 第23回 組込み/エッジコンピューティング展【春】展示詳細<<

IARシステムズの横尾今日太氏と原部和久氏 IARシステムズの横尾今日太氏(左)と原部和久氏(右)。組み込み機器に求められるセキュリティ対策の提案に意気込む

Copyright © ITmedia, Inc. All Rights Reserved.


提供:IARシステムズ株式会社
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2020年3月18日