Android ユーザーを対象とした StrongPity スパイ活動

Android ユーザーを対象とした StrongPity スパイ活動

ESET の研究者は、Android Telegram アプリのトロイの木馬化されたバージョンを配布するアクティブな StrongPity キャンペーンを特定しました。Shagle アプリは、アプリ バージョンのないビデオ チャット サービスです。

ESET の研究者は、StrongPity APT グループに起因するアクティブなキャンペーンを特定しました。 2021 年 XNUMX 月から活動しているこのキャンペーンは、Shagle になりすました Web サイトを通じて悪意のあるアプリを配布しました。Shagle は、見知らぬ人の間で暗号化された通信を提供するランダム ビデオ チャット サービスです。 サービスにアクセスするための公式モバイル アプリを提供しない、完全に Web ベースの本物の Shagle サイトとは異なり、模倣サイトはダウンロードする Android アプリのみを提供し、Web ベースのストリーミングはできません。

ブログ投稿の要点:

  • これまでに、StrongPity に起因する Android キャンペーンは XNUMX つだけでした。
  • 説明されているモジュールとその機能が公式に文書化されたのはこれが初めてです。
  • Shagle サービスを模倣した模倣 Web サイトが、StrongPity のモバイル バックドア アプリの配布に使用されています。
  • このアプリは、オープンソースの Telegram アプリの修正版であり、StrongPity バックドア コードで再パッケージ化されています。
  • 以前の StrongPity バックドア コードと、以前の StrongPity キャンペーンの証明書で署名されたアプリとの類似点に基づいて、この脅威は StrongPity APT グループによるものであると考えています。
  • StrongPity のバックドアはモジュール式で、必要なすべてのバイナリ モジュールが AES を使用して暗号化され、C&C サーバーからダウンロードされ、さまざまなスパイ機能を備えています。

実際、この悪意のあるアプリは、正規の Telegram アプリの完全に機能するがトロイの木馬化されたバージョンですが、存在しない Shagle アプリとして表示されます。 このブログ投稿の残りの部分では、これを偽の Shagle アプリ、トロイの木馬化された Telegram アプリ、または StrongPity バックドアと呼びます。 ESET 製品は、この脅威を Android/StrongPity.A として検出します。

この StrongPity バックドアには、さまざまなスパイ機能があります。動的にトリガーされる 11 個のモジュールは、通話の録音、SMS メッセージの収集、通話ログのリスト、連絡先リストなどを担当します。 これらのモジュールは初めて文書化されています。 被害者が悪意のある StrongPity アプリのアクセシビリティ サービスを許可すると、そのモジュールの 17 つが着信通知にもアクセスできるようになり、Viber、Skype、Gmail、Messenger、Tinder などの XNUMX のアプリから通信を盗み出すことができます。

ESET のテレメトリでは依然として被害者が特定されていないため、キャンペーンの標的は非常に限定的である可能性があります。 私たちの調査中、模倣 Web サイトから入手できるマルウェアの分析バージョンはもはやアクティブではなく、StrongPity がトロイの木馬化された Telegram アプリの独自の API ID を取得していないため、それを正常にインストールしてバックドア機能をトリガーすることはもはや不可能でした。 しかし、攻撃者が悪意のあるアプリを更新することを決定した場合、状況はいつでも変わる可能性があります。

概要

この StrongPity キャンペーンは、「オランダ語」という単語を含むドメインから配信された Android バックドアを中心にしています。 この Web サイトは、次の場所にある Shagle という名前の正規のサービスになりすます シャグル.com. 図 1 に、両方の Web サイトのホームページを示します。 悪意のあるアプリは、なりすまし Web サイトから直接提供され、Google Play ストアから入手できるようになったことはありません。 これは正規の Telegram アプリのトロイの木馬化されたバージョンであり、あたかも Shagle アプリであるかのように表示されますが、現在、公式の Shagle Android アプリはありません。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 1. 左側の正規の Web サイトと右側の模倣 Web サイトの比較

