概要
- アクロニス脅威リサーチユニット(TRU)は、イスラエルのユーザーを標的とし、イスラエル国防軍からの公式通知を装った SMSメッセージを通じて、「Red Alert」ミサイル警報 Android アプリのトロイの木馬化されたバージョンを配布するキャンペーンを確認しました。
- この不正アプリは、ミサイル警報に関する全機能を備えており、正規アプリのように見せかけながら、バックグラウンドで悪意のあるコードを実行します。
- この脅威アクターは、証明書のスプーフィングやランタイム改変の手法を用いて、Android のセキュリティチェックを回避し、アプリケーションを正規に署名されたもののように見せかけていました。
- 一旦インストールされると、このマルウェアは付与された権限を監視し、SMS メッセージ、連絡先、位置情報、デバイスアカウント、インストール済みアプリなどの機密データの収集を開始します。
- 盗み出したデータはローカルに一時保存され、攻撃者が管理するリモートのコマンド & コントロール(C2)サーバーへ継続的に送信されます。
- このキャンペーンは、地政学的緊張の高まりの中で、信頼されている緊急サービスが攻撃に悪用され得ることを示しています。ソーシャルエンジニアリングとモバイルスパイ活動を組み合わせることで、ユーザーの信頼を悪用し、攻撃の効果を最大化しています。
はじめに
アクロニス脅威リサーチユニット(TRU)は、中東地域での最近の地政学的情勢を利用し、個人にマルウェアを送り付けるマルウェアキャンペーンや脅威活動を継続的に監視してきました。調査の過程で、TRU はイスラエルの個人を標的とし、イスラエル国防軍の公式通信を装った SMS メッセージを介して、「Red Alert」ミサイル警報 Android アプリのトロイの木馬化されたバージョンを配布する標的型キャンペーンを確認しました。
この活動は、緊急事態をテーマにした誘い文句を使用している点が特徴的で、当社のリサーチャーが 3 月 1 日に悪意のある脅威ハンティング調査を行っている際に発見しました。また、イスラエルの市民もソーシャルメディア上での同じ攻撃を何件か報告しています。
このトロイの木馬化されたアプリは、リアルタイムのロケットおよびミサイル警報通知を受け取るために、何百万人ものイスラエル市民が利用している正規アプリ「Red Alert: ヘブライ語(צבעאדום)」を模倣しています。そのため、これは極めて効果的なソーシャルエンジニアリング攻撃となっています。武力衝突が続く状況下では、この種のアプリを急いでインストールまたは更新しようとする心理が働き、ユーザーが通常払うはずの警戒心が弱まります。特に、配信メッセージがイスラエル国防軍(פיקוד העורף)から送信されているように見えるのでなおさらです。
本レポートでは、最初の SMS 配信からドロッパーの実行、そして組み込まれたスパイウェアのペイロードの展開にいたるまで、感染チェーン全体を詳細に分析しています。
背景と経緯
ハクティビストグループから、国家が関与した攻撃者にいたるまで、数多くの地域で脅威アクターが国境を越えて個人や組織を標的にしています。彼らの活動には、分散型サービス拒否(DDoS)攻撃を行ったとの主張や、重要インフラへの侵入の試み、その他の混乱を引き起こす作戦が含まれています。近年特に目立つ存在となっているのが、Handala をはじめとするグループや、MOIS(イラン情報治安省)関連の攻撃者です。
この一連の活動を追跡する過程で、ミサイル攻撃の警報通知に主に使用されるソフトウェアをダウンロードしてインストールするよう促す短縮リンク付きメッセージを受け取ったとする複数の個人からの報告がありました。
この攻撃は、2023 年にハクティビストグループ AnonGhost によるものとされた類似の攻撃との間に、いくつかの顕著な共通点があります。ただし、今回分析した結果、一部で新しいインフラやコードが使用されているものと推定されます。
感染チェーン

