連載|4ステップで​実現する​IoT​デバイス​セキュリティ第2回 セキュリティ・​ファースト​設計

ネットワーク接続が必須となった現代のIoTデバイスでは、開発ライフサイクルの初期段階からセキュリティを組み込むことが不可欠です。今回は、「セキュリティ・ファースト」設計思想をソフトウェア開発プロセスにどのように適用するかを詳しく解説します。

この連載の記事一覧

連載|4ステップで実現するIoTデバイスセキュリティ

1. はじめに

組込みデバイスにおいて、セキュリティは必ずしも最優先の懸念事項ではありませんでした。長らくデバイス間の接続はローカルで行われ、信頼できるオペレーターやデバイスによって管理されることが前提とされてきたためです。

しかし、Stuxnet(*3)は、この前提が通用しないことを瞬く間に証明しました。StuxnetはPCやノートPCに感染し、その後ローカルエリアネットワーク経由で接続されたプログラマブル・ロジック・コントローラー(PLC)へと感染を拡大させたのです。

現代のデバイスは、ネットワーク(多くの場合はインターネット)に接続されることが必須となりました。そのため開発ライフサイクルの初期フェーズから、より厳格なセキュリティ対策とセキュリティ原則の適用が求められます。

参考文献

*3. The Real Story of Stuxnet, David Kushner, IEEE Spectrum, Feb., 2013.

2. ソフトウェア開発ライフサイクルにおけるセキュリティ

「セキュリティ・ファースト」の設計アプローチとは、ソフトウェア開発ライフサイクル(SDLC)の全工程において、セキュリティを最優先事項として組み込むことを意味します。開発者やプロジェクトマネージャーは、各主要工程で少なくとも以下の対応が求められます(*4)。

要件定義フェーズ

システム全体の脅威評価が完了すると、デバイスの脅威サーフェス(脅威の対象となる領域)が把握できます。このフェーズでは、セキュリティ特有の要件に加えて、既知の「悪用ケース」(攻撃者がたどる可能性のある利用シナリオ)やリスク分析を盛り込みます。ここでセキュリティ要件を正式に定義し、リスク管理、スケジュール、コスト計画に組み込むことが重要です。このフェーズは、セキュリティが開発プロジェクトの明確な目標として認識される最初のポイントです。

設計・アーキテクチャフェーズ

候補となるアーキテクチャが提示されたら、従来は必須でなかったセキュリティ観点を含めたレビューを行います。既知の脅威評価とセキュリティ要件に基づいて設計を検証することで、このフェーズに新たな視点を加えられます。また、このフェーズで「悪用ケース」に沿ったセキュリティ分析を含むテスト計画を策定します。

コーディングフェーズ

コーディングフェーズでは、セキュリティガイドラインとコーディング規約の遵守が不可欠です。静的解析のような自動化ツールを活用し、脆弱性が製品に持ち込まれないようにすることが鍵となります。また、セキュリティ分析を含むテストやテスト自動化も重要です。

統合・テストフェーズ

システム全体の形が見えてくると、サブシステムおよびシステムレベルでのテストを通じて、市場投入前に脆弱性を発見できます。このフェーズでは、自動ペネトレーションテストツールが、初期フェーズでは見つからなかった脆弱性の検出に有効です。また、最終フェーズでは出荷時の製品パッケージや設定の安全を確保することが重要です。開封直後から安全な状態を確保することで、現在の接続デバイスで頻発している多くの問題を防げます。

運用・保守フェーズ

製品が市場に投入され、広く展開されると、セキュリティ上の脆弱性を修正するコストは指数関数的に高くなります。「セキュリティ・ファースト」で設計された製品は侵害のリスクが低いものの、企業は継続的なセキュリティ対応に備える必要があります。ファームウェアやソフトウェアを迅速に更新できる設計は、新たな問題に対処する上で不可欠です。また、保守や改訂の過程でもセキュリティは継続的な懸念事項であり、新たな脆弱性や脅威は反復的にフィードバックしてシステムに反映させる必要があります。

参考文献

*4. Security as a New Dimension in Embedded System Design.

3. セキュリティ要件

