検索
連載

不正Androidアプリの大量生産はどうすれば防げるのかAndroidセキュリティ技術の最前線(3)(2/3 ページ)

Androidアプリをめぐるセキュリティ対策技術について解説する本連載。第3回は、不正アプリが生み出される仕組みとそれを妨害するための対策について解説する。

Share
Tweet
LINE
Hatena

「難読化」によるリパッケージ対策

 攻撃者によるリパッケージのコストを増加させるためにまず検討すべきなのは、「アプリの難読化」である。そこで以下では、いくつかの難読化技術について紹介する。

1.「クラス名」「変数名」の難読化

 Android SDK付属の「ProGuard」を適用することで、実行コード内のクラス名、変数名などを無意味な文字列に変換することができる。この手法は、特に手動でのリバースエンジニアリングの妨害に有効である。

2.文字列の暗号化

 実行コード内の文字列定数は容易に抽出可能であるため、例えば暗号鍵やファイルパスなどといった、特徴的な文字列から機能を類推される危険がある。これを防ぐために、特徴的な文字列定数はあらかじめ暗号化しておき、必要に応じて復号する実装にするのが望ましい。

3.「リフレクション」「動的コードローディング」の利用

 Javaにおける「リフレクション」を利用することで、クラス生成やメソッド呼び出しの対象を、コードの実行時に動的に決定することができる。特に、上述した「文字列の暗号化」との組み合わせによって、APIの呼び出しや制御フローなどを隠蔽(いんぺい)することが可能になる。

 また、元々の実行コード(classes.dex)とは別のコードをアプリ実行中に読み込む技術である「動的コードローディング」も、特定の機能の実装を隠蔽する上で効果的である。

 以上のような、「アプリの実行時に動的に処理が決定されるような実装」を行うことで、静的解析の難易度を増加させることができる。ただし、これらの対策はアプリのパフォーマンス低下につながる可能性もあるため、適用箇所をよく検討する必要がある点には注意していただきたい。

4.ネイティブコードの利用

 Androidにおいては、仮想マシン上で実行される中間コード(Dalvikバイトコード)の他に、仮想マシンを介さないネイティブコードも実行可能である。一般的に、ネイティブコードの解析難易度は中間コードより高いため、攻撃者の解析コスト向上が見込める。

 以上、ここで挙げたのは一部の例に過ぎないが、これらのような難読化技術を用いることで、リバースエンジニアリングの難易度を高め、結果としてリパッケージのコストを増加させることが可能となる。

改ざん検知による自動リパッケージへの対策

 難読化による対策は、攻撃者の目的が「リパッケージ対象アプリの内部実装を読み解き、特定の実装箇所を改ざんすること」であるような場合に特に有効であった。一方で、前述したような「自動的なリパッケージによる悪性コードの挿入」という手法に対しては、攻撃者は個々のアプリの内部実装に依存しないような共通の処理でリパッケージを行っていることが想定される。従って、難読化とは異なるアプローチでの対策が必要になる。

 こうした自動リパッケージへの対策例としては、「アプリの改ざん検知」が挙げられる。これは、アプリ実行時に改ざんが検知された場合に、ユーザーに対して警告を表示したり、アプリの動作を停止させたりすることで、アプリの利用停止、アンインストールを促し、改ざんされたアプリが長期的に利用され続けることを防ぐ技術である。このような対策は、長期的な感染を目的とするようなリパッケージマルウェアに対して特に有効である。

 アプリの改ざん検知の方法としては、「署名情報の検証」や「実行コードのハッシュ値チェック」などが挙げられる。もちろん、これらの「改ざん検知機能」自体がリパッケージによって無効化されてしまう可能性もあるため、前述したような難読化技術を組み合わせることで、これらの機能の実装箇所を隠蔽することも大切である。

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  3. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  4. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  5. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  6. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  7. ゼロトラストの理想と現実を立命館大学 上原教授が語る――本当に運用できるか? 最後は“人”を信用できるかどうか
  8. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  9. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  10. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
ページトップに戻る