Androidを狙ったランサムウェアが再登場
攻撃を受けたユーザーのデバイスに登録されているすべての連絡先にSMSを配信し、さらなる拡散を狙う新しいAndroidランサムウェアをESETの研究者が検出しました
攻撃を受けたユーザーのデバイスに登録されているすべての連絡先にSMSを配信し、さらなる拡散を狙う新しいAndroidランサムウェアをESETの研究者が検出しました
Androidランサムウェアは過去2年間減少傾向にありましたが、新しい系統のランサムウェアが出現しています。このランサムウェアは、ESET Mobile SecurityではAndroid / Filecoder.Cとして検出されます。これは、さまざまなオンラインフォーラムを介して拡散しており、攻撃を受けたユーザーの連絡先リストに、悪意のあるリンクを設定したSMSを配信してさらに拡散しようとします。現時点ではこの攻撃対象は限られており、攻撃の実行と暗号化の実装方法の両方に欠陥があるため、この新しいランサムウェアの影響は限定的ではあります。しかし、もしこの開発者が欠陥を修正し、ランサムウェアの運用者が広範なユーザーグループを標的にする場合、Android / Filecoder.Cランサムウェアは深刻な脅威になる恐れがあります。
Android/Filecoder.C は少なくとも2019年7月12日から活動を開始しています。ESETが検出したAndroid / Filecoder.Cの攻撃は、RedditとAndroid開発者向けのフォーラムである「XDA Developers」への悪意のある投稿から拡散していました。ESETはこの悪意のある攻撃についてXDA DevelopersおよびRedditに報告しました。 XDA Developersフォーラムの投稿は速やかに削除されましたが、悪意のあるRedditプロファイルはこの記事を公開した時点ではまだ公開されていました。
Android / Filecoder.Cは、攻撃を受けたユーザーの連絡先リストに悪質なリンクを設定したSMSを配信し、さらに拡散しようとします。
ランサムウェアは、悪意のあるSMSを大量に送信した後に、デバイスにあるほぼすべてのユーザーファイルを暗号化して身代金を要求します。暗号化に欠陥があるため、攻撃者のサポートを受けなくとも、暗号化されたファイルは復号化できます。
ESET Mobile Securityを使用しているユーザーには、悪意のあるリンクに関する警告が表示されます。警告を無視してアプリをダウンロードしようとしても、ESET Mobile Securityによってブロックされます。
ESETが検出した攻撃では、攻撃者が管理している2つのドメインが使用されており(下記のIoCのセクションを参照)、ダウンロード用の悪意のあるAndroidファイルがこのドメインに含まれています。攻撃者は、Reddit(図1)またはXDA Developers(図2)に投稿またはコメントすることにより、これらのドメインにユーザーを誘導します。 投稿の内容は、主にポルノに関するものですが、技術的な内容も疑似餌として使用される場合もありました。攻撃者によるすべてのコメントまたは投稿には、悪意のあるアプリにアクセスするためのリンクまたはQRコードが含まれていました。
Redditで共有されていたリンクでは、短縮URLのbit.lyが使用されていました。このbit.ly URLは2019年6月11日に作成され、図3に示した統計情報によると、この記事を執筆した時点では、さまざまなソースおよび国から59回クリックされていました。
前述のように、Android / Filecoder.Cランサムウェアは、攻撃を受けたユーザーのデバイスに登録されているすべて連絡先へ、SMSメッセージを介してランサムウェアへのリンクを送信し、拡散します。
これらのメッセージには、ランサムウェアへのリンクが含まれています。メッセージを受信したユーザーが思わずクリックしてしまうように、“あなたの写真がこのアプリで使用されている”というメッセージとともにリンクが追加されています(図4を参照)。
図5に示すように、このランサムウェアのメッセージテンプレートは42か国語に対応しています。できるだけ多くの攻撃対象に拡散するため、メッセージを送信する前にユーザーのデバイスの言語設定に合わせてテンプレートバージョンを選択します。さらに、これらのメッセージを受信者に合わせてカスタマイズするために、連絡先の名前をメッセージに追加します。
ランサムウェアを実行するには、悪意のあるアプリケーションへのリンクが設定されたSMSメッセージを受信したユーザーに手動でインストールさせる必要があります。アプリが起動されると、アプリを配信するために使用された投稿で約束されていたものが表示されます。ほとんどの場合はアダルト向けのオンラインゲームですが、実際の目的はC&Cと通信し、悪意のあるメッセージを拡散し、暗号化/復号化の仕組みを実装することです。
C&Cとの通信に関しては、マルウェアのソースコードにハードコードされたC&CおよびBitcoinのアドレスが含まれていますが、これらのアドレスを動的に取得することもできます。攻撃者は無料のPastebinサービスを使用しており、いつでもアドレスを変更できます。
ランサムウェアは、ユーザーの連絡先リストにアクセスして、テキストメッセージを送信できます。ファイルを暗号化する前に、前述の「拡散方法」セクションで説明した方法で、このユーザーの連絡先にメッセージを送信します。
次に、ランサムウェアはアクセス可能なストレージにあるファイル(システムファイルが存在する場所を除くすべてのデバイスのストレージ)をチェックして、ほぼすべてのファイルを暗号化します(下記の「ファイル暗号化の仕組み」セクションを参照)。攻撃者はファイルを暗号化すると、図7に示すように、身代金のメモを(英語で)表示します。
攻撃を受けたユーザーがアプリを削除すると、身代金のメモに記載されているように、ファイルを復号化できなくなります。しかし、暗号化の実装に問題があるため、実際にはファイルを復元できます(詳細は、次のセクションを参照)。また、ESETがランサムウェアのコードを分析したところ、72時間後に暗号化されたデータが失われるという攻撃者の主張を裏付ける根拠は見つかっていません。
図8に示すように、要求される身代金の一部は動的に変更されます。要求されるビットコインの金額の最初の部分はハードコードされており、その値は0.01になっています。
残りの6桁はマルウェアによって生成されるユーザーIDです。
このような独自の手法が採用されているのは、入金を特定する目的です(Androidランサムウェアは、通常、暗号化したデバイスごとに個別のBitcoinウォレットを生成して入金を特定します)。最近の1 Bitcoinのレートは約9,400ドルですので、現在要求されている身代金は94〜188ドルの範囲になります(一意のIDはランダムに生成されると仮定)。
通常のAndroidランサムウェアとは異なり、Android / Filecoder.Cは画面をロックして、デバイスを使用できないようにはしません。
図9に示すように、この記事の執筆時点では、前述のBitcoinアドレスでは取引は記録されていません(このアドレスは動的に変更できますが、これまで見てきたすべての攻撃で同じアドレスが使用されています)。
ランサムウェアは、非対称暗号化と対称暗号化を使用します。まず、公開鍵と秘密鍵の対が生成されます。この秘密鍵は、コードに格納されているハードコードされた値と一緒にRSAアルゴリズムを使用して暗号化され、攻撃者のサーバーに送信されます。攻撃者はその秘密鍵を復号化し、ユーザーが身代金を支払った後、その秘密鍵をユーザーに送信しファイルを復号化できるようにします。
ファイルを暗号化するとき、ランサムウェアは暗号化されるファイルごとに新しいAES鍵を生成します。このAES鍵は公開鍵を使用して暗号化され、暗号化された各ファイルの先頭に追加されます。つまり、( (AES)public_key + (File)AES ).seven というファイル名のパターンになります。このファイル構造を図10に示します。
このランサムウェアは、アクセス可能なストレージディレクトリをチェックし、次のタイプのファイルを暗号化します。
“.doc”、”.docx”、”.xls”、”.xlsx”、”.ppt”、”.pptx”、”.pst”、”.ost”、”.msg”、”.eml”、”.vsd”、”.vsdx”、”.txt”、”.csv”、”.rtf”、”.123”、”.wks”、”.wk1”、”.pdf”、”.dwg”、”.onetoc2”、”.snt”、”.jpeg”、”.jpg”、”.docb”、”.docm”、”.dot”、”.dotm”、”.dotx”、”.xlsm”、”.xlsb”、”.xlw”、”.xlt”、”.xlm”、”.xlc”、”.xltx”、”.xltm”、”.pptm”、”.pot”、”.pps”、”.ppsm”、”.ppsx”、”.ppam”、”.potx”、”.potm”、”.edb”、”.hwp”、”.602”、”.sxi”、”.sti”、”.sldx”、”.sldm”、”.sldm”、”.vdi”、”.vmdk”、”.vmx”、”.gpg”、”.aes”、”.ARC”、”.PAQ”、”.bz2”、”.tbk”、”.bak”、”.tar”、”.tgz”、”.gz”、”.7z”、”.rar”、”.zip”、”.backup”、”.iso”、”.vcd”、”.bmp”、”.png”、”.gif”、”.raw”、”.cgm”、”.tif”、”.tiff”、”.nef”、”.psd”、”.ai”、”.svg”、”.djvu”、”.m4u”、”.m3u”、”.mid”、”.wma”、”.flv”、”.3g2”、”.mkv”、”.3gp”、”.mp4”、”.mov”、”.avi”、”.asf”、”.mpeg”、”.vob”、”.mpg”、”.wmv”、”.fla”、”.swf”、”.wav”、”.mp3”、”.sh”、”.class”、”.jar”、”.java”、”.rb”、”.asp”、”.php”、”.jsp”、”.brd”、”.sch”、”.dch”、”.dip”、”.pl”、”.vb”、”.vbs”、”.ps1”、”.bat”、”.cmd”、”.js”、”.asm”、”.h”、”.pas”、”.cpp”、”.c”、”.cs”、”.suo”、”.sln”、”.ldf”、”.mdf”、”.ibd”、”.myi”、”.myd”、”.frm”、”.odb”、”.dbf”、”.db”、”.mdb”、”.accdb”、”.sql”、”.sqlitedb”、”.sqlite3”、”.asc”、”.lay6”、”.lay”、”.mml”、”.sxm”、”.otg”、”.odg”、”.uop”、”.std”、”.sxd”、”.otp”、”.odp”、”.wb2”、”.slk”、”.dif”、”.stc”、”.sxc”、”.ots”、”.ods”、”.3dm”、”.max”、”.3ds”、”.uot”、”.stw”、”.sxw”、”.ott”、”.odt”、”.pem”、”.p12”、”.csr”、”.crt”、”.key”、”.pfx”、”.der"
しかし、「.cache」、「tmp」、または「temp」という文字列を含むディレクトリにあるファイルは暗号化されません。
このランサムウェアは、ファイルの拡張子が「.zip」または「.rar」でファイルサイズが51,200 KB / 50 MBを超える場合や、拡張子が「.jpeg」、「.jpg」、および「.png」でファイルサイズが150 KB未満の場合にも暗号化しません。 ファイルタイプのリストには、Androidには関係がない項目が含まれており、.apk、.dex、.soなどの一般的なAndroidの拡張子は含まれていません。このリストは悪名高いWannaCryランサムウェアからコピーされた可能性があります。
ファイルが暗号化されると、図11に示すように、拡張子「.seven」が元のファイル名に追加されます。
このランサムウェアには暗号化したファイルを復号化するコードが存在します。ユーザーが身代金を支払った場合、ランサムウェアの運用者は図12に示すWebサイトで入金を確認し、ファイルを復号するための秘密鍵を送信します。
しかし、秘密鍵の暗号化にはハードコードされた鍵の値が使用されているため、暗号化アルゴリズムを復号化アルゴリズムに変更することで身代金を支払うことなくファイルを復号化できます。復号化に必要なのは、ランサムウェアから提供されるUserID(図13参照)とランサムウェアのAPKファイルです。このファイルは、その作成者がハードコードされたキー値を変更した場合に必要となりますが、これまでは、Android / Filecoder.Cランサムウェアのすべての検体で同じ値が使用されています。
ハッシュ | 検出 |
---|---|
B502874681A709E48F3D1DDFA6AE398499F4BD23 | Android/Filecoder.C |
D5EF600AA1C01FA200ED46140C8308637F09DFCD | Android/Filecoder.C |
B502874681A709E48F3D1DDFA6AE398499F4BD23 | Android/Filecoder.C |
F31C67CCC0D1867DB1FBC43762FCF83746A408C2 | Android/Filecoder.C |
16KQjht4ePZxxGPr3es24VQyMYgR9UEkFy
http://rich7[.]xyz
http://wevx[.]xyz
https://pastebin[.]com/raw/LQwGQ0RQ
h3athledger@yandex[.]ru
Android 5.1以降