会見で謝罪する全銀ネットの辻松雄理事長(中央)。
撮影:小山安博
日本の決済を支える重要インフラ「全銀システム」のトラブルから1週間あまりが経った。
10月18日、全銀システムを運営する全銀ネットが、障害発生後として初となる対面での記者会見を開いた。
その会見内容から今、見えてきた全銀ネット障害の裏側を5つのポイントでまとめる。
1. 何が原因だったのか
原因となったのが内国為替制度運営費の入力・チェックを行うアプリケーション。障害のきっかけとなったテーブルは図の右にある「環境構築(事前準備)」のテーブル。
出典:全銀ネット
全銀システムは、サーバーなどの耐用年数を踏まえて設備の更新をしている。今回は中継コンピューター「RC」が更新予定で、「RC17」(2017年更改)から「RC23」にアップデートする予定となっていた。
10月7~9日の3連休にシステムの更改を実施し、連休明けの10日の午前8時30分から稼働をはじめたところ、刷新したRCが電文を送受信しなくなった。2日間にわたる復旧作業を経て、苦肉の策でプログラムの一部を簡易版で作り直し、どうにか暫定復旧させた —— というのが、先週のトラブルのあらましだ。
RCを更改したことが、今回の障害の発端になっている。金融機関が休みになる3連休に作業を実施したが、本番稼働が始まる10月10日午前8時30分、RCが正常に稼働せず、障害をひきおこした。
出典:全銀ネット
上図を見比べると、どのオペレーション部分を変えたのかよくわかる。新ファイル転送やテープ媒体の輸送で対処した。
出典:全銀ネット
記者会見2日前の10月16日には「メモリー不足が原因」とする報道が一部メディアで報じられ始めた。記者会見では、この「メモリー問題」も含めて、ようやく原因に迫る情報が少しずつ見えてきた。
現時点で判明しているのは、「内国為替制度運営費(いわゆる銀行間手数料)」を処理するプログラムに問題があったというものだ。
内国為替制度運営費は、振込などの種目によって異なるため、送受信される電文にはこの手数料も記載される。手法として「金融機関があらかじめ電文に金額を入力して送信する」方法と、「あらかじめRCに設定されたテーブルを参照してRCが電文に金額を入力する」という方法の2種類がある。
今回の障害では、後者のRCに設定されたテーブルを参照する方法を選択していた10金融機関で問題が発生した。
RCがテーブルを参照する処理でエラーが発生してRCが異常終了するという状態に陥った。
ただ、なぜエラーが発生するようになったか、最終的な原因は現時点でも調査中で、問題の核心は判然としない。
10月11日の営業終了時点で処理が残ったもの。
出典:全銀ネット
RCで内国為替制度運営費を入力・チェックするプログラムは、事前に用意された「金融機関名テーブル」とそれを読み出すための「インデックステーブル」を記憶領域上に展開して読み込むが、この2つのテーブルのうち、インデックステーブルの方で破損が生じていたことまでは、全銀ネット側は突き止めたという。
これによって読み込みでエラーが発生したが、「なぜインデックスファイルが破損したか」がわからない、と全銀ネットは説明する。
このファイル自体は、RC内でプログラムによって事前に作成される仕組みだ。毎朝午前4時ごろにRCを立ち上げる際に、都度展開して読み込んでいる。つまり、この「事前に作成する」段階に不具合が潜んでいた可能性がある。
基本的にRC17とRC23で作成するプログラムや手順は変わっていないというが、OSの64ビット化、仮想化といったRC自体の仕組みに変更があり、そうした部分で不具合が生じた可能性が考えられる。
前出のとおり、一部報道では「メモリー不足」が原因だと指摘されていた。
だが、今回の会見で全銀ネット側は肯定も否定もせず、「メモリー自体が不足していたかは検証の重要なポイントだが、現時点で確定的なことは言えない」(事務局長兼業務部長・小林健一氏)と述べるにとどまっている。
全銀ネット側のシステム開発の責任者である、小林健一事務局長兼業務部長。
撮影:小山安博
辻松雄理事長も「想定している原因は現時点でなく、メモリー不足が原因かどうかも分かっていない」と慎重な発言だ。
現時点で作業ミスなどのヒューマンエラーの可能性は認識されておらず、今後、なぜテーブルが破損したのか、ベンダーとともに検証していく考えだ。
2. 簡易プログラムで実施した「0円処理」はいつ解消するのか
辻松雄理事長。
撮影:小山安博
先週の記事に関して、ネット上でも反響が大きかったのが、復旧を急ぐために、銀行間取引の手数料にあたる「内国為替制度運営費」を便宜的に「0円」という扱いにするという、力業(ちからわざ)の急場実装をしたことだった。
これ以降、現時点でも内国為替制度運営費の「0円処理」は続行している。
我々一般利用者からは処理の違いは一切見えず、影響もない話ではあるが、各金融機関が自ら手数料を計算して請求しているという。
10月10日の対処は複雑な処理だったので、午前3時までのテストを継続したが修正できなかった。11日にはシンプルな処理にして暫定的に対処した。
出典:全銀ネット
0円設定をしない本来のプログラム修正に向けて、「急いでいる」と辻理事長は言う。ただ、金融機関の信頼を揺るがすほどの障害を起こしたこともあり、現時点では本格復旧時期は未定だ。
この0円状態が解消するまでは、本当の意味で「完全復旧」とは言えない状況が続く。
3. なぜ事前テストで分からなかったのか
撮影:小山安博
全銀ネット障害の最大の謎の1つに、「なぜテストで分からなかったのか」ということがある。
大型の更改作業であり、入念な試験、チェックを実施したにもかかわらず、不具合が発見できなかった。
試験項目では、RCの開発ベンダーであるNTTデータが実施する試験として、製造単体試験、結合試験、総合試験の3つがある。さらにRC23を全銀ネットとして採用するかどうかの受け入れ試験が実施される。この受け入れ試験も4種類あり、そのうち2種類が加盟金融機関との接続試験になっている。
小林氏の説明によると、全銀ネットは受け入れを決定した後、さらに各金融機関と全銀センターを接続しての相互運転試験も実施した。これらのテストをすべてクリアしたことで、万全の体制でRC23としての移行を進めた……はずだった。
前出のとおり、64bit化や仮想化など技術的には大きな変更があったた。
全銀ネット側としては「従来と同様の期間をかけてテストをした」「コスト削減でテストの内容や期間を減らすこともしていない」(辻理事長)と語る。
それにもかかわらず、テストで問題を発見できなかった。
「テストが十分だったかも検証したい」と小林事務局長は言う。なぜ問題は見過ごされたのか —— この点は、いまだ根の深い問題として残り続けている。
4. 被害を受けた人への「補償」は?
撮影:今村拓馬
今回の障害では、影響を受けた10行からの送金が滞ったことに加え、それ以外の金融機関でも、この「10行に対する送金」で影響を受けた。
例えば、給与や児童手当などの振込が遅れたほか、クレジットカードや住宅ローンなどにも影響が出た可能性がある。
実際に筆者の身の回りでも、本来のクレジットカード引き落とし口座で、「自分の別口座から振り替えて、引き落としに備える」という場合に着金しなかったケースがある。このケースでは、引き落としが失敗した。
全銀システム加盟の金融機関は、今回の障害で発生した直接的な損害に対して補償する方向で申し合わせを発表している。具体的には、「手数料」「延滞金・遅延損害金」「貸出金利/貸越金利」など、障害がなければ本来は発生しなかった追加費用だ。
ただ、厳密には「振込のために遠方まで移動した交通費」など、さまざまな個別事例もありそうだが、基本的に各金融機関が自行の利用者に対応して補償を実施していくことになる。
全銀ネットと各銀行の申し合わせでは「補償の対象」として手数料などの追加費用などを例に挙げるものの、「(解釈を拡大して)個別に各行が自主的に対応することは妨げない」という。
一方、補償対応に関しては判然としない箇所もあった。
例えばクレジットカードの引き落としが間に合わなかった場合、信用情報がどのような扱いになるか(信用情報が傷つかないか)といったことは、クレジットカード事業者などとのすり合わせが必要なはずだ。
筆者が日本クレジット協会などとの交渉の有無を質問したところ、全銀ネット側は「ほかの組織などと補償に関して交渉はしていない」と回答している。このあたりは、クレジットカード事業者などが個別に対応を実施する形になる可能性もある。
5. 今後の「完全復旧」までの時間軸は
補償は当然としても、本丸はやはり、プログラムを本来の形で動作させること。つまり、内国為替制度運営費の0円状態を解消するプログラム修正の開発を成功させなければならない。
全銀システムは、順次ほかの参加金融機関に対してもRC23への移行を進めていく計画で、第2弾として「2024年1月」に更改するのが本来の予定だった。
会見の質疑では、改めて「次の更改を予定どおり実施するのか」についても質問が飛んだ。
全銀ネット側は、現状は原因究明が済んでいないため、まずは原因を明らかにして対策を進め、さらにテストや更改など、従来の作業手順が問題ないかどうかも検証していくとする。
つまり、予定どおりの機材更改ができるのかは、まだわからない。「予断を持たずに検証したい」と小林氏は強調している。
「1月(の更改)が控えているので、それに間に合うよう、ベンダーにも原因を早急に解明するように伝えている」と辻理事長は話す。
だが、質疑のなかでは、その原因につながる「糸口」のような具体的な言及は、一度もなかった。
解説:全銀システムとは
全銀ネットの概要。
出典:全銀ネット
全国銀行データ通信システム(全銀システム)とは、日本の金融機関同士の振込や送金などをオンラインで、リアルタイムに処理する決済ネットワーク。日本のほぼすべての金融機関が接続している。運営するのは全国銀行資金決済ネットワーク(全銀ネット)で、全国銀行協会が母体となっている。
接続している金融機関数は1133の銀行や信用金庫、ゆうちょ銀行など。年間取扱件数は約22億件、約3546兆円がネットワーク上でやりとりされている。1営業日の平均取扱件数は約911万件、約14兆円にのぼる。
平日8時30分から15時30分までの取引を処理する「コアタイムシステム」と、夜間、土休日に処理する「モアタイムシステム」によって24時間365日稼働。50年間にわたって大きなトラブルなく稼働していた。
一般の振込のような、1件ごとに取引が行われる「テレ為替」は1日3000万件、給与振り込みのような一括振込など新ファイル転送と呼ばれる処理は1日3100万件の処理能力があり、現状でもまだ余裕のあるシステムとなっている。
例えばA銀行の利用客がB銀行に対して振込をした場合、A銀行は仕向けとなり、RC(中継コンピューター)を経由してコアタイムシステムに電文が送信され、相手方のB銀行のRCを経由して銀行側に着金する。それぞれのシステムは東京と大阪で二重化していて障害に備えている。
RCは、全銀システムを構成する重要な要素で、金融機関と全銀システムの間で電文の変換処理をしている。