静的解析「初回100万件」からどう絞る?車載Tier1の現場運用と「指摘ゼロ」文化

本記事の位置づけ

本記事は、車載ソフトウェア開発のPM経験者へのインタビューに基づく独自解釈を含む記事です。 具体的な数値は示唆として記載しており、プロジェクトや組織によって異なります。

コンテンツ制作

  • 執筆: 五行セキュリティ編集チーム
  • 情報提供: 車載ソフトウェア開発PM経験者(匿名)

この記事の要点(定量データ)

数十万〜100万件

初回解析時の指摘件数(示唆)

99.99%

対象外設定で除外される比率(示唆)

0.01〜0.1%

実際に修正が必要な比率(示唆)

週1回・3〜4時間

解析実行頻度とフルビルド時間(示唆)

【対話】なぜ今、車載ソフトに静的解析が「必須」になったのか?

開発者

車載ソフト開発者

最近、OEMからISO/SAE 21434対応の要求が厳しくなってきたんですが、静的解析って前からやってましたよね?何が変わったんですか?

専門家

セキュリティ専門家

いい質問ですね。UN R155という法規制が2024年7月から段階的に義務化され、2026年5月以降はすべての継続生産車で準拠が必須になります。 これまでの「あったら良いね」から「ないと出荷できない」に変わったんです。

開発者

車載ソフト開発者

具体的に、ISO/SAE 21434のどこで静的解析が求められているんですか?

専門家

セキュリティ専門家

Clause 10.4.2で明記されています。セキュリティ仕様の検証方法として静的解析が推奨され、 さらにRQ-10-05ではMISRAやCERT Cなどのコーディングガイドラインへの準拠が求められています。

開発者

車載ソフト開発者

つまり、監査で「静的解析やってます」って言えないとダメってことですか。

専門家

セキュリティ専門家

その通りです。そして重要なのは、結果を証跡として残すこと。 「指摘ゼロ」で出荷したという記録が、認証取得の重要なエビデンスになります。

ISO/SAE 21434対応について詳しく知りたい方は無料相談(30分)をご利用ください。

「一番消したい業務はバグ対応」──終わりが見えない仕事の正体

車載ソフトウェア開発のPM経験者が、最も消したい業務として挙げたのは「バグ対応」だった。理由はシンプルで、終わりが見えず精神的に辛いから。

市場で発生する不具合は再現が難しく、報告内容も曖昧になりがち。仮説を立てて再現条件を探り続けることになる。

特に量産後は、出荷台数が増えるほど問い合わせやクレームが増え、出荷直後の数ヶ月は集中しやすい。 さらに「ソフトのバグ」だけでなく、使い方やハード不良も混ざるため、切り分けと説明責任が重くなる。

現場の前提:車載開発のざっくり工程(ウォーターフォール+長い評価)

インタビュー対象者の文脈では、Tier1としての開発は以下の流れが基本になる。

  1. OEMからRFQ(開発要求)
  2. 受注に向けた提案・システム構成の検討
  3. 受注後に各領域(OS〜アプリ)で開発開始
  4. 開発自体は半年〜2年規模になりうる
  5. その後、評価・統合・量産準備フェーズが続く

この流れの中で、静的解析やルール準拠(MISRA等)は、開発フェーズだけでなく量産が近づくほど締め付けが強くなる。

「初回指摘が爆発する」理由:静的解析の現実

静的解析(例:Coverity)をプロジェクトに後から入れる、または初回にフルで回すと、数十万〜100万件規模の指摘が出ることがある

しかし、その大半は次の領域に由来する。

  • OSや購入品(外部導入部位)
  • 自動生成コード(GUI・モデルベース等)
  • 下回り(プラットフォーム寄り)

重要:

つまり「直すべき品質課題が100万ある」という意味ではない。この点を理解せずに初回件数だけを見て意思決定すると、現実からズレる。

対象外(除外)設計の考え方:99.99%を落とし、修正対象は0.01%〜0.1%