技術的な詳細情報
初期分析および配布メカニズム
TRU の調査は、イスラエル市民をターゲットにしたスミッシング(SMS フィッシング)キャンペーンが確認されたことを受けて始まりました。このキャンペーンでは、公式の「Oref Alert」ミサイル警報サービスを装った SMS メッセージが使用され、警報機能の不具合が発生したことを理由に、アプリの更新版をインストールするよう受信者に促していました。これらのメッセージは、偽装した送信者 ID から送信され、bit.ly の短縮リンクを含んでいました。このリンクは、被害者を正規の Red Alert アプリを装ったトロイの木馬化された APK(アプリのインストールパッケージ)のダウンロードへとリダイレクトしていました。

URL短縮サービスの利用に加え、公共安全に関係する既存アプリの更新を急がせる手口が確認されたことから、TRU はこの不正アプリの機能と、マルウェアの制御および収集されたデータや認証情報の窃取・送信に使用されるインフラを分析しました。
タイムライン
サンプルの概要とメタデータ
アプリの名称: RedAlert.apk
パッケージの名称: com.red.alertx
SHA256 ハッシュ: 83651b0589665b112687f0858bfe2832ca317ba75e700c91ac34025ee6578b72

AndroidManifest.xml ファイルを確認したところ、このアプリは合計 20 の権限を要求していることが判明しました。このうち 6 つの権限は、悪用される可能性があることから、セキュリティ上センシティブな用途で使用されていると考えられます。このスパイウェアは、これらの権限を利用してユーザーデータを収集し、外部へ流出させます。

オーバーレイ権限と SMS アクセス権限の組み合わせは、Android のバンキング型トロイの木馬やスパイウェアキャンペーンでよく観測され、攻撃者がワンタイムパスワード(OTP)などの機密メッセージを窃取することができます。
2 段階アーキテクチャ

最初にコードを分析し、難読化された識別子を含むクラスとメソッド名を変更した結果、アプリケーションがスパイウェアとしてだけでなくローダーとしても機能していることが判明しました。そのため、クラスの名前を IPackageManagerSignatureProxyLoader に変更しました。このクラスは、動的プロキシを使用してシステムの IPackageManager をフックします。リフレクションを介して、ActivityThread にアクセスし、元の sPackageManager フィールドを自身のプロキシオブジェクトに置き換えます。これにより、アプリは getPackageInfo() などのシステムコールを傍受し、返されたデータを改ざんできるようになります。システムがアプリの署名を要求した際、ローダーはそれを偽造した署名に置き換え、悪意のあるパッケージ(com.red.alertx)が正規アプリとして認識されるようにしています。
スプーフィングに使用される証明書は、Base64 形式でハードコードされています。IPackageManagerSignatureProxyLoader および FakeSignatureProvider クラスの両方で、Base64 文字列がデコードされ、シグネチャ[] オブジェクトに変換されます。FakeSignatureProvider は、SigningInfo API のgetApkContentsSigners() や getSigningCertificateHistory() といったメソッドをオーバーライドすることで、特に新しい Android バージョンを標的にしています。このことから、本マルウェアが、旧バージョンおよび新バージョンの両方の Android 署名検証方式に対応していることが確認されました。さらにローダーは、getInstallerPackageName() が com.android.vending を返すように強制することで、インストーラのソースをスプーフィングし、アプリが Google Play からインストールされたかのように偽装します。
コードの第 2 段階では、assets フォルダから元の正規アプリをロードします。umgdn というファイルが抽出され、/data/user/0/com.red.alertx/files/ の下のアプリのプライベートディレクトリに書き込まれます。ファイルを書き込んだ後、ローダーは ActivityThread 内の mAppDir、sourceDir、publicSourceDir といった Android ランタイムの内部フィールドを改ざんします。これにより、Android システムはユーザーに見えるドロッパーパッケージではなく、抽出済みの正規アプリを実行するよう強制されます。その結果、アプリは正常に機能し続け、実際の警報を表示する一方で、隠されたスパイウェアコンポーネントがバックグラウンドで静かに実行されます。
機能

このスパイウェアコンポーネントの初期機能は、ユーザーが SMS アクセス権を付与すると即座に起動します。コードスニペットに示されているように、オーバーライドされた onSmsPermissionGranted() メソッドは、Telephony.Sms.CONTENT_URI を照会する関数を呼び出します。これにより、デバイス内の SMS データベース全体へのアクセスが可能となり、デバイスの連絡先リストを即座に抽出できるよう設計されていることが分かりました。