図 2 からわかるように、偽のサイトの HTML コードには、正規の Web サイトからコピーされたという証拠が含まれています。 シャグル.com 1 月 XNUMX 日のサイトst、2021年、自動ツールを使用 HTTrack. 悪意のあるドメインは同じ日に登録されたため、その日以降、模倣サイトと偽の Shagle アプリがダウンロード可能になった可能性があります。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 2. 偽の Web サイトの HTML コードに記録された HTTrack ツールによって生成されたログ

犠牲者

7月18日th、2022 年、VirusTotal の YARA ルールの XNUMX つが、悪意のあるアプリとそれを模倣した Web サイトへのリンクによってトリガーされました。 シャグル.com アップロードされました。 同時にお知らせがありました Twitter そのサンプルについて、間違っていましたが バハムートに帰属. ESET のテレメトリ データでは依然として被害者が特定されておらず、キャンペーンの標的が絞られている可能性が高いことを示唆しています。

特定

模倣者の Shagle Web サイトによって配布された APK は、3 年に発見されたトロイの木馬化されたシリアの電子政府アプリと同じコード署名証明書 (図 2021 を参照) で署名されています。 トレンドマイクロ、これもStrongPityに起因していました。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 3. この証明書は、偽の Shagle アプリと、トロイの木馬化されたシリアの電子政府アプリに署名しています

偽の Shagle アプリの悪意のあるコードは、StrongPity による以前のモバイル キャンペーンで見られ、シンプルだが機能的なバックドアを実装しています。 このコードは、StrongPity が実施するキャンペーンでのみ使用されています。 図 4 では、難読化された名前の多くが両方のキャンペーンのコードで同じであっても、追加された悪意のあるクラスの一部を確認できます。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 4. トロイの木馬化されたシリアの e-gov アプリ (左) とトロイの木馬化された Telegram アプリ (右) のクラス名の比較

このキャンペーンのバックドア コードと、トロイの木馬化されたシリアの電子政府アプリ (SHA-1: 5A5910C2C9180382FCF7A939E9909044F0E8918B)、拡張機能を備えていますが、同様の機能を提供するために同じコードが使用されています。 図 5 と図 6 では、コンポーネント間のメッセージ送信を担当する両方のサンプルのコードを比較できます。 これらのメッセージは、バックドアの悪意のある動作を引き起こす原因となっています。 したがって、偽の Shagle アプリが StrongPity グループに関連していると確信しています。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 5. トロイの木馬化されたシリアの電子政府アプリで悪意のある機能をトリガーするメッセージ ディスパッチャー

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 6. 偽の Shagle アプリで悪意のある機能をトリガーするメッセージ ディスパッチャ

テクニカル分析

初期アクセス

このブログ投稿の概要セクションで説明したように、偽の Shagle アプリは Shagle の模倣 Web サイトでホストされており、被害者はそこからアプリをダウンロードしてインストールする必要がありました。 このアプリが Google Play から入手可能であることを示唆する策略はなく、潜在的な被害者がどのようにして偽の Web サイトに誘導されたのか、またはその他の方法で偽の Web サイトを発見したのかはわかりません。

ツールセット

模倣者のウェブサイトの説明によると、このアプリは無料で、新しい人に会ってチャットするために使用することを目的としています。 ただし、ダウンロードされたアプリは悪意を持ってパッチが適用された Telegram アプリであり、具体的には Telegram バージョン 7.5.0 (22467) であり、25 月 XNUMX 日前後にダウンロード可能でした。th、2022。

Telegram の再パッケージ化されたバージョンは、正規の Telegram アプリと同じパッケージ名を使用します。 パッケージ名は、Android アプリごとに一意の ID であると想定されており、特定のデバイスで一意である必要があります。 これは、公式の Telegram アプリが潜在的な被害者のデバイスに既にインストールされている場合、このバックドア バージョンをインストールできないことを意味します。 図 7 を参照してください。これは、攻撃者が最初に潜在的な被害者と通信し、Telegram がインストールされている場合はデバイスからアンインストールするように促すか、Telegram の使用がコミュニケーションにまれな国にキャンペーンが焦点を当てているかの XNUMX つのうちのいずれかを意味する可能性があります。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 7. 公式の Telegram アプリが既にデバイスにインストールされている場合、トロイの木馬化されたバージョンを正常にインストールすることはできません

