STAMP/STPA 演習 ~ エアバッグの安全性分析 ~ 2017 年 9 月 22 日独立行政法人情報処理推進機構 (IPA) 技術本部ソフトウェア高信頼化センター (SEC) 石井正悟
目次 1. 目的 2. STPA の手順 3. エアバッグの要求仕様 4. Step 0 準備 1:Accident Hazard 安全制約の識別 5. Step 0 準備 2:Control Structure の構築 6. Step 1:UCA(Unsafe Control Action) の抽出 7. Step 2:HCF(Hazard Causal factor) の特定 8. 対策検討 2
2 STPA の手順 分析手順 Step 0:( 前準備 1) Accident Hazard 安全制約の識別 Step 0:( 前準備 2) Control Structure の構築 Step 1:UCA (Unsafe Control Action) の抽出 分析内容 対象システムにおいて分析対象となる Accident( 望ましくない事象 ) Hazard (Accident が潜在している具体的な状態 ) を定義し Hazard を制御するためのシステム上の安全制約を識別する システムにおいて 安全制約の実現に関係するコンポーネント ( サブシステム 機器 組織等 ) 及び コンポーネント間の相互作用 ( コントローラによる指示 フィードバックデータ ) を分析し Control Structure を構築する Control Structure Diagram から安全制約の実行に必要なコントローラによる指示 (Control Action) を識別し 4 つのガイドワードを適用して ハザードにつながる非安全な Control Action(UCA) を抽出する Step 2:HCF (Hazard Causal factor) の特定 Step1 で抽出した UCA 毎に, 関係するコントローラと制御対象プロセスを識別して Control Loop Diagram を作成し ガイドワードを適用してハザード要因 (HCF) を特定する 特に ソフトウェアやヒューマンに起因する要因として, コントローラの想定するプロセスモデルが, 実際のプロセスの状態と矛盾することで起きる要因を特定する 3
3. エアバッグの要求仕様 エアバッグ制御システムの要求仕様 ( 目的 ) 自動車の衝突による衝撃から乗員を保護するため ( 手段 ) 膨らませたエアバッグを用いて 衝突による乗員への衝撃を緩和する 前提 一般的な実現方法として 加速度センサーで衝突を検知する 火薬を爆発させることによりバッグを瞬時に膨張させる膨張させるだけでは衝撃を緩和できなかったり 反動ではじき返されたりするので エアバッグからの反動を緩和するためにエアバッグを速やかに収縮させるエアバッグのライフサイクルを考えると 自動車組立 廃棄処理の際に火薬が爆発しないようにする仕組みが必要 4
4. Step0 準備 1: アクシデント ハザード 安全制約の識別 はじめての STAMP/STPA P15 作業名称 目的 アクシデント ハザード 安全制約の識別 アクシデントを定義する安全制約を導き出す 入力 1 要求仕様書 2 [ ドメイン専門家 ] 処理 1 分析しようとするアクシデントが何であるかを定義する 2 アクシデントと成り得るハザードには何があるかを考える 3 ハザードの裏返しとなる程度の粒度で安全制約を導き出す 出力 1 アクシデント ハザード 安全制約の一覧表 備考 アクシデント : 喪失 (Loss) を伴うシステムの事故 ハザード : アクシデントにつながるシステムの状態 安全制約 : システムが安全に保たれるために必要なルール例えば 踏切制御システムにおいて 踏切がいつまでも開かないのは サービス利用者 提供者に経済的損失を与えたり 精神的苦痛を与えることになることもあるが 人の生命に関わる事柄に焦点を絞ったときには アクシデントではない と定義できる 5
Step 0 アクシデント ハザード 安全制約の識別 アクシデント (Loss) ハザード (Hazard) 安全制約 (Safety Constraints) A1: A2: 6
5. Step 0: コントロールストラクチャーの構築 はじめての STAMP/STPA P17 作業名称 目的 コントロールストラクチャーの構築 登場人物間の依存関係を制御構造図で表す 制御主体と制御対象の間で行われる制御 ( サブシステム間の相互作用 ) には何があるかを明確化する その後の分析作業において理解し易いイメージを共有する 入力 1 要求仕様書 処理 1 要求仕様書から登場人物 ( ブロック ) を抽出する 2 要求仕様書から各ブロックの役割を抽出する 3 役割を果たすために必要な制御 役割を果たした結果のフィードバックを抽出する 4 制御 入出力情報 ( 情報を与えるのみで制御を行うわけではない ) の違いを分別する 5 ブロック間を矢印線で結び 制御 入出力を (?) センサー出力のようなフィードバックを制御と考える?? 出力 1 制御構造 ( コントロールストラクチャー ) 図 備考 ブロックの数は 4 つ程度が良いと言われている それ以上多くなる ( 抽象度を下げる ) と 以降の分析すべき組み合わせが多くなり 集中しにくくなる 検討漏れを起こしかねないので 工夫が必要になる 7
制御構造図 ( コントロールストラクチャー ) 8
演習 STPA によるエアバッグの安全分析 5. Step 0 コントロールストラクチャーの構築 エアバッグシステムのコントロールストラクチャー図を描いてみましょう 9
6. Step 1:UCA(Unsafe Control Action) の抽出 はじめての STAMP/STPA P19 作業名称 UCA(Unsafe Control Action: 非安全制御動作 ) の抽出 目的 ハザードにつながり得る制御動作の不具合を識別する ( 発想する ) 入力 1 UCAを導き出すための4つのガイドワード (4 分類 ) 2 アクシデント ハザード 安全制約の一覧表 3 制御構造図 処理 1 UCA 識別の表を準備する 2 最上列に4つのガイドワードを記す 3 最左行に制御構造図中にある制御をすべて記す 4 各マスごとに 当該 ( 最左行の ) 制御動作が当該 ( 最上列 ) 状況になった場合 いずれかの安全制約違反に成り得るかを考える 5 安全制約違反に成り得るならば UCAであると判断する 出力 1 縦軸 : 制御行動 横軸 : ガイドワードとしたUCA 一覧表 想定外を排除することを忘れないように 10
6. Step 1:UCA(Unsafe Control Action) の抽出まず CS 図から制御行動 (Control Action) を抽出する エアバッグ制御システムの制御行動 (Control Action) 加速度センサーで衝突を感知したら バッグを膨らませる (from) エアバッグ制御装置 (to) エアバッグ バッグが膨張したらバッグを収縮させる (from) エアバッグ制御装置 (to) エアバッグ 11
6. Step 1 UCA の抽出 # 制御行動 適用条件 Not Providing Providing causes hazard 1 (Timing) Too early/too late (Duration) Stop too soon /Apply too long 12
7. Step 2:HCF(Hazard Causal factor) の特定 はじめての STAMP/STPA P21 作業名称 目的 HCF(Hazard Causal factor: 誘発要因 ) の特定 どのような HCF があったら UCA に成り得るのかを考え ハザードシナリオを作る 入力 1 HCF 特定のための11 個のガイドワード 2 制御構造図 3 UCA 一覧表 処理 1 制御構造図からコントロールループを抜き出して その中の各制御に該当するガイドワードを割り当てる 2 [ 制御構造図中の各制御に該当するガイドワードを割り当てる ] 3 Step1で識別したUCA 毎に ガイドワードをひとつづつ当てはめてみて ハザードと成り得るかを考える 4 ハザードと成り得るならば どういう条件下で当該ガイドワードの事象が発生して その後 どういうシステム挙動になったらハザードとなって アクシデントにつながるかのシナリオを作る 出力 1 縦軸 :UCA, 横軸 : ガイドワードとした ハザード要因の一覧表 2 ハザードシナリオ すべての UCA に夫々ガイドワードのすべてを当てはめて考える 13
HCF ガイドワード はじめての STAMP/STPA P9 (12) (13) 14
7. Step 2:HCF(Hazard Causal factor) の特定 UCA :(SC 違反 ) アクチュエータ センサー 15
STPA 最終 Step: 対策のまとめ # 対策 関連 UCA 1 マスク解除は両方向の開始センサーに行なう 2 終始センサーが列車 到達 を検知したら 開始センサーへマスク指示する 3 開始センサーからの信号が途絶えたら警報を鳴らす 4 センサー検出順番の不正を検出したら警報鳴動し続ける 5 異常に短時間の短絡は異常と判断し 警報鳴動し続ける 6 異常に長時間の短絡は異常と判断し マスク解除し 警報鳴動する 関連 HCF 7 退行時には非常手続きが必要 UCA1 1-3 1-4 対策対象コンポーネント UCA4 4-1 踏切制御装置 UCA6 6-4 開始センサー UCA4 4-2 踏切制御装置 開始センサー UCA1 1-1 踏切制御装置 開始センサー 備考 列車 到達 を前提として再度 STPA 分析要 Heartbeat Healthy 信号等による監視機能が必要 UCA1 1-2 踏切制御装置順番の正誤判断基準要 UCA1 1-2 踏切制御装置 UCA3 3-1 開始 / 終始センサー UCA5 5-1 踏切制御装置 開始 / 終始セン サー UCA6 6-5 踏切制御装置 列車 運転士 異常時間の判断基準要 異常時間の判断基準要 開始と停止の指示競合時の処理判断基準要 外部コンポーネントも絡む 16
STPA 最終 Step: 対策のまとめ # 対策 関連 UCA 関連 HCF 対策対象コンポーネント 備考 1 2 3 4 5 6 7 17
お疲れ様でした