Snowblind Mobile Malware
Snowblind として追跡されている新しい Android マルウェアは、セキュリティ機能を悪用して、機密性の高いユーザー データを管理するアプリの現在の改ざん防止保護を回避します。Snowblind は、対象のアプリケーションを再パッケージ化して、アクセシビリティ サービスの不正使用を検出できないようにすることを目的としています。これにより、マルウェアは認証情報などのユーザー入力をキャプチャしたり、リモート コントロールを取得して悪意のあるアクティビティを実行したりできるようになります。
Snowblind が他の Android マルウェアと異なる点は、Android がアプリケーションの整合性チェックに使用する Linux カーネル機能である「seccomp」(セキュア コンピューティング) を悪用することです。この機能は、アプリケーションの再パッケージ化などの危険な操作からユーザーを保護することを目的としています。
セキュリティ機能を悪用してデバイスを侵害する
Snowblind の分析により、Linux カーネル機能「seccomp」を悪用して Android アプリケーションを攻撃する革新的な手法が明らかになりました。seccomp は、アプリケーションが実行できるシステム コール (syscall) を制限し、攻撃対象領域を減らすセキュリティ メカニズムです。当初は Google によって Android 8 (Oreo) に統合され、すべての Android アプリケーションの親プロセスである Zygote プロセス内に実装されました。
Snowblind は、改ざん防止メカニズムの前に読み込まれるネイティブ ライブラリを挿入することで、機密データを扱うアプリケーションを特にターゲットにします。ファイル アクセスによく使用される 'open()' などのシステム コールを傍受する seccomp フィルターをインストールします。ターゲット アプリケーションの APK の改ざんチェック中に、Snowblind の seccomp フィルターは不正なシステム コールを防止し、無効なシステム コール引数を示す SIGSYS 信号をトリガーします。
検出を回避するために、Snowblind は SIGSYS のシグナル ハンドラをインストールします。このハンドラはスレッドのレジスタを検査して変更し、マルウェアが 'open()' システムコールの引数を操作できるようにします。研究者は、この操作により、改ざん防止コードがリダイレクトされ、APK の未変更バージョンが表示されると説明しています。
seccomp フィルターはターゲットを絞ったアプローチを採用しているため、パフォーマンスへの影響と運用上のフットプリントが最小限に抑えられ、通常のアプリケーション使用中にユーザーが異常を検出する可能性が低くなります。
Snowblindは攻撃者がさまざまな有害な行為を実行できるようにする
Snowblind 攻撃で使用されている手法は比較的知られていないようで、研究者らはほとんどのアプリがこれに対する防御策を講じていないと指摘しています。このタイプの攻撃はひそかに実行され、ログイン認証情報が漏洩する重大なリスクをもたらします。さらに、このマルウェアは、2 要素認証や生体認証などの重要なアプリ セキュリティ機能を無効にする機能を備えています。
攻撃者はこの手法を利用して、画面上の機密情報にアクセスしたり、デバイスを操作したり、アプリケーションを操作したり、通常はユーザーの操作を必要とするアクションを自動化してセキュリティ プロトコルを回避したりすることができます。さらに、個人を特定できる情報やトランザクション データを抽出することもできます。
Snowblind 攻撃キャンペーンがアプリケーションに及ぼす影響の範囲は依然として不明です。さらに、将来的に他の脅威アクターがこの手法を採用して Android の保護を回避する可能性も懸念されています。