東京電力がWindows XP機を使い続ける理由

以下のようなニュースが読売新聞の一面で書いていた。

東電「XP」4万8千台、5年継続…外部接続も

要旨としては、東京電力が4万8千台のWindows XP搭載PCをサポート終了後5年も使い続けることとしたという内容である。この中にはインターネットに接続するマシンもあるそうだ。

以下に、私の見解を書いてみたい。なお、私は電力会社に納入する計算機システムの開発経験があり、その立場からの意見を書くが、あくまでも一個人としての感想・意見であり、メーカーを代表する意見ではないということを強く念押しさせていただく。また、推測を多分に含むことも付け加えさせていただく。

私の想像

東電がXPを使い続ける理由は、おそらくPCに搭載されているシステムがXP上で動作することを前提としたものであってWindows 7以降での動作を保障できないからであろう。こういうのは原子力発電所に限らずいたるところの業務基幹系システムで散見される。

原子力で使われるシステムは言うまでも無くミッションクリティカルシステムであって、計算機が提供するシステムが止まってはならない。私が担当したシステムも、24時間以上その機能が停止すれば原子炉を停止しなくてはならないという法規制があったくらいだった。

そのようなものであるから、たとえば一般的なソフトウェアのように、「OSなどの環境が違うから動作しません」などということは許されない。『必ず、完璧に動作すること』をメーカーは保障しなくてはならないから、それが実現できるような契約を交わしている(詳細は控えさせていただくが、一般常識に照らし合わせてあまりも特殊な契約というわけではない)。

なので、一般的なソフトに比べてより厳格な試験結果を要求されたりする。また、トラブル発生時に確実に対処するため、あまりOSS資産や社外のパッケージソフトというのは利用しない傾向がある。独自開発の部分も大きい。こういうことがあって原子力のソフト開発コストというのは高くなる。

さらに、より完全な動作を実現し、かつコストを圧縮するために特定のOS上でのみ動作するという制約を設けてテストを行い、それ以外での動作は保障しないという条件を付けることが普通である。また、「動いているソフトはそのまま動かせ(動くのが正義、リスクを取るな)」という古いソフト資産を流用するという思想が強いため、そのしわ寄せもある。

さらにはハードウェア面での制約もある。たとえば、カートリッジ型のDVD-RAMをいまだに運用しており、それをほかの方法に切り替えることができず(たとえば、USBメモリだと紛失事故や漏えい事故の経験があるから使用したがらない)、さらに使用しているドライブのドライバがXPでしか提供されていない・・・などのケースもある。

長くなってきたのでまとめよう。XPマシンをリプレースできないのは、リプレースに掛かるコストが高いからである。その理由としては、

  • XPマシンでしか動作保障していないソフトが多い
  • そのようなソフトを新OSに対応させるコストも高い(レガシー資産を引きずっている)
  • 古いハードを動かすために古い環境を使わざるを得ない

こういうことがXPマシンを早急にリプレースできないのだと私は予想している。ちなみに、既に述べたようにこれらの問題は他の一般的な業務基幹系システムでもよく見る問題である。しかし、原発は一般的なシステムよりもこれらの問題が顕在化するケースがかなり多い。その理由としては、やはり、完璧な品質、動作保障を求めているからであろう。

私の意見

ここからが私の意見である。原子力の計算機システムは、もっと業界標準に近づく努力をすべきである。原子力のシステムは特殊である。しかし、特殊であることが業界標準(デファクトスタンダード)に従わない理由にはならない。

特にソフトの業界では、業界標準に従うこと、つまり、ユーザーコミュニティの規模の大きい技術を選択することはかなり重要である。なぜならば、品質、設計開発コスト、新技術への移行というあらゆる面でメリットがあるからだ。

もちろん、メリットだけでなくリスクもある。新しい技術を取り入れるということは、今まで発生しなかった未知の問題を引き起こす可能性が高い。今までメーカーがとってきた策というのはこれを回避し、いにしえのレガシー資産を代々後生大事に使いまわすという方法であった。過去にちゃんと動いていたものを動かし続ける。それも一つの方法ではあるが、そのしわ寄せが今回のような問題につながっている。

