サンプルアプリの脆弱性説明

サンプルアプリの脆弱性

サンプルアプリ「04画像投稿」に存在している脆弱性について詳しく説明します。
具体的にどのような実装が脆弱性につながっているのか、ソースコードを確認してみましょう。

脆弱性のあるソースコード

プロジェクト ComponentActivityExported
ソースファイル AndroidManifest.xml
        <!-- ▼▼▼脆弱性のあるソースコード▼▼▼ -->
        <!-- exported属性をtrueに設定。 -->
        <activity
            android:name="jp.go.ipa.component.activity.exported.UploadActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:exported="true"/>
        <!-- ▲▲▲脆弱性のあるソースコード▲▲▲ -->
脆弱性の原因となっている処理は以下の点です。
  • android:exported属性に誤った値を設定している
    サンプルアプリでは、Activityが他の全てのアプリに対して公開する設定になっています。公開されたActivityが保護されておらず、悪意あるアプリからのアクセスも受け付けてしまう脆弱性を作り込んでしまいました。
    脆弱性の原因は、android:exported属性にtrueを設定したということだけです。ちょっとした不注意で脆弱性につながってしまうことが分かります。
    android:exported属性の意味をよく理解し、重要な情報にアクセスできるActivityの公開には十分注意するようにするべきです。

次は、脆弱性の修正方法について説明します。