StrongPity のトロイの木馬化された Telegram アプリは、Telegram Web サイトで十分に文書化されている標準 API を使用して、公式バージョンと同じように通信に機能するはずでしたが、アプリはもはや機能しないため、確認できません。

私たちの調査中、模倣 Web サイトから入手できるマルウェアの現在のバージョンはもはやアクティブではなく、それを正常にインストールしてバックドア機能をトリガーすることはもはや不可能でした。 電話番号を使用してサインアップしようとしたとき、再パッケージ化された Telegram アプリはサーバーから API ID を取得できなかったため、正しく機能しませんでした。 図 8 に示すように、アプリは API_ID_PUBLISHED_FLOOD エラー。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 8. 電話番号を使用したサインアップ中に表示されるエラー

テレグラムに基づく エラー文書、StrongPity は独自の API ID を取得していないようです。 代わりに、Telegram のオープンソース コードに含まれるサンプル API ID を初期テストの目的で使用しています。 Telegram は API ID の使用状況を監視し、サンプル API ID を制限するため、リリースされたアプリで Telegram を使用すると、図 8 に示すエラーが発生します。このエラーのため、サインアップしてアプリを使用したり、悪意のある機能をトリガーしたりすることはできなくなりました。 . これは、StrongPity の運営者がこれをよく考えていなかったことを意味している可能性があります。あるいは、アプリを公開してからアプリ ID の過剰使用のために Telegram によって非アクティブ化されるまでの間に、被害者をスパイするのに十分な時間があったことを意味している可能性があります。 アプリの新しい動作バージョンが Web サイトから入手できるようになったことは一度もないため、StrongPity が目的のターゲットにマルウェアを正常に展開したことを示唆している可能性があります。

その結果、調査の時点で偽の Web サイトで入手できた偽の Shagle アプリは、もはやアクティブではありませんでした。 ただし、攻撃者が悪意のあるアプリを更新することを決定した場合、これはいつでも変更される可能性があります。

StrongPity バックドア コードのコンポーネントと必要なアクセス許可は、Telegram アプリの AndroidManifest.xml ファイル。 図 9 に示すように、これにより、マルウェアに必要なアクセス許可を簡単に確認できます。

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 9. StrongPity バックドアのコンポーネントと権限が強調表示された AndroidManifest.xml

Android マニフェストから、悪意のあるクラスが org.telegram.messenger パッケージが元のアプリの一部として表示されます。

最初の悪意のある機能は、定義されたアクションの後に実行される XNUMX つのブロードキャスト レシーバーのいずれかによってトリガーされます。 ブート_完了, バッテリー低下または USER_PRESENT. 最初の起動後、監視する追加のブロードキャスト レシーバーを動的に登録します。 スクリーンオン, スクリーンオフ, 接続性_変更 イベント。 偽の Shagle アプリは、IPC (プロセス間通信) を使用してコンポーネント間の通信を行い、さまざまなアクションをトリガーします。 HTTPS を使用して C&C サーバーに接続し、侵害されたデバイスに関する基本情報を送信し、親アプリによって動的に実行される 11 個のバイナリ モジュールを含む AES 暗号化ファイルを受信します。 図 10 を参照してください。図 11 に示すように、これらのモジュールはアプリの内部ストレージに保存されます。 /data/user/0/org.telegram.messenger/files/.li/.

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 10. StrongPity バックドアが実行可能モジュールを含む暗号化ファイルを受信

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 11. サーバーから受信したモジュールが、StrongPity バックドアの内部ストレージに格納されている

各モジュールは、異なる機能を担当します。 モジュール名のリストは、ローカルの共有設定に保存されます。 共有設定.xml ファイル; 図 12 を参照してください。