組込みデバイスの安全を確保するには、多くの観点からの検討が必要です。既存の機能要件を超えて考慮すべきものの例を以下に記します。

  • ユーザー認証ユーザーアクセスの検証やユーザーの種類ごとに異なる権限を強制的に適用すること
  • 改ざん耐性セキュリティ機能を回避する物理的変更やソフトウェア的な変更を防止すること
  • 安全なストレージ暗号化ファイル保存やデジタル著作権管理(DRM)などの技術を用いて、オンライン・オフラインを問わず保存データを保護すること
  • 安全な通信データ転送の安全性を確保するとともに、ネットワークやUSBなどの接続チャネルを通じた不正アクセスを防ぐこと。ネットワーク接続は最も注目されやすいが、他のチャネルも攻撃対象になり得る
  • 信頼性と可用性継続的な攻撃下でも、安全な動作を維持できること

4. セキュリティ・ファーストアプローチにおけるSASTツールの役割

CodeSecure社の CodeSonar のような静的アプリケーションセキュリティテスト(SAST)ツールは、開発のコーディングフェーズや統合フェーズで重要なサポートを提供します。

開発フェーズと保守フェーズの両方で継続的にコード品質を確保することで、ソフトウェアのセキュリティや品質に関するコストとリスクを大幅に削減できます。特に以下のようなメリットがあります。

  • ソースコードの継続的な品質・セキュリティ保証
  • 汚染データの検出と分析
  • サードパーティコードの評価
  • セキュアコーディング標準の遵守

この連載の記事一覧

連載|4ステップで実現するIoTデバイスセキュリティ

セキュリティを開発ライフサイクル全体に組み込むことで、脆弱性を早期に排除し、製品の信頼性を高めることができます。

第3回は、この設計思想を支える脅威分析とアセスメントの重要性について掘り下げます。


より詳しく技術や関連製品について知りたい方へ

お気軽相談

本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。


製品情報

高精度静的解析ツール

CodeSonar

世界トップレベルの解析能力で不具合や脆弱性の原因となるソースコードのバグを検出
製品ページを見る

連載|4ステップで実現するIoTデバイスセキュリティ 第3回 脅威分析とアセスメント

コラムを読む

連載|4ステップで実現するIoTデバイスセキュリティ 第1回 IoTデバイスのセキュリティを向上させる4ステップとは

コラムを読む

物流と産業の安全性を守る:ファジングという選択肢

コラムを読む

静的解析による並行性エラーの検出

コラムを読む

産業用ロボット安全規格の進化とセキュリティ:​ISO 10218シリーズ改訂の本質を読み解く

コラムを読む

静的解析の活用で汚染データから組込みアプリケーションを保護

コラムを読む

RED-DAとは?2025年8月に何が義務化される?

コラムを読む

印刷環境のセキュリティ強化:複合機(MFP)の脆弱性とその対策

コラムを読む

各国のIoT製品セキュリティ確保のための取り組み:米国 ―U.S. Cyber Trust Mark―

コラムを読む

各国のIoT製品セキュリティ確保のための取り組み:シンガポール ―サイバーセキュリティラベリングスキーム(CLS)

コラムを読む

各国のIoT製品セキュリティ確保のための取り組み:欧州

コラムを読む

太陽光発電と蓄電池システムの脆弱性:安全なエネルギーのためのセキュリティ対策

コラムを読む

各国のIoT製品セキュリティ確保のための取り組み:日本

コラムを読む

もう待てない、サイバーレジリエンス法対策

コラムを読む

各国のIoT製品セキュリティ確保のための取り組み: 英国

コラムを読む

ソフトウェアテストの新常識:ファジング入門

コラムを読む

JIS T 81001-5-1に準拠した医療機器のセキュリティ対策

コラムを読む

サプライチェーン攻撃と脆弱性テスト

コラムを読む

セキュリティ規格について

コラムを読む

ファジングとは?

コラムを読む

脆弱性検証―何をどこまで実施すれば良い?

コラムを読む

HEMS機器の脆弱性検証

コラムを読む

ファジングの限界

コラムを読む
メニューを閉じる
一つ前に戻る