Contactお問い合わせ
お気軽にお問い合わせください。
セキュリティ強化を実現できるアプリケーション難読化ツールのパッケージ製品
難読化ツールのパッケージ製品「PreEmptive Protection」は、各種プラットフォーム(.NET、MAUI(Xamarin)、Java、Android、Node.jsといったJavaScript環境など)に応じた以下の3種類のツールを提供しています。中でも「Dotfuscator」は、2003年からMicrosoft Visual Studioに無料で使用できる簡易版(Dotfuscator Community)がバンドルされており、絶対的な信頼性があります。
(※各ツールの詳細な仕様は、【> CLICK】アイコンをクリックして、ご確認ください。)
「難読化とは」の説明の中で挙げているような機能が、当製品には全て搭載されていることはもちろんながら、難読化の機能だけではなく、アプリケーションの整合性を保護する機能も充実しています。例えば、アプリケーションの改ざん、またはデバッガーの使用を検知するためのコードを挿入し、検知した場合はアプリケーションの機能を制限したり、アラームメッセージを送信したりする機能です。また、アプリケーションの有効期限を設定する機能もあり、特定の日付になればアプリケーションを非アクティブ化することができます。
情報セキュリティにおけるリスクは日に日に高まっています。金融や医療といった、機密性の高い情報管理が求められる業界に限らず、他のさまざな企業においても、リスクへの対策はもはや必須です。難読化ツールのパッケージ製品「PreEmptive Protection」は、国内・海外を問わず、多くの企業に採用されています。当製品は、導入企業での更なるセキュリティ強化に、今後も貢献していくことでしょう。
「PreEmptive Protection」のライセンス契約は、使用期間が1年間(※)のサブスクリプション方式となります。(※3年間の長期契約も可能です。)契約期間内は、最新のアップデートやテクニカルサポートをご利用いただけます。また、当ライセンスは、「フローティングライセンス」と「ノードロックライセンス」の2種類を採用しています。
同時に実行するビルド数(当製品の機能適用を含む)、当製品を利用するプロジェクトの規模(=チーム内メンバーの最大人数)、当製品を適用するアプリケーション数などによって、購入可能なライセンスが異なります。こちらのライセンスに関するページで詳細をご確認のうえ、開発環境に合ったライセンスをお選びください。
なお、「PreEmptive Protection」の製品パンフレットにライセンスの価格表を記載しています。製品パンフレットのダウンロードをご希望の場合は、専用フォームからお申し込みください。
リバースエンジニアリングと聞くと、ハッキング(クラッキング)のような違法行為と思われることも多いでしょう。 実際には、自社or他社の製品(ハードやソフト)を細かく解析して、その仕組みや構成などを明らかにすることを意味します。 例えば、自社製品の脆弱性を調査するといったセキュリティ対策であったり、他社製品のプログラムを複製して 自社製品に取り込むといった不正行為であったりと、その目的によって意味の良し悪しは変わってきます。 次に紹介する「逆コンパイル」は、リバースエンジニアリングを行うための1つの手法ということになります。
そもそも「コンパイル」とは、プログラム言語(人間が見て理解できる形式)で書かれたソースコードを機械語 (コンピュータが理解して実行できる形式)で書かれたオブジェクトコードに変換することです。よって、 逆コンパイルとは、オブジェクトコード(機械語)をソースコード(プログラム言語)に変換する(元に戻す) という意味になります。ソースコードが入手できない場合でも、逆コンパイルを実行することで、プログラムの仕様を把握することできるようになります。
一般的には、コンパイル時にソースコード内の変数名や関数名といったメタデータの大半は無くなってしまうので、逆コンパイルを実行してもそれらを復元することは困難です。ただし、.NETやJavaのようにコンパイル時に中間コードのプログラムが作られる場合は、関数や変数などのメタデータやプログラムの構造のほとんどが残ったままになり、逆コンパイルされることによって重要な情報が元のソースコードに近い形で露わになるため、善意でのコード解析だけではなく、悪意を持った不正行為も可能となります。
難読化とは、実行ファイルの機能を維持させつつも、ソースコードの中身を人間にとって解読しにくい内容に変えることであり、リバースエンジニアリング(逆コンパイル)などを用いることによる、ソースコードの改ざん、重要な機能を盗み取ったうえでのプログラム複製、セキュリティの無効化といった悪意のある行為を防ぐことのできる技術です。以下に挙げているような難読化の機能を組み合わせることで、より強固なセキュリティ対策を実現できます。
1)名称の変更:「変数名」「関数名」「クラス名」などを、分かりにくい名称に変える機能です。これらの名称は、自他共に理解しやすいようなネーミングを行っていることが多いため、意味を持たない名称に変更しておくことが大変重要です。なお、難読化ツールのパッケージ製品「PreEmptive Protection」には、特許を取得済みの「オーバーロード誘導」という名称変更機能が実装されています。
2)文字列の暗号化:暗号化によってプログラム内の文字列を隠すことができる機能です。メタデータの名称を変更した場合でも、逆コンパイラまたは逆アセンブラによって、機械語や中間コードで記述されたオブジェクトコードが元のソースコード(高級言語)またはアセンブリ言語に変換されると、メッセージ内の文字列や「Login」や「Password」といった重要な意味をもつ文字列が検索されてしまう恐れがあります。文字列の暗号化は、このような文字列の検索による攻撃を防ぐことができます。
3)制御フローの難読化:コードの実行順を把握することが難しくなるように、既存のロジックに対して悪影響を与えない範囲で、不要なコード(=偽(にせ)の条件文など)を挿入する機能です。コードに複雑なロジックをもたせることにより、いわゆるスパゲッティコードが生成されるため、逆コンパイルの実行やコードの解析が困難になります。
第三者が自社製品を攻撃しようとした場合、セキュリティが脆弱なままでは、コードの解析が容易に行われてしまいます。システムへのアクセス方法が明るみになると、クラッキングが容易となり、機密情報が流出してしまう恐れがあります。デバッグによるアプリの改ざんや悪意のあるコードを含めた再パッケージが実行されてしまうこともあるでしょう。これらがアプリを提供している側に及ぼす影響は甚大なものです。そのような行為を食い止めることための有効な手段の1つとして、「難読化」が必要なのです。
また、GDPRというEU圏で適用されている個人データ保護に関する法令がありますが、国内企業であっても、データを保存したサーバーがEU圏にある場合は、その法令が適用されることになります。他には、米国のHIPAAという電子化された医療情報を保護するための法令や、PCI-DSSというクレジットカード業界の情報セキュリティ基準があり、こういったセキュリティに関する世界規模の規制に対して、自社製品が求められるセキュリティレベルを満たすためにも、「難読化」を行うことは非常に重要です。