Microsoftが提供するSysinternalsツール群に、深刻な0-day脆弱性が発見された。この脆弱性により、攻撃者はDLLインジェクション技術を悪用して、悪意のあるコードを実行できる可能性がある。特に、Process ExplorerやAutoruns、Bginfoなどのツールが影響を受けており、システム管理やトラブルシューティングにこれらのツールを使用するユーザーにとって重大なリスクとなる。

問題は、DLLの読み込み時に信頼できるシステムディレクトリよりも現在の作業ディレクトリやネットワークパスを優先することで、悪意のあるDLLがロードされる恐れがある点にある。

この脆弱性は90日以上前にMicrosoftに報告されたが、未だ修正されていない。ユーザーは、Sysinternalsツールをネットワークパスから直接実行するのを避け、ローカルディレクトリにコピーしてから使用するなどの対策を講じるべきである。

SysinternalsツールのDLLインジェクション脆弱性がもたらすリスクとは

Sysinternalsツールの0-day脆弱性により、攻撃者が正規のツールを悪用して悪意のあるコードを実行できるリスクが指摘されている。特にDLLインジェクションの手法を用いることで、Windows環境に潜む脆弱性が浮き彫りとなった。

この問題の本質は、SysinternalsツールがDLLの読み込み時に信頼できるシステムディレクトリよりも、作業ディレクトリやネットワークパスを優先する設計になっている点にある。一般的にWindowsは、OSのセキュリティポリシーに基づき、安全なディレクトリからのみDLLを読み込む仕組みを持つが、Sysinternalsツールはこの原則を守っていない。

攻撃者は、この特性を悪用し、ネットワーク共有フォルダや一時フォルダに悪意のあるDLLを配置することで、ユーザーが意図せずマルウェアを実行する状況を作り出せる。企業環境では、グループポリシーやスタートアップスクリプトを通じてSysinternalsツールが運用されているケースも多く、意図せず脆弱な環境を構築してしまう可能性がある。

また、今回の脆弱性はMicrosoftが「多層防御(Defense-in-Depth)」の一環として扱い、重大な問題として認識していない点も重要だ。過去の事例を見ても、Microsoftが同様のDLLインジェクションの脆弱性を放置した例は少なくない。ユーザーが自衛策を講じなければ、長期にわたりリスクが残り続ける可能性がある。

DLLインジェクション攻撃の実態と、Bginfoを悪用した手口の詳細

今回のSysinternalsツールの脆弱性は、特にBginfoを用いた攻撃手法によって実証された。この手法では、攻撃者がBginfo.exeと同じフォルダ内に悪意のあるDLLを配置し、ユーザーが通常通りツールを実行することで、不正なコードが実行される流れとなる。

具体的な攻撃の流れとしては、まず攻撃者が「cryptbase.dll」や「TextShaping.dll」などのDLLを改ざんし、マルウェアを組み込む。次に、このDLLをターゲットとなるユーザーのアクセス可能なフォルダに配置する。

そして、ユーザーがSysinternalsツールを実行すると、正規のDLLではなく攻撃者のDLLが優先的に読み込まれる。結果として、ユーザーの権限でマルウェアが実行され、攻撃者はシステムの制御権を獲得する可能性がある。

特に、ネットワーク共有フォルダやUSBドライブ経由でSysinternalsツールを運用している環境では、この脆弱性が深刻な影響を及ぼす。多くの企業では、Sysinternalsツールを一元管理するためにネットワークフォルダに格納しているが、この環境下では、攻撃者が一度DLLを差し替えるだけで、多くのクライアントにマルウェアを拡散させることが可能となる。

研究者のレポートでは、Bginfoが「スタートアップスクリプト」に設定されているケースが多いことも指摘されている。これは、企業がシステム情報をデスクトップに表示するための一般的な手法だが、攻撃者はこれを利用して、起動時に自動でマルウェアを実行させることができる。

こうした攻撃が成立する背景には、Sysinternalsツールの更新プロセスがWindows Updateに統合されていない点も影響している。Microsoftは、OSのセキュリティ更新は定期的に行っているものの、Sysinternalsツールに関しては手動での更新が必要なため、セキュリティ意識の低い環境では脆弱なバージョンが長期間放置されるリスクがある。

ユーザーが取るべき対策と、Microsoftの対応が求められる理由

Sysinternalsツールの脆弱性が未修正のまま放置されている現状において、ユーザーができる具体的な対策は何かを考える必要がある。まず第一に、Sysinternalsツールを利用する際は、必ずローカルディレクトリにコピーしてから実行することが推奨される。特にネットワークフォルダから直接実行することは、DLLインジェクションのリスクを高めるため避けるべきである。

次に、システムの監査を実施し、DLLのロード先が適切であるかを確認することが重要だ。Process ExplorerやAutorunsを利用すれば、現在ロードされているDLLのパスを可視化でき、不審なDLLが存在するかどうかをチェックできる。また、MicrosoftのAppLockerやWindows Defenderの機能を活用し、信頼されていないDLLが実行されないようにポリシーを設定するのも有効な対策となる。

一方で、Microsoftの対応にも注目が集まる。今回の脆弱性に関して、Microsoftは「多層防御の観点から問題とはみなさない」との立場を取っているが、過去には同様のDLLインジェクション脆弱性が後に深刻な攻撃に発展したケースも存在する。特に、Windows環境では管理者権限を奪取することがシステム全体の乗っ取りにつながるため、リスクを過小評価することは危険だ。

この問題の根本的な解決には、Sysinternalsツールの更新プロセスをWindows Updateに統合するか、少なくともセキュリティパッチの適用を簡単に行える仕組みを導入することが求められる。また、Microsoftが公式に脆弱性を認め、適切な修正を行うことで、より安全なWindows環境が実現できるだろう。

今後もこの問題に関する研究者の報告や、Microsoftの対応方針に注視する必要がある。ユーザー自身が適切な対策を取るとともに、企業環境ではより厳格なポリシーを導入し、リスクを最小限に抑える努力が不可欠となる。

Source:Cyber Security News