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

この連載の記事一覧
連載|4ステップで実現するIoTデバイスセキュリティ
- 第1回 IoTデバイスのセキュリティを向上させる4ステップとは
- 第2回 セキュリティ・ファースト設計
- 第3回 脅威分析とアセスメント
- 第4回 セキュリティ向上のための自動化ソフトウェア開発ツール
- 第5回 サードパーティコードの評価
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デバイスセキュリティ
- 第1回 IoTデバイスのセキュリティを向上させる4ステップとは
- 第2回 セキュリティ・ファースト設計
- 第3回 脅威分析とアセスメント
- 第4回 セキュリティ向上のための自動化ソフトウェア開発ツール
- 第5回 サードパーティコードの評価
セキュリティを開発ライフサイクル全体に組み込むことで、脆弱性を早期に排除し、製品の信頼性を高めることができます。
第3回は、この設計思想を支える脅威分析とアセスメントの重要性について掘り下げます。
より詳しく技術や関連製品について知りたい方へ
連載|4ステップで実現するIoTデバイスセキュリティ 第3回 脅威分析とアセスメント
2025.11.26
連載|4ステップで実現するIoTデバイスセキュリティ 第1回 IoTデバイスのセキュリティを向上させる4ステップとは
2025.11.19
物流と産業の安全性を守る:ファジングという選択肢
2025.08.05
静的解析による並行性エラーの検出
2025.08.01
産業用ロボット安全規格の進化とセキュリティ:ISO 10218シリーズ改訂の本質を読み解く
2025.06.18
静的解析の活用で汚染データから組込みアプリケーションを保護
2025.05.28
RED-DAとは?2025年8月に何が義務化される?
2025.04.16
印刷環境のセキュリティ強化:複合機(MFP)の脆弱性とその対策
2025.02.03
各国のIoT製品セキュリティ確保のための取り組み:米国 ―U.S. Cyber Trust Mark―
2025.01.27
各国のIoT製品セキュリティ確保のための取り組み:シンガポール ―サイバーセキュリティラベリングスキーム(CLS)
2024.11.11
各国のIoT製品セキュリティ確保のための取り組み:欧州
2024.10.23
太陽光発電と蓄電池システムの脆弱性:安全なエネルギーのためのセキュリティ対策
2024.10.08
各国のIoT製品セキュリティ確保のための取り組み:日本
2024.10.03
もう待てない、サイバーレジリエンス法対策
2024.09.17
各国のIoT製品セキュリティ確保のための取り組み: 英国
2024.04.18
ソフトウェアテストの新常識:ファジング入門
2024.04.17
JIS T 81001-5-1に準拠した医療機器のセキュリティ対策
2023.12.19
サプライチェーン攻撃と脆弱性テスト
2023.12.14
セキュリティ規格について
2023.09.01
ファジングとは?
2023.09.01
脆弱性検証―何をどこまで実施すれば良い?
2023.09.01
HEMS機器の脆弱性検証
2023.07.14
ファジングの限界
2023.07.14




















