2.4 著作権保護

アプリケーション自体も著作物であり、著作権保護の対象となりますが、ここではアプリケーションが内蔵しているデータの著作権保護について見ていきます※2。アンドロイドアプリは他のアプリケーションのリソースに簡単にアクセスできるため、リソースデータを取り出して外部ファイルに保存するといった処理を実装できます。著作権が設定されていて第三者に渡ってはならないデータがアプリケーションに含まれている場合は、データの取り出し自体を防ぐことはできないという前提に立って、取り出されても利用できないような措置を取る必要があります。著作権が設定されていることが想定できるデータとしては、次が挙げられます。

  • 画像
  • 動画
  • 音楽
  • 文字列
  • 電子書籍

それぞれを保護するレベルに応じて、暗号化やライセンスサーバの利用などを検討する必要があります。また、これらの情報を送受信する際には、個人情報と同様にパケット盗聴への対策が必要となります。

※ 2 アプリケーション自体の保護については、「2.6 アプリケーションの不正利用抑止」を参照のこと。

2.5 アプリケーションの悪用抑止

アプリケーションの機能に外部からアクセスされ、本来の目的以外に悪用されることが考えられます。単純な例を挙げると、接続先と接続先に送るデータをインテント経由で受け取って通信を行うようなアクティビティは、適切なパーミッションで保護されていないと、悪意のあるアプリケーションから送られたデータをそのまま転送する踏み台として悪用される恐れがあります。

リスト2-1 受け取ったインテントの内容を他へ送信するアクティビティ

<activity android:name=".service.WriteServiceActivity">
  <intent-filter>
    <action android:name="jp.co.somecompany.action.DATA_SEND" />
  </intent-filter>
</activity>

マニフェストの内容から、すべてのアプリケーションがこのアクティビティに対して処理を要求できることがわかります。仮に、アクティビティ側に適切なチェックが記述されていないとすれば、アプリケーションは悪意のあるデータを送出した犯人にされてしまいます。

リスト2-2 受け取ったデータを盲信し、処理してしまう例

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Intent intent = getIntent();
  String destinationURL = intent.getStringExtra(DESTINTION_URL, null);
  String data = intent.getStringExtra(DATA_TO_SEND, null);
  // 渡されたデータは正しいと信じて送信処理を実行
  // doSend()の中でチェックしてればよいが...
  doSend(destinationURL, data); 
}

また、決まった時刻に自動的に処理を行うアプリケーションは、アラームマネージャからのインテント通知に応じて起動するように設計されますが、起動時の処理の内容によっては、インテントが偽装された場合の対策が必要になります。

たとえば、毎晩午前0時に端末の情報をサーバへ送信するようなアプリケーションがあるとしましょう。この処理の実行開始をアラームマネージャからのインテント通知だけを引き金として実装してしまった場合、悪意のあるアプリケーションが偽装されたインテントをアラームマネージャに登録すれば、アプリケーションはサーバへのデータ送信を任意のタイミングで繰り返し実行させられることになります。このケースでは、悪意のあるデータをサーバへ送信することは難しいものの、サーバに負荷をかけたり、想定外のタイミングでデータ送信を行ったりすることで、サーバ側のデータで不整合を引き起こす可能性があります。

これについては、以下の対策が考えられます。

  • 機能の呼び出し元を確認する
  • 外部から呼び出せないようにパーミッションを設定する

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30