モジュールは、必要に応じて親アプリによって動的にトリガーされます。 各モジュールには独自のモジュール名があり、次のようなさまざまな機能を担当します。

  • libarm.jar (cm モジュール) – 通話を録音する
  • libmpeg4.jar (nt モジュール) – 17 個のアプリから受信した通知メッセージのテキストを収集します
  • ローカル.jar (fm/fp モジュール) – デバイス上のファイル リスト (ファイル ツリー) を収集します。
  • 電話.jar (ms モジュール) – ユーザー補助サービスを悪用して、連絡先の名前、チャット メッセージ、日付を盗み出し、メッセージング アプリをスパイします。
  • リソース.jar (sm モジュール) – デバイスに保存されている SMS メッセージを収集します
  • サービス.jar (lo モジュール) – デバイスの場所を取得します
  • systemui.jar (sy モジュール) – デバイスとシステムの情報を収集します
  • タイマー.jar (ia モジュール) – インストールされているアプリのリストを収集します
  • ツールキット.jar (cn モジュール) – 連絡先リストを収集します
  • ウォッチキット.jar (ac モジュール) – デバイス アカウントのリストを収集します
  • ウェアキット.jar (cl モジュール) – 通話ログのリストを収集します
Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 12. StrongPity バックドアで使用されるモジュールのリスト

取得したすべてのデータは平文で保存されます。 /data/user/0/org.telegram.messenger/databases/outdata、図 13 に示すように、AES を使用して暗号化され、C&C サーバーに送信される前に.

Android ユーザー PlatoBlockchain Data Intelligence をターゲットにした StrongPity スパイ活動。垂直検索。あい。

図 13. C&C サーバーに流出した暗号化されたユーザー データ

この StrongPity バックドアは、モバイル向けに発見された最初の StrongPity バージョンと比較して、スパイ機能を拡張しています。 アクセシビリティ サービスを有効にして通知アクセスを取得するよう被害者に要求できます。 図 14 を参照してください。被害者がそれらを有効にすると、マルウェアは着信通知をスパイし、アクセシビリティ サービスを悪用して他のアプリからチャット通信を盗み出します。

図 14. 被害者からのマルウェア要求、通知アクセス、アクセシビリティ サービス

通知アクセスにより、マルウェアは 17 のターゲット アプリから受信した通知メッセージを読み取ることができます。 これらのパッケージ名のリストは次のとおりです。

  • メッセンジャー (com.facebook.orca)
  • メッセンジャー ライト (com.facebook.mlite)
  • Viber – 安全なチャットと通話 (com.viber.voip)
  • Skype(com.skype.raider)
  • LINE: 通話とメッセージ (jp.naver.line.android)
  • Kik — メッセージ & チャットアプリ (kik.アンドロイド)
  • タンゴ ライブ ストリーム & ビデオ チャット (com.sgiggle.production)
  • ハングアウト (com.google.android.talk)
  • 電報(org.telegram.messenger)
  • 微信 (com.tencent.mm)
  • Snapchat(com.snapchat.android)
  • 火口 (com.tinder)
  • ハイキングのニュースとコンテンツ (com.bsb.ハイク)
  • インスタグラム (com.instagram.android)
  • Twitter(com.twitter.android)
  • Gメール(com.google.android.gm)
  • imo-国際電話&チャット(com.imo.android.imoim)

デバイスがすでにルート化されている場合、マルウェアは暗黙のうちにアクセス許可を付与しようとします。 WRITE_SETTINGS、WRITE_SECURE_SETTINGS、REBOOT、MOUNT_FORMAT_FILESYSTEMS、MODIFY_PHONE_STATE、PACKAGE_USAGE_STATS、READ_PRIVILEGED_PHONE_STATE、アクセシビリティ サービスを有効にし、通知アクセスを許可します。 その後、StrongPity バックドアは SecurityLogAgent アプリを無効にしようとします (com.samsung.android.securitylogagent) は、Samsung デバイスのセキュリティを保護するのに役立つ公式のシステム アプリであり、今後アプリのエラー、クラッシュ、または警告が発生した場合に被害者に表示される可能性がある、マルウェア自体からのすべてのアプリ通知を無効にします。 StrongPity バックドア自体は、デバイスをルート化しようとはしません。

