Snowblindとして追跡されているマルウェアの一部による新しいAndroid攻撃ベクトルは、機密性の高いユーザーデータを扱うアプリの既存の改ざん防止保護を迂回するために、セキュリティ機能を悪用している。
Snowblindの目的は、ターゲットとなるアプリを再パッケージ化し、認証情報などのユーザー入力を取得したり、悪意のあるアクションを実行するためのリモート・コントロール・アクセスを可能にするアクセシビリティ・サービスの悪用を検知できないようにすることです。
しかし、他のAndroidマルウェアとは異なり、Snowblindは「seccomp」(セキュア・コンピューティングの略で、Androidがアプリケーションの整合性チェックに使用しているLinuxカーネル機能)を悪用し、アプリケーションのリパッケージなどの悪意のある行為からユーザーを守ります。
seccompセキュリティ機能の悪用
モバイルアプリのセキュリティ会社であるPromonは、企業にアクセスとIDシステム保護を提供するパートナーであるi-Sprintからサンプルを受け取った後、Snowblindがどのようにして発見されずに目的を達成するのかを分析することができた。
「このマルウェアはi-Sprintの東南アジアの顧客のアプリを攻撃しました。Snowblindを分析したところ、Linuxカーネルの機能であるseccompに基づいてAndroidアプリを攻撃する新しい手法を使用していることがわかりました。
seccompはLinuxカーネルのセキュリティ機能で、アプリケーションが実行できるシステムコール(syscall)を制限することで、アプリケーションの攻撃対象領域を減らすように設計されています。アプリが実行できるシステムコールのフィルターとして機能し、攻撃で悪用されたシステムコールをブロックする。
グーグルはAndroid 8(Oreo)で初めてseccompを統合し、すべてのAndroidアプリの親プロセスであるZygoteプロセスに実装した。
Snowblindは、改ざん防止コードの前にロードされるネイティブ・ライブラリを注入することで、機密データを扱うアプリをターゲットにし、ファイル・アクセスで一般的に使用される「open() syscall」などのシステムコールを傍受するseccompフィルターをインストールする。
ターゲットアプリのAPKが改ざんチェックされると、Snowblindのseccompフィルターはコールの続行を許可せず、代わりにプロセスがシステムコールに不正な引数を送信したことを示すSIGSYSシグナルをトリガーする。
Snowblindはまた、SIGSYSのシグナルハンドラをインストールし、SIGSYSを検査してスレッドのレジスタを操作する、と研究者は.NETと共有したレポートの中で説明している。
このようにして、マルウェアは’open()’システムコール引数を変更し、改ざん防止コードをAPKの未改ざんバージョンに向けることができる。
seccompフィルターは標的を絞っているため、パフォーマンスへの影響や操作のフットプリントは最小限であり、通常のアプリ操作中にユーザーが気づくことはほとんどない。

ソースはこちら:プロモン
攻撃シナリオ
プロモンは、Snowblind攻撃で観測された手法は「あまり知られていないようだ」とし、研究者はほとんどのアプリがこの手法から保護されていないと考えている。
この攻撃がどのように行われるかを示すビデオで、研究者はSnowblind攻撃がユーザーには全く見えず、ログイン認証情報を漏えいさせる可能性があることを示している。
研究者らは、Snowblindは2要素認証や生体認証など、アプリの様々なセキュリティ機能を無効にするために使用できると話している。
攻撃者はこのテクニックを使って、”画面に表示された機密情報を読み取ったり、デバイスを操作したり、アプリを制御したり、通常はユーザーの介入が必要なインタラクションを自動化することでセキュリティ対策を回避したり、個人を特定できる機密情報や取引データを流出させたりすることができる “という。
プロモンによれば、Snowblindは東南アジアのi-Sprint顧客の1つのアプリを標的としていることが確認されている。しかし、これまでにどれだけのアプリが標的にされたかは不明だ。さらに、この方法はアンドロイドの保護をバイパスするために他の敵対者によって採用される可能性がある。
は、Androidの保護を迂回するためにseccompが積極的に悪用されていることについてのコメントを求めてグーグルに問い合わせたところ、広報担当者から以下のような回答があった:
現在のところ、Google Playにこのマルウェアを含むアプリはありません。
Androidユーザーは、Google Playサービスを利用するAndroid端末ではデフォルトでオンになっているGoogle Playプロテクトによって、このマルウェアの既知のバージョンから自動的に保護されています。
また、「Google Play プロテクトは、悪意のある動作をすることが判明しているアプリに対して、ユーザーに警告を発したり、ブロックしたりすることができます。
Comments