全4305文字
PR

 最近、マルウエアの目新しい永続化の手口が発見された。永続化とは感染パソコンの設定を変更して、次回起動時にマルウエアを自動的に起動させる仕組みである。「Colibri Loader」というマルウエアで使われていた。

 マルウエアにとって永続化は重要な機能の1つだ。永続化すれば、感染した環境に潜み続けられる。自動起動する設定が見つかると無効化・削除されるので、マルウエア攻撃者はできるだけ分かりづらい手口で永続化を試みる。

PowerShellの謎の挙動を悪用

 Colibri Loaderは、これまでほとんど知られていなかったPowerShellの挙動を悪用していた。PowerShellには、変数の一覧を取得する「Get-Variable」という名前のコマンドがある。このことが影響しているのかは不明だが、Windows 10ではPowerShellを引数を付けずに起動すると、なぜか「Get-Variable.*」に該当するファイルを複数の特定フォルダーから順に検索して見つけると実行してしまう。

 したがって、これらのフォルダーに「Get-Variable.exe」というファイル名で任意の実行ファイルを配置しておくと、PowerShellが起動したタイミングでそのファイルが実行されてしまう。(図1左)。

図1●PowerShellはLOL攻撃に使える
図1●PowerShellはLOL攻撃に使える
Windows 10ではPowerShellを起動すると、自動で「Get-Variable」というプログラムが実行されてしまう。「Colibri Loader」というマルウエアがこれを悪用していた。Windows 11で改善されたが、似た問題があるのを筆者は発見した。
[画像のクリックで拡大表示]

 Colibri Loaderの攻撃者は、どうやってこの仕組みを発見したのか。筆者の調査で、「バイナリープランティング」という種類の脆弱性を見つける際に用いた方法が、PowerShellの挙動の解析に使えることが分かった。

 具体的には、PowerShellの実行ファイル「powershell.exe」が起動時にアクセスする先を調査ツールで記録した結果、今回の仕組みを見つけた。Colibri Loaderの攻撃者も、おそらく同様の方法で発見したのではないかと思う。