連載
» 2019年11月18日 10時00分 公開

CIPが取り組む産業基盤でのセキュリティ対策いまさら聞けないCIP入門(後編)(2/3 ページ)

[工藤雅司(サイバートラスト),MONOist]

ソフトウェア更新機能の開発

 セキュリティを考慮して構築したシステムも、運用を開始した後に新たな脆弱性が検出されることがあります。そのような状態でシステムを利用していると、ウイルスに感染したり、踏み台攻撃に利用されるなど、セキュリティリスクが高まります。脆弱性情報として通知されるこのようなセキュリティホールに対しては、対応するパッチを適宜適用する必要があります(図2)。前述したIEC 62443-4-2規格では、システムを構成する組み込み機器に対しても、ソフトウェアの更新機能を必須要件と定めています。

図2 図2 脆弱性情報の通知とソフト更新(クリックで拡大)

 ただし、ソフトウェアの更新は簡単な作業ではありません。例えば、意図しない停電は更新を妨げる可能性があります。また、更新対象のソフトウェアには、他のソフトウェアと同様にバグが存在する場合があります。このようなギャップを埋めるために設立されたのがCIPソフト更新作業部会であり、CIPが提供する産業グレードのオープンソースベースレイヤー(OSBL)に適した堅牢なソフトウェア更新機能を提供することを目的とします。

 この作業部会では、本作業に取り組むにあたり、何回かのサイクルを繰り返すことで、達成レベルを段階的にあげようとしています。まず、最初のサイクルとして、メンバー企業からソフトウェア更新のニーズをヒアリングしたうえで、開発要件を整理しました※)

※)関連リンク:CIP Software updates architecture

 また、既存のオープンソースソフトウェアを調査し、これら要件に照らし合わせた上で、クラウド/サーバ側としてはhawkBit、組み込み機器側はSWUpdateを採用し、レファレンス実装を進めることになりました(図3)。特に、SWUpdateは、メンバー企業がすでに商用のソフト更新サービスで利用しており、その実績も考慮しました。

図3 図3 ソフト更新で使用するOSS(クリックで拡大) 出典:Open Source Summit Europe 2018での小林良岳氏、Urs Gleim氏講演「Two Years Experience of Industrial-grade Open Source Base Layer Development and its Future」に基づき作成

 作業部会は、最初のサイクルの成果発表として、そのレファレンス実装を「Open Source Summit Japan 2019」でデモ実演しました(図4)。

図4 図4 ソフト更新の利用ユースケース(クリックで拡大) 出典:Open Source Summit Japan 2019でのソフト更新デモ資料から抜粋

 ここでは、組み込み機器として「Beaglebone Black」を使い、SWUpdateを動作させました。フェイルセーフ対応の一例として、2つのパーティションを用意するA/B更新を実装し、停電などの影響でソフトウェア更新が失敗した場合に、元の動作イメージが搭載されているパーティション側で立ち上げる、というシナリオを実演しました(図5)。このデモ展示をもって最初のサイクルは終了しました。

図5 図5 デモ構成のソフトスタック(クリックで拡大) 出典:Open Source Summit Japan 2019でのソフト更新デモ資料から抜粋

 2回目のサイクルは2020年1月末までの予定で活動しています。署名と暗号化を用いてソフトウェア更新を安全に行う仕組みをレファレンス実装に追加し、2019年10月末にフランスのリヨンで開催された「Embedded Linux Conference Europe 2019」でデモ実演を行いました。残りの期間では、署名と暗号化を用いたレファレンス実装をCIPコアパッケージに組み込めるかを検討します。また、CIPテスト環境でソフトウェア更新機能のテストケースを自動実行できるかについても、同時に検討していきます。

Copyright © ITmedia, Inc. All Rights Reserved.