Linchpin Labs & OSRが公開した「Atsiv("Vista"を逆にしたものと思われる)」に関するBlog投稿を米Symantecが現地時間の7月27日に行っている。64ビット版のWindows Vistaの標準セキュリティ機構を迂回するこのツールに端を発した一連のカーネルドライバの問題の状況についてここにまとめるものとする。

64ビットバージョンのVista(Vista x64)には、カーネルモードドライバをインストールする際には、コード署名がなされていなければならないという要件が実装されている。この理由は主にカーネルモードで動作するルートキットを排除したいというマイクロソフト側の狙いが含まれている(Windows Vista And Windows Server Codename "Longhorn" Security Enhancements)。よって、AdministratorであってもVista x64においては未署名のドライバをロードさせることは不可能であることになる。

一方、Vista x64にかかるデバイスドライバへのコード署名要件の迂回については、実は2006年にも指摘されている。Vistaの発売は2007年の1月30日であったので、ベータ版(実際のところは「リリース候補(RC)1」にも存在した)に関する指摘が行われたというのが実際のところである。はじめに、この点について述べておきたい。

現Invisible Things LabのCEOであるJoanna Rutkowska女史がSyScan'06ならびにBlackHat USA 2006で講演した内容の一部がそれにあたる。ページファイル、すなわち物理メモリにマップしきれなくなったデータをHDD上に払い出す(スワップ)際に作成されるファイルを上手に利用することがこの「ページファイルアタック」の原理である。理解のためにページファイルアタックの手順を簡単に整理すると以下のようになる。

  1. (VirtualAlloc( )APIを使用するなどして)特定のプロセスに対し大量のメモリを割り当てる
  2. その結果、システムはスワップを実行し、最終的に使用されていないドライバのコードもページファイルとして払い出される
  3. ページファイルとして払い出されたドライバのコードを書き換える
  4. ページファイルを物理メモリに復帰させてコードを実行させ、最終的に未署名のドライバを読み込ませる

このような手順を踏むことで、ベータ版Vista x64におけるデバイスドライバへのコード署名要件の迂回を実現したというわけである。一方、Microsoftはこのような事態を受けてか、Vista RC2以降ではユーザーモードで動作するアプリケーションから、ハードディスクの低レベルセクタへの書き込みアクセスを遮断するような変更が行われている。これはAdministrator権限で動作するアプリケーションであっても同様の制限が設けられていることになる。このような動作変更に関して、Rutkowska女史は「ディスクエディタのようなアプリケーションは動作不全を引き起こすだろうし、そもそも根本的解決策ではない」と自身のBlogで指摘している

このように、Vista x64のカーネルモードドライバへのコード署名要件は、製品として市場に投入される前に一度、迂回された歴史があることになる。これに加えて、今回のAtsivの出現とあっては、同じ話題が再燃したと見る向きもなくはないだろう。

Atsivの実行画面