不正なコードを隠ぺいする「POWELIKS」、新しい自動起動の手法を追加

トレンドマイクロは、2014年8月、回避手法の一部としてレジストリ値に不正なコードを隠ぺいする「POWELIKS」の不正活動に関する記事を本ブログ上で公開しました。

弊社が最近確認した検体の中で、「TROJ_POWELIKS.B」として検出される亜種は、新しい自動起動の手法を用い、レジストリの内容を見るユーザの権限を削除します。その結果、ユーザは PC が「POWELIKS」に感染したことに気づきにくくなります。この自動起動の手法は脅威状況の中でかなり新しいもので、PC を起動した時に実行されるすべてのファイルおよびレジストリを表示する Windows の機能「Autoruns for Windows」では現在確認できません。

「POWELIKS」は実行されると、以下のレジストリ値を作成します。

[HKEY_CURRENT_USER\Software\Classes\clsid\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}\localserver32]

(Default)=”rundll32.exe javascript:\”\\..\\mshtml,RunHTMLApplication \”;eval…….”

a=”#@~^XHoAAA=……”

「レジストリエディタ」を介して、通常ユーザからは図1 のように見えます。

図1:「POWELIKS」によって作成されたレジストリキー
図1:「POWELIKS」によって作成されたレジストリキー

図1 を見ると、不正プログラムがレジストリ内に存在していないように見えます。しかし実際には、「POWELIKS」はユーザのアクセス許可を削除することによって、特定のレジストリ内に自身のコードを隠ぺいしています。

図2:アクセス許可を管理する画面
図2:アクセス許可を管理する画面

■アクセス許可にユーザ名を追加する方法
ユーザは、レジストリキーの「アクセス許可」のボックスにユーザ名やグループ名を追加することによって、この不正プログラムの手法やレジストリの内容を確認することができます。その手順は以下のとおりです。

  1. 「レジストリエディタ」を起動する
  2. レジストリキー「HKCU\Software\Classes\clsid」にいく
  3. 左のパネル上で<AB8902B4-09CA-4bb6-B78D-A8F59079A8D5>を右クリックする
  4. ユーザ名をハイライトする
  5. 「アクセス許可」のボックスで、「フルコントロール」および「読み取り」を選択する(図3 参照)
  6. 「OK」をクリックし、変更を保存する
  7. 「レジストリエディタ」を終了し、その後再起動して変更を反映させる

図3:変更後のユーザの「アクセス許可」のボックス
図3:変更後のユーザの「アクセス許可」のボックス

上記の手順により、図4 のようにこの不正プログラムを確認することができます。

図4:見えるようになった不正なコード
図4:見えるようになった不正なコード

「POWELIKS」が「HKCU\SOFTWARE\Classes\CLSID」にレジストリ値を作成すると、Windows は「HKCR\CLSID」にこのレジストリ値を反映させます(図5)。

図5:更新されたレジストリキー「HKCR\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}」
図5:更新されたレジストリキー「HKCR\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}」

■「CLSID」を利用した理由
「CLSID」は一般的な自動起動のレジストリ値ではありません。ではなぜ、サイバー犯罪者は、通常の自動起動のレジストリ値を利用せず、このレジストリ値を利用したのでしょうか。

この CLSID は、Windows のサムネイルのキャッシュに使用され、画像や音声などのファイルでサムネイルを必要とする時には、Windows がこの CLSID を呼び出します。こうして、CLSID が呼び出されると、「HKCR\CLSID\<AB8902B4-09CA-4bb6-B78D-A8F59079A8D5>」内のレジストリ値が実行され、ファイルのサムネイルとこのレジストリキー内の「POWELIKS」のレジストリ値が表示されます。これは、図6 のようにその都度「POWELIKS」が読み込まれます。

図6:「POWELIKS」は PC に自身を読み込ませるために
図6:「POWELIKS」は PC に自身を読み込ませるために “dllhost.exe” を利用。各 “dllhost.exe” は実行中の「POWELIKS」を示す

■手動での削除方法
今回の新たな回避手法に見られるように、この脅威は進化し続けていますが、以下の手順により、手動で PC から削除することが可能です。

  1. Microsoft 「Process Explorer」をダウンロードし、実行する
  2. セーフモードで再起動する
  3. 最新の “dllhost.exe” の上位のプロセスを選択する(図7 参照)
  4. 図7:
    図7:”dillhost” プロセスの終了

  5. 右クリックし、「Kill Process Tree」を選択する
  6. 「レジストリエディタ」を起動する(Run>regedit.exe)
  7. 左のパネルで、「HKCU\SOFTWARE\CLSID\<AB8902B4-09CA-4bb6-B78D-A8F59079A8D5>」にいく
  8. ユーザに許可を与える(「許可の割当」に関する指示を参照)
  9. 右のパネルで、レジストリ値「Default」および「a」を削除する。空白のレジストリキーがあるため、CLSID を完全に削除することはできない。無事に削除できると、図8 のように表示される
  10. 図8:「POWELIKS」削除後のレジストリ値
    図8:「POWELIKS」削除後のレジストリ値

    これらのレジストリ値が再び作成された場合は、「POWELIKS」がまだ実行されていることを意味します。手順3 を再度実行し、”dllhost.exe” が実行していないことを確認して下さい。

  11. 「レジストリエディタ」を終了する

■結論
「POWELIKS」は、検出や感染PC からの削除を回避する不正活動のため、深刻な危険性をもたらします。また、この不正プログラムの不正活動の 1つにクリック詐欺があります。この不正プログラムに感染していないことを確認するために、上記の作業を実行して下さい。弊社ではまた、不正なファイルを検出するセキュリティ対策製品をインストールすることをお薦めします。

トレンドマイクロ製品をご利用のユーザは、弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」によって守られています。特に「ファイルレピュテーション」技術により、上述の不正プログラムを検出し、削除します。

今回の脅威に関連する不正プログラムのハッシュは以下のとおりです。

「TROJ_POWELIKS.B」

  • F2E179CB7307DF6190A783D5B72F1905C6F3BA3B

協力執筆者:Ohlord Gagto

参考記事:

 翻訳:品川 暁子(Core Technology Marketing, TrendLabs)