Contactお問い合わせ
お気軽にお問い合わせください。
難読化ツール
現在、EU の GDPR(一般データ保護規則)や PCI DSS(カード情報セキュリティの国際統一基準)など、セキュリティに関連する規則が強化され、その中の一部で、プログラムやアプリケーションのセキュリティ対策も、これらの規則、基準に準拠して対応していなければならないという条項があります。難読化という最高のセキュリティの施策の提供を通じ、リスク管理の対応支援を実施しております。
詳しくは、こちらを ご覧ください。
不明点等ございましたら、お気軽にお問い合わせください。
さまざまな言語による開発環境の進化とともに、アプリケーション開発は柔軟で、手軽な反面、そこにはリスクが存在していることを忘れてはなりません。それはリバースエンジニアリングによるソースコードの流出や不正な改ざんです。
セキュリティや知的財産の保護など、しっかりとした対策をしなければなりません。
われわれは、進化するテクノロジーとともに、iOS、.NET および Java などのアプリケーション開発において、懸念されるリスクを軽減するため、さまざまな難読化のための技術、サービスを提供しております。
※iOS 向け難読化については、PreEmptive 製品担当まで、お問合せください。
今、IT セキュリティは、世界中で注目されており、主要なヘルスケア、財政、政府などの機関とコンプライアンス機関の両方が新しいセキュリティ基準の策定を促しています。今話題の GDPR、PCI-DSS、HIPAA などの規制は、ネットワーク資産、個人データ、重要なインフラストラクチャを保護するという点で各企業にその責任が求められております。
これらに関連するデータは、アプリケーションを使用して作成、アクセス、変更されるため、アプリケーションを保護し強化することはデータ保護の重要な要素となります。 安全なソフトウェア開発でアプリケーションを強化することは、データを悪用することから守ることになります。つまり、ソフトウェアとアプリケーションの開発は、新たなセキュリティ規制の対象となっています。
アプリケーションは、効果的な IT の基盤とデータ侵害の第一線の源泉の両方として、最終的には認定を受けています。Search Compliance によると、一部の研究者は、使用しているソフトウェアの 90%がアプリケーション層にセキュリティ上の脆弱性があると示唆しています。よって、サイバー犯罪者が横行し、企業のインフラストラクチャを侵害したり、マルウェアをインストールしたり、データを流出させたりするためにアプリケーションを使用することは想像に難しくありません。
OWASP – オープンな Web アプリケーションセキュリティプロジェクト (OWASP) は、依然としてアプリケーションセキュリティの標準です。 OWASP Top 10 は、特定のアプリケーションの脅威に関する年1回のレポートを提供し、ソフトウェアで使用されるすべてのサードパーティコンポーネントのリストを作成し、これらのコンポーネントの潜在的な違反を監視することを奨励しています。 さらに、OWASP の新たな回復力の要求は、モバイルアプリが根本的または壊れたデバイスを検出し、複数の防御メカニズムを活用し、検出された脅威に基づいて複数の応答タイプを含めることができるようにすることを要求しています。
GDPR – EU と英国の市民情報をすべて保存している新しい一般データ保護規制 (GDPR) は、所有者の要求に応じて消費者データを迅速に提供するための要件と、これに対するアクセス、送信、および保管の厳格な管理を求めています。この標準を反映するように構築されていないアプリケーションは、制裁、罰金、企業の評判への重大な損害につながる可能性があります。
PCI DSS – PCI DSS では、信頼できる外部ソースを使用してアプリケーションのセキュリティの脆弱性を評価し、これらの脆弱性に重大度を割り当てるよう組織に要求しています。
HITRUST CSF – 商用ソフトウェア製品は実装前にセキュリティ評価を受ける必要があるだけでなく、自動化されたセキュリティ制御はすべてのアプリケーションに必須であることを求めております。
重要なポイントは、ソフトウェアとアプリケーションのセキュリティ規制が標準化されつつあることと、そして、ネイティブに安全なアプリケーションを提供することの 2つです。 新しいアプリケーションを設計する際に問われることは、大枠で、以下の通りです。
今日、アプリケーションの強化と階層化されたセキュリティ対策は、全体的な IT コンプライアンスの重要な機能として認識されています。規制がますます高まっています。あなたのアプリケーションの基本的なセキュリティを確認し、不足があれば、強化する必要があります。
PreEmptiveSolution のセキュリティ & 保護ソリューションは、あなたのリスクを最小限にとどめます。
金融サービス、ソフトウェアプロバイダー、メーカー、ゲーム、医療、保険、通信、政府、サービスおよびその他の業界は、海賊版、ソフトウェアの改ざん、リバースエンジニアリングによる解析、知的財産の窃盗、著作権侵害のなどの不正行為の対策に毎年何億円も負担しております。
ハッカーは、簡単に入手できる逆コンパイラツールを使用することで、非常に簡単にリバースエンジニアリングを行うことができます。リバースエンジニアリングされたソースコードにデバッガを組み合わせることでさらに危険性が高まります。ハッカーは、アプリケーションの完全性を損なわせ、ライセンスと認証チェックを迂回し、機密データと知的財産を盗む可能性があります。
PreEmptive ソリューションは、知的財産とソースコードの保全、そして最終的に著作権侵害、偽造、改ざんに対する信頼と収益を保護します。当社の階層化されたセキュリティと難読化による保護機能は、.NET、Java、Android、および iOS アプリケーションに直接組み込まれるため、エンドユーザのコンピュータ/デバイスやネットワークを変更する必要はありません。ソースコードの難読化だけでなく、アプリケーションのリスクを管理するのに役立ちます。
難読化は、実行ファイルを変更し、ハッカーによるリバースエンジニアリングを妨害しつつ、アプリ自体は完全に機能するようにするプロセスです。難読化により実際のメソッドや命令またはメタデータを変更することがありますが、プログラムの結果は変更されません。膨大な時間と労力をかければ、ほとんどすべてのコードをリバースエンジニアリングすることができます。
しかし、一部のプラットフォーム(Java、Android、iOS、.NET など)では、無償の逆コンパイラにより、時間と労力をかけずに、実行ファイルまたはライブラリからソースコードを簡単に復元することができます。自動化された難読化プロセスは、リバースエンジニアリングを困難にかつ、膨大な手間をかけされることでハッカーのやる気を喪失させます。
アプリケーションをリバースエンジニアリングするのをはるかに困難にすることで、営業秘密(知的財産)の盗難、不正アクセス、ライセンスやその他の制御を回避し、脆弱性の発見から保護することができます。
通常、ソースコードへのアクセスは企業のセキュリティポリシーにより厳重に制御され、権利のあるごく限られた者のみにアクセスが許可されています。 しかし、ソースコードの管理下から離れ外部に配布されるバイナリコードへのアクセス制御はどうでしょうか? .NET や Javaのような現代の環境において、”バイナリ=ソース”は事実上トートロジー(同意反復)です。第三者はバイナリコードを逆コンパイルして容易にソースコードを解析することができます。リーバスエンジアリングはプログラミングスキルアップの教育目的にも利用されており、決して特別なことではありません。
ソースコードが公開されてもよいという場合にはリバースエンジニアリングは何の脅威でもありません。しかしながら、ソフトウェアベンダ、金融サービス業者、製造業者など、ソースコードに独占的なビジネスルールや重要なプログラムロジックを組み込んでビジネスを行っている場合にはリバースエンジニアリングは知的財産の損失、システムの脆弱性への攻撃など企業利益に影響を及ぼす大きなリスクとなります。
難読化はソースコードに対するアクセス制御のギャップを埋めるための補完的統制として大きな役割を果たし、未知のリスクからプログラムを最大限に保護します。 Dotfuscator for .NET および DashO for Java/Android は特許技術である識別子名の変更を始め、文字列の暗号化、制御フローの難読化など、高度な難読化技術を用いてリバースエンジニアリングの脅威に立ち向かいます。
この資料では、.NET と Java の世界で「バイナリとソースコードが等しい」ことを実証し、リバースエンジニアリングがもたらす可能性のある種類のリスクと、アプリケーションの難読化がどのように役立つかについて説明します。 >>> 詳しくはこちら
参考資料
「難読化なくしてソフトウェアは守れない」詳しくはこちらをご覧ください。
あなた自身で制御不能なサイトに、貴重なソフトウェア(特にJava、Android、.NET、およびiOS)をリリースしていて、ソースコードを配布していない場合、難読化はおそらくアプリケーション開発プロセスの一部になるはずです。難読化では、攻撃者がコードを調査してアプリケーションを分析するのがずっと難しくなります。また、ハッカーがアプリケーションをデバッグして改ざんすることを困難にする可能性があります。最終目標は、アプリケーションから企業秘密(IP)、認証情報、セキュリティ脆弱性などの有用な情報を抽出または検出することを難しくすることです。また、アプリケーションロジックの変更や、悪意のあるコードを仕組んだアプリケーションを再パッケージするのが難しくなります。
ご不明な点がございましたら、お気軽にお問い合わせください。
モバイルアプリケーションは、知的財産の盗難、サービスの中断、ソフトウェア著作権侵害、データ損失など、会社にとって重大なリスクを引き起こす原因となりうります。以下はいくつかの例です。
著作権侵害、盗難、およびビジネスの妨害は、サーバークライアントシステムの「脆弱性」をターゲットにしています。モバイルアプリは悪意のある攻撃者にとって、格好なターゲットになっております。
PreEmptiveSolution のセキュリティ & 保護ソリューションは、あなたのリスクを最小限にとどめます。
これらのソリューションはあなたのモバイルアプリに浸潤し、あなたのモバイルアプリはどこに行っても保護されます。
ハッカーは、商用サービスのモバイル、サーバー、およびデスクトップアプリケーションを攻撃の対象とすることがますます増えています。あなたのアプリケーションは次のような危険にさらされている可能性があります。
あなたの会社は、ハッキングに対して、どのようにして自分自身をより安全に守ることができますか?
次の対策を実行することで実現することが可能です。
明白な保護措置として、潜在的なセキュリティ脆弱性についてソフトウェアを監査し、アプリをリリースする前にそれらを修正してください。また、コードの難読化や堅牢化などの技術を適用して、逆コンパイラを防止し、人間による解析を非常に困難にすることによって、リバースエンジニアリングやハッキングを大幅に難しくすることができます。
アプリケーションの堅牢化により、アプリケーションの改ざんやデバッグに対抗する必要があります。たとえば、保護されたアプリケーションは、実行時にデバッガがアタッチされていたり、改ざんされているのか、脱獄(jailbroken)または安全でないデバイスで実行中であるのかを検出し、適切に応答(報告)ができます。
一例として、デバッグ検出は複数のアクションをランダムに適用してハッカーをさらに混乱させ、場合によってはアプリケーションをロック(二度と実行できないようにする)し、同時に報告します。
最近制定された DTSA (Defend Trade Secrets Act)※の下で、企業は裁判所で営業秘密盗難の申し立てを行い、救済措置を求めることができます。これらの救済策を最大限に活用するには、企業は企業秘密を特定し、合理的な秘密防衛措置を実施しなければなりません。これらのルールをソフトウェアアプリケーションに適用することで、難読化および強化技術は、お客様のIPの機密性を維持するために必要な「合理的な努力」を確立する上で重要な役割を果たします。ディフェンド・トレード・シークレット法の詳細については、こちらをご覧ください。
※ 米国の法令です。米国市場でのビジネスにおいては、重要となります。
改ざん通知と応答ソリューションがもたらすパワフルな検知コントロールは、アプリケーション開発者と顧客の両者の保護に役立ちます。
Dotfuscator/DashO for Java/Android はアプリケーションの改ざんを自己診断するロジックを難読化したアプリケーションに自動的に追加することができます。
変更または未承認で再コンパイルされた難読化アプリケーションは、まず初めに安全なシグナルを発信します。 このシグナルは改ざん通知レポートとして集められ、ほぼリアルタイムにアプリケーションの作成者や顧客の IT スタッフに通知されます。
開発者は改ざん検出時に自動的に実行されるカスタマイズされたコードを追加することができます。コードには実行の停止、改ざんされたアプリケーションの機能制限、改ざんされたアプリケーションユーザーへの通知などがあります。
改ざん通知サービスにはたくさんの注目すべき特徴があります。
実行モジュールの直接的な改ざんや、リバースエンジニアリング後に変更されたソースコードの再コンパイルなど未承認による変更をアプリケーション実行時に通知/応答
カスタム属性の使用のみでプログラミング不必要
シグナルは SSL 経由で送信。(個人を特定できる情報は含まれていない)
・エージェントフリーのモニタリングソリューションを生成する改ざん検知ロジックを挿入。
・コンパイル後の枝刈りがフットプリントにおける変更を最小化。
サポート契約をしている Dotfuscator for .NET / DashO for Java/Android ユーザーであれば無償で利用可能。
今日最も広くインストールされている難読化ソリューションです。
PreEmptive Solutions では PreMark と呼ばれるソフトウェアによるウォーターマークツールをリリースしました。このツールは Dotfuscator Professional Edition version 3.0 および DashO version 3.2 から製品に同梱されております。Dotfuscator for .NET および DashO for Java/Android for Java/Android は作成したコードの商売上の秘密を保護するために使用する製品ですが、PreMark は作成したソフトウェアの、認定されていないコピーを、その提供元まで遡って追跡し、所有権の根拠を明確にする方法を提供します。デジタル ウォーターマークに通じていないのであれば、ここに PreMark の詳細までを含めその概要を提示しておきます。
ウォーターマークの最も根源的な定義は、「他の情報内への別情報の埋め込み」です。当然、その過程でオリジナル情報の可用性を損なってはいけません。
下に示すような、目に見えるデジタル ウォーターマークを使用した画像を恐らく目にしたことがあるでしょうが、ここで言うウォーターマークは見えないように隠されたウォーターマーク、あるいはステガノグラフィによるウォーターマークのことであり、幅広い範囲のアプリケーションで使用されています。
ステガノグラフィ (Steganography) とは、何らかのメッセージが存在することを隠す技法を指します。例えば、伝令使の頭を剃り刺青をで文章を記した後、頭髪を伸ばします。そして伝令使が目的地に着いた時に再度頭髪を剃ればメッセージが現れるというものがあります。また、サブリミナル広告も、視聴者に気づかれないようにフレームが挿入されるという意味でステガノグラフィ技法の1つであると考えることができます。
例えば、あなたは有料視聴制の放送で目に見えるウォーターマークを使って欲しくないとか、あるいはお金を出して購入した画像を目に見えるウォーターマークで損なって欲しくないと考えるかもしれませんが、そのようなコンテンツの所有者や配布者は、所有権の証を引き出せるようにしておきたいのです。
デジタルウォーターマークは、使用されていない情報密度部分を利用することで情報を隠します。データとしては画像 (jpeg 等) やオーディオファイル (mp3)、あるいはバイナリの実行可能形式を使用可能です。概念としては、データ本来の品質および内容を保持した形で識別情報をデータ内に埋め込むというものです。
以下の図では、隠されるデジタルメッセージは緑と黒の点で表現されています。このメッセージが風景写真に埋め込まれます。
Source: http://www.ece.purdue.edu/~ace/water2/sampleimages.html
風景画像はウォーターマーク処理の前後では同じように見えます。しかし、2つ目の画像、即ちウォーターマークされた画像にはあるデジタル化されたメッセージが埋め込まれているのです。
損失のあるデータ型 (例えば、食用に適するかどうかのパターン化情報) はウォーターマーク処理に大変適しています。
画像の曖昧な部分や、歌曲の検出不能音域には情報を隠すための多大な余地があります。しかし、ソフトウェアのようにデータに余地のないものにウォーターマークを隠すことは容易ではありません。全ての機能は保持されていなければなりません。しかし、GUI を表現するには複数の方法があり、ウォーターマークを機能に影響を与えることなく格納することが可能なのです。
暗号化や難読化(隠蔽処理)は犯罪行為を抑制することを目的に設計された技術ですが、ウォーターマーク処理は犯罪行為の検出と犯罪者の逮捕に使用できる可能性があります。通常、デジタル ウォーターマーク処理はあるレベルの著作権保護を提供するために使用されます。これは著作権情報を、後に取り出すことができる形でデータに挿入することで行われます。ウォーターマークを付与されたデータはコピーすることも使用することもできますが、著作権情報はいつでも取り出すことができ所有者を証明できるのです。著作権保持者の情報だけでなく、元々の購入者情報もエンコードすることができるので、違法コピーの追跡が可能となります。
フィンガープリントという技法は、不法な著作権侵害行為を検出するためにデジタルコンテンツを「パーソナライズ」します。パーソナライズとはデジタルコンテンツに対して小さな変更を行うことで、著作権侵害にあたるコンテンツを発見した場合にその侵害行為に加担した元々のユーザを割り出すことができるようにするものです。通常、フィンガープリントによる侵害行為の追跡は「背信者追跡 (Traitor Tracing)」と呼ばれています。
フィンガープリント処理は衛星放送データの著作権侵害行為の検出によく使用されてきました。正当な視聴者には放送データをデコードする一連のキー情報が発行され、放送されるコンテンツの各ユニットにはそれぞれの正規視聴者に対する固有のフィンガープリントが付与されています。もし一人あるいは複数人の正規視聴者がキーを他人に (インターネットや「ブラックボックス」デコーダを通じて) 渡した場合、放送者はいつかはフィンガープリント情報を使用し、元々の視聴者を割り出すことができるようになっているのです。
PreMark は既に難読化(隠蔽処理)されたコードおよびまだ難読化されていないコードの両方の上で実行可能であり、Java および .NET の両方のアセンブリで利用可能です。この機能では、隠されるべき情報をあなたのコードに直接埋め込みます。PreMark を実行すると、会社名のような著作権情報、および恐らくカスタマ識別情報を含め入力します。
PreMark は続いてこの情報を埋め込み、オリジナルと機能的に同等のモジュールを出力しますが、出力されたモジュールはオリジナルのものになんらコードを追加しておらず、コードサイズもオリジナルのものと同じです。また、処理済の出力ファイルを PreMark で処理すると、そのファイルに埋め込まれている情報を取り出し表示します。
この機能を使用することで、ソフトウェアのコピーを追跡することができる可能性があります。また、ソフトウェアの所有権の証明、あるいは窃盗したものであることを証明することができる可能性もあります。ウォーターマークの付与は容易にできるので、あなたのビルド手順の1ステップとして組み込むべきでしょう。
PreMark は著作権保護技法としてステガノグラフィ手法、即ち非公開の手法を使用しているため、あるプログラムが DashO for Java/Android あるいは Dotfuscator for .NET を使用しフィンガープリントで著作権保護されているのかどうかを知ることは容易ではありません。従って、PreMark 機能が実際に使用されているかどうかに関わらず、これはいくつかの状況下において抑止力となりえます。
Lucidator は PreEmptive Solutions 社の Dotfuscator for .NET または DashO for Java/Android を使用し難読化されたコードをデバッグする際に使用する独立した補助ツールであり、難読化されたスタックトレースやシンボルを復元します。
Dotfuscator for .NET および DashO for Java/Android は割り当てファイル (マップファイル) を生成します。開発者やサポート要員はこのファイルから難読化されていないスタックトレースやシンボルを復元し、サポートにご利用頂くことができます。
Lucidator は PreEmptive Solutions 社の製品の Build Machine License をご購入いただいたグループに無償で提供されます。グループというのは、Dotfuscator Professional または DashO for Java/Android Professional の特定のインスタンスで難読化された製品の開発、テスト、サポートに関わっている人のことです。Lucidator は難読化されたコードを変換してデバッグする必要のあるサポートチームに理想的です。ユーザー登録の手続なくグループ内で無制限に Lucidator を使用することができます。