どうやら、こんな流れになっていたようです。
発信源は中国だが、最終的にハッキングされたデータがどこに飛ばされたのかを『捜索』するのは極めて困難だ。
プロの連中なら図のように、いくつかのサーバーを経由させて、『犯行現場』を隠すのが普通だからだ。
ニュースでながれた、ハッキングは以下のような方法だったらしい。
入力データに特定の数値が記入されたときだけ、セキュリティ網を突破する、所謂、セキュリティホールを狙ったものだ。
オヤジが駆け出しの頃は、あるシステムの全てについて精通した『神様』って呼ばれる技術者が必ずいたものだが、現在は制御系の一部を除いて、『神様』はいなくなった。
理由は簡単、プログラムが余りに巨大化、しかも複数のソフトウェアメーカーの製品を多重に使用するので、システム全体の把握は、ほとんど不可能になったのだ。
OS、DB、アプリそれにLanが複雑に組み合わされた結果、それぞれ互いに影響して問題が発生した場合は、解明はほとんど不可能だ。
サイバーアタックも通信レベルではファイアーウォールで、ある程度、ブロックできるがこれも完璧ではない。
某社の製品など、ファイアーウォール自体にセキュリティホールが存在したことまであるのだ。
これがアプリレベルになると、さらに危ない。
システム開発者は、開発中はセキュリティブロックを避けるために、一時的なバイパス方法を仕込むのはよくあることだ。
通常は、システム完成時に、これらのバイパスロジックは削除されるはずであるが、ヒューマンエラー、あるいは意図的に残されることもある。
つまり、現在のインターネットに繋がる全てのシステムに『完璧』はないと考える方が正しい。
今のところ、ソフトウェアの開発現場は、どこも製品の品質向上一本槍だ。つまり、設計レベルで完璧であれば、問題ないという、汎用機時代の設計思想をそのまま引き摺っている。
しかし、現実にはウイルス、サイバーアタックなどの悪意の『ユーザー』の存在が明確になった今、この方法だけでは不十分だろう。
コンピュータ自身の動作を監視するCCC(昔の言葉だが、コンピューター・チェック・コンピュータの略)も、考えないといけないと思う。
制御系では、自己診断プログラムが組み込まれているものも多いが、ネットに繋がるような一般向けシステムでは、見たことがない。
検討されたことはあるが、大抵、『費用対効果』に『開発期間』で没にされてしまう。
セキュリティにも金をかける時代だと思うんですがね……