大量指摘に対して現場が取る現実解は、対象外(除外)設定と逸脱(deviation)運用だ。

  • OS・購入品は「供給元保証」の扱いで対象外にする
  • 自動生成コードも対象外にする
  • 解析ルールの適用範囲を最初に設計段階で決め、基本は途中変更しない

結果として、発言の示唆では:

  • 99.99%は対象外になり得る
  • 実際に修正が必要なのは0.01%〜0.1%程度
  • それでも「直す件数」はプロジェクトによっては数百〜1000件規模になり得る

ここが、静的解析の「数字の罠」だ。初回の件数だけを見て意思決定すると、現実からズレる。

【対話】MISRA CとCERT C、どっちを選ぶべき?

開発者

車載ソフト開発者

うちはMISRA Cで運用してきたんですが、最近「CERT Cも入れろ」という話が出てきて。両方やる必要あるんですか?

専門家

セキュリティ専門家

はい、ISO/SAE 21434対応では両方を組み合わせるのが推奨です。MISRA Cは「コードの品質・安全性」CERT Cは「セキュリティ脆弱性の防止」と、目的が違うんです。

開発者

車載ソフト開発者

具体的にどう違うんですか?

専門家

セキュリティ専門家

例えば、MISRA Cはバッファオーバーフローを「未定義動作を避ける」観点で禁止しますが、 CERT Cは「攻撃者に悪用されるリスク」という観点で対策を求めます。 特にCWE(Common Weakness Enumeration)へのマッピングが充実しているので、脆弱性レポートの根拠として使いやすいんです。

開発者

車載ソフト開発者

なるほど。でもルールが増えると、さらに指摘件数が爆発しませんか?

専門家

セキュリティ専門家

良い点を突きますね。だからこそ、最初の設計段階で適用ルールを絞るのが重要です。 全ルールを有効にするのではなく、自社の開発対象に合わせてカスタマイズする。 その判断基準をテンプレート化しておくと、プロジェクト間でブレなくなります。

規格目的ISO 21434との関連
MISRA C:2023コード品質・機能安全RQ-10-05で推奨
CERT Cセキュリティ脆弱性防止Clause 10.4.2で推奨
AUTOSAR C++14C++向け安全性・品質C++開発で推奨
CWE脆弱性分類・報告TARA結果との紐付け

組織文化:「指摘ゼロでないとリリースしない」──譲れない価値観

インタビュー対象者が最も強く語ったのは、リリース判断における価値観だ。

  • 指摘ゼロでなければリリースしない
  • 「何が何でもゼロにする」
  • 指摘が残ると、最終盤にまとめて直す「合体」が発生しやすい
  • 締め切り前は追加メンバー投入で対応することもある

改善提案のポイント:

この文化が強い組織では、改善提案は「理屈」よりもデータで効果を示すことが必須になる。

運用リズム:週1ビルド+数時間の解析

運用としては、プロジェクト全体のビルドのタイミングに合わせて回す形が多い。

  • 例:週1回、木曜昼にビルド
  • フルビルド+解析は3〜4時間かかることもある
  • 結果は誰でも見られるようにしつつ、サマリーをExcelでメール配信
  • 詳細はツール(Coverity)を見に行く運用

ただし、開発中は優先度が下がり、ほとんど減らない期間が続き、最後の最後で一気に直すという実態も語られている。

逸脱(deviation)運用:申請書+承認フローは現実的

ルール違反をゼロにするためには、完全遵守だけでなく逸脱を管理してゼロにする必要が出る。

  • 逸脱申請書(Excelテンプレ)を作る
  • チームリーダーが技術レビュー
  • 最終承認者が承認(リードタイムは短く、来たらすぐ見る)
  • 管理はサーバに保存+コミュニティにも記録(見つかりにくい工夫)

重要な観点:

逸脱が「楽をするため」ではなく、対象外の妥当性を説明可能にしてゼロを成立させる仕組みとして機能している点。

