第803号コラム:上原 哲太郎 会長(立命館大学 情報理工学部 教授/IDF 理事・会長)
題:「新年のご挨拶:レガシーとの向き合い方

皆様、新年あけましておめでとうございます。

昨年は我が国においても経済活動がようやく回復したことを実感できる年になりました。多くの年次開催イベントが再開され、社会のあちこちで「4年ぶりの開催」という声が聞こえたように思います。第20回を迎えたデジタル・フォレンジック・コミュニティも、ようやく本来の形を取り戻す形で開催できました。ご参加頂いた皆様、ご登壇頂いた講師の皆様、協賛企業の皆様に改めて御礼を申し上げます。

さて、コロナ禍が加速させたデジタル化の流れも、今年は改めて新しいステージに入ります。まずはこの1月からいよいよ電子帳簿保存法における電子保存義務化が開始され、社会の隅々で証憑の電子化が進むでしょう。昨年始まったインボイス制度もあいまって、民間における会計や税務にかかる処理のデジタル化は中小企業や個人事業主においても加速すると思われます。法廷においては昨年の民訴法改正で民事訴訟における手続のデジタル化が加速することが期待されています。いずれもデジタル・フォレンジックに対する社会的重要性が増す動きであり、この分野での関係者の皆様のますますのご活躍を祈念いたします。

このように社会のデジタル化は今年も加速してゆくと思われるのですが、一方で個人的に気にしているのは過去に既にデジタル化されていたシステムの更新にかかるトラブルです。例えば今年は通信においては固定電話網(PSTN)の廃止とIP網への全面移行が開始されますが、あわせてINS網が廃止されることで特に電子商取引においてEDIの更新を余儀なくされた業界があったようです。携帯電話でも1月末にはソフトバンクにおいて3G網が停波され、残るのはドコモ網だけになりましたので、3G通信モジュールに依存したIoTはシステム更新を迫られることになるでしょう。デジタルの世界は他の業界に比べて技術の革新がどんどん進む一方で、古い技術が容赦なく捨てさられる業界であり、システムは絶えず更新を迫られます。その際にレガシーとなった旧システムをどのように新技術に着地させるのか、技術屋としては頭を悩ませることになります。

昨年に発生した大きなシステム事故の中で、このようなレガシーからの移行の難しさが垣間見えたものがいくつかありました。例えば50年間トラブルが無かった全銀ネットにおける障害事件が挙げられます。この件で問題となったのは、リレーコンピュータ(RC)と呼ばれる中継システムにおける、振込制度にかかる運営費を計算するための「内国為替制度運営費」を計算するためのテーブルを生成するプログラムにおけるバグでした。このバグはRCのOSが32bitから64bitに更新されるに伴って発生したとされており、かつ記者会見では当該プログラムの記述言語がCであると明かされていることなどから、メモリ確保を明示的に行わなくてはならないCにおいて必要メモリ量の計算ミスがあったと推測されています。

残念なことではありますが、今後このような事故は増えるに違いありません。メモリ安全性のないプログラミング言語であるCはセキュアなシステムを作るのが難しくなるため、クラウドのようにネットワーク接続が前提の環境では敬遠されていますので、組込みのようなリソースに強い制限がある分野を除いては利用が縮小しています。また、近代的なプログラミング言語の多くがメモリ安全性を備えると同時に、そもそもメモリ制限をほぼ意識させることのない実行環境が広がったこともあって、このようなリソースの制限を意識したプログラミングができる技術者は相対的に減っていくことでしょう。メインフレームからオープンシステムへの移行というレガシーマイグレーションではCOBOLプログラマの不足が問題になりましたが、今後は旧システム内のC/C++プログラムを読み解けるプログラマの不足が問題になってくると思われます。今後増えてくるクラウドネイティブの開発に於いてC/C++がほぼ使われないことも考えれば、当然このような技術者不足は加速するはずです。

それでも、社会インフラを支える情報システムのあちこちに、CやCOBOLなど古いプログラミング言語と、古いOS環境で構築されたシステムは長く残り続けます。このようなレガシーシステムを更新して行くたびに必要となる、古いシステムを理解できる技術者を維持することは容易ではないでしょう。そうでなくても技術者は不足していますし、未来のない技術を新たに修得するのは誰にとっても気が進まないものだろうと思います。となれば、今後はこのような古いシステムの解析の自動化、とりわけAIを用いた技術の進化が求められてくるだろうと思います。システム事故の解析にはソフトウェアのリバースエンジニアリング、つまりソフトウェアフォレンジックが必要となることがありますが、このような分野においてもレガシーシステムの解析技術が今後は重要になってくるのではないでしょうか。

そういえばC/C++によって動作しているレガシーシステムの多くで問題になる2038年問題の発生まであと14年です。これは遠い先のように思われますが、インフラ分野では10年以上使われる機器も珍しくないですし、家電にも10年以上使われるものがあります。しかし今出荷されているシステムが全て2038年を越えられるように作られているわけではなさそうです。我々の研究室では2038年問題を起こしそうな記述を持つCコードを検出するプログラムを開発しているのですが、これを用いてGitHubのStar数上位874プロジェクトを検査したところ、2038年問題を発生させかねない記述を持つプロジェクトは30%を越えることが判りました。インフラではシステムの更新に10年くらいかける場合があることも考えれば、2038年への対応に残された時間はさほど多くはありません。そろそろ本気で手をつける時期に入っているように思います。

昨年はAIの急速な発達が明らかになり、我々が進むべき未来が見えた年になりました。その新しい技術の力を使って古いシステムを徐々に入れ替えていくためには、レガシーなシステムときちんと向き合うことも必要です。ITが社会を支えるインフラそのものになりつつある中、システムを新たに構築する時には旧システムからの移行のあり方と、新たなシステムが寿命を迎えてレガシーとなった時の備えを同時に考えることが社会的な責任となってきています。そのような目配りが社会の隅々で行われているのか心配しつつ、個人的には、今年を未来と過去とを両にらみしながら新しいシステムの構築に関わっていく年にしたいと思っております。

社会全体に比べれば極めて小さなIDFという組織でも、今年は新しい事務局長の下、会員の皆様によりお役に立てるよう、事務体制の見直しに手をつけなくてはと思っておりますが、その際にも過去に向き合い、未来を見通す眼を失わないようにしながら進める所存です。ご理解とご協力をお願いいたします。

今年も会員の皆様にとって良い年となることを祈念して、新年のご挨拶とさせていただきます。どうぞよろしくお願いいたします。

【著作権は、上原氏に属します】