Frebniis: Microsoft IISの機能を悪用してバックドアを仕掛ける新たなマルウェア
FREB(Failed Request Event Buffering)モジュールに悪意のあるコードを注入して攻撃者からのHTTPリクエストを監視。
Broadcom Softwareの一事業部であるシマンテックは、MicrosoftのInternet Information Services(IIS)の機能を悪用して標的のシステムにバックドアを仕掛ける新たなマルウェアを観測しました。
Frebniis(Backdoor.Frebniis)と名付けられたこのマルウェアは、現時点で正体不明の攻撃者によって台湾内の標的への攻撃で使用されました。
Frebniisが使用するテクニックは、「失敗したWebページリクエストのトラブルシューティングと分析に使用されるIISの機能」に関連するDLLファイル(iisfreb.dll)のメモリに悪意のあるコードを注入します。これにより、FrebniisはすべてのHTTPリクエストを密かに監視し、攻撃者が送信した特別な形式のHTTPリクエストを認識し、攻撃者がリモートでコードを実行することが可能になります。このテクニックを使用するには、IISサーバーが稼働しているWindowsシステムに、攻撃者が何か別の手段を使ってアクセスする必要があります。今回のケースでは、どのような方法でこのアクセスを達成
FREB(Failed Request Event Buffering)機能
IISは、Windowsシステム上で動作し、要求されたHTMLページやファイルを提供する汎用Webサーバーです。IIS Webサーバーは、リモートクライアントコンピュータからのリクエストを受け取って、適切なレスポンスを返します。IISには、FREB(Failed Request Event Buffering)という機能があります。FREBはリクエストに関するデータと詳細(発信元IPアドレスやポート、Cookieを含むHTTPヘッダーなど)を収集します。
「失敗した要求トレース(Failed Request Tracing)」と呼ばれる機能は、IISの失敗したリクエストのトラブルシューティングに使用することができます。失敗した要求トレース機能は、リクエストのトレースイベントをバッファリングし、そのリクエストがユーザーが定義した「失敗」の定義に合致する場合はバッファリングしたデータをディスクにフラッシュします。失敗した要求トレース機能によって、たとえばリクエストが特定のステータスコード(401または404など)を返す理由や、リクエストの処理に時間がかかり過ぎる理由、リクエストが応答しない理由などを知ることができます。
IISのコードを密かにハイジャック
Frebniisは、失敗した要求トレース機能が有効になっていることを確認してからw3wp.exe(IIS)のプロセスメモリにアクセスし、FREBのコード(iisfreb.dll)がロードされるアドレスを取得します。 このコード開始アドレスで、Frebniisはそこから関数ポインタテーブルを検索し、コードの実行を乗っ取ります。
Frebniisの作者は、WebクライアントからIISに何らかのHTTPリクエストが行われるたびに、iisfreb.dll内の特定の関数ポインタがiiscore.dllによって呼び出されると判断しました。この関数は、通常はHTTPリクエストの内容が失敗した要求トレース機能のルールに合致するかどうかをチェックします。

Frebniisは、自身の悪意のあるコードをIISプロセスメモリに注入し、この関数ポインタを自身の悪意のあるコードのアドレスに置き換えることで、この関数をハイジャックしています。このハイジャックポイントにより、Frebniisは元の関数に戻る前に、IISサーバへのすべてのHTTPリクエストを密かに受信して検査することができます。

バックドア
Frebniisの悪意のある注入コードは、「7ux4398!」に設定されたパラメータパスワードとともに、/logon.aspxまたは/default.aspxのすべての受信HTTP POST要求を解析します。パスワードが一致した場合、Frebniisは注入されたコードの一部を解読して実行します。このコードは、主要なバックドア機能からなる.NET実行可能コードです。このプロセスでは実行ファイルはディスクに保存されないため、バックドアは完全にステルス性を保っています。
この.NETコードはプロキシ(中継)機能とリモートコード実行を提供しますが、このリモート実行は攻撃者が指定する第2のHTTPパラメータ(Base64でエンコードされた文字列)によって制御されます。
プロキシを有効にするために、エンコードされた文字列がBase64でデコードされた後復号化されます(xor 0x08)。先頭の文字はプロキシコマンドを表し、その後に想定されたパラメータが続きます。このプロキシは、Base64でエンコードされたデータを他のコンピュータシステムとの間で送受信するために使用されます。これにより、攻撃者が侵害したIISサーバーを介して、通常ならインターネットからブロックされるような内部リソースと通信することが可能になります。
コマンド | 関数名 | パラメータ | 説明 |
---|---|---|---|
1 | CreateConnect | Host:Port | プロキシのためにリモートシステムに接続し、そのリモートシステムを示すUUIDを返す |
2 | ReadScoket | Uuid | Base64文字列をリモートシステムから読み込む |
3 | Writescoket | Uuid、Base64文字列 | Base64文字列をリモートシステムに書き込む |
4 | CloseScoket | Uuid | 通信を終了する |
また、.NETバックドアコードはリモート実行にも対応しています。logon.aspxまたはdefault.aspxへのHTTP呼び出しがパスワードパラメータなしで受信され、Base64文字列が含まれている場合、そのBase64文字列はメモリ内で直接実行されるC#コードであると見なされます。Base64文字列はデコードされてから復号化され(xor 0x08)、「data」属性の下の「/doc」ノードで実行されるC#コードを含むXML文書であるものと想定されます(例: <doc data=C# code>)。 そして、C#コードが抽出されて実行されます。この方法により、Frebniisは任意のコードをシステム上で密かに実行できます。

FrebniisはIIS Webサーバーコードをハイジャックして改変するという方法で、HTTPリクエスト処理の通常のフローを傍受して、特別な書式のHTTPリクエストを見つけます。これらのリクエストによって、リモートでのコード実行や内部システムへのプロキシを密かに行うことができます。ファイルや疑わしいプロセスがシステム上で実行されないという特徴を持つFrebniisは、現在確認されている中でも比較的ユニークで珍しいタイプのHTTPバックドアです。
保護/緩和
Symantec Protection Bulletinで保護に関する最新情報をご確認ください。
侵害の痕跡
IOCが悪意のあるもので、シマンテックが入手できるファイルであれば、Symantec Endpoint製品はそのファイルを検知し、ブロックします。
6464f9a5da26aa53fb2221255e908fd4da8edf0633f94051beee74a14b9b001c – Backdoor.Frebniis
b81c177c440e84635f22dc97b0411de93a24a983a41af676ffbbb4439487aaef – Backdoor.Frebniis

Graphiron: ウクライナでロシアの新型情報窃取マルウェアが展開
ロシアに関連するNodariaグループが、感染したコンピュータからさまざまな情報を盗む新しい脅威を展開

We encourage you to share your thoughts on your favorite social platform.