金融システム記事まとめ

金融系SE(金融エンジニア)がシステム関連のニュースをまとめるブログです

【全銀ネット大規模障害】原因は実装漏れ ~ 全銀ネットとNTTデータ、詳細原因と再発防止策を報告

全国銀行資金決済ネットワーク(全銀ネット)とNTTデータは、2023年12月1日、2023年10月に発生した全銀ネットの大規模システム障害に関する記者会見を開催し、障害の詳細原因と再発防止策を報告しました。

ニュースのポイント

  • 障害の原因は、製造時の実装漏れ
  • 詳細設計で考慮した設計を、製造関係者だけで不要と判断した
  • 本番環境により近いバリエーションの試験を実施していなかった

前回の報告時の内容はこちらから

全銀ネット障害 ベスト記事はZDNET

幾つかのネット記事をみましたが「ZDNET」の記事は、詳しく書いてあって大変参考になります

障害の原因は実装漏れ

不具合の原因は実装漏れです。詳細設計では考慮されていたものを、製造(プログラミング)の段階で不要と判断したとのこと。

NTTデータによれば、本来は金融機関名テーブルでのサイズの拡張を考慮し、4種類のインデックステーブル全体のサイズに合わせて、インデックステーブルを作成するプログラムの作業領域も拡張するなどの対応が必要だった。これは詳細設計でも考慮していたという。しかし、非互換性の対応時に影響調査では、金融機関名テーブルのみを認識しており、金融機関名テーブルのサイズの拡張分がインデックステーブルを作成するプログラムの従来の作業領域に収まったため、製造関係者が作業領域の拡張は不要だと判断したという。

なぜ不具合を検出できなかったのか?

不具合を検出すべき工程として、まずは製造工程です。しかし、実装をしないという判断に詳細設計の関係者が加わっていなかったとのことです。

OSのバージョン変更に伴う非互換性対応の影響調査において、本来は行うべきだったインデックステーブルを作成するプログラムの作業領域の拡張を製造関係者だけで「不要」と誤って判断したことが原因だったことから、再発防止策では、プログラムの修正において必ず詳細設計の関係者を含めて判断するプロセスに変更するとした。

次に結合試験ですが、結合試験時に4つのテーブルを全てロードしたかは不明ですが、生成されたロードファイルが破損していなければ、試験OKとなる可能性が高いです。

記者会見では、インデックスデータが破損したのは、生成プログラム単体の問題ではなく、ほかのプログラムが領域外のデータを使用した可能性があると述べていました。

総合試験、総合運転試験は何をしていたか?

次の全ての機能を動作させて行う総合試験や総合運転試験ですが、ここでも検出できずに見逃してしまったと分析されています。

OSのバージョンが変わっても変更を加えていないインデックステーブルが正しく作成されていることを直接確認できていなかったこと、本番環境により近い試験のバリエーションを用意していなかったことで、不具合を各種の試験工程で見逃してしまったとする。再発防止策では、OSなどの基盤が新しい環境でもテーブルの正当性を確認するため、新旧のテーブルを比較して確認する。また、今後は商用の実取引相当のデータを用いた疎通試験を実施するとした。

今回のケースは領域不足によるメモリ破壊が原因であるため、他の機能が動作するタイミングや取り扱うデータの量によっては、試験で不具合(ロードファイルの破損)が検出されなかった可能性もあります。ロードファイルが破損していれば、後続の機能(内国為替制度運営費チェック機能)は必ずエラーになるため、試験実施時は正しく生成されていたものと思われます。

また、対策として「新旧のテーブルを比較して確認する」とありますが、ロードファイルが正しく生成されていれば、新旧を比較しても当然同じものが生成されるため、不具合の検出には有効ではありません。

全銀ネット障害 まとめ

今回の障害を振り返ると、詳細設計でされていた項目を製造工程の担当者だけで不要と判断してしまったことは、大きな反省点です。

再発防止策として「プログラムの修正において必ず詳細設計の関係者を含めて判断するプロセスに変更する」としています。しかし、これはシステム開発においては、ごく当たり前のことであり、実施されていなかったことが問題であると思います。

委託側(全銀ネット)も、計画の妥当性や復旧が遅れたことの再発防止策を表明していますが、少々不十分な印象を受けます。あえていうならば、世の中への影響を鑑みた場合、影響が大きいコアタイム(8時30分~15時30分)ではなく、モアタイム(平日夜間・土日祝)の時間帯にリリースをしていれば、影響は少なかったのかもしれません。

各社のニュースリリース

報告書は2社の連名となっており、添付の内容は同一のものとなります

全国銀行資金決済ネットワーク

NTTデータ

以上