CoinCheckで580億円のネムが流出した理由はプログラム言語Javaが原因か?

アリスです。

CoinCheckで仮想通貨のネムが流出してから数日が経過しました。犯人はいまだ特定されていませんが、おそらく北朝鮮です。

北朝鮮のコンピュータのハッキング技術はすごいです。そこに膨大な金を投資しているで、当然かもしれませんが、ハッキング技術だけであれば日本よりはるかに上をいっているでしょう。

ネムはプログラミング言語のJavaで作られている

仮想通貨のネムはJavaというプログラミング言語で作られています。Javaですが、毎年、人気トップ3のプログラミング言語としてランクインするようなメジャーなプログラミング言語です。昨年は人気ナンバー1でした。

スポンサーリンク

Javaの脆弱性

Javaで作られたプログラムを動作させるにはJava VM(Virtual Machine)が必要です。つまり、Javaはそれ単体では動作することができないということです。

このことが原因に一因となっているかは定かではないですが、Javaは頻繁にセキュリティアップデートがあります。セキュリティホールがしょっちゅう見つかっており、その対応に追われているということです。

毎回毎回Windowsを起動するたびにJavaのアップデートがでて、うっとうしい思いをした人はたくさんいるでしょう。最近は頻度も少なくなりましたが、以前のアップデートの頻度はすさまじかったですから。

Javaが使われたシステムの漏洩事故

Apache struts 2という全世界の様々なところで動いているWebアプリケーションがあります。Javaのフレームワークで作られた無料のWebアプリケーションです。

このApache strutsは米国の大手のサーバでも使われているのですが、昔から漏洩事故が頻繁に起こっています。日本郵政、国交省などでも数十万件の漏洩、アメリカでは保険会社で1億人規模の漏洩も起きています。

もちろんJavaが直接の原因とはいえないかもしれません。脆弱性はそのプログラムの組み方に問題があることも多いからです。

そして、Javaは人気ナンバーワンの言語ということで、様々なシステムに使われているので、事件も発生しやすいのです。

スポンサーリンク

Javaのプログラミング言語としての進化は遅い

今のJavaのバージョンは8です。私はバージョン4(2006年)の頃から知っていますが、Javaの進化は他プログラミング言語と比べると遅いように感じます。

実はプログラミング言語というものはどんどん進化しています。

一昔前はif文(条件)、for文(ループ)を使って、処理をやたら長ったらしく書かなければなりませんでした。

しかし、最近はとても簡単かつ簡潔に書けるようにプログラム言語自体が進化しています。例えばその代表的なものがクロージャーであったり、ラムダです。

そういった最新の技術を核プログラミング言語は取り入れているわけです。しかし、Javaはそのスピードが遅い。例えば、ラムダが取り入れられたのはJava8になってからです。

Windowsが開発したプログラミング言語のC#ではとっくに取り入れられていましたから。

ネムが流出した原因はJavaか?

今回ネムが流出した原因はJavaというよりも、システム自体に問題があったからでしょう。Javaの脆弱性が原因ではないと思われます。

しかし、ネムにJavaが使われていたから狙われた。その可能性は非常に高いです

先ほども言ったようにJavaは脆弱性が多いです。しょっちゅうセキュリティアップデートを繰り返しているのが何よりの証拠です。

そしてアップデートが多いということは、アップデートされていないPCも多々あるということです。毎回毎回リアルタイムで更新しているような人はほとんどいません。

アップデートされるまでは脆弱性が残ったままとなるため、犯人はそのすきを狙うわけです。ネムがJavaで使われていたことと、今回の580億円の流出の因果関係、私は大いにあると思っています。

スポンサーリンク
関連記事と広告