
連載|4ステップで実現するIoTデバイスセキュリティ第5回 サードパーティコードの評価
IoT開発では、外部委託やオープンソース、商用ソフトウェアの利用が増加しています。しかし、品質やセキュリティが不明なコードを組み込むことは重大なリスクです。最終回では、サードパーティコードの評価手法と、静的解析・バイナリ解析の活用方法を紹介します。

この連載の記事一覧
連載|4ステップで実現するIoTデバイスセキュリティ
1 はじめに
VDC Research (*10) によると、組込みプロジェクトの45%は製品開発を外部委託 しています。外部委託 されたソフトウェア、オープンソース、商用ソフトウェア(COTS)、レガシーソースやバイナリコードの利用は年々増加しています。例えば、VDCは、2017年までに組込みLinux (*11) がすべての組込み出荷の64.7%において選択される組込みOSになるだろうと予測しています 。
組込み開発におけるサードパーティソフトウェアへの依存や、品質やセキュリティが未知のソフトウェアを利用することはリスクが高く、IoTやM2M製品の一部とする前により厳密な精査が必要です。ソースとバイナリの静的解析は、サードパーティコードを評価するために必要なツールセットの重要な要素です。
参考文献
*10. The Global Market for IoT and Embedded Operating Systems. VDC Research, 2015.
*11. Guidelines for Writing Secure Code, Microsoft, 2010.
2. 再利用の価値
車輪の再発明(=既存のものを一から作り直すこと)は生産的であったためしがありません。自社で一から開発するより、購入するほうが有利な場合も多く、オープンソースやCOTSソリューションを活用した再利用が選ばれることが少なくありません。プロジェクトが完全にゼロからの開発であることはまれであり、レガシーコードや他社の資産を再利用することが現実的です。 以下は、サードパーティコードの代表的な活用例です。
- 通信 – アプリケーションがインターネットや無線を介して他のアプリケーションと通信できるようにする。
- データベース – データベースの管理、最適化、監視、バックアップのためにサードパーティソフトウェアが広く利用されている。
- 標準ライブラリ – 一般的に使用されるアルゴリズム、データ構造、入出力メカニズムの定義を含む。開発者はこれらの一部を言語自体の一部だと錯覚するほど習慣的に使用している。
再利用による恩恵がある一方で、コード内にセキュリティ脆弱性が潜んでいるリスクもあります。エンドユーザーは、ソースの出所に関わらず、最終製品に対する責任をあなたの会社に問うことになるでしょう。既存のソースやバイナリ(ライブラリ、オブジェクトファイル、実行ファイル、動的リンクライブラリ)の品質とセキュリティを評価することは、静的解析ツールの大きな強みです。
3. サードパーティコードの品質とセキュリティ保証のための静的解析
受け取るコードは、コンパイルされていないソースコード、部分的なソースコードとバイナリ、あるいはバイナリのみなど、さまざまな形態で提供されます。このため、以下のような、それぞれの状況に応じたツールが必要となります。
ソース解析
完全なソースコードが利用可能な場合は、CodeSecure社のCodeSonarのような静的解析ツールを使い、製品に統合する前にセキュリティ評価を行うことが推奨されます。コードの出所が不明、いわゆる SOUP(Software of Unknown Provenance:出所不明ソフトウェア) の場合には、品質やセキュリティ上の不具合を調査することが極めて重要です。多くの場合、取得したソースコードは、初期評価と修正を経ることで、継続的なビルド/解析サイクルに統合することが可能になります。
バイナリ解析
もし、提供されるサードパーティコードがコンパイル済みのライブラリ形式や実行ファイル形式のみであったとしても、ソフトウェアの評価は可能です。CodeSonar のバイナリ解析技術は、バイナリコードの品質やセキュリティ脆弱性を評価することができます。問題の調査と修正の可能性は限られているものの、 コードの品質やセキュリティの水準を示す指標となります。COTS製品 (Commercial off-the-shelf:市販されている既製品)の利用者は、ベンダーの技術サポートに連絡し、発見された脆弱性について確認や追加解析を依頼することも可能です。ここで重要なのは、最終製品にコードを組み込む前に、潜在的な脆弱性を検出し把握しておくことです。バイナリ解析を活用したセキュリティ脆弱性の排除に関する詳細は、CodeSecure社の資料(*12)から入手可能です。
ソースとバイナリのハイブリッド解析
バイナリ解析が特に有効なのは、ソース解析と組み合わせて使う場合です。ソースの静的解析は、バイナリ解析よりもソフトウェアの意図や設計に関する情報を多く持っています。しかし、外部ライブラリ(標準の C/C++ ライブラリを含む)を呼び出す際に、その関数の利用が正しいかどうかは判断できません(もちろん、strcpy() のようなよく知られた関数については仮定が置かれます)。ソース解析とバイナリ解析を組み合わせることで、より完全な解析が可能になります。例えば、外部関数がバッファーへのポインターを受け取り、不適切なパラメーターによりバッファオーバーフローが発生する可能性がある場合、ハイブリッド静的解析でこの問題を検出することができます。
参考文献
*12. Eliminating Vulnerabilities in Third-Party Code, GrammaTech, 2014.
4. IoTにおけるサプライチェーンリスク管理
製品開発の成長スピードと、数百万台規模のセキュリティ対策が不十分なデバイスの氾濫は、IoT市場の成功にとって深刻な脅威となります。セキュリティに真剣に取り組む企業は、COTSやFOSS (Free and Open Source Software:フリーソフトウェアおよびオープンソースソフトウェア)を含むソフトウェアも対象として、サプライチェーンにおけるセキュリティリスクを管理する必要があります。静的解析は、サードパーティソフトウェアの品質とセキュリティを向上させるために、採用しやすく効率的なアプローチを提供します。
IoTの成功は、デバイスメーカーによる内製化か外部調達かの戦略的判断にある程度かかっています。しかし、外部のソースコードやバイナリコードを取り込むことにはリスクが伴うため、これらのソフトウェアに対する適切な評価が不可欠です。静的解析とバイナリ解析を単独または組み合わせて活用することで、サードパーティコードを現実的かつ効果的に評価することができます。ソフトウェアの再利用によるメリットを最大化するには、すべてのコードを同じ高い品質とセキュリティ基準に保つことが重要です。
5. 連載のまとめ
M2MおよびIoTデバイスのメーカーが正式な脅威評価を取り入れ、自動化ツールを活用しながら「セキュリティ・ファースト」の設計哲学を組み込むことで、インターネット上で加速する脅威に対してより強固に保護されたデバイスを生み出すことができます。既存の成功したソフトウェア開発プロセスを修正し、製品開発の初期フェーズからセキュリティを組み込むことが重要です。新しいコードの開発や、既存コードおよびサードパーティコードの分析に自動化ツールを賢く利用することで、開発チームは厳しい予算とスケジュールの制約を満たすことができます。ソースコードとバイナリの両方に対する静的解析は、セキュリティ・ファーストな開発ツールセットにおいて重要な役割を果たします。
IoTはすでに現実のものとなっており、ソフトウェアを安心して使えるものにするのは私たちの責任です。
この連載の記事一覧
連載|4ステップで実現するIoTデバイスセキュリティ
より詳しく技術や関連製品について知りたい方へ
連載|4ステップで実現するIoTデバイスセキュリティ 第4回 セキュリティ向上のための自動化ソフトウェア開発ツール
2025.12.04
日本の製造業者に求められるグローバル対応 ―JC-STARと英国PSTI法の相互承認がもたらすセキュリティ強化のチャンス
2025.11.28
連載|4ステップで実現するIoTデバイスセキュリティ 第3回 脅威分析とアセスメント
2025.11.26
連載|4ステップで実現するIoTデバイスセキュリティ 第2回 セキュリティ・ファースト設計
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





















