動的なWebコンテンツを開発するのに便利なプログラミング言語である「JavaScript」。Google Mapでも使われているように、その利便性と機能性は誰もが認めるところだが、一方でセキュリティ面での不安がつきまとう。スマートフォン全盛となり、JavaScriptで開発されるアプリはますます増加し、多くの開発者にメリットをもたらしている反面、ユーザー企業にリスクをもたらす可能性は、排除できていないのが現状だ。Arxan Technorogies(アークサン・テクノロジー)の「Arxan Application Protection for JavaScript」は、そんなユーザーの不安を取り除くことができるクラウドサービスだという。
AjaxにHTML5、画期的なウェブテクノロジーが登場するたびに脚光を浴びるのが、JavaScriptだ。高速かつ低コスト、技術的なハードルの低さにもかかわらずリッチなコンテンツが開発できるとして多用されてきた。スマートフォンの登場でブラウザーアプリ全盛となるや、クロスプラットフォーム開発が可能で高性能なJavaScriptは、ゲームを始めとする数多くのモバイルアプリ開発にも用いられている。
しかし一方で、セキュリティ面での不安は取り除かれていない。ご存知の方も多いかと思うが、JavaScriptで書かれたページのソースコードは、一般のWebブラウザーであれば開発者向け機能で簡単にテキスト表示することができる。つまり、アプリケーションは丸裸にされてしまう。こうなると、リバースエンジニアリングやコード改ざんというリスクが付いて回り、いざ攻撃対象になれば、企業イメージの失墜などそのダメージは計り知れない。
なぜこんなことになっているのかというと、もともとJavaScriptは、複雑なアプリを開発するための技術ではなかった。ひとつのホームページにダイナミックな動きを加えるための言語だった。ところが、あまりにJavaScriptが便利で使い易かったため、次々と機能強化され、利用範囲が拡大した。JavaScriptは、サーバー側を覗かれるリスクが低いため、開発者から重宝されたのも要因だ。当時マイクロソフトが提供していたActiveXがシステム側にアクセスできてしまうものだったため、相対的にJavaScriptの安全性が宣伝されることとなった。
JavaScriptのメリットそのままに難読化
米Arxan Technologiesの提供する「Arxan Protection for JavaScript」は、JavaScriptに特化したアプリ保護のクラウドサービス。同社のプロダクト部門バイス・プレジデントであるRusty Carter氏は「JavaScriptの利便性を享受しつつ、脆弱性を補うことのできるサービス」だという。
その過程は、まずJavaScriptで開発したアプリケーションをZip化(圧縮)する。このZipファイルを、Arxanのポータルサイトにドラッグ&ドロップするだけ。このアプリをブラウザーで確認してみる。従来の通り開発者向け機能でソースコードを表示すると、それは以前見た時とはまったくことなる、IとJばかりのぐちゃぐちゃなソースコードになっていた。これが「難読化」された状態だ。
通常ハッカーはソースコードを改ざんするために、リバースエンジニアリングして、どのようなコード構成になっているのか、どこで何をしているのかを解析、パッチを当てる。JavaScriptは、ソースコードがテキストで見ることができるのでこれが簡単にできてしまう。ところが、難読化されると解析できなくなり、改ざんは途端に難しくなる。
また、Arxan Protection for JavaScriptには、改ざんされていたらこれを検知してサーバーに知らせる機能や、デバッガーで開こうとした時に検知するアンチデバッガー、スペースの挿入などハッカーの不正な行動を検知するチェックサムルといった機能も搭載されている。
Arxan Protection for JavaScriptがアプリケーションのパフォーマンスに与える影響は微細だという。実際に同サービスの評価を行ったゲーム制作会社WizcorpのHansali Guillaume氏は「サクサク動くのが売りの3Dゲームでも、ユーザー体験を損なうことなく遊べる」と太鼓判を押している。
同社は、最新のアーキテクチャーを使ったユーザー体験を提供することで高い評価を得てきた会社で、ネイティブ並みのゲームをHTML5で作成できるのではないかと研究してきたという。その中でArxan Protection for JavaScriptの優位性を評価している。
金融や医療、IoT機器への適用も増加
ゲーム業界だけでなく、例えば金融の場合、ログイン画面でIDやパスワードを盗むようなコードを挿入される恐れがある。送金先をハッカーの口座に書き換える送金詐欺などの可能性もあり、金銭的な被害に加え、ブランドイメージを失墜するという被害を受けかねないため、対策は急務だ。
そのほか、IoT関連での利用にも期待が高まっているという。例えばIoT機器をコントロールするためのモバイルアプリや、院内ネットワーク対応の医療機器のコントロールボックスなどは、JavaScriptで書かれているものも多く、これらを守るのにもArxan Protection for JavaScriptが用いられているという。また、「テレマティクスなどの車載システムもJavaScriptで書かれ始めている」(Carter氏)など、適用範囲は広がるばかりだ。