AES アルゴリズムは、CBC モードとハードコードされたキーを使用して、ダウンロードしたモジュールを復号化します。

  • AES キー – ああ何も不可能bbb
  • AES IV – ああ、何でもないこと

まとめ

StrongPity APT グループが運営するモバイル キャンペーンは、正規のサービスになりすまして Android バックドアを配布しました。 StrongPity は公式の Telegram アプリを再パッケージ化して、グループのバックドア コードの亜種を組み込みました。

この悪意のあるコード、その機能、クラス名、および APK ファイルの署名に使用された証明書は、以前のキャンペーンと同じです。 したがって、この操作が StrongPity グループに属していると確信しています。

調査の時点で、模倣品の Web サイトで入手できたサンプルは、 API_ID_PUBLISHED_FLOOD このエラーにより、悪意のあるコードがトリガーされず、潜在的な被害者が動作していないアプリをデバイスから削除する可能性があります。

コード分​​析により、バックドアがモジュール式であり、追加のバイナリ モジュールが C&C サーバーからダウンロードされることが明らかになりました。 これは、使用されるモジュールの数とタイプが、StrongPity グループによって運営されている場合、キャンペーンの要求に合わせていつでも変更できることを意味します。

当社の分析によると、これは StrongPity の Android マルウェアの XNUMX 番目のバージョンのようです。 最初のバージョンと比較して、アクセシビリティ サービスと通知アクセスを悪用し、収集したデータをローカル データベースに保存し、実行しようとします。 su コマンド、およびほとんどのデータ収集では、ダウンロードしたモジュールを使用します。

IoC

SHA-1 ファイル名 ESET検出名 説明
50F79C7DFABECF04522AEB2AC987A800AB5EC6D7 ビデオ.apk Android/StrongPity.A StrongPity バックドア (悪意のあるコードで再パッケージ化された正当な Android Telegram アプリ)。
77D6FE30DAC41E1C90BDFAE3F1CFE7091513FB91 libarm.jar Android/StrongPity.A 通話の録音を担当する StrongPity モバイル モジュール。
5A15F516D5C58B23E19D6A39325B4B5C5590BDE0 libmpeg4.jar Android/StrongPity.A 受信した通知のテキストの収集を担当する StrongPity モバイル モジュール。
D44818C061269930E50868445A3418A0780903FE ローカル.jar Android/StrongPity.A デバイス上のファイル リストの収集を担当する StrongPity モバイル モジュール。
F1A14070D5D50D5A9952F9A0B4F7CA7FED2199EE 電話.jar Android/StrongPity.A アクセシビリティ サービスを悪用して他のアプリをスパイする、StrongPity モバイル モジュール。
3BFAD08B9AC63AF5ECF9AA59265ED24D0C76D91E リソース.jar Android/StrongPity.A デバイスに保存されている SMS メッセージの収集を担当する StrongPity モバイル モジュール。
5127E75A8FAF1A92D5BD0029AF21548AFA06C1B7 サービス.jar Android/StrongPity.A デバイスの位置情報を取得するための StrongPity モバイル モジュール。
BD40DF3AD0CE0E91ACCA9488A2FE5FEEFE6648A0 systemui.jar Android/StrongPity.A デバイスおよびシステム情報の収集を担当する StrongPity モバイル モジュール。
ED02E16F0D57E4AD2D58F95E88356C17D6396658 タイマー.jar Android/StrongPity.A インストール済みアプリのリストの収集を担当する StrongPity モバイル モジュール。
F754874A76E3B75A5A5C7FE849DDAE318946973B ツールキット.jar Android/StrongPity.A 連絡先リストの収集を担当する StrongPity モバイル モジュール。
E46B76CADBD7261FE750DBB9B0A82F262AFEB298 ウォッチキット.jar Android/StrongPity.A デバイス アカウントのリストの収集を担当する StrongPity モバイル モジュール。
D9A71B13D3061BE12EE4905647DDC2F1189F00DE ウェアキット.jar Android/StrongPity.A 通話ログのリストの収集を担当する StrongPity モバイル モジュール。

