The page may not load correctly.
EvilParcel — Android OS の一部システムクラスで見つかった脆弱性のグループです。このようなクラスにはバグが含まれており、アプリケーションとオペレーティングシステム間でデータが転送される際にデータの変更が可能となります。攻撃者は特別な手法で転送されるデータを作成した場合、読み取り後の値は元の値とは異なります。
これらの脆弱性を悪用するマルウェアは、オペレーティングシステムによるスキャンをすり抜けるほか、昇格された権限を取得し、以前は実行できなかったアクションを実行することができます。例えば、デバイスをデフォルト設定にリセットしたり、ユーザーの許可なしにアプリケーションを個別にインストールおよびアンインストールしたりすることができます。さらに、トロイの木馬が EvilParcel の脆弱性と他の脆弱性を悪用すると、すでにインストールされているプログラムが感染したバージョンに置き換えられる可能性があります。
本タイプに属する既知の脆弱性:
CVE-2017-0806 (GateKeeperResponse クラスのバグ、2017年10月に公開)
CVE-2017-13286 (OutputConfiguration クラスのバグ、2018年4月に公開)
CVE-2017-13287 (VerifyCredentialResponse クラスのバグ、2018年4月公開)
CVE-2017-13288 (PeriodicAdvertizingReport クラスのバグ、2018年4月公開)
CVE-2017-13289 (ParcelableRttResults クラスのバグ、2018年4月公開)
CVE-2017-13311 (SparseMappingTable クラスのバグ、2018年5月公開)
CVE-2017-13315 (DcParamObject クラスのバグ、2018年5月公開)
これらの脆弱性は、2018年5月以降のアップデートがインストールされていない Android OS バージョン 5.0 ~ 8.1 を搭載するデバイスを脅威に晒すリスクがあります。
Dr.Web Anti-virus for AndroidがEvilParcelに属する1つまたは複数の脆弱性を検出した場合、デバイスの製造元に問い合わせて、適切なオペレーティング システムのアップデートを入手することが推奨されます。
Androidでは、アプリケーションは、Intentタイプのオブジェクトの送受信を通じてシステムとのやり取りが行われます。Intentには、Bundleオブジェクト内に任意の数のキーと値のペアが含まれます。Intentを渡す際にBundleオブジェクトはバイト配列に変換(シリアライズ)され、シリアル化されたBundleからキーや値を読み込む際には自動的にデシリアライズ(逆シリアル化)されます。Bundleでは、キーは文字列であり、値は Parcelable タイプのオブジェクトを含むほぼあらゆるものにすることができます。したがって、 Parcelable インターフェイスを実装する Bundle に任意の型のオブジェクトを配置できます。オブジェクトをシリアル化および逆シリアル化するには、 writeToParcel() メソッドと createFromParcel() メソッドを実装する必要があります。
EvilParcelの脆弱性は、Parcelable を実装する一部のシステムクラスの createFromParcel() および writeToParcel() メソッドの欠陥に起因します。これらのクラスでは、 createFromParcel() メソッドで読み取られるバイト数は、 writeToParcel() メソッドで書き込まれるバイト数とは異なります。このクラスのオブジェクトをバンドル内に配置すると、バンドル内のオブジェクトの境界は再シリアル化後に変更されます。
この欠陥はマルウェアによって悪用されます。昇格した特権でアクティビティを実行するには、脆弱なクラスを含む特別なバンドルを形成します。脆弱なクラスの境界を変更すると、そのようなバンドルにIntent オブジェクトを配置できるようになり、2回目の逆シリアル化後にのみBundleに表示されます。これにより、OSのセキュリティメカニズムからIntentを隠すことが可能になります。このようなIntentが呼び出されると、昇格されたアクティビティが起動され、トロイの木馬はユーザーの許可なしに悪意のあるアクションを実行できるようになります。