※ Microsoft 公式(?)の新機能一覧はエントリーの末尾にあります。
最近の Windows (少なくともXP以降)では、Group Policy または Local Security Policy を用いて、管理者が特定の条件に合わないアプリケーションの実行を禁止することができます。
典型的なケースとしては、「システムに正常な手順で(管理者により)インストールされたアプリケーションのみ実行可能で、その他(ユーザーが勝手気ままにダウンロードしたファイル ~ USBメモリについてきたautorunワーム)は実行できない」なんて設定ができます。
アクセス制御リスト(フォルダのプロパティから変更できるあれ)を使ってもこれに近いことを行えますが、ほとんどの場合は Policy を使って設定した方が楽かつ確実です。(ここらへんはまた別の Entry で)
昔は「ソフトウェアの制限のポリシー」という名前でこの機能が搭載されていたのですが、Windows 7 (Windows Server 2008 R2) からは、追加で「アプリケーション制御ポリシー – AppLocker」というのが追加されました。
これらの機能、冗長な気もするのですが「より柔軟で、堅牢な制限を実装したくなったけど、 Group Policy の互換性とかの関係で既存のものをそのまま拡張するわけにはいかなかった」てな感じの気がします。
目的は、AppLocker もソフトウェアの制限のポリシーもいっしょなんですが、大きな違いというと「制限の対象として個々のユーザーやセキュリティグループを指定できる」「パスを変数で指定する場合、一般の環境変数による指定ができなくなった」というところがあります。
特にここで注目したいのはなぜか後者の「パスを変数で指定する場合、一般の環境変数による指定ができなくなった」です。パス内には独自に定められた以下の変数のみが使えるようです。(@Windows 7 RC)
| Windows directory or drive | AppLocker path variable | Windows environment variable |
|---|---|---|
| Windows | %WINDIR% | %SystemRoot% |
| System32 | %SYSTEM32% | %SystemDirectory% |
| Windows installation directory | %OSDRIVE% | %SystemDrive% |
| Program Files | %PROGRAMFILES% | %ProgramFiles% and %ProgramFiles(x86)% |
| Removable media (for example, CD or DVD) | %REMOVABLE% | |
| Removable storage device (for example, USB flash drive) | %HOT% |
なんでこんなことになったのかっていうと、 Linux では有名な環境変数の上書きによる脆弱性(名前忘れた)に対応するためですねたぶん。(間違ってたら教えてください)。
たとえば、管理者が「インストールされたプログラムのみ利用可能にしたいので、パスに %ProgramFiles% を含むアプリケーションのみ実行可能にしよう」としても、悪意のあるユーザーが環境変数 ProgramFiles の中身を “C:\” に変更したらCドライブにあるすべてのプログラムが実行可能になります。
と、これに対応するため AppLocker では環境変数 (Windows environment variable) ではなくて、独自のパス変数 (AppLocker path variable) を使うように仕様があらためられています。
おかげで堅牢度は上がったんですが、%USERPROFILE%などの環境変数が使えなくなったので、「デスクトップのファイル (%USERPROFILE%\Desktop) は実行できないけど、マイドキュメント (%USERPROFILE%\Documents) のファイルは実行可」なんて設定はできなくなりました。
そんな訳で、 AppLocker はユーザー環境を正確に制限する必要がある時には使えるのですが、誤操作防止とかの目的にはソフトウェアの制限ポリシーがよさそうです。
その他の違いとしては、
| ソフトウェアの制限のポリシー | アプリケーション制御ポリシー | |
|---|---|---|
| 規則の種類 | 証明書・ハッシュ・ネットワークゾーン・パス | 証明書・ハッシュ・パス |
| 規則の対象 | 指定した実行可能な類のファイル群一括 | 実行可能ファイル・インストーラー・スクリプトそれぞれ別 |
そんな感じです。
というか Windows 7 RC 版を使ってるんですが、 AppLocker がハッシュ規則を使ってないのに毎回ファイルのハッシュを計算してますね。Bug Report せねば!← どうやら監査モード時の動作を勘違いしていたようです。通常モードではハッシュを計算する必要が無いときには計算を行いません。(訂正)
追記:途中何回も書き間違えたのですが、古いほうは「ソフトウェアの制限のポリシー」という名前で、「の」は二回で、「制限」です。新しいほうは「アプリケーション制御ポリシー」で、「の」はなし、「制御」です。お間違いなく(このエントリーに間違いが残っていないことを望む)。
## 情報源
+ [TechCenter Windows Server 2008 R2 および Windows 7 での AppLocker の新機能](http://technet.microsoft.com/ja-jp/library/dd378941%28WS.10%29.aspx)
+ [Windows 7 エンタープライズ ショート デモ / AppLocker](http://technet.microsoft.com/ja-jp/windows/dd320283.aspx)
- Newer: AppLocker と Adobe CS2
- Older: 砂糖100gからできるCO2
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://tetlist.info/2009/06/08/applockers_difference/trackback
- Listed below are links to weblogs that reference
- AppLocker と「ソフトウェアの制限のポリシー」の違い from Memento Mori