私は常々、OSS資産の活用を社内で主張してきた。しかしその導入への反対意見としてよく言われるのが、

  1. OSS資産はメンテナンス出来ない(or バグが多い)
  2. OSS資産にはセキュリティホールがある
  3. OSS資産を使うとコードを公開する必要がある or OSS資産は業務では使ってはいけないライセンスである
  4. OSSを利用するための手続きが必要だが、どうすればよいか分からない
  5. 対応できる技術者が居ない

ということであった。

1.は全く理解できない。ソースコードが公開されているのだから社内でのメンテナンスは可能である。一律にバグが多いというのも理解不能な論理だ。むしろ使用するユーザーがたくさん居る場合は、OSSの方がよりこなれていてバグが少ないと思う。

2.は慎重に傾聴すべき意見だろう。たとえば、HTTPサーバにApacheを用いればApacheのセキュリティホールを利用したゼロデイ攻撃を受けるかもしれない。インフラ系システムへの攻撃が頻発している状況をかんがみれば十分に注意すべきであろう。

しかし、外部のネットワークとは完全に切り離されたシステム上でもこれを言われるのには納得できない。それを指摘したところ、「原子炉建屋内部にも悪意の持った人間が存在するという前提で設計しなければならない」と言われたが、物的防護や雇用時のセキュリティチェックで対処すべき問題であると思う。

3.に関しては単純に無知や誤解である。確かにGPLなどはコードの公開義務があって使いにくいライセンスだと言われるが、それでも無条件に世界中の人々に公開しなくてはならないというものではなく、バイナリを使用する人(つまり電力会社)に公開すればよいというものである。ならばすでに行っていることである。

OSSであるから業務利用ができない、という指摘にはもはや閉口してしまう。その様に主張する本人が、業務上の理由でLinuxサーバーにOpenSSHを使ってリモートログインしているのである。(そのように主張する人たちは、どうもLinuxのサポート契約を買っていることを、「ライセンスを購入している」と思い込んでいるか、Linuxはオープンソースでないと思っているようだ)

4.はもはや意味不明である。

5.は情けないの一言に尽きる。そしておそらく、本当の理由は5.なのであろう。あまりにも世間と隔絶したソフトウェアを作り続けてしまったがために、世の中一般の技術を理解して利用できるソフトウェア技術者が育たなかったのである。

ちなみに、東電はセキュリティリスクのあるXPを使い続けることに対して、「各種の技術的対策を講じている」と述べているが、私はその対策が本当に有効かどうか疑問である。昔、某電力会社が雇ったペネトレーションテストを行ったりセキュリティリスクを評価したりするような監査会社の技術者と一緒に仕事をしたことがあったが、あまりのひどさに頭を抱えたことがある。

リスク評価と称して行っているのはNMapか何かを使ってポートスキャンを行う自社製の簡易スクリプトを数回流して自動出力された評価書を印刷しただけである。しかも、「ファイアウォールでポートを塞いだらアクセスできないからファイアウォールを外してくれ」などとも言われた。侵入者を想定して盾を用意したのに、盾を外せとは何事だろうか。そんな侵入者がどこにいるのだろうか。

で、結果が出たら「セキュリティリスクがこんなに検出された。とても問題だ」などと言われる。電力会社の担当者もあまり意味が分かっていないのだろう。「早急に対処して頂きたい」などと言い、私はカチンときて言い返そうと思ったら上司に制されて「早急に対処させていただきます」と上司が述べた。で、私に「早急に対処しなさい」などと言ってきたのだが、あれは社会人になってから一番腹立たしい事であった。

それからその会社の社名をネットで調べたが、その業界ではかなり有名な会社であったのでさらに驚いた。これが普通なのだろうか?

話が脱線してしまったが、とにかく私はそういう経験があったために「各種の技術的対策を講じている」などと言われても到底信用ならない。

まとめ

原子力業界は不透明な部分が多いとたびたび批判される。私の印象では、不透明というか、あまりにも世間一般とは隔絶された常識がまかり通っている部分があるように思えてならない。

電力会社もメーカーも、他業界を調査して良いところを学ぶという謙虚な姿勢が必要だと私は思う。そういう姿勢があったならば、XP機のリプレースに5年もかかるなどという事態は回避できていたかもしれない。

ちなみに、良い面も述べておくと、最近は「OSSは使用してはならない」という制限もかなり緩くなってきているように感じる(あくまでも私の周囲での話である)。それはどうも、従来のようなソフトウェア開発を続けて居てはコスト競争に勝てないということが背景にあるようだ。