概要
Therac-25事件は、 放射線治療機器 のソフトウェア不具合による 死傷事故 として有名。 1985年から1987年 にかけて合計6件の事故が発生し、 複数の死者・重傷者 を出した。 原因はソフトウェア設計・運用上の重大な問題 であり、業界全体に大きな教訓を与えた。 安全対策 や テスト体制の不備 が事故を招いた経緯が明らかになった。 本記事では、事件の詳細・背景・教訓を解説する。
Therac-25事件の詳細
-
Therac-25 はAtomic Energy Canada Limited(AECL)製の 放射線治療装置
-
完全ソフトウェア制御 が特徴で、従来の ハードウェアインターロック を省略
-
1985年6月~1987年7月 までに 6件の過剰被曝事故 発生
-
患者への致死的な放射線照射 による死亡・重傷事故
-
東テキサス癌センター(ETCC) でも1986年3月に重大事故発生
- 技師が ビーム種別入力ミス →素早く訂正し治療開始
- 「Malfunction 54」エラー 表示、手順通り再開→患者が激痛を訴え
- 本来180ラッドの処方に対し 16,000~25,000ラッドの過剰照射
- 初期診断は電気ショック、実際は 重度の放射線障害
-
機械は「アンダードーズ」と誤表示 し、被害の発覚が遅延
-
AECL は当初「過剰照射は不可能」と回答、安全神話が崩壊
-
FDAやマスメディア が介入し、事件が社会問題化
技術的背景と根本原因
-
Therac-25 は PDP-11 上のアセンブリ言語で制御
-
複数プロセス(ユーザー入力・ビーム制御・線量管理など) を一人の開発者が実装
-
ソフトウェアの再利用 (Therac-6, Therac-20から流用)に過度な信頼
-
AECL内部の安全評価 では「ソフトウェアに残存バグなし」と仮定
- 「プログラムエラーはハードウェア起因のみ」と誤認
- 「長年使っているから安全」との過信
-
ハードウェアインターロックの省略 による致命的設計ミス
-
ソフトウェアレースコンディション が主因
- 入力ミス訂正時に 高速入力 で再計算が飛ばされ、誤ったビーム設定で過剰照射
- タイミング依存の不具合 で、再現性が低く発見が困難
事故調査・対応と組織的問題
-
ETCC物理学者 が再現実験を行い、AECLに報告
-
AECLは当初「再現できない」と回答、 「It works on my machine」現象
-
FDAが是正措置計画(CAP) を要求、AECLはテスト計画の不備を指摘される
- FDA「全ソフトウェア改修ごとに厳格なテストが必要」と要求
- AECL側は「長年の運用実績」で済ませようとした
-
暫定的な運用対策 は実施されたが、1987年1月に 別のソフトウェアバグ による事故再発
-
複数プロセス間で共有する変数管理の不備 が新たなバグを生む
教訓と現代への影響
-
ソフトウェア安全性 の過信が大事故を招いた実例
-
ハードウェアインターロック など 物理的安全装置の重要性 を再認識
-
ソフトウェアテスト・検証プロセスの厳格化 が業界標準となる契機
-
単独開発・属人化 によるリスクの顕在化
-
レースコンディション・並行処理バグ の危険性の啓蒙
- 実運用速度でしか発生しない不具合の存在
- 経験豊富なオペレータほどリスクが高まる逆説
-
医療機器ソフトウェア規制 や 安全文化 の発展に大きな影響
ソフトウェア開発者へのメッセージ
- Therac-25事件 は、 技術者倫理 ・ 安全設計 ・ テスト体制 の重要性を強く示す
- 「長年使っているから安全」 という思い込みの危険性
- 設計・実装・運用・検証 すべての段階で 多重防御と透明性 が不可欠
- 過去の失敗例から学び、同じ過ちを繰り返さない 姿勢が求められる