このマルウェアの次の機能は、ユーザーが連絡先(Contacts)権限を付与した直後に、デバイスの連絡先リストにアクセスすることです。オーバーライドされた onContactsPermissionGranted() メソッドに見られるように、スパイウェアは ContactsContract.Contacts.CONTENT_URI を照会することで、デバイスに保存された連絡先エントリへのアクセスを可能にしています。これにより、本マルウェアは権限の承認を積極的に監視し、データ収集ルーチンを遅延なく開始していることが確認されました。
さらに分析を進めると、連絡先の収集処理は単なる名前にとどまらないことが判明しました。このスパイウェアは、コンテントプロバイダを複数回照会し、関連する電話番号やメールアドレスを抽出します。通常、CommonDataKinds.Phone および CommonDataKinds.Email コンテント URI が使用されます。これにより、マルウェアは、連絡先の氏名、電話番号、メールアドレス、さらには各エントリに関連する追加のメタデータを含む構造化されたデータセットを構築できるようになります。

このマルウェアは、デバイスの GPS/位置情報にもアクセスし、この情報を基に特定の動作を実行するタイミングを判断します。Maynt() メソッドでは、ヘルパー関数を介してデバイスの現在位置を取得します。この関数は内部でアプリの位置情報管理コンポーネントを呼び出します。その後、マルウェアは追加の座標セットを取得しており、これは特定の都市や警報対象エリアなど、事前に定義された標的のエリアを示すものと考えられます。マルウェアは、Android の位置情報 API を使用して、被害者の現在位置とこの標的エリアとの距離を計算します。デバイスが指定範囲内にある場合、処理は次のステップへ進みます。つまり、このスパイウェアは単に位置情報を収集するだけでなく、被害者の位置に応じて動作を条件付きで発動させるために、端末の GPS 情報を能動的に利用していることが分かります。

さらに分析すると、このマルウェアは Android の AccountManager を利用してアカウント情報を抽出する機能も実装していることが確認されました。このスパイウェアは、Shatters() メソッドの中で、Java リフレクションを用いて、AccountManager クラスの内部メソッドを動的に解決し、呼び出しています。getAccounts() を直接呼び出すのではなく、実行時にメソッド名を取得し、プログラム的に実行しています。こうした技法は、悪意のある振る舞いを隠蔽し、静的分析を妨げるために使用されます。返された結果は Account[] にキャストされ、マルウェアがデバイスに登録されているアカウントの全リストを取得していることが確認されました。これらのアカウントには通常、Google アカウント、メールアカウント、メッセージングサービスの他に、Android アカウントと統合されたアプリが含まれます。

