セキュリティ対策製品の不正なファイルをスキャンする技術が向上したため、不正プログラムを作成するサイバー犯罪者は、従来型の感染手法に改良を加えざるを得なくなりました。不正なコードで指定された場所に不正プログラム自身のコピーを作成し、自動起動を設定して継続的に実行する手法には、もはや頼ることができません。セキュリティ対策製品がこうした脅威をスキャンし、検出するからです。
このような傾向の中、トレンドマイクロは、2014年8月、Windows のレジストリ内に不正なコードを追加して自身の不正活動を隠ぺいする不正プログラム「POWELIKS」について報告しました。この「ファイルを利用しない」不正プログラムは、通常の不正プログラムと異なり、スキャンや検出が難しい場所に自身を隠ぺいします。こうした不正プログラムはメモリ上のみに存在し、感染PC のハードディスクにインストールする代わりに、「Random Access Memory(RAM)」に直接書き込まれます。なお、「POWELIKS」は、不正なコードをレジストリ値に追加するために、不正プログラムの実行コード(DLLファイル)を含むエンコードされたスクリプトファイルを利用します。そして、この「POWELIKS」が備える検出回避の手法と、Windows PowerShell の利用は、今後の攻撃で危険をもたらす手法として認識されました。
2014年後半の「POWELIKS」の感染急増がこの手法の成功の裏付けとなり、他の不正プログラムの作成者も、このファイルを利用しない感染手法を利用するようになりました。本稿では、「POWELIKS」以外のファイルを利用しない不正プログラムについて報告します。
■「Solarbot」から発展した「Phasebot」
ファイルを利用しない不正プログラムの 1つの例は「Phasebot」です。この不正プログラムは、不正プログラムや不正なツールを販売する Webサイトで販売されているのを弊社が確認しました。弊社の製品では、この不正プログラムを「TROJ_PHASE.A」として検出します。「Phasebot」はルートキット機能に加えて、ファイルを利用せずに実行する機能を備えます。
弊社は、この不正プログラムが「Solarbot」と同じ機能を備えていることを確認しました。「Solarbot」は古いボットで、2013年後半頃に感染が初めて確認されています。弊社がこの 2つの不正プログラムを販売する Webサイトを比較すると、この類似性がよりはっきりと確認できます。
図1:「Solarbot」(上)と「Phasebot」(下)を販売する Webサイトの比較
「Phasebot」は「Solarbot」と同じ機能を備えていますが、仮想マシンの検出やモジュールを外部から読み込む機能などが追加されており、「Solarbot」の新バージョンと見なすことができます。モジュールを外部から読み込む機能により、不正プログラムは感染PC上で機能の追加および削除ができるようになります。
「Solarbot」と比べて、「Phasebot」は隠ぺい機能や検出回避機能に明らかに重点が置かれています。「Phasebot」は、自身のコマンド&コントロール(C&C)サーバに接続するたびに、ランダムなパスワードを利用して C&Cサーバとの通信を暗号化します。
また、この不正プログラムは、以下のプログラムが感染PC上にインストールされているかを確認するよう設計されていました。
- .NET Framework バージョン 3.5
- Windows PowerShell
図2:「Phasebot」はレジストリ値に問い合わせて、特定のプログラムを検索する
どちらのプログラムも、Windows の現行のバージョンに実装されています。これらのプログラムが感染PC上に実装されていることを確認した後で、「Phasebot」は以下のレジストリキーを作成します。その後、このレジストリキーに暗号化されたシェルコードが書き込まれます。
- HKEY_CURRENT_USER\Software\Microsoft\Active Setup\Installed Components\<ボットのGUID>
「Phasebot」は、レジストリ値「Rc4Encoded32」および「Rc4Encoded64」を作成し、そこに暗号化された 32ビット版および 64ビット版のシェルコードを保存します。最後に、「JavaScript」と名付けられた別のレジストリ値を作成し、「Rc4Encoded32」および「Rc4Encoded64」を復号化して実行します。
図3:レジストリ値「Rc4Encoded32」および「Rc4Encoded64
これらのプログラムを PC上で確認できない場合は、「Phasebot」はフォルダ「User Startup」に自身のコピーを作成します。そして、API をフックして、一般的なエンドユーザからファイルを隠ぺいするためにユーザモードのルートキットを取得します。また、「Phasebot」は、ファイルを隠ぺいするために API「NtQueryDirectoryFile」をフックし、さらに自身のプロセスを隠ぺいするために、「NtReadVirtualMemory」をフックします。
「Phasebot」は、ボット管理者の命令により、以下の不正活動を実行することができます。
- 「form grabbing(フォームグラビング)」による Web上のデータフォーム(入力欄)からの認証情報収集
- 「分散型サービス拒否(DDoS)攻撃」の実行
- 不正プログラム自身の更新
- ファイルのダウンロードおよび実行
- URL へのアクセス
■「Phasebot」と PowerShell
弊社が「Phasebot」に注目している点は、Windows PowerShell を利用し、セキュリティ対策製品の検出を回避している点です。PowerShell は、Windows に内蔵された正規のシステム管理ツールです。この不正プログラムは、Windows レジストリに隠ぺいされたコンポーネントを実行させるために PowerShell を利用します。
Windows PowerShell は、Windows 7 以降のオペレーティングシステム(OS)では標準のインストールパッケージに含まれているため、このスクリプト言語を利用することも戦略の 1つでしょう。より多くのユーザが Windows 7 以降の OS が搭載された PC を利用するようになれば、サイバー犯罪者はより多くの被害者となるユーザを獲得することができます。また、検索の対象とされた.NET framework のバージョン3.5 が Windows 7 以降に実装されているのも偶然ではないでしょう。
■ファイルを利用しない不正プログラムの今後
弊社では、まもなく、より多くの不正プログラムの作成者が、ファイルを利用しない不正プログラムの概念を導入し、適応させていくと推測しています。しかも、高い確率で、Windows レジストリ以外の手法が、不正プログラムを隠ぺいするために利用されるでしょう。感染PC上にファイルを作成せずに不正活動を実行する、別の巧妙な手法も利用されると思われます。
ファイルを利用しない不正プログラムの出現は、こうした種類の感染になじみのないユーザにとって、深刻な脅威となります。通常、ユーザは不審なファイルやフォルダを探すよう勧められますが、ファイルを利用しない不正プログラムが用いる Windows レジストリのような場所は確認しないものです。
ファイルを利用しない不正プログラムへの移行は、セキュリティ企業にとっても課題となります。特に、ファイルベースでの検出に頼っている企業にとってはなおさらです。セキュリティ企業は、製品を強化し、通常の従来型のファイルベースの検出から、挙動監視といった別の検出方法に取り組む必要があるでしょう。
ファイルを利用しない不正プログラムは検出が難しいため、削除も困難になります。ルートキットと同様に、不正プログラムが隠ぺいされる場所のために、通常の不正プログラムの感染を検出し削除するよりも困難になります。
■トレンドマイクロの対策
ファイルを利用しない不正プログラムは、セキュリティ対策製品からの検出をより困難にするよう設計されています。弊社のエンドポイント向けセキュリティ対策製品「ウイルスバスター クラウド」および「ウイルスバスター コーポレートエディション」は、挙動監視により上述の不正プログラムが実行もしくは不正活動を開始する前に、不正な挙動を検知し、実行を防ぎます。また、新規のパターンファイルが利用可能になる前でもユーザを保護します。
検出を回避し、ユーザを被害者にするために不正プログラムの作成者が利用する最新の手法について、ユーザは常に最新情報を入手する必要があります。最新の脅威から自身を保護するためには、従来の知識だけではもはや十分ではありません。
当然ながら、こうした脅威に関する情報には、安全なインターネット利用の実践が欠かせません。例えば、Eメールやファイル、URL のリンクなどは、開封したり、クリックする前に、その安全性を再度確認して下さい。また、「Trend Micro Site Saftety Center」を利用して、訪れる前にその Webサイトが安全かどうかを確かめることもできます。
以下は、今回の攻撃に関連した不正プログラムのハッシュ値です。
- 100d0d0286b536951af410116ec9de7bcb27bd8a
- 181a018652de15b862df4ccac4189ced00a4a35e
- 291528630bc5e69a0ea5ab23cd56c13da1780a22
- 3a9ebe71b21209335d094385f8845ec745a12177
- 3cec86976816e62f978572f22dd6692efda6e574
- 46d47ba7ad687527392304813a1ca68669ecfb5e
- 475a182e7ca538a697f76ff8031c2407e1f98824
- 4791067a88333f4b9ad67449152f168a29b4a684
- 52efb07af3a1c05d777000c8af2e2f71ae983041
- 592ac60ee3c3f34d7e77f3ff25a9216c461db169
- 6c6c443afc7b3d385aded4a75df680a62e9f6232
- 6cb74b4e309d80efbe674d3d48376ee1f7e2edda
- 76f934e162405ac4c39bcac2af998b00eaaee756
- 7b5eec8c1e3f08f3a54477a6a81b6bd5e8aa53b2
- 891989a3b78a52da247c8e2c33e88760c16b9113
- 8d54c588b1f199fcef28c4d6eba3c88421476565
- b57288f641cc5f25d74ff45c06a5ff0e1114e627
- bdc2d54e765802dc093a9ec37d53299f800b0b18
- c184bbecee796cbf6f1f200ca37108aaf4397368
- c4d2f6de337dc64be5fd5e09480ac4d6096ee5ed
- d9a0f101bddb7e46e4dcff75ab93a8266b91a618
- fe77578097fb5532a0702cae67a199a73480a218
協力執筆者:David Agni
【更新情報】
2015/04/27 | 16:00 | 本文を一部更新しました。 |
参考記事:
- 「 Without a Trace: Fileless Malware Spotted in the Wild」
by Michael Marcos (Threat Response Engineer)
翻訳:品川 暁子(Core Technology Marketing, TrendLabs)