マルウェアの侵入経路としてのWindowsショートカットの悪用に終止符が打たれる可能性

サードパーティのパッチ管理企業が、攻撃者によるLNKファイルを使った悪意あるコマンドの密輸を封じようとしている一方で、Microsoftはこの問題の全体像を語ることを好んでいる。

WindowsがLNKショートカットファイルを処理する方法に長年存在していた問題は、攻撃者が何年にもわたり悪意あるコマンドを目立たない形で隠すために悪用してきたが、ついに修正された可能性があり、現在ユーザーには複数のパッチが提供されている。

問題は、脅威アクターがインターネットからダウンロードされたLNKファイルの「ターゲット」フィールドに有害なペイロードを隠し、空白文字によるパディングを追加することで、そのフィールドを確認してもペイロードが見えないようにできていた点にあった。

Microsoftは、この問題を脆弱性として分類することに消極的だった。

「この報告を調査した結果、脆弱性として分類する基準を満たさないと判断しました」とMicrosoftは2025年11月のアドバイザリで述べている。「Microsoft Defenderには、この脅威活動を検出してブロックするための検出機能が備わっており、Smart App Controlはインターネットからの悪意あるファイルをブロックすることで、さらなる保護レイヤーを提供します。」

しかし、サードパーティのパッチ提供元である0patchはブログ投稿で、最近のWindowsアップデートが、ターゲットフィールドにすべての引数を表示させることで、この問題にひそかに対処したと指摘した。それでもなお、このエクスプロイトは依然として成功し得ると同社は述べ、自社のマイクロパッチの方がより効果的な解決策だとしている。

これら2つの修正は、北朝鮮、イラン、ロシア、そして直近ではAPTグループによるLNKファイルの悪用が報告されてきた長年の経緯を経て登場したものであり、最近では中国と関連付けられた欧州外交官を標的とするキャンペーンでも悪用されていた。

Microsoftのパッチ

Windowsショートカットファイル(.lnk)は、長らく攻撃者にとって都合のよい隠れ場所となっていた。というのも、Windows Explorerはショートカットのプロパティにあるコマンドの最初の260文字しか表示せず、その後ろに長い空白文字列を追加すれば、それ以降に付け足された内容はユーザーから見えないままだったからだ。

この問題はCVE-2025-9491として追跡されており、セキュリティアナリストはCVSS 7.0の高深刻度評価を付与している。

「.lnkファイルの構造では、ターゲット引数を非常に長い文字列(数万文字)にすることができますが、『プロパティ』ダイアログには最初の260文字しか表示されず、残りは黙って切り捨てられます」と0patchの研究者は述べている。「そのため、非常に長いPowerShellやBATスクリプトを実行する.lnkファイルを構築することが可能ですが、そのうちユーザーがプロパティを見たときに表示されるのは最初の260文字だけです。」表示される文字はほとんどを空白にすることができ、悪意ある要素を完全に視界の外へ押し出すことができる。

被害者から見ると、その.lnkファイルはフォルダを開いたり信頼されたアプリケーションを起動したりしているように見えるが、実際には任意のスクリプトやドロッパー、あるいは「LOLBins(Living-off-the-land)」型のコマンドを実行する可能性がある。

0patchの研究者は、Microsoftが11月のWindowsアップデートに「ひそかに」修正を同梱した後、この問題がある程度解決されたことを確認している。「63件の脆弱性が修正されたとされる中で、この問題にかすりもしない内容の記載は一切ありませんでした」と研究者らは述べ、この修正はセキュリティ脆弱性ではなく機能バグとして適用された可能性が高いと付け加えた。

「現在では、.lnkファイルの『プロパティ』ダイアログには、引数を含むターゲットコマンド全体が、その長さにかかわらず表示されます」と研究者らは付け加えた。MicrosoftはCSOからのコメント要請にすぐには応じなかった。

0patchは自社パッチの方が優れていると主張

0patchはMicrosoftのパッチに問題があるとし、それはユーザーインターフェース(可視性)の部分だけを修正し、Windowsの根本的な挙動(悪意あるコマンドの実行)を修正していないと主張している。Microsoftのパッチの前提は、ターゲットフィールドが完全に表示されれば、ユーザーが手作業で長い.lnkのターゲットフィールド内の悪意あるコマンドを見抜ける、というものだ。

0patchは、これが2つの点で失敗する可能性が高いと論じている。第一に、ターゲットフィールドに悪意ある実行ファイルが含まれているかどうかを、見ただけで判断できるのは経験豊富なITユーザーだけであること。第二に、正当なケースのほとんどでは、260文字を超えるターゲットフィールドを持つ.lnkファイルはプログラム的に(Windows APIを使用して)作成され、Windows Explorerによって自動的に処理されることが前提であり、ユーザーが手動で確認することは想定されていないことである。

そのため、Microsoftのパッチでは、ユーザーがそれを認識してブロックし損ねた場合、依然として隠れた悪意あるスクリプトの実行を許してしまう。

これを解決するために、0patchはWindows 7から11 22H2まで、そしてWindows Server 2008 R2から2022までのバージョンを対象とした独自のマイクロパッチを提案している。あるプロセスがWindows Explorer経由で.lnkファイルを開き、そのターゲットフィールドが260文字を超える場合、ターゲットを260文字に切り詰め、「不審なショートカットが短縮された」という警告を表示するだけだ。これによりユーザーに警告すると同時に悪意ある実行を防ぐことができ、0patchはこの修正が、Trend Microによって以前に特定された1000件以上の悪意あるショートカットを問題なく処理できたと主張している。

翻訳元: https://www.csoonline.com/article/4101085/windows-shortcuts-use-as-a-vector-for-malware-may-be-cut-short.html

ソース: csoonline.com