このマルウェアのもう 1 つの重要な機能として、感染したデバイスにインストールされているすべてのアプリを列挙することが挙げられます。Unflush() メソッドでは、スパイウェアはシステムの PackageManager を取得し、メタデータフラグを使用してデバイスにインストールされたすべてのアプリのリストを要求します。その後、各 ApplicationInfo エントリを反復処理し、アプリごとに構造化された JSON オブジェクトを構築します。これらのエントリは配列にまとめられ、200 件のアプリ単位でリモートサーバーに送信されます。残りはループ終了後に送信されます。この振る舞いから、マルウェアがデバイスにインストールされているソフトウェアを体系的に偵察し、攻撃者が被害者のデジタル環境をプロファイリングし、セキュリティツールや金融アプリ、メッセージングプラットフォーム、その他の価値の高い標的を識別していることが分かります。
難読化および分析回避
分析の過程で、このアプリは静的分析とリバースエンジニアリングを回避するために、何度も難読化およびエンコードを施していることが確認されました。ほとんどの文字列リテラルは、Base64 でエンコードされており、コード全体で文字列リテラルごとに異なる 32 バイトの XOR キーを用いて実行時に復号されます。この手法により、分析者が URL や インテントアクションなどの重要な定数を容易に抽出することが困難になります。さらに、メソッド名やクラス名はランダムな識別子に大幅にリネームされ、実際の制御フローを隠すために簡易なラッパー関数が挿入されています。
コマンド & コントロールインフラストラクチャ
コマンド & コントロールインフラストラクチャ(C2)は、アプリケーション内にハードコードされており、階層的な文字列難読化で保護されています。URL は Base64 形式で保存され、さらに 32 バイトの XOR キーを使用して暗号化されています。実行時に復号されると、エンドポイントは hxxps://api[.]ra-backup[.]com/analytics/submit[.]php に解決され、収集されたすべてのデータがコマンド & コントロールサーバーに送信されることが確認されました。
攻撃者の特定
入手可能な証拠から評価すると、このキャンペーンは Arid Viper(別名 APT-C-23)に関連している可能性があります。この評価は、いくつかの指標によって裏付けられています。トロイの木馬化された Android アプリの使用、イスラエルを標的とした攻撃、そして以前このグループに帰属するとされるスパイウェアとの機能一致などです。
これらの指標は Arid Viper に特有のものではなく、他の Android 監視キャンペーンでも観測されていますが、標的パターン、ツールの特徴、運用上の挙動が一致することから、この脅威アクターとの関連が示唆されます。
結論
このキャンペーンは、信頼性の高い緊急インフラが、紛争状況下ではソーシャルエンジニアリングの効果を高め、データ収集を容易にする形で悪用され得ることを示しています。攻撃者は、正常に動作する警報アプリにスパイウェアを埋め込むことで、ユーザーの信頼を損なわずに機密情報を密かに収集することができました。
標的を絞った配布、スパイウェア機能、そして多層的な難読化の組み合わせは、明確な目的を持ち、高い能力と十分なリソースを備えた脅威アクターによる活動であることを示唆しています。
MITRE ATT&CK
推奨される緩和策
このキャンペーンの影響を受ける可能性のある個人および組織に対して、以下の緩和策を推奨します。
- アプリは公式ストアからのみインストールしてください。正規の Red Alert アプリは、Google Play ストアでのみ入手可能です。メッセージの緊急性にかかわらず、SMS のリンクや短縮 URL、非公式サイトから APK をサイドロードすることは避けてください。
- SMSメッセージの内容に従う前に、送信者の身元を確認してください。イスラエル国防軍は、公式アプリの更新を短縮リンク付き SMS 経由で配布することはありません。bit.ly などの短縮リンクを通じて即時のアプリ更新を促すメッセージは、すべて疑わしいものとして扱ってください。
- アプリの権限を慎重に確認してください。正規の Red Alert アプリが必要とする権限は通知アクセスのみです。Red Alert を名乗るアプリがインストール時に SMS、連絡先、位置情報、またはオーバーレイ権限を要求する場合、それはほぼ間違いなくマルウェアです。
- 感染が疑われるデバイスにインストールされたアプリを監査してください。パッケージ名 com.red.alertx がインストールされていれば、直ちに削除してください。感染が判明した場合、通常のアンインストールではコンポーネントが残存する可能性があるため、完全な工場出荷時リセットを実施することが推奨されます。
- 既知の C2 インフラへの通信は、ネットワーク側で遮断してください。ra-backup[.]com と api[.]ra-backup[.]com を DNS ブロックリストとファイアウォールの拒否ルールに追加する必要があります。C2 エンドポイント hxxps://api[.]ra-backup[.]com/analytics/submit[.]phpp は、プロキシと EDR のポリシーでフラグ付けすべきです。
- 感染したデバイスの資格情報をすべて無効化し、新しいものに置き換えてください。このマルウェアは、SMS(OTP を含む)、連絡先、デバイスアカウントを収集するため、侵害されたデバイスで認証済みのアカウントはすべて漏えいしたものと見なすべきです。Google、メール、銀行、メッセージングなどのアカウントについて、パスワードを変更し、現在のログインセッションをすべて無効化します。
- Google Play プロテクトを有効にし、常時アクティブにしてください。Google Playプロテクトは、サイドロードされた悪意のある APK に対する追加の保護層を提供し、既知の脅威をインストールする前に警告することができます。
- 疑わしい SMS は CERT-IL や関係当局に報告して、より広範な脅威の追跡や配信インフラの停止処理に協力してください。