持ち帰り:証跡テンプレート

静的解析の運用に役立つExcelテンプレートを無料でダウンロードできます。 逸脱申請書、パッチ運用記録など、ISO/SAE 21434認証審査のエビデンスとしても活用可能です。

市場不具合の辛さ:再現しない、情報が足りない、仮説で戦う

バグ対応が辛い理由は、技術だけではない。

  • 市場から上がる情報は曖昧で、ログも十分でない
  • 再現が難しく、数万回に1回の現象だと開発環境ではほぼ不可能
  • FTA的に「起こり得る原因」を列挙して潰していく
  • 顧客報告資料の作成と社内合意形成が重い

事例:

「メーターが点かない」報告があり、現地(島根)まで行って半日試して、帰り際にようやく発生──しかし原因は最終的にハード部品の製造問題だった、という流れが語られている。 この「ソフトに見えるがソフトではない」ケースが、PMの精神を削る。

まとめ:このインタビューから得られる示唆

1) 静的解析の初回件数は「ノイズ込み」で見る

初回で数十万〜100万件は珍しくない。重要なのは、どれだけ対象外で落とし、修正対象が何件か。

2) リリース前のKPIは「指摘ゼロ」

組織文化として「ゼロでないと出せない」がある。改善提案は、安全性と工数削減を定量で示す必要がある。

3) 最も消したい業務は「バグ対応」

再現困難・情報不足・説明責任が重なり、開発より長引くこともある。ここを減らすには、ログ設計・再現性向上・切り分け手順の標準化が効く。

次にやるべきアクション

  • 静的解析の定量ログを構造化して残す
    初回件数/対象外比率/修正件数/収束までの週数
  • 「対象外設定・逸脱運用」の判断基準テンプレを作る
    監査・説明用
  • バグ対応を減らすための市場ログ収集・再現手順を整備する
    再現できない前提で設計する

よくある質問(FAQ)

Q: 静的解析の初回指摘が数十万〜100万件になるのはなぜ?

A: OS、購入品(外部導入部位)、自動生成コード(GUI・モデルベース等)が大半を占めます。これらは「直すべき品質課題」ではなく、対象外設定で除外するのが現実的な運用です。

Q: 「指摘ゼロ」文化とは何ですか?

A: リリース前に静的解析の指摘を完全にゼロにする組織文化です。対象外設定と逸脱(deviation)運用を組み合わせて、すべての指摘を解消またはクローズした状態でなければリリースしない、という価値観に基づきます。

Q: 逸脱(deviation)申請とは?

A: ルール違反を許容する正式な手続きです。逸脱申請書(Excelテンプレ)を作成し、チームリーダーが技術レビュー、最終承認者が承認します。「楽をするため」ではなく、対象外の妥当性を説明可能にして"ゼロ"を成立させる仕組みです。

Q: バグ対応が辛い理由は?

A: 市場から上がる情報は曖昧でログも不十分、再現が難しく開発環境では数万回に1回の現象を捕まえられない場合があります。FTA的に原因を列挙して潰していく作業と、顧客報告資料の作成・社内合意形成が重くのしかかります。

Q: ISO/SAE 21434とUN R155の関係は?

A: UN R155は法規制(2024年7月以降OTA対応車で義務化、2026年5月以降全継続生産車で義務化)で、ISO/SAE 21434はその技術的実装方法を定めた規格です。ISO/SAE 21434 Clause 10.4.2では静的解析がセキュリティ検証手法として明記されています。

Q: MISRA CとCERT Cの違いは?

A: MISRA Cは元々機能安全(セーフティ)目的で作られた言語サブセット規格で、CERT Cはセキュリティ脆弱性の防止を目的としたコーディング規格です。ISO/SAE 21434対応では両方を組み合わせて使用するのが推奨されます。

次のステップ

参照情報

関連ページ

最終更新: 2026年1月12日