ネットワーク

IP プロバイダー 最初に見た 詳細
141.255.161[。]185 NameCheap 2022-07-28 intagrefedcircuitip[.]com C&C
185.12.46[。]138 ポークブン 2020-04-21 ネットワークソフトウェアセグメント[.]com C&C

MITER ATT&CKテクニック

このテーブルは バージョン12 MITER ATT&CKフレームワークの

戦術 ID 名前 説明
固執 T1398 起動またはログオンの初期化スクリプト StrongPity バックドアは、 ブート_完了 デバイスの起動時にアクティブ化するブロードキャスト インテント。
T1624.001 イベント トリガー実行: ブロードキャスト レシーバー 次のいずれかのイベントが発生すると、StrongPity バックドア機能がトリガーされます。 バッテリー低下, USER_PRESENT, スクリーンオン, スクリーンオフまたは 接続性_変更.
防衛回避 T1407 実行時に新しいコードをダウンロード StrongPity バックドアは、追加のバイナリ モジュールをダウンロードして実行できます。
T1406 難読化されたファイルまたは情報 StrongPity バックドアは、AES 暗号化を使用して、ダウンロードしたモジュールを難読化し、APK 内の文字列を隠します。
T1628.002 アーティファクトを非表示: ユーザーの回避 StrongPity バックドアは、マルウェア自体からのすべてのアプリ通知を無効にして、その存在を隠すことができます。
T1629.003 防御を損なう: ツールの無効化または変更 StrongPity バックドアにルートがある場合、SecurityLogAgent (com.samsung.android.securitylogagent) 存在する場合。
Discovery T1420 ファイルとディレクトリの検出 StrongPity バックドアは、外部ストレージで利用可能なファイルを一覧表示できます。
T1418 ソフトウェアディスカバリー StrongPity バックドアは、インストールされているアプリケーションのリストを取得できます。
T1422 システムネットワーク構成の検出 StrongPity バックドアは、IMEI、IMSI、IP アドレス、電話番号、および国を抽出できます。
T1426 システム情報の発見 StrongPity バックドアは、インターネット接続の種類、SIM シリアル番号、デバイス ID、共通システム情報など、デバイスに関する情報を抽出できます。
収集 T1417.001 入力キャプチャ:キーロガー StrongPity バックドアは、チャット メッセージのキーストロークと、標的のアプリからの通話データを記録します。
T1517 アクセス通知 StrongPity バックドアは、17 のターゲット アプリから通知メッセージを収集できます。
T1532 収集したデータのアーカイブ StrongPity バックドアは、盗み出されたデータを AES を使用して暗号化します。
T1430 ロケーショントラッキング StrongPity バックドアはデバイスの位置を追跡します。
T1429 オーディオキャプチャ StrongPity バックドアは通話を録音できます。
T1513 スクリーンキャプチャ StrongPity バックドアは、 メディアプロジェクションマネージャー APIです。
T1636.002 保護されたユーザー データ: 通話ログ StrongPity バックドアは通話ログを抽出できます。
T1636.003 保護されたユーザー データ: 連絡先リスト StrongPity バックドアは、デバイスの連絡先リストを抽出できます。
T1636.004 保護されたユーザー データ: SMS メッセージ StrongPity バックドアは、SMS メッセージを抽出できます。
コマンドおよび制御 T1437.001 アプリケーション層プロトコル:Webプロトコル StrongPity バックドアは、HTTPS を使用して C&C サーバーと通信します。
T1521.001 暗号化されたチャネル:対称暗号化 StrongPity バックドアは、AES を使用して通信を暗号化します。
exfiltration T1646 C2チャネルを介した浸透 StrongPity バックドアは、HTTPS を使用してデータを盗み出します。

タイムスタンプ:

より多くの 私たちはセキュリティを生きる