擬似乱数的なパスコードを使い、デバイスをロック解除不能な状態にして身代金の支払いを求める、Android.Lockscreen の新しい亜種が登場しています。これまでのバージョンは、画面をロックしたうえで、ハードコードされたパスワードを使っていましたが、解析によってそのコードをリバースエンジニアリングすれば、ロック解除のパスコードを被害者に提供できました。攻撃者は、デバイスのロック画面に独自のロック画面を組み合わせ、被害者にとってのハードルをさらに高くしています。これまでに確認された他のモバイルマルウェアと同じように、Android.Lockscreen も直接モバイルデバイス上で作成したうえで拡散されているトロイの木馬です。シマンテックは、この脅威を Android.Lockscreen として検出します。
ひとたびデバイスに侵入すると、Android.Lockscreen は独自のシステムエラーウィンドウを作成します。これは、以前のブログでお伝えしたとおりです。このウィンドウはシステムレベルなので、侵入先のデバイスでは目に見えるどのユーザーインターフェースよりも前面に表示されます。ウィンドウには脅迫メッセージが表示され、ユーザーはパスコードの入力を求められます。パスコードは、攻撃者に電話をかければ手に入ることになっています(図 1)。
図 1. ロック解除の方法が表示される SYSTEM_ERROR_WINDOW
Android.Lockscreen の以前のバージョンでは、ロック解除に使うパスコードがマルウェアのコード中にハードコードされていました。最近の亜種では、ハードコードされたパスコードが廃止され、擬似乱数に代わっています(図 2、図 3)。生成される数字は、亜種によって 6 桁の場合と 8 桁の場合があります。
図 2. 6 桁のコードを生成する擬似乱数発生器
図 3. 8 桁のコードを生成する擬似乱数発生器
図 2 に示した例の場合、ロック解除のパスコードはたとえば 137911 になりますが、この数字は 139911 – 2000 = 137911 という式で生成されます。
基本の数値は Math.Random() 関数によって計算されるので、生成される数字は感染が起きるたびに異なります。 作成者は、このマルウェアを強化するために、擬似乱数的なパスコードに加えて、以前から使っている古い手口も組み合わせています。システムエラーのウィンドウを使って独自のロック画面を作成するだけでなく、デバイスの管理者権限を利用して、Android デバイスの本来のロック画面に設定された PIN を変更するのです。ただし、デバイスの PIN が感染より前にユーザーによって設定された場合、次期バージョンの Android Nougat では "resetPassword()" を呼び出せなくなる予定です。
モバイルを狙う脅威から身を守るために、以下のベストプラクティスに従うことをお勧めします。
シマンテックとノートンの製品は、このブログでお伝えした脅威を以下の定義で検出します。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。
【参考訳】