Androidの外部ライブラリ
Android開発者にとって、モバイルアプリの機能を手軽に拡張するために外部ライブラリを使うことは標準的な手法になっています。Gradleによる依存関係の容易な統合のおかげで、HTTPフレームワーク、データベースORM、凝ったスクロール、効率的な画像読み込み、キャッシュ、SNS連携など、多くの機能を簡単に追加できます。
Android開発者にとって、モバイルアプリの機能を手軽に拡張するために外部ライブラリを使うことは標準的な手法になっています。Gradleによる依存関係の容易な統合のおかげで、HTTPフレームワーク、データベースORM、凝ったスクロール、効率的な画像読み込み、キャッシュ、SNS連携など、多くの機能を簡単に追加できます。
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
}
外部ライブラリによって開発ははるかに容易かつ効率的になり、ベストプラクティスとさえ考えられています。
しかし外部ライブラリには、新たな脆弱性から危険な隠し機能、さらには不気味なバックドアに至るまで、セキュリティ上のリスクがあります。
上位150アプリの外部依存関係をスキャンした結果、最も多く使われているライブラリとして次のものが特定されました。

これらのライブラリの多くはTwitter、Facebook、Squareなどの企業が支えていますが、一人の開発者が支えているものもあります。たとえばButterKnifeでは、プロジェクトに45人のコントリビューターが登録されていますが、1人目のコミットは251件、2人目は13件で、残りのほとんどはわずか1件です。
このライブラリが侵害されれば、バックドアを仕込まれたバージョンが本番環境にリリースされた時点で、数百万人のユーザーが危険にさらされる可能性があります。また、たとえばFlurryのように、ブラックボックスとして提供され、ソースコードを確認することすらできないものもあります。
外部ライブラリのセキュリティは簡単なテーマではありませんが、適用すべき推奨事項をいくつか紹介します。
- ライブラリのセキュリティ情報を定期的に確認し、それに応じてライブラリを更新する
- アプリケーションに組み込む前に、各外部ライブラリを監査する
- 外部ライブラリとアプリケーションとのやり取りを制御する
- ライブラリを更新する前に、新たに投稿された変更の内容を確認する
- コード共有サイトは、悪意のある攻撃の標的に繰り返しなっています(github.comに対する大規模DDoS攻撃など)。各サイトのブログやツイートを確認し、最新情報を把握してください。