アプリを暗号化し、改ざん/APIフックなどの攻撃から守ります。

 ファイル暗号化


DxShieldでは様々な暗号化アルゴリズムを組み合わせており、アプリを強固に守ります。

具体的には以下のような対策を行っています。

  • Dex、DLLを暗号化し、ファイルロード時に復号。
  • 複数の暗号アルゴリズムによってファイルを圧縮。
  • それぞれのファイル毎に異なる暗号鍵を利用。
  • soファイルはアンチデコンパイル処理を適用。

※Dexファイルの暗号化はMultiDexにも対応しております。

 

 部分暗号化(難読化+暗号化)


プログラムソースコード中の文字列やリソースID、関数呼び出し部分を
外部ファイルに切り出し、暗号化して保存します。
APKファイルを解析しても当該部分については外部の暗号化された部分を
参照するため、動的な解析に対して保護することができます。

これらの暗号化された箇所は実行中に必要に応じて一部づつ復号処理を行います。

 

 メモリ改ざん攻撃、デバッグ防止


実行中のアプリケーションプロセスに対して、あらかじめDxShieldの
監視プロセスが監視(ptrace)することで他の悪意あるプログラムから
改変できないように保護します。

これによってブラックリストを利用することなく、多様な悪意ある
プログラムからの攻撃も振る舞いによって検出することが可能です。

この機構はOSのイベントで駆動しますのでアプリケーション性能への影響はありません。

 

 APIフックの防止


APIフックを実行するツールとしてはXposedを始めとし、多様なツールが
存在していますが、これらを検出するためにDxShieldがあらかじめAPIフックし、
コールスタックを検査することで攻撃を防ぐことができます。

 

 完全性検証


DxShieldではファイル改ざん攻撃を防止するために、外部のサーバと通信する
ことなくスタンドアロンでパッケージ内のファイルの完全性検証を行います。

独自アルゴリズムにより、データの正真性および配置されているファイルが
パッケージ内に存在するものと一致するかを確認します。

起動時は当然ながら、アプリケーション実行中にsoファイルなどが改ざんされた
場合でも即座に検出可能になっており、不正な状態で動作することはありません。

 

 FakeGPS対応


DxShieldでは位置情報偽装アプリ(FakeGPS系アプリ)の動作を検出し、遮断します。

位置情報を利用するアプリの動作実行中に、負荷に影響の無い範囲で、数秒から
数十秒の間隔で定期的にチェックを行い、動作を検知・遮断します。

Android7.0未満はもちろん、7.0以降も対応していますので、大切なアプリを
位置偽装からしっかりとガードします。

 

 USBデバッグ検知


Android端末が、管理者設定のデバッグが有効になっている状態でUSB接続をされた事を
検出します。また、TCP/IP経由でのADB Connectも検出しますので、ADB経由でのアクセスに
起因する端末操作(自動操作など)を防止します。

 

 DeployGate連携


DxShieldとDeployGateを連携させることで、従来DxShield適用後に別経路でDeployGateに
登録していた作業を簡略化することが可能です。

本連携機能では、DxShieldを適用した際にあらかじめ登録されたDeployGateの設定に基づき
自動でDeployGateのアプリを更新します。
その後、DeployGateの機能でテスト端末に自動で更新が通知されますので、DxShieldの適用を
開発フェーズから導入することが容易になります。

検知コールバック


従来DxShieldでは、不正利用を検知したタイミングで即時遮断をしていましたが、
本コールバック検知機能を利用することでアプリ内にコールバック通知を行うことができます。

これによって、従来ログの突き合わせなどで手間のかかる作業だった、不正ユーザーのアプリ内IDの
特定が、アプリ自体でのハンドリングが可能になることで非常に容易になります。

各種攻撃の情報はコールバックを通じてアプリに引き渡されますので、アプリ内ではそれらの
情報に基いて、「一定期間は通常通り動作するがあるタイミングで動作させなくする」などの
アプリ毎に異なる任意の処理を行うことができます。