全国銀行資金決済ネットワーク(全銀ネット)とNTTデータは12月1日、10月10日〜11日に発生した全銀システムの大規模障害の真の原因を明らかにした。
全銀システムは、日常の振込や送金をリアルタイムで処理するシステムで、国内のほぼすべての預金取扱金融機関が利用している。10月のシステム障害では三菱UFJ銀行、りそな銀行など10行で、他行宛の振り込みができないなどの障害が丸2日間継続した。
障害は、全銀システムの中継コンピューターを新機種「RC23シリーズ」へ交換し、その後営業運用を開始した直後に発生した。RC23シリーズ内の「銀行間手数料を処理するためのインデックステーブル」が破損しており、同テーブルを参照する際の処理でエラーが生じたためだ。
中継コンピューターは東京と大阪に1台ずつ、冗長化として設置されていたが、2台同時に新機種のRC23シリーズに切り替えたため、2台ともにソフトウェア障害が発生。冗長化としての役割を果たせなかった。
なお、破損していたインデックステーブルは、中継コンピュータ起動時にテーブルの初期設定値を保持するロードファイルから展開されることになっていた。発表によると、このロードファイルを生成するプログラムのテーブル作成処理に不具合があったという。具体的には、展開時にメモリ上に一時的に確保する作業領域が不足していた。
なぜ作業領域の不足が発生したのか。発表によると、RC23シリーズの開発ではOSバージョンアップに伴い、ロードファイル生成時に使用する4つのテーブルのうち、1つのテーブルのサイズを拡張していた。
なお、ロードファイルの生成プログラムは、一時的に確保した領域に、まとめて4つのテーブルを展開する仕様となっていた。しかし、NTTデータの開発プロセスにおける製造工程では、各テーブルが個別に展開されるものと誤って理解されており、一時的に確保する作業領域の拡張を行っていなかった。
また、NTTデータ内の製造有識者による修正内容の再検証においても、拡張の必要性を指摘できなかった。結果、大規模障害の発生に至った。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス