あの事故はなぜ起きたのか!!(1) ―― 安全ライフサイクルの考え方

田辺 安雄,吉岡 律夫

●○● Column ●○●
こうしておけば事故は防げた!

 ここでは,制御やコンピュータに関する主な事故例を取り上げ,これらの事故の原因は,全安全ライフサイクルのどのフェーズがまずかったのか,あるいは,抜けていたのか,について評価をした.なお,取り上げた事故例,特に事故原因は,筆者の独断と偏見によることを最初にお断りしておく.

(1)「テラック25」放射線照射装置の事故

 ソフトウェアが原因の死亡事故で最もよく研究されているのは,1985~1987年に,カナダAECL(Atomic Energy of Canada Limited)製のLINAC加速器の異常によって発生した6件の被爆事故(うち4名が死亡)です.事象としては,オペレータが「弱い電子線」を表す"e"キーを押すべきところを,間違えて「強いX線」の"x"キーを押し,これをカーソル・キーを使って8秒以内に修正すると,ソフトウェアが正常に動作せず,高エネルギ放射線を直接患部に照射してしまった,というものです.

 それまで,何千回も安全に照射をしていたのですが,オペレータが熟練した時点で事故になりました.本システムに対しては,潜在危険分析が既になされていましたが,ソフトウェア・エラーが除外されていました.また,コンピュータ・エラーによる過剰照射の可能性は,FTA(Fault Tree Analysis;故障樹解析)に含まれていましたが,その可能性は10-11という極端に低い確率とされていました(3)

 機能安全の観点で検討すると,この装置においては,ある程度のリスク解析がなされていましたが,そもそも,ソフトウェアによる事故を想定していなかったことが問題です.つまり,リスク解析あるいは潜在危険分析を十分に行うべきでした.

 そのほかの問題として,オペレータの入力誤りを防衛するプログラムを含めておけば,事故は防止できたでしょう.さらに,ソフトウェア製作段階でのテストを十分に実施すべきであったといえます.

 なお,日本でも,2001~2004年の3年間で,700人以上に放射線治療中の誤照射事故が起きていて,死亡事故も発生しています(4).過剰または過小照射が発生した直接原因は,オペレータの入力ミスとされていますが,ミスがチェックされないシステム上の欠陥ともいえます.

(2)「アリアン5」爆発事故

 ソフトウェアが原因の事故で有名なものは,欧州宇宙機構(ESA)が1996年6月4日に打ち上げたロケット「アリアン5」が発射後,まもなく空中で爆発し,落下した事故でしょう.この事故の直接の原因は,飛行制御用コンピュータのソフトウェアの欠陥でした.アリアン5では,2台のコンピュータに同一のソフトウェアが搭載されていました.十分に実績のあるアリアン4のソフトウェアを流用したところ,打ち上げ加速度の大きなアリアン5で,けたあふれエラーを生じました.その対策がプログラムに施されていなかったために,2台のコンピュータが停止し,姿勢が制御できなくなり,自爆装置が作動したものです(5)

 機能安全の点からすると,ソフトウェアそのものは,いわゆる「枯れたソフトウェア」であり,十分に実証されていた,と思われていました.しかし,ロケットの方が進歩したために,ソフトウェアを使用する環境条件と合致しなくなったのです.ソフトウェアを組み込む時点で,安全機能要求仕様の作成フェーズを十分に実施すべきでした.

 IEC 61508では,ソフトウェア制作時に,フォールト・アボイダンス(誤りが起きにくい仕組み)と,フォールト・トレランス(誤りがあっても,防衛できる仕組み)という,二つの技術思想を採用しています.この事故についても,プログラムや入力の誤り,不正などに対して,防衛する仕組み(フォールト・トレランス技法)を採用していれば,事故は防げたでしょう.

(3)システム・ダウンで航空管制障害

 2003年3月1日,国土交通省 東京航空交通管制部で,飛行計画情報処理コンピュータ・システム(FDP:Flight Plan Data Processing System)に障害が生じ,全国で航空機の離陸ができなくなりました.約1時間後にシステムは復旧しましたが,その後の影響は全国57空港で約27万人におよび,システム障害が原因の被害としては過去最大となりました.問題のFDPは,2台で相互に監視し,1台が故障すればもう1台だけで運用できるはずでした.ハードウェアは2台用意してあったのですが,同一のプログラムが搭載されていました.

 直接の原因としては,

・データ領域の境界を越えて読み出すと,不正処理と見なしてシステム全体がダウンする問題があったのに,防止プログラムを忘れた.
・プログラム更新の事前テストが十分でなかった.
・過去(1995年,1998年)の同じトラブルの教訓が生かされなかった.
などが指摘されています(6)(7)

 データ領域の不正な書き込み,読み出しは,コンピュータにとって最も危険な処理です.前述のように,防衛する仕組み(フォールト・トレランス技法)を採用していれば,この事故は防げたでしょう.また,FDPが,30年間にわたって改造を繰り返して使い続けた結果,全安全ライフサイクルでいう「改修時の評価」がなおざりになっていたとも思われます.

参考・引用*文献
(1)IEC 61508,"Functional Safety of Electrical/ Electronic/Programmable Electronic Safety Related Systems",1998-2000.
(2)JIS C 0508,電気・電子・プログラマブル電子安全関連系の機能安全,日本規格協会,2000年.
(3)Nancy G. Leveson;SAFEWARE:System Safety and Computers,1995.
(4)放射線照射ミス続発,日本経済新聞,2004年6月6日.
(5)清水久二;アリアン5の爆発事故とソフトウェア安全性に関する国際規格,安全工学誌,No.2,2002年.
(6)FDP障害,毎日新聞,2003年3月2日.
(7)FDPシステムの障害の原因調査の結果,国土交通省,2003年.
http://www.mlit.go.jp/kisha/kisha03/12/120312_.html

よしおか・りつお
(株)日本機能安全

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日