
サイバー犯罪者は、セキュリティ対策をすり抜けるために常に手法を進化させています。McAfeeのモバイルリサーチチームは、クロスプラットフォーム開発フレームワークである「.NET MAUI」を悪用し、検知を回避する新たなマルウェアキャンペーンを発見しました。
これらの脅威は、正規のアプリを装ってユーザーに接近し、個人情報を盗み出そうとします。本記事では、マルウェアの動作手法や検知回避テクニック、そしてユーザーが取るべき対策について解説します。
背景
近年、FlutterやReact Nativeなどのクロスプラットフォーム開発フレームワークが広く普及しています。こうしたツールは、1つのコードベースでAndroidとiOSの両方のアプリを開発できるため、多くの開発者に利用されています。
MicrosoftはこれまでC#ベースの「Xamarin」というフレームワークを提供しており、これもまたマルウェア開発に悪用されることがありました。しかし、Microsoftは2024年5月にXamarinのサポートを終了しており、後継としてリリースされた「.NET MAUI(Multi-platform App UI)」への移行を推奨しています。
.NET MAUIは、Xamarinとは異なり、モバイルだけでなくWindowsやmacOSにも対応しており、.NET 6以降で動作します。また、従来のカスタムレンダラーの代わりに、軽量なハンドラーベースのアーキテクチャを採用しており、パフォーマンスの向上も図られています。
技術の進化とともに、サイバー攻撃も進化します。今回McAfeeが確認したマルウェアは、.NET MAUIで開発されたAndroidアプリで、その中核機能がC#で記述され、Blobバイナリとして格納されています。つまり、通常のAndroidアプリに見られるDEXファイルやネイティブライブラリに機能が存在しないため、従来のウイルス対策ソフトでは検知が困難です。
結果として、.NET MAUIはマルウェアにとって「パッカー(暗号化された実行形式のラッパー)」のような役割を果たし、端末上で長期間にわたって検知されずに活動できるようになります。
以下では、.NET MAUIを悪用して検知を回避する2つのマルウェアキャンペーン事例を紹介し、それらがどのように動作するか、そしてなぜ重大な脅威となるのかを解説します。
技術的な分析結果
今回発見されたマルウェアには複数のバージョンが確認されていますが、ここでは代表的な2つの例を用いて、検知回避の仕組みを紹介します。
まず、こうした悪意あるアプリはどこで配布されているのでしょうか?
多くの場合、非公式なアプリストアを通じて流通しており、信頼できないリンクを通じて誘導されます。これらのリンクは、メッセージアプリのグループやSMSなどを通じて拡散されているため、このような不審なリンクは絶対にクリックしないことが対策として重要になります。
事例①:偽の銀行アプリ
最初に確認された偽アプリは、インドの「IndusInd Bank」の正規アプリを装っており、インドのユーザーをターゲットにしています。アプリを起動すると、氏名、電話番号、メールアドレス、生年月日、銀行情報といった個人情報の入力を促されます。
ユーザーが情報を入力して送信すると、データは直ちに攻撃者のC2(コマンド&コントロール)サーバへ送られます。
画像:McAfee
このマルウェアは、Javaコードやネイティブコード内に不審なコードを含まないため、従来型のAndroidマルウェアとは異なります。代わりに、悪意あるコードはアセンブリディレクトリ内にあるBlobファイルに隠されており、検知されにくい構造となっています。
以下のコードスニペットは、
フォームのテキストボックスに記入された氏名や電話番号、メールアドレスがどのようにC2サーバに送信しているかを示しています。
画像:McAfee
事例②:偽のSNSアプリ
2つ目のマルウェアは、より高度な検知回避手法を用いており、セキュリティ製品による解析を一層困難にしています。これは中国語を話すユーザーを標的とし、端末内の連絡先、SMSメッセージ、写真などを盗み出そうとします。
中国ではGoogle Playストアへのアクセスが制限されているため、こうしたアプリはサードパーティのWebサイトや非公式ストアで配布されており、攻撃者にとって拡散しやすい環境となっています。

画像:McAfee
このマルウェアが特に強力なのは、マルチステージ動的ローディング(multi-stage dynamic loading) という手法を用いている点です。これは、悪意あるコードを直接アプリに組み込むのではなく、複数の段階で暗号化されたファイルを復号・ロードしながら実行する方法で、解析を極めて困難にします。
- 第1段階:xml に定義されたメインアクティビティが、XOR暗号化されたファイルを復号して読み込む
- 第2段階:読み込まれたファイルがさらにAES暗号化されたファイルを復号する
- 第3段階:復号されたファイルが.NET MAUI関連のコードを含み、最終的なペイロードを実行する
画像:McAfee
メインペイロードはC#コード内に隠されており、ユーザーがアプリ内でボタンを押すなどの操作をすると、その裏で情報が盗まれ、C2サーバへ送信されます。
さらに、このマルウェアは次のような追加手法で解析を妨害します
- xmlファイルの改ざん:無意味でランダムな文字列を含む大量の不要なパーミッションを追加することで、解析ツールのエラーを誘発し、静的解析や自動スキャンを妨害
- 暗号化されたソケット通信:通常のHTTP通信ではなくTCPソケット通信を使い、データを暗号化して送信することで、ネットワーク解析を困難にする
加えて、ユーザーを惹きつけるためにさまざまなテーマのアプリが用意されています。
今回確認されたSNSアプリの他にも、同様の手法を使ったマッチングアプリがいくつか確認されており、背景画像は異なるものの、構造や挙動は共通していることから、同一の開発者によるものと見られます。こうした類似アプリが次々と登場していることは、中国語圏でこのマルウェアが広範に拡散していることを示しています。

画像:McAfee
結論
今回の事例は、.NET MAUIを悪用したマルウェアが登場し始めていることを示しており、サイバー犯罪者の技術が着実に進化していることを裏付けています。今回紹介した手法の例としては:
- アセンブリ内へのコード隠蔽(Blob化)
- マルチステージでの動的ローディング
- 通信の暗号化
- 不要な構成情報による過度な難読化
こうした手法により、マルウェアは長期間にわたって検知を免れ、解析も非常に困難になります。さらに、同様の技術を使ったバリエーションが複数確認されていることから、この脅威が広く拡散しつつあることが懸念されます。
特に、中国のように公式アプリストアへのアクセスが制限されている地域では、非公式な配布チャネルが悪用されやすく、ユーザーがこうした脅威にさらされやすい状況です。
有効な対策
非公式のアプリストアからアプリをダウンロードすることには慎重になりましょう。基本的には公式アプリストア以外からはダウンロード、インストールは行ないわないことが有効な対策になります。
特に、ブラウザやメールに表示されるリンクから開かれるアプリのダウンロードページの中には、公式アプリストアを模した偽サイトも存在するため、公式アプリストアから検索をかけるよう心がけましょう。
また、マルウェアの進化に対応するためには、信頼できるセキュリティソフトをインストールして、常に最新の状態に保つことも重要な対策の1つとなります。
参照
New Android Malware Campaigns Evading Detection Using Cross-Platform Framework .NET MAUI