Zeus-スマートカードの雷雨

リモートバンキングシステムの不正行為に関するGroup-IBとの共同調査の一環として、いくつかの悪意のあるプログラムの調査を実施しました。 これらのプログラムのサンプルは、犯罪を解決する過程でGroup-IBのコンピューターフォレンジックの専門家によって入手されました。 状況はかなり標準的なものでした。検出されたマルウェアはZbotトロイの木馬であることが判明しました。 そして、楽しみが始まりました。 より正確には、かなり奇妙な機能に気づきました。これについては以下で説明します。



私たちの手に渡ったZeusのバージョンは、感染したマシンで実行されたさまざまな金融取引に関する情報に興味があります。 たとえば、オンラインクライアントバンキングシステムでのアクティビティに関する情報です。 Zbotは、対応するWinAPI関数をインターセプトすることにより、訪問したWebページを常にチェックします。 トロイの木馬に関係のある文字列を含むリソースでSSL接続が確立されると、次のアクションを実行します。



-テンプレートユーザー名=。*&パスワード=。*の存在に関するクエリ文字列の分析

- /bsi.dll/?T=テンプレートの存在に関するクエリ文字列の分析



これらのパターンが正常に検出されると、キーボードとマウスの押されたキーを修正する手順と、画面のスクリーンショットを撮る手順が開始されます(以降、情報は別のファイルに記録され、サーバーに送信されます)。



しかし、これはすべてゼウスの他の修正版で注目されました。 最も興味深いものが少し後に明らかになりました。 特に、コンピューターに接続されている論理デバイスを検出する機能を調査したときに、ファイルA:\ key.datを検索するZbot機能が発見されました 。 原則として、このファイルには、クライアントのオンラインバンキングシステムへの許可されたログイン用のキーが含まれており、ファイルが見つかった場合、そのコピーがサーバーに送信されます。 ところで、Zeusはサーバーに多くのものを送信します。



-接続されているスマートカードリーダーに関する情報、およびスマートカード自体に関する情報

-キーボードとマウスのキーストロークを修正した結果、情報は別のファイルに記録され、サーバーに送信されます

-クッキー

-システムで見つかったファイルのコピー



ここで、接続されたスマートカードの監視に関連する機能に非常に興味がありました。 MS Windowsオペレーティングシステムのスマートカードサポートサブシステムのアーキテクチャは、かなり複雑な構造になっており、マルチレベルドライバーシステムが推奨されます。



画像

SmartCard APIレベルで機能するこの機能の基礎は、リソースマネージャーとの相互作用です。これにより、同じマシンで直接動作する複数のリーダーとスマートカードへのアクセスが制御されます。 実際、接続されたスマートカードの制御と管理は、次の2つの方向で実行されます。



-リーダーの現在の状態の継続的な監視とロギング

-攻撃者によるいくつかのアクティブなアクション



Zbotは接続されたリーダーを監視し、これらのリーダーへの変更も記録します。 この場合、記録されたデータはSCARD_READERSTATEシステム構造に保存され、デバイス名、現在のソフトウェアとハ​​ードウェアのステータス、および使用されているカードの属性に関する現在の情報が含まれます。 この構造は、プロセスメモリにランダムオフセットで保存され、感染したコンピューターと攻撃者のコンピューターとの間の事前にインストールされたネットワークチャネルを介して送信されます。

逆コンパイルされた形式では、次のようになります。



画像



収集された情報に基づいて、攻撃者はアクションのプログラムを生成します。これは、前述のように、制御シーケンスとして提示され、ネットワークチャネル経由で送信されます。 この制御シーケンスは、感染したマシンに保存されてから処理されます。 シーケンスは、その要素をWinscard.dllライブラリの次の関数に変換することにより処理されます。



SCardGetStatusChange

SCardStatus

SCardDisconnect

SCardControl

SCardEstablishContext

SCardListReaders

SCardConnect

SCardBeginTransaction

SCardEndTransaction

SCardTransmit

SCardGetAttrib



または、次の図のように表すことができます。



画像



制御シーケンスを処理する関数はかなり扱いにくいように見えますが、ほとんどの場合、WinAPIによって提供される呼び出しに要約されます。



画像



逆コンパイルされた形式のコードの一部は次のとおりです。



画像



攻撃者は、SmartCard APIレベルの基本的なアクションを組み合わせることにより、必要なリーダーを選択してスマートカードに接続し、スマートカードから情報を書き込みおよび読み取り、スマートカードが提供する特殊な機能(データの暗号化と復号化、電子デジタル生成)を使用できます固定長の擬似乱数のシーケンスを生成する署名。



制御シーケンスの処理結果は保存され、ネットワークチャネルを介して攻撃者に送信され、攻撃者のアクションが調整されます。 概略的に、この相互作用は次のように表すことができます。



画像



この機能の実装の重要な特徴は、攻撃者から発せられる制御シーケンスを構成し、ほとんどすべての読者に適合させることができるという事実です。 したがって、攻撃者の露出範囲は非常に大きく、デスクトップリーダー、モバイル、PINキーボードを使用するリーダー、生体認証など多くの人に適しています。



しかし、私たちが見つけた機能にもかかわらず、今日のスマートカードは、既存のすべてのものからの重要な情報を保存する最も安全な方法です。



All Articles