Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

JavaScriptのコードを難読化! Webアプリのリバースエンジニアリングを防ぐ「PreEmptive Protection for JavaScript」

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/09/30 12:00

 GmailやGoogle マップ、Facebook、Twitterなど、日ごろ私たちが使っているサービスの多くがWebアプリケーションである。これらはインストールすることなく、インターネットに接続するだけでWebブラウザから利用可能だ。そのため普及が進んでいるものの、ハッカーから狙われやすい側面もある。そこで今、注目を集めているのが、JavaScriptのコード難読化ツールだ。導入にはどのようなメリットがあるのか。JavaScriptの難読化ツール「PreEmptive Protection for JavaScript」が提供する機能、導入するメリットなどについて、同製品のマーケティングを担当しているエージーテックの青山和宏氏と、サポートを担当している伊藤友恒氏に話を聞いた。

目次

Webアプリの普及で活用の幅が広がるJavaScript

 スマートフォン(スマホ)の普及により、Web開発の主戦場はPCから移り変わりつつある。すでにインターネットのトラフィックの半分以上はモバイル端末となっており、Webサイトもモバイル中心に変わりつつある。

 スマホ向けアプリの場合、ネイティブアプリが実行速度も速く、デバイス特有の機能が生かせるため最善だが、「それぞれの環境に応じて開発が必要になるためコストがかかること、さらに技術者不足などが課題になりつつあります」と青山氏は指摘する。そこで活用が進んでいるのが、Webアプリケーション(Webアプリ)、ネイティブアプリとWebアプリのいいとこ取りを実現した、ハイブリッドアプリである。

 それを表すように、GmailやGoogle マップ、FacebookやTwitterなどのSNS、食べログ、ぐるなび、クックパッドなど、私たちが使うサービスの多くがWebアプリやハイブリッドアプリでできている。この動きはコンシューマー向けだけではない。クラウドの普及によりエンタープライズにおいても、基幹アプリケーションのWebアプリ利用が増えている。

 Webアプリがこれほどまでに普及するのには理由がある。それは専用のアプリケーションのインストールが不要で、Webブラウザさえあれば即利用可能になること、マルチデバイス対応が比較的容易なこと、クライアントが増えてもサーバーの負荷が増えないこと、サーバーサイドだけの修正で済むなど、メンテナンスが容易なことなどが挙げられる。その一方でデメリットもある。

 「ネットワーク環境が必要なことはもちろんですが、セキュリティホールの不安もあります」(青山氏)

株式会社エージーテック 営業本部 営業2部 マーケティング Product Manager 青山和宏氏
株式会社エージーテック 営業本部 営業2部 マーケティング Product Manager 青山和宏氏

 Webアプリを開発する言語はPHPやJavaなど複数あるが、今、最も開発現場で活用されているのが、JavaScriptである。なぜ、JavaScriptがこれほどまでにWebアプリ開発の現場で幅広く使われているのか。

 「サーバーサイドをJavaScript環境で開発できるNode.jsが登場したことです。これにより、フロントエンドとバックエンドの両方をJavaScriptで開発できるようになり、JavaScriptの活用が増えました」(青山氏)

 その後、jQueryやReact、AngularといったJavaScriptフレームワークやライブラリが登場し、現在ではネイティブアプリに劣らないリッチなWebアプリの開発が可能になっている。

Webアプリが持つセキュリティへの不安を難読化ツールで払拭

 だが、Webアプリには先述したようにセキュリティ面の不安がある。

 「JavaScriptのソースコードは、Webブラウザから誰でも簡単に見られます。ハッカーはそれを解析することで、不正や攻撃を容易に仕掛けることが可能です。ソースの流用やロジックの解析が可能なため、不正ログインやゲームでチートをすること、また改ざんすることでマルウェアやフィッシングを混入させることもできます。米国では情報漏えい事故など、さまざまな事件が起こっています」(青山氏)

 アプリケーションの動作はそのままに、Webアプリの持つこれらのセキュリティに対する不安を払拭するために活用したいのが、コード難読化ツール「PreEmptive Protection for JavaScript(PPJS)」である。

 PreEmptive社は、.NET環境やJava/Android環境のコード難読化ツールを過去20年以上にわたり提供してきた。JavaScript向けの難読化機能を開発するきっかけとなったのは、「米国のある有料の動画配信サービス会社から要望されたこと」と青山氏は明かす。そのため「PreEmptive Protection」にはJavaScriptの難読化機能はもちろん、これまで提供されてきた.NET(C#、VB.NET、Xamarin)、Java/Androidの難読化機能も含まれている。

 日本では難読化ツールに馴染みがない人も多いかもしれないが、米国では、中間言語を使用した.NET環境やJavaなどの開発環境において、難読化ツールが当たり前のように使われてきたという。しかし、日本においても個人情報漏えい対策のひとつとして、金融業界などを中心に、難読化ツールへの関心が高まっているのだ。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

  • 丸毛 透(マルモ トオル)

    インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

バックナンバー

連載:開発生産性向上に寄与するツール大研究
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5