メインコンテンツへスキップ

SOTIF(ISO 21448)とは何か:安全なのに危険になる問題を扱う規格

🧭 はじめに

SOTIF(Safety Of The Intended Functionality)は、**自動車の先進運転支援(ADAS)や自動運転(AD)** のようなシステムにおいて、

  • 「故障していないのに」
  • 「設計通りに動いているのに」
  • 「それでも危険になる」

というタイプの安全課題を扱う考え方・規格です。 規格としては ISO 21448 が SOTIF に対応します。

SOTIF は ISO 26262(機能安全)と対立するものではなく、26262ではカバーしづらい危険領域を補う位置づけです。


🧩 まず結論:SOTIFが扱うのは「意図した機能が危ない」ケース

自動車の安全規格の大枠は、こう整理すると理解が速いです。

🧯 ISO 26262(機能安全)

  • 対象:故障(ランダム故障、設計不具合)
  • 例:センサー断線、ECU暴走、メモリ破損で誤作動

🛰️ ISO 21434(サイバーセキュリティ)

  • 対象:攻撃(悪意ある介入)
  • 例:CAN注入、OTA改ざん、鍵漏洩

👀 SOTIF(ISO 21448)

  • 対象:意図機能の限界・不完全さ
  • 例:カメラは正常だが、霧で白線が見えず誤認識する

SOTIFは「故障でも攻撃でもないのに危ない」を扱う、と覚えるのが一番わかりやすいです。


🚗 SOTIFが重要になった背景:ADASの安全問題は“故障”だけでは説明できない

従来の自動車は、危険の多くが

  • 機械的な故障
  • 電子部品の故障
  • ソフトウェアのバグ

で説明できました。

しかし ADAS/AD は違います。 環境を認識して判断するため、「正常動作」でも危険になります。


🔍 SOTIFが扱う代表例(イメージが掴めるケース)

🟠 ケース1:検知できない(センサーの限界)

  • 逆光で歩行者を見落とす
  • 夜間で黒い服の人が検出しにくい
  • 雪で白線が消える

故障ではなく、設計上の限界です。

🟠 ケース2:誤認識する(知覚の誤り)

  • 標識を誤読する
  • 影を障害物と誤検出する
  • 反射で車線を誤認識する

システムは「ちゃんと推論」したが、結果が間違う。

🟠 ケース3:仕様は正しいが、前提が崩れる

  • 想定外の道路形状
  • 予想外の交通ルール(海外)
  • 工事中で臨時標識だらけ

SOTIFの難しさは「システムは正常」のため、従来型の“故障前提の安全設計”が効きにくい点です。


🧠 「意図した機能」って何?

SOTIFの “Intended Functionality(意図した機能)” は、要するに

  • このシステムは、こういう目的で
  • こういう範囲で使う前提で
  • こう振る舞うように設計している

という 仕様そのものです。

例:

  • レーンキープ:高速道路の車線維持を支援する
  • 自動ブレーキ:対象を検知したとき衝突を回避/軽減する

ここで重要なのは、「仕様に書けない現実」が必ず残る点です。


🧊 SOTIFの本質:未解決の危険領域が必ず残る

SOTIFでは危険をざっくり分けると、次のようになります。

✅ Known Safe(安全だと分かっている領域)

  • 十分に検証できた
  • 仕様通りに安全に動く

⚠️ Known Unsafe(危険だと分かっている領域)

  • 弱点が分かっている
  • 対策・制限が必要

❓ Unknown Unsafe(危険だと分かっていない領域)

  • まだ気づいていない危険
  • 実際に事故やヒヤリで発覚する

SOTIFで本当に怖いのは Unknown Unsafe です。これは「故障解析」だけでは見つけにくいです。


🧪 SOTIFで重要になる開発アプローチ:テストというより“探索”

ISO 26262 は「故障を想定して潰す」が中心です。 一方 SOTIF は「事故になる状況を探しに行く」が中心です。

🔎 1) シナリオベースで危険を洗う

  • どんな道路
  • どんな天候
  • どんな交通状況
  • どんな速度域

で危険になるかを体系化します。

🧫 2) データ不足を認識する

機械学習を使う場合は特に、

  • 学習データが偏っている
  • 珍しいケースを見ていない
  • ラベル品質が悪い

が「正常動作だが危険」を誘発します。

🧰 3) 対策は“安全停止”や“制限”も含む

SOTIFの対策は必ずしも「100%検知」ではありません。

  • 検知できないと判断したら抑制する
  • 条件が悪いときは機能制限する
  • 運転者へ明確に返す(Take Over)

SOTIFでは「できない時はやらない」という設計が、むしろ高度な安全設計になります。


🧱 ISO 26262 と SOTIF の棲み分け(混乱しやすいポイント)

✅ ISO 26262 が強い領域

  • センサー断線
  • ECU故障
  • ソフトのバグ
  • 仕様逸脱(期待しない動作)

→「壊れたから危ない」

✅ SOTIF が強い領域

  • 認識限界
  • 誤検知 / 見落とし
  • 想定外環境
  • MLの不確実性

→「壊れてないのに危ない」

実務では「これは26262?SOTIF?」が混ざります。両方から見て安全を成立させるのが正解です。


🧩 SOTIFの“仕様設計”で重要なこと

📌 1) ODD(運用設計領域)を定義する

ODD(Operational Design Domain)は、

  • この機能はこの条件で使う
  • それ以外は使わない(使えない)

を明確にする枠です。

例:

  • 高速道路のみ
  • 晴天または小雨まで
  • 車線が明瞭な道路
  • 特定速度域

ODD は「逃げ」ではなく、安全保証の境界です。

📌 2) フェイルセーフではなく “フェイルオペレーショナル” の話になることがある

壊れたら止めればいい、が通じないケースがあります。

  • 止まったら危険(高速道路)
  • すぐ停止できない(周囲状況)

なので、SOTIF領域は 「安全に継続する」「安全に引き継ぐ」設計に寄ります。


🧾 まとめ

SOTIF(ISO 21448)は、ADAS/自動運転のようなシステムで起きる

  • 故障でもなく
  • 攻撃でもなく
  • 意図通り動作しているのに危険になる

という問題を扱うための規格です。

ポイントは次です。

  • SOTIFは「意図機能の限界」を扱う
  • 危険は “未知の危険(Unknown Unsafe)” が残る
  • シナリオ探索とODD定義が重要
  • ISO 26262 と補完関係にある

SOTIFを理解すると「安全=壊れないこと」ではなく、現実世界の不確実性と向き合うことだと見えるようになります。