旧「Windows」をクラッシュさせるNTFSのバグが発覚

Steven J. Vaughan-Nichols (Special to ZDNet.com) 翻訳校正: 編集部2017年05月30日 10時10分
  • このエントリーをはてなブックマークに追加

 ロシアのある研究者が、過去の「Windows」製品に潜んでいた脆弱性を発見した。NTFSファイルシステムを実装した際に生じたこの単純なバグにより、「Windows Vista」から「Windows 8.1」までのシステムがクラッシュすることになるのだという。

 NTFSではファイルシステム上に存在するすべてのファイルを管理するために「$MFT」という名称のファイル(マスターファイルテーブル)が用いられている。この$MFTをディレクトリ名としたファイル名を入力するだけで、該当ボリューム上のファイルアクセスがブロックされてシステムがロック状態に陥ったり、最悪の場合には「死のブルースクリーン」(BSoD:Blue Screen of Death)の表示とともにシステムがクラッシュしたりするという。

 この問題を発見した研究者によると、NtfsFindStartingNode関数に対して、$MFTをディレクトリ名としたファイルを引き渡し、通常ファイルとしてオープンするよう仕向けた場合、同関数は当該ファイルの検索に失敗する。その後、Windowsはルートファイルシステムから再び当該ファイルを検索しようとするのだという。

 その際、NtfsOpenSubdirectory関数を用いてディレクトリとしてのオープンが試みられるが、次の処理ループ内で当該ファイルがディレクトリではないということが検知され、エラーにより処理が中断される。

 その後、WindowsはNtfsTeardownStructuresを用いて当該ファイルへのアクセスをクローズしようとする。しかし、ファイルをクローズするにはマウント時のファイルシステムをオープンする必要があるため、その試み自体が失敗に終わる。それ以降、Windowsはクローズの試みを繰り返すループに陥り、システムはロックすることになる。

 要するに、$MFTをディレクトリ名として使用しようとした場合(例えば、C:¥$MFT¥foo)、システムはクラッシュすることになる。結果的に、$MFTへのアクセスが凍結され、「永久ループ」に陥ったコンピュータは再起動するまでロックされ続けるというわけだ。

 この脆弱性を悪用する最も簡単な方法は、こういった状況を引き起こすファイル名を含んだウェブページをユーザーにオープンさせるというものだ。例えば、C:¥$MFT¥Bummerという名称の画像ファイルをロードするためのアドレスをウェブページに記載しておくだけで、クラッシュが引き起こされる。

 ただ、「Google Chrome」ブラウザの場合、不正な形式のディレクトリパスによる画像のロードは抑止されるため、こうした攻撃は無効化される。

 残念ながら「Internet Explorer」と「Firefox」は、このようなファイルのロードを許すため、こうした攻撃の影響を受けるとみられている。

 ただ、悪い話ばかりではない。まず、「Windows 10」はこの攻撃の影響を受けない。また、(手放しで良い話とは言えないが)この攻撃ではシステムをクラッシュさせることしかできない。つまり、この脆弱性を悪用して、「WannaCry」のようなランサムウェアや、その他のマルウェアをWindowsシステムに持ち込むのは(現状では)不可能だ。

 この問題に対処するパッチは現時点では提供されていない。


提供:file photo

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

  • このエントリーをはてなブックマークに追加