JavaScriptと難読化ツール、有料版と無料版の違い
ブログ記事シリーズ「はじめてのPreEmptive Protection」第2回目では、"JavaScriptを難読化する必要はあるのか?"という問いに答えたうえで、必要と判断した場合に知っておくと役に立つ「難読化ツールの有料版と無料版の違い」に迫っていきたいと思います。
ブログ記事シリーズ「はじめてのPreEmptive Protection」とは・・・。
『ソースコードの難読化は本当に必要なの?』
『難読化でよく使われているツールはどれ?』
『有料版と無料版のツールには違いがあるの?』
<はじめてのPreEmptive Protectionシリーズの記事一覧>
1)「難読化を正しく行うために必要なことは?」編
2)「JavaScriptと難読化ツール、有料版と無料版の違い」編(→当ページ)
3)「.NETやXamarinで難読化を行うことは重要です。」編
4)「Android/Javaアプリを難読化して強力に保護するには」編
※ 弊社のサイトを初めてご覧になった方は、会社紹介のブログ記事からお読みください。
*目次*
JavaScriptのソースコードは常に晒されている
Node.js(サーバーサイドのJavaScript実行環境)やReact, Vue, Angularといったライブラリまたはフレームワークが登場したことにより、Webアプリを開発するための言語として最も利用されるようになったのが、皆様よくご存じのJavaScriptです。
Webブラウザさえあれば、誰にでも簡単にソースコードを確認できるという点が、JavaScriptの大きな特徴として挙げられます。それゆえ、悪意をもったソースコードの解析によって改ざんなどの不正行為が行われやすくなるため、マルウェアやフィッシングが拡散されてしまうといった恐れがあります。
なぜJavaScriptを難読化する必要があるのか?
弊社オフィシャルサイトで公開しているブログの中で、多くの方々に長く読み続けられている記事のひとつが、「なぜ、JavaScriptを難読化する必要があるのか?」です。記事の冒頭では、JavaScriptを難読化しないことによって起こりうる問題を指摘しています。
「難読化しないままJavaScriptファイルを提供するということは、ファイル内のソースコードが誰にでも読み取れることを意味します。そのため、コード解析しようとしている人がJavaScript を理解していれば、ソースコードが全て公開されてしまう恐れがあります。
悪意のある第三者がWebページの HTML、リソース(JavaScriptおよびCSS)をダウンロードするだけで、同じ結果をローカルで取得できるようになるため、ソースコードが読み取り可能である場合は、不正に知的財産を盗み、自由に変更することができるのです。」
・全文はこちら→「なぜ、JavaScript を難読化する必要があるのか?」
▼ https://www.agtech.co.jp/blog/2021/12/need-for-obfuscation/
難読化の必要性をどのように考えましたか?
このブログ記事を読み終えた後、"JavaScriptを利用してWebアプリを開発するときは、不正行為から身を守るためにも、難読化が必要になってくるかもしれない"というように考えられた方もいらっしゃるかと思います。
たとえ難読化によってプログラムのロジックが調整されたとしても、難読化前と同じようにプログラムを動作させることができるため、Webアプリの開発においてセキュリティ対策を施すためには、JavaScriptの難読化は必要不可欠であると私は結論付けるのですが、皆様はどのように判断されましたか?
難読化ツール、有料版と無料版の大きな違い
もし、"JavaScriptの難読化は必要になるだろう"と判断された場合、次のステップは難読化ツールの選択です。JavaScriptを難読化できるツールを調べていくと、有料版または無料版がいくつか見つかります。有料版の場合は、難読化ツールのパッケージ製品「PreEmptive Protection」の中で、JavaScriptに対応した「JSDefender」がヒットしているはずです。
当ツールの詳細を知るにはこちらから
▼ https://www.agtech.co.jp/preemptive/jsdefender/product/
また、無料版の場合は、「Javascript Obfuscator」「jjencode」「/packer/」などのツールが見つかるかと思います。これらは、ブラウザ上にソースコードをコピー&ペーストすると「名称の変更」が実行できるオンラインツールとしてよく紹介されています。ソースコードを難読化した場合に、どのような結果になるのかを実際に目で見て確認したいのであれば、無料版のいずれかを一度試してみるのもオススメです。
『なるほど。無料で簡単に難読化を実行できるなら、わざわざ製品を購入しなくても大丈夫そうだな』と思ったものの、念のため難読化ツールを販売する各社の製品説明を読んでみると、『いや待てよ。他にも機能が充実している有料版のほうが、しっかりとしたセキュリティ対策を行えそうだな』というように考えが変わるかもしれません。
このようにコスト面を優先して無料版を選ぶべきか、もしくは性能面を重視して有料版を選ぶべきか、と頭を悩ませることもあるでしょう。そのような悩みを解決するためのお手伝いができればと、ここからは難読化ツールの有料版と無料版の違いについて説明していきます。
有料版ならではの利点とは?
弊社が取り扱う「JSDefender」(を含むパッケージ製品「PreEmptive Protection」)は、サブスクリプションライセンスを採用しており、年単位での使用料が発生するため、無料版と比べた場合、コスト面で不利な立場になることは認めざるを得ません。
とは言え、20年以上の歴史をもつPreEmptive社(Idera社グループのひとつ)が開発した当ツールは、こちらの製品紹介ページでも挙げているように、ソースコードを保護するための機能(※)が数多く搭載されており、マニュアル(ユーザーガイド)は日本語版を提供しています。もちろん、JavaScriptのバージョンアップにも即座に対応しています。
(※ 当ツールの機能を使って、ゲームソフトのエミュレーターのソースコードに含まれている機密性の高い情報を難読化するというデモンストレーションが動画でご覧いただけます。)
更に、別途費用がかかることなく、手厚い技術サポートを受けることができることも大きな利点です。(サポートは英語でのみ受け付けている他製品に対して、当ツールでは日本語での技術サポートを提供しています。)難読化ツールを使った場合でも、ビルド時にエラーの発生する可能性がありますが、熟練した技術をもつ弊社の技術サポート担当が迅速な対応を行うことで、スムーズに問題解決へと進められるでしょう。
そして何より、定期的なアップグレードまたはアップデートによって、継続した品質向上を実現しているため、多くのユーザーからは、安心して製品を使うことができると好評です。このように「JSDefender」という有料版のツールは、優れた性能面を持ち、充実した技術サポートが提供され、かつ信頼性が高いという点が、無料版との大きな違いです。
「本当にそんな大きな違いがあるの?」と思われた場合は、「JSDefender」の全ての機能を14日間無料で使用することができる、評価版での試用からまずは始めてみませんか。
・評価版を申し込みたい場合はこちらから
▼ https://www.agtech.co.jp/preemptive/jsdefender/trial/
(会社名・お名前・メールアドレスを入力するだけで簡単にお申し込みいただけます。)
– 製品パンフレットをダウンロードして価格表をチェック!
▼ https://www.agtech.co.jp/preemptive/docs-download-form-introduction_second/