- トレンドマイクロ セキュリティブログ - https://blog.trendmicro.co.jp -

「POWELIKS」:Windows レジストリに不正なコードを隠ぺいする不正プログラムを確認

トレンドマイクロは、Windows レジストリ内のすべての不正なコードを隠ぺいする不正プログラムを確認しました。この手法により、不正プログラムは検出を回避し、不正活動を隠ぺいすることが可能になります。「TROJ_POWELIKS.A [1]」として検出されるこの不正プログラムは、実行されるとファイルをダウンロードし、PC上に感染します。この不正プログラムに感染した PC は、別の不正プログラムに感染される恐れがあり、被害はさらに拡大します。また、この不正プログラムは、PC上の情報を収集する機能があるため、サイバー犯罪者が別の攻撃を開始するのに利用される可能性があります。

■「TROJ_POWELIKS」の検出回避の技術
「TROJ_POWELIKS.A」は、不正なコードを隠ぺいするだけでなく、参照できるファイルも残さないため、調査を困難にします。この不正プログラムは、PC やネットワーク上での検出を可能な限り回避し、より悪質な不正活動を実行しようとします。弊社の解析によると、「TROJ_POWELIKS」は、Microsoft が開発したコマンドコンソールおよびスクリプト言語である「Windows PowerShell」が感染PC上にインストールされているかを確認します。インストールされていなければ、感染PC上に Windows PowerShell をダウンロードし、インストールします。これは後に、エンコードされたスクリプトファイルを実行する際に利用します。こうしてPowerShell は、不正プログラムの実行コード(DLLファイル)を含むエンコードされたスクリプトを実行します。この実行コードは、感染PC上に別の不正なファイルをダウンロードする役目を担います。こうした実行コードは、Windows やアプリケーションが直接実行しないため、回避技術の 1つとなっています。

この不正プログラムは、API「ZwSetValueKey」を利用して、空白もしくは NULL値の Autostart を作成します。

図1:Windows起動時に自動実行されるよう追加されたレジストリ値 [2]
図1:Windows起動時に自動実行されるよう追加されたレジストリ値

これは、特に新しい機能ではなく、「Microsoft Developer Network [3](MSDN)」に文書化されています。レジストリ値が NULL のため、NULL値を持つレジストリキーのコンテンツはユーザから確認できません。レジストリキーを削除する選択はありますが、NULL値のため、エラーの結果が返るだけです。しかし、PC の再起動時に、特定の情報は問題なく実行されます。つまり、ユーザからはレジストリ値が確認できないため削除もできませんが、PC を再起動した際に不正プログラムが実行されることになります。

この不正プログラムはまた、不正なコードを含む別のレジストリ値を作成します。図2 は、作成されたレジストリの情報です。

図2:不正プログラムによって作成されたレジストリの情報 [4]
図2:不正プログラムによって作成されたレジストリの情報

このレジストリの情報は、エンコードされたファイルです。数回復号すると、図3 のように、DLLファイルがコード内で確認できます。

図3:復号されたコード内の DLLファイル [5]
図3:復号されたコード内の DLLファイル

DLLファイルはその後、正常な「DLLHOST.EXE」のプロセスに挿入されます。この挿入されたコードは、他の不正プログラムをダウンロードする機能を持ち、PC のセキュリティを侵害します。また、この不正プログラムは、感染PC から以下の情報を収集します。

これらの情報は、以下の形式で POSTコマンドを介して送信されます。

弊社の製品では、EXEファイルと DLLファイルは「TROJ_POWELIKS.A」として検出されます。また、エンコードされたスクリプトは「JS_POWELIKS.A」として検出されます。以下は、この不正プログラムで利用されたハッシュです。

■「TROJ_POWELIKS」が脅威展望に与える影響
サイバー犯罪者は、検出を回避し、PC内に潜伏するための新しい手法や技術を頻繁に利用します。こうした検出回避の技術は、単純な隠しファイル属性から、より進化したルートキット技術までさまざまです。弊社では、多岐に渡る巧妙な回避技術を利用した攻撃について、本ブログで報告してきました。

「EMOTET」や「MORTO」のような巧妙な不正プログラムも、レジストリを利用した同様の手法を用いました。ネットワークの活動を傍聴して情報を窃取する「EMOTET [9]」は、レジストリ内にファイル感染型ウィルスのコンポーネントを持ちます。さらに、「EMOTET」がダウンロードするファイルは、レジストリ値に保存されます。また、収集した情報も暗号化されてレジストリ値に保存されます。一方、「MORTO [10]」はレジストリ内で暗号化されます。

Windows レジストリを悪用した検出回避は、もはや新しいものではありません。しかし、こうした傾向は、サイバー犯罪者や攻撃者が、ユーザに気づかれずにより悪質な活動を実行するために、彼らの「武器」である不正プログラムを改良し続け、検出回避しようとしていることを示唆しているかもしれません。レジストリを利用した検出回避は、有効な手法です。なぜなら、ファイル形式のセキュリティ対策製品では、PC上で実行されている不正活動を検出できないからです。さらに、無防備なユーザは、必ずしもレジストリを確認するわけではなく、むしろ不審なファイルやフォルダを探すかもしれません。弊社では今後、セキュリティ対策製品が進化を続けるにつれ、こうした検出回避を行う不正プログラムをさらに確認することになると予測しています。

トレンドマイクロ製品をご利用のユーザは、弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network [11]」によって守られています。特に「Webレピュテーション [12]」技術により、この脅威に関連する不正な Web サイトへのアクセスをブロックします。そして、「ファイルレピュテーション [13]」技術により、上述の不正プログラムを検出し、削除します。

※協力執筆者:Rhena Inocencio